Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ICreateDevEnum* devs = 0;
- hr = CoCreateInstance (CLSID_SystemDeviceEnum, 0, CLSCTX_INPROC, IID_ICreateDevEnum, (void **) &devs);
- IEnumMoniker* cams = 0;
- hr = devs?devs->CreateClassEnumerator (CLSID_VideoInputDeviceCategory, &cams, 0):0;
- IMoniker* mon = 0;
- if(cams)
- {
- while (cams->Next(1, &mon, NULL) == S_OK)
- {
- IPropertyBag *pPropBag;
- HRESULT hr = mon->BindToStorage(0, 0, IID_PPV_ARGS(&pPropBag));
- if (FAILED(hr))
- {
- mon->Release();
- continue;
- }
- CComVariant varName;
- //CAtlList
- hr = pPropBag->Read(L"FriendlyName", &varName, 0);
- if (SUCCEEDED(hr))
- {
- char *str = 0;
- int iLenW = ::SysStringLen(varName.bstrVal);
- int iLenA = ::WideCharToMultiByte(CP_ACP, 0, varName.bstrVal, iLenW, 0, 0, NULL, NULL);
- if(iLenA > 0)
- {
- str = new char[iLenA +1];
- ::WideCharToMultiByte(CP_ACP, 0, varName.bstrVal, iLenW, str, iLenA, NULL, NULL);
- str[iLenA]=0;
- //Now add each of the str value to a comma separated list for my use. Later release the interfaces.
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement