Вы можете использовать GetCurrentProcessId , чтобы получить идентификатор текущего процесса.
Затем вы можете вызвать EnumWindows и проверить каждое окно с помощью GetWindowThreadProcessId , чтобы найти окно, связанное сваш процесс.
Однако более простым вариантом может быть просто создать собственное окно.Вы можете создать невидимое окно размером 1x1 пиксель и использовать его с Direct Sound.
Это дает преимущество в работе, даже если ваш вызывающий процесс не имеет пригодного для использования окна (или регулярно удаляет дескрипторы окон).