Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод GetDevice извлекает устройство конечной точки звука, которое определяется строкой идентификатора конечной точки.
Синтаксис
HRESULT GetDevice(
[in] LPCWSTR pwstrId,
[out] IMMDevice **ppDevice
);
Parameters
[in] pwstrId
Указатель на строку, содержащую идентификатор конечной точки. Вызывающий объект обычно получает эту строку из метода IMMDevice::GetId или одного из методов в интерфейсе IMMNotificationClient .
Начиная с Windows 11 версии 24H2 (сборка 26100), вызывающий объект также может передавать строку, полученную из свойства PKEY_AudioEndpoint_StableId в звуковой конечной точке, чтобы получить конечную точку звука с соответствующим стабильным Идентификатором.
[out] ppDevice
Указатель на переменную указателя, в которую метод записывает адрес интерфейса IMMDevice для указанного устройства. С помощью этого метода вызывающий объект получает подсчитываемую ссылку на интерфейс. Вызывающий объект отвечает за освобождение интерфейса, если он больше не нужен, вызывая метод выпуска интерфейса. Если вызов GetDevice завершается ошибкой, *ppDevice имеет значение NULL.
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включаются, но не ограничиваются значениями, приведенными в следующей таблице.
| Код возврата | Description |
|---|---|
|
Параметр pwstrId или ppDevice имеет значение NULL. |
|
Идентификатор устройства не определяет звуковое устройство, которое находится в этой системе. |
|
Вне памяти. |
Замечания
Если две программы выполняются в двух разных процессах и должны получить доступ к одному и тому же устройству аудио конечной точки, одна программа не может просто передать интерфейс IMMDevice устройства в другую программу. Однако программы могут получить доступ к тому же устройству, выполнив следующие действия.
- Первая программа вызывает метод IMMDevice::GetId в первом процессе, чтобы получить строку идентификатора конечной точки, которая идентифицирует устройство.
- Первая программа передает строку идентификатора конечной точки через границу процесса второй программе.
- Чтобы получить ссылку на интерфейс IMMDevice устройства во втором процессе, вторая программа вызывает GetDevice со строкой идентификатора конечной точки.
- Свойства устройства
- События устройства
- Использование интерфейса IKsControl для доступа к свойствам звука
Requirements
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows Vista [только классические приложения] |
| минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
| целевая платформа | Windows |
| Header | mmdeviceapi.h |