DirectShow 枚举设备
来源:互联网 发布:mac无法接收打包文件 编辑:程序博客网 时间:2024/06/01 07:44
void CCaremaDlg::OnButton1()
{
::CoInitialize(NULL);
// IID myroupName = CLSID_SystemDeviceEnum;
IID myroupName = CLSID_LegacyAmFilterCategory;
IBaseFilter* pFilter = this->FindFilterByClsId(myroupName,"Video Renderer");
int i=0;
}
IBaseFilter* CCaremaDlg::FindFilterByClsId(IID Typeid, CString comName)
{
ICreateDevEnum* pAllDevSource = NULL;
IBaseFilter* pFilter = NULL;
HRESULT hr = ::CoCreateInstance(CLSID_SystemDeviceEnum,NULL,CLSCTX_INPROC_SERVER,IID_ICreateDevEnum,(void**)&pAllDevSource);
if(FAILED(hr)){
MessageBox("Faild!");
}
MessageBox("Success!");
//找出了系统设备
IEnumMoniker* pEnumMoniker = NULL;
ULONG dsize = 0;
hr = pAllDevSource->CreateClassEnumerator(Typeid,&pEnumMoniker,0);
if( hr != S_OK ){
MessageBox("IEnumMoniker Faild!");
}
MessageBox("IEnumMoniker Success!");
IMoniker* pMoniker = NULL;
while( pEnumMoniker->Next(1,&pMoniker,&dsize)==S_OK )
{
IPropertyBag* pProperty = NULL;
if( SUCCEEDED(pMoniker->BindToStorage(NULL,NULL,IID_IPropertyBag,(void**)&pProperty)) )
{
VARIANT DevName;
VariantInit(&DevName);
DevName.vt = VT_BSTR;
pProperty->Read( L"Friendlyname", &DevName, 0 );
CString str(DevName.bstrVal);
VariantClear(&DevName);
MessageBox(str);
if( str == comName )
{
hr = pMoniker->BindToObject(NULL,NULL,IID_IBaseFilter,(void**)&pFilter);
break;
}
}
pProperty->Release();
pMoniker->Release();
}
pEnumMoniker->Release();
return pFilter;
}
{
::CoInitialize(NULL);
// IID myroupName = CLSID_SystemDeviceEnum;
IID myroupName = CLSID_LegacyAmFilterCategory;
IBaseFilter* pFilter = this->FindFilterByClsId(myroupName,"Video Renderer");
int i=0;
}
IBaseFilter* CCaremaDlg::FindFilterByClsId(IID Typeid, CString comName)
{
ICreateDevEnum* pAllDevSource = NULL;
IBaseFilter* pFilter = NULL;
HRESULT hr = ::CoCreateInstance(CLSID_SystemDeviceEnum,NULL,CLSCTX_INPROC_SERVER,IID_ICreateDevEnum,(void**)&pAllDevSource);
if(FAILED(hr)){
MessageBox("Faild!");
}
MessageBox("Success!");
//找出了系统设备
IEnumMoniker* pEnumMoniker = NULL;
ULONG dsize = 0;
hr = pAllDevSource->CreateClassEnumerator(Typeid,&pEnumMoniker,0);
if( hr != S_OK ){
MessageBox("IEnumMoniker Faild!");
}
MessageBox("IEnumMoniker Success!");
IMoniker* pMoniker = NULL;
while( pEnumMoniker->Next(1,&pMoniker,&dsize)==S_OK )
{
IPropertyBag* pProperty = NULL;
if( SUCCEEDED(pMoniker->BindToStorage(NULL,NULL,IID_IPropertyBag,(void**)&pProperty)) )
{
VARIANT DevName;
VariantInit(&DevName);
DevName.vt = VT_BSTR;
pProperty->Read( L"Friendlyname", &DevName, 0 );
CString str(DevName.bstrVal);
VariantClear(&DevName);
MessageBox(str);
if( str == comName )
{
hr = pMoniker->BindToObject(NULL,NULL,IID_IBaseFilter,(void**)&pFilter);
break;
}
}
pProperty->Release();
pMoniker->Release();
}
pEnumMoniker->Release();
return pFilter;
}
- DirectShow 枚举设备
- DirectShow系统设备的枚举
- 系统设备的枚举(DirectShow)
- 系统设备的枚举(DirectShow)
- [DirectShow] 枚举设备到Combo Box列表中 [大三TJB_708]
- 设备枚举
- 设备枚举
- DirectShow中枚举摄像头分辨率
- 枚举设备管理器设备
- Directshow获取系统默认设备
- Pci设备驱动:设备枚举
- USB设备枚举
- PCI设备操作--枚举
- 枚举USB设备
- 枚举硬件设备
- 枚举系统视频设备
- 用SetupDiGetClassDevs枚举设备
- C#枚举硬件设备
- 解决Tomcat乱码
- iOS-正则表达式匹配数字或网址
- joj1995
- ajax详细解说(含jsp的高级特性)
- C#中基类和派生类的构造函数以及变量的执行顺序整理
- DirectShow 枚举设备
- Mac 在vmware中更改分辨率
- Java 发送邮件
- install snow leopard on thinkpad x201
- 【李彦宏创业7剑】
- python challenge 第三关解法 http://www.pythonchallenge.com
- Ubuntu下Adb调试Android找不到设备的解决方法
- 只允许输入数字不允许输入字母和汉字和只允许粘贴数字
- 堆和栈的区别!!又死在这个问题上了。。转载百科