directshow USB摄像头预览

上传者: afu1972715000 | 上传时间: 2022-11-27 16:51:10 | 文件大小: 2.91MB | 文件类型: ZIP
//指定视频采集设备的友好名字,为它创建一个Filter IBaseFilter * CTestPreviewDlg::CreateVideoDevice(const char * inFriendlyName) { return CreateHardwareFilter(CLSID_VideoInputDeviceCategory,inFriendlyName); } //根据设备的友好名字,创建一个代表该设备的Filter IBaseFilter * CTestPreviewDlg::CreateHardwareFilter(GUID inCategory,const char * inFriendlyName) { //创建一个系统枚举组件对象 ICreateDevEnum * enumHardware = NULL; HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum,NULL,CLSCTX_ALL, IID_ICreateDevEnum,(void**)&enumHardware); if(FAILED(hr)) { return NULL; } IBaseFilter * hardwareFilter = NULL; IEnumMoniker * enumMoniker = NULL; //为指定的目录创建枚举器 hr = enumHardware->CreateClassEnumerator(inCategory,&enumMoniker,0); if(enumMoniker) { enumMoniker->Reset(); ULONG fetched = 0; IMoniker * moniker = NULL; char friendlyName[256]; //枚举得到该目录下所有的设备,逐个进行名字匹配 while(!hardwareFilter && SUCCEEDED(enumMoniker->Next(1,&moniker, &fetched)) && fetched) { if(moniker) { IPropertyBag * propertyBag = NULL; VARIANT name; friendlyName[0] = 0; hr = moniker->BindToStorage(0,0,IID_IPropertyBag,(void**)&propertyBag); //读取设备的友好名字 if(SUCCEEDED(hr)) { name.vt = VT_BSTR; hr = propertyBag->Read(L"Friendlyname",&name,NULL); } if(SUCCEEDED(hr)) { WideCharToMultiByte(CP_ACP,0,name.bstrVal,-1, friendlyName,256,NULL,NULL); //如果当前设备的友好名字与用户指定的设备名字相同, //则将当前设备标识绑定为Filter形式 if(strcmp(friendlyName,inFriendlyName) == 0) { moniker->BindToObject(0,0,IID_IBaseFilter, (void**)&hardwareFilter); } } //释放使用过的接口 if(propertyBag) { propertyBag->Release(); propertyBag = NULL; } moniker->Release(); } } enumMoniker->Release(); } enumHardware->Release(); return hardwareFilter; }

文件下载

资源详情

[{"title":"( 29 个子文件 2.91MB ) directshow USB摄像头预览","children":[{"title":"TestPreview","children":[{"title":"TestPreview.plg <span style='color:#111;'> 896B </span>","children":null,"spread":false},{"title":"TestPreview.ncb <span style='color:#111;'> 41.00KB </span>","children":null,"spread":false},{"title":"res","children":[{"title":"TestPreview.ico <span style='color:#111;'> 1.05KB </span>","children":null,"spread":false},{"title":"TestPreview.rc2 <span style='color:#111;'> 403B </span>","children":null,"spread":false}],"spread":true},{"title":"TestPreview.aps <span style='color:#111;'> 34.82KB </span>","children":null,"spread":false},{"title":"TestPreview.cpp <span style='color:#111;'> 2.12KB </span>","children":null,"spread":false},{"title":"strmbasd.lib <span style='color:#111;'> 1.80MB </span>","children":null,"spread":false},{"title":"TestPreview.dsw <span style='color:#111;'> 528B </span>","children":null,"spread":false},{"title":"StdAfx.cpp <span style='color:#111;'> 213B </span>","children":null,"spread":false},{"title":"resource.h <span style='color:#111;'> 735B </span>","children":null,"spread":false},{"title":"TestPreviewDlg.cpp <span style='color:#111;'> 13.70KB </span>","children":null,"spread":false},{"title":"TestPreview.opt <span style='color:#111;'> 50.50KB </span>","children":null,"spread":false},{"title":"TestPreview.dsp <span style='color:#111;'> 4.20KB </span>","children":null,"spread":false},{"title":"StdAfx.h <span style='color:#111;'> 1.03KB </span>","children":null,"spread":false},{"title":"TestPreviewDlg.h <span style='color:#111;'> 1.95KB </span>","children":null,"spread":false},{"title":"TestPreview.h <span style='color:#111;'> 1.35KB </span>","children":null,"spread":false},{"title":"Debug","children":[{"title":"StdAfx.obj <span style='color:#111;'> 103.58KB </span>","children":null,"spread":false},{"title":"TestPreview.obj <span style='color:#111;'> 26.76KB </span>","children":null,"spread":false},{"title":"TestPreview.ilk <span style='color:#111;'> 371.73KB </span>","children":null,"spread":false},{"title":"vc60.idb <span style='color:#111;'> 249.00KB </span>","children":null,"spread":false},{"title":"TestPreview.pdb <span style='color:#111;'> 537.00KB </span>","children":null,"spread":false},{"title":"TestPreview.pch <span style='color:#111;'> 5.27MB </span>","children":null,"spread":false},{"title":"TestPreview.res <span style='color:#111;'> 2.52KB </span>","children":null,"spread":false},{"title":"vc60.pdb <span style='color:#111;'> 452.00KB </span>","children":null,"spread":false},{"title":"TestPreviewDlg.obj <span style='color:#111;'> 48.42KB </span>","children":null,"spread":false},{"title":"TestPreview.exe <span style='color:#111;'> 124.07KB </span>","children":null,"spread":false}],"spread":false},{"title":"TestPreview.clw <span style='color:#111;'> 1.17KB </span>","children":null,"spread":false},{"title":"TestPreview.rc <span style='color:#111;'> 5.27KB </span>","children":null,"spread":false},{"title":"ReadMe.txt <span style='color:#111;'> 3.58KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明