波形捕捉:(2)创建捕捉设备对象2011-06-02 cnblogs stg609译你可以通过调用 DirectSoundCaptureCreate8 或 DirectSoundFullDuplexCreate8 函数来创建一个捕捉设备对象。这两个函数都 获取一个指向IDirectSoundCapture8 接口的指针。DirectSoundCaptureCreate 的lpcGUID参数或 DirectSoundFullDuplexCreate8 的pcGuidRenderDevice参数可以是一个由枚举 得到的GUID,或者是如下预定义的GUID之一:
GUID | Description |
DSDEVID_DefaultCapture | 系统默认的声音捕捉设备。你也可以通过传递一个NULL指针而不是设备 GUID来指定一个设备。 |
DSDEVID_DefaultVoiceCapture | 默认声音沟通设备。通常情况下,这是一个辅助设备如带麦克风的USB 耳机。 |
如果当前没有设备驱动,则调用失败。你也可以使用 CoCreateInstance 函数来创建一个对象。这个过程与创建设 备对象类似。步骤如下:1.在应用程序启动时通过调用 CoInitializeEx 函数初始化COM对象Code
HRESULT hr = CoInitializeEx(NULL, 0);
if (FAILED(hr))
{
ErrorHandler(hr); // Add error-handling here.
}
2.通过调用 CoCreateInstance 方法和 IDirectSound8::Initialize 方法创 建设备对象,而不是使用 DirectSoundCreate8 函数Code
LPDIRECTSOUND8 lpds;
hr = CoCreateInstance(&CLSID_DirectSound8,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDirectSound8,
(LPVOID*) &lpds);
if (FAILED(hr))
{
ErrorHandler(hr); // Add error-handling here.
}
CLSID_DirectSound8 是DirectSound驱动对象类的类标识符, IID_IDirectSound8 是接口标识符。lpds参数接收这个接口的指针。