Voila un bout de programme qui tourne bien avec Dshow :
ICreateDevEnum* pSysDevEnum=NULL; HRESULT hr=CoCreateInstance(CLSID_SystemDeviceEnum,NULL,CLSCTX_INPROC_SERVER, IID_ICreateDevEnum,(void**) &pSysDevEnum); if(FAILED(hr)) { AfxMessageBox("Erreur creation system enum !"); return hr; } IEnumMoniker* pEnumCat=NULL; hr=pSysDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory, &pEnumCat,0); if(SUCCEEDED(hr)) { IMoniker* pMoniker=NULL; ULONG cFetChed; while(pEnumCat->Next(1,&pMoniker,&cFetChed)==S_OK) { IPropertyBag* pPropBag; hr=pMoniker->BindToStorage(0,0,IID_IPropertyBag,(void**) &pPropBag); if(SUCCEEDED(hr)) { VARIANT varName; VariantInit(&varName); hr=pPropBag->Read(L"FriendlyName",&varName,0); if(SUCCEEDED(hr)) { lVideo.AddTail(CW2CT(varName.bstrVal)); } VariantClear(&varName); pPropBag->Release(); } pMoniker->Release(); } pEnumCat->Release(); } pSysDevEnum->Release();
en espérant que ça puisse t'aider
Bonne journée Jean-Philippe
|