列举Windows CE系统中注册的Filter

 =============================================================
标题:列举Windows CE系统中注册的Filter
摘要:
备注:Windows CE + VC2005
日期:2010.8.9
姓名:朱铭雷
=============================================================
    在用Platform Biulder 5.0定制的Windows CE 5.0系统中,能够支持多种媒体文件,这是因为定制系统的时候,加入了相关编解码组件。
    下面来引用一段代码,枚举出Windows CE系统中注册的组件,其中有几个地方需要注意。
    代码清单如下:
void CFilterTest1Dlg::OnBnClickedButton1()
{
HRESULT hr=0;
    IFilterMapper *pMapper=NULL;
    IEnumRegFilters *pEnum=NULL;
    REGFILTER *pRegFilter=NULL;
    ULONG cFetched=0;
    CoInitialize(NULL);
    hr=CoCreateInstance(CLSID_FilterMapper,NULL,CLSCTX_INPROC,IID_IFilterMapper,(void **)&pMapper);
    if(FAILED(hr))
    {
       TRACE(L"得到IFilterMapper接口失败/n");
       return;
    }
    hr=pMapper->EnumMatchingFilters(
       &pEnum,
       0,
       FALSE,
       GUID_NULL,
       GUID_NULL,
       FALSE,
       FALSE,
       GUID_NULL,
       GUID_NULL
       );
    if(FAILED(hr))
    {
       TRACE(L"得到IEnumRegFilters接口失败/n");
       return;
    }

    while(pEnum->Next(1,&pRegFilter,&cFetched)==S_OK)
    {
       for(int i=0;i<cFetched;i++)
       {
           TRACE(L"%S/n",(pRegFilter+i)->Name);
       }
       CoTaskMemFree(pRegFilter);
    }
    pMapper->Release();
    pEnum->Release();
    CoUninitialize();
}
    然后添加一下#include <dshow.h>头文件。
    编译可能会出现如下错误:
    /ctlutil.h(278) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    解决方法:
    project->properties->configuration->C/C++ ->Command Line,增加/wd4430选项
    继续编译又可能会出现如下错误:
    error LNK2001: 无法解析的外部符号 CLSID_FilterMapper
    error LNK2001: 无法解析的外部符号 IID_IfilterMapper
    fatal error LNK1120: 2 个无法解析的外部命令

    这是因为没有连接必要的静态库。
    解决方法:
    链接器 | 输入 | 附加依赖项,填入strmiids.lib commdlg.lib。
    再次编译,没有错误了。连接设备,测试一下程序。
    打开“输出”窗口,看一下输出信息,如下:
    我的系统中注册了如下Filter:
    WMAudio Decoder DMO
    WMVideo & MPEG4 Decoder DMO
    MPEG-1 Layer 3 Decoder DMO
    Video Renderer
    Audio Renderer
    Internal Script Command Renderer
    WMSpeech Decoder DMO
    NSC file Parser
    ASF embedded stuff Handler
    ASF URL Handler
    ASF ICM Handler
    ASF ACM Handler
    ACM Wrapper
    MPEG-I Stream Splitter
    Windows Media source filter
    Wave Parser
    File-Rendering ‘Transform’
    Multi-File Reader
    M3U/ASXvl Playlist
    ASXv3 Playlist
    ASXv2 Playlist
    File Source(URL)
    File Source(Async.)

    这些Filter直接影响系统能够播放哪些媒体文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值