Advertisement
Guest User

Untitled

a guest
Nov 8th, 2011
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. ICreateDevEnum* devs = 0;
  2. hr = CoCreateInstance (CLSID_SystemDeviceEnum, 0, CLSCTX_INPROC, IID_ICreateDevEnum, (void **) &devs);
  3. IEnumMoniker* cams = 0;
  4. hr = devs?devs->CreateClassEnumerator (CLSID_VideoInputDeviceCategory, &cams, 0):0;
  5.  
  6. IMoniker* mon = 0;
  7.  
  8. if(cams)
  9. {
  10. while (cams->Next(1, &mon, NULL) == S_OK)
  11. {
  12. IPropertyBag *pPropBag;
  13. HRESULT hr = mon->BindToStorage(0, 0, IID_PPV_ARGS(&pPropBag));
  14. if (FAILED(hr))
  15. {
  16. mon->Release();
  17. continue;
  18. }
  19. CComVariant varName;
  20. //CAtlList
  21. hr = pPropBag->Read(L"FriendlyName", &varName, 0);
  22. if (SUCCEEDED(hr))
  23. {
  24. char *str = 0;
  25. int iLenW = ::SysStringLen(varName.bstrVal);
  26. int iLenA = ::WideCharToMultiByte(CP_ACP, 0, varName.bstrVal, iLenW, 0, 0, NULL, NULL);
  27. if(iLenA > 0)
  28. {
  29. str = new char[iLenA +1];
  30. ::WideCharToMultiByte(CP_ACP, 0, varName.bstrVal, iLenW, str, iLenA, NULL, NULL);
  31. str[iLenA]=0;
  32. //Now add each of the str value to a comma separated list for my use. Later release the interfaces.
  33. }
  34. }
  35.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement