IMMDeviceEnumerator::GetDevice 方法 (mmdeviceapi.h)

GetDevice 方法检索由终结点 ID 字符串标识的音频终结点设备。

语法

HRESULT GetDevice(
  [in]  LPCWSTR   pwstrId,
  [out] IMMDevice **ppDevice
);

参数

[in] pwstrId

指向包含终结点 ID 的字符串的指针。 调用方通常从 IMMDevice::GetId 方法或 IMMNotificationClient 接口中的方法之一获取此字符串。

[out] ppDevice

指向指针变量的指针,方法在其中写入指定设备的 IMMDevice 接口的地址。 通过此方法,调用方获取对 接口的计数引用。 调用方负责在不再需要接口时通过调用接口的 Release 方法释放接口。 如果 GetDevice 调用失败, 则 *ppDeviceNULL

返回值

如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。

返回代码 说明
E_POINTER
参数 pwstrIdppDeviceNULL
E_NOTFOUND
设备 ID 不标识此系统中的音频设备。
E_OUTOFMEMORY
内存不足。

注解

如果两个程序在两个不同的进程中运行,并且都需要访问同一个音频终结点设备,则一个程序不能简单地将设备的 IMMDevice 接口传递给另一个程序。 但是,程序可以通过执行以下步骤来访问同一设备:

  1. 第一个程序在第一个进程中调用 IMMDevice::GetId 方法以获取标识设备的终结点 ID 字符串。
  2. 第一个程序通过进程边界将终结点 ID 字符串传递给第二个程序。
  3. 若要获取对第二个进程中设备的 IMMDevice 接口的引用,第二个程序使用终结点 ID 字符串调用 GetDevice
有关 GetDevice 方法的详细信息,请参阅以下主题: 有关使用 GetDevice 方法的代码示例,请参阅以下主题:

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 mmdeviceapi.h

另请参阅

IMMDevice 接口

IMMDevice::GetId

IMMDeviceEnumerator 接口

IMMNotificationClient 接口