|
|
|
IMoniker->BindToObject?
|
|||
|---|---|---|---|
|
#18+
Есть такой код: ICreateDevEnum *pDevEnum = NULL; IEnumMoniker *pEnum = NULL; // Create the System Device Enumerator. HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, reinterpret_cast<void**>(&pDevEnum)); if (SUCCEEDED(hr)) { // Create an enumerator for the video capture category. hr = pDevEnum->CreateClassEnumerator( CLSID_VideoInputDeviceCategory, &pEnum, 0); } IMoniker *pMoniker = NULL; while (pEnum->Next(1, &pMoniker, NULL) == S_OK) { IPropertyBag *pPropBag; hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void**)(&pPropBag)); if (FAILED(hr)) { pMoniker->Release(); continue; // Skip this one, maybe the next one will work. } // Find the description or friendly name. VARIANT varName; VariantInit(&varName); hr = pPropBag->Read(L"Description", &varName, 0); if (FAILED(hr)) { hr = pPropBag->Read(L"FriendlyName", &varName, 0); } if (SUCCEEDED(hr)) { // Add it to the application's list box. ListBox->Items->Add(OleStrToString(varName.bstrVal)); } pPropBag->Release(); pMoniker->Release(); } IBaseFilter *pCap = NULL; hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter, (void**)&pCap); Как мне с помощю pMoniker->BindToObject получить указатель на pCap, varName для которого например : Digital processsing systems... Тоесть я получаю список устройств видеозахвата, помещаю их имена в ListBox, и как мне получить pCap для определенного устройства? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 17:36 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2034480]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
2ms |
| others: | 200ms |
| total: | 319ms |

| 0 / 0 |
