Guest User

Untitled

a guest
Oct 19th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. HRESULT hresult; // для ошибок и проверок
  2. const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
  3. const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);
  4. CoInitialize(NULL); // инициализируем систему COM
  5. hresult = CoCreateInstance( // создаем COM - объект, связанный с устройствами аудио вывода
  6. CLSID_MMDeviceEnumerator, NULL,
  7. CLSCTX_ALL, IID_IMMDeviceEnumerator,
  8. (void**)&enumerator);
  9.  
  10. IMMDeviceCollection *pCollection = nullptr; // указатель на коллекцию устройств
  11. IMMDevice *pEndpoint = NULL; // указатель на конкретное устройство
  12.  
  13. hresult = this->enumerator->EnumAudioEndpoints( // получаем список устройств в системе(оно одно у меня, добавлять не думаю, но
  14. // если буду - делать проверку устройств(ниже) в цикле, там надо получить количество устройств ещё
  15. eRender, DEVICE_STATE_ACTIVE,
  16. &pCollection);
  17.  
  18. hresult = pCollection->Item(0, &pEndpoint); // получаем единственное устройство в системе
  19. IPropertyStore* propertys; // свойства устройства
  20. hresult = pEndpoint->OpenPropertyStore(STGM_READ, &propertys); // получаем свойства устройства для чтения(запись нам не нужна)
  21. DWORD count; propertys->GetCount(&count);
  22. for (DWORD i(0); i < count; i++)
  23. {
  24. PROPERTYKEY prop;
  25. propertys->GetAt(i, &prop);
  26. // конкретные свойства(какие?) лежат в prop, но как "расшифровать" - не понимаю
  27. }
Add Comment
Please, Sign In to add comment