Поделиться через


Метод IMMDeviceEnumerator::GetDevice (mmdeviceapi.h)

Метод GetDevice извлекает устройство конечной точки звука, идентифицируемое строкой идентификатора конечной точки.

Синтаксис

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

Параметры

[in] pwstrId

Указатель на строку, содержащую идентификатор конечной точки. Вызывающий объект обычно получает эту строку из метода IMMDevice::GetId или одного из методов в интерфейсе IMMNotificationClient .

[out] ppDevice

Указатель на переменную указателя, в которую метод записывает адрес интерфейса IMMDevice для указанного устройства. С помощью этого метода вызывающий объект получает подсчитываемую ссылку на интерфейс . Вызывающий объект отвечает за освобождение интерфейса, когда он больше не нужен, путем вызова метода Release интерфейса. Если вызов GetDevice завершается ошибкой , *ppDevice имеет значение NULL.

Возвращаемое значение

Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включают, помимо прочего, значения, показанные в следующей таблице.

Код возврата Описание
E_POINTER
Параметр pwstrId или ppDevice имеет значение NULL.
E_NOTFOUND
Идентификатор устройства не идентифицирует звуковое устройство, которое находится в этой системе.
E_OUTOFMEMORY
Недостаточно памяти.

Комментарии

Если две программы выполняются в двух разных процессах и обеим требуется доступ к одному и тому же устройству конечной точки аудио, одна программа не может просто передать интерфейс IMMDevice устройства другой программе. Однако программы могут получить доступ к одному и тому же устройству, выполнив следующие действия.

  1. Первая программа вызывает метод IMMDevice::GetId в первом процессе, чтобы получить строку идентификатора конечной точки, которая идентифицирует устройство.
  2. Первая программа передает строку идентификатора конечной точки через границу процесса во вторую программу.
  3. Чтобы получить ссылку на интерфейс IMMDevice устройства во втором процессе, вторая программа вызывает GetDevice со строкой идентификатора конечной точки.
Дополнительные сведения о методе GetDevice см. в следующих разделах: Примеры кода, использующие метод GetDevice , см. в следующих разделах:

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header mmdeviceapi.h

См. также раздел

Интерфейс IMMDevice

IMMDevice::GetId

Интерфейс IMMDeviceEnumerator

Интерфейс IMMNotificationClient