Страница 17 из 22
Внеинтерфейсные функции высшего уровня Enumerate - перебор устройств воспроизведения или захватаHRESULT DirectSoundEnumerate ( LPDSENUMCALLBACK EnumCallback, LPVOID Context );
HRESULT DirectSoundCaptureEnumerate ( DSENUMCALLBACK EnumCallback, VOID *Context ); - EnumCallback - указатель перебирающей функции, которая будет вызываться для каждого обнаруженного устройства;
- Context - произвольное 32-разрядное значение, которое будет передаваться перебирающей функции при каждом вызове. Например, это может быть описатель параметров искомого устройства, указатель области памяти для найденного идентификатора и т.п.
EnumCallback - перебирающая функцияBOOL CALLBACK EnumCallback ( LPGUID GUID, LPCSTR Description, LPCSTR Module, VOID *Context ); - GUID - указатель идентификатора очередного найденного устройства;
- Description - строка названия устройства;
- Module - строка имени модуля драйвера устройства;
- Context - 32-разрядное значение, заданное в функции Enumerate.
Функция вызывается для каждого найденного устройства заданного класса. Если возвращается значение TRUE - перебор продолжается, если FALSE - прекращается. Create - создание объекта устройства воспроизведения или захватаHRESULT WINAPI DirectSoundCreate ( LPCGUID GUID, LPDIRECTSOUND *Dev, LPUNKNOWN Outer );
HRESULT WINAPI DirectSoundCaptureCreate ( LPCGUID GUID, LPDIRECTSOUNDCAPTURE *Dev, LPUNKNOWN Outer ); - GUID - указатель идентификатора устройства либо нулевое значение для использования стандартного устройства;
- Dev - указатель переменной, в которую будет занесен указатель созданного объекта;
- Outer - указатель наружного интерфейса COM. Не используется, должен иметь нулевое значение.
После успешного создания устройства воспроизведения, до начала проигрывания звуковых источников приложение должно установить уровень взаимодействия методом SetCooperativeLevel. |