>>298
あと>>261や>>291だと、時間が基準になってないから
思ったようなきれいなカーブ/線を描かないと思う。

設定するボリュームは、経過時間/フェード時間 を基準にするべき。

double total, fadetime;
clock_t start, end;

total = 0;
fadetime = 2.0f; //フェード時間(秒)
while (total < fadetime)
{
    start = clock();

    pDSData->SetVolume(DSBVOLUME_MIN * total / fadetime);
    Sleep(1);

    end = clock();
    total += (double)(end - start) / CLOCKS_PER_SEC;
}
pDSData->SetVolume(DSBVOLUME_MIN)

こんな感じ?Volume計算式とかSleepの値は調整してね。
環境なくてちゃんと試してないけどご容赦を。