Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HRESULT hresult; // для ошибок и проверок
- const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
- const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);
- CoInitialize(NULL); // инициализируем систему COM
- hresult = CoCreateInstance( // создаем COM - объект, связанный с устройствами аудио вывода
- CLSID_MMDeviceEnumerator, NULL,
- CLSCTX_ALL, IID_IMMDeviceEnumerator,
- (void**)&enumerator);
- IMMDeviceCollection *pCollection = nullptr; // указатель на коллекцию устройств
- IMMDevice *pEndpoint = NULL; // указатель на конкретное устройство
- hresult = this->enumerator->EnumAudioEndpoints( // получаем список устройств в системе(оно одно у меня, добавлять не думаю, но
- // если буду - делать проверку устройств(ниже) в цикле, там надо получить количество устройств ещё
- eRender, DEVICE_STATE_ACTIVE,
- &pCollection);
- hresult = pCollection->Item(0, &pEndpoint); // получаем единственное устройство в системе
- IPropertyStore* propertys; // свойства устройства
- hresult = pEndpoint->OpenPropertyStore(STGM_READ, &propertys); // получаем свойства устройства для чтения(запись нам не нужна)
- DWORD count; propertys->GetCount(&count);
- for (DWORD i(0); i < count; i++)
- {
- PROPERTYKEY prop;
- propertys->GetAt(i, &prop);
- // конкретные свойства(какие?) лежат в prop, но как "расшифровать" - не понимаю
- }
Add Comment
Please, Sign In to add comment