列举本机安装的解码器(CODEC)

    技术2022-05-11  155

    #include "stdio.h"#include "conio.h"#include "stdlib.h" //for function wcstombs()#include "windows.h"#include "vfw.h"#pragma comment(lib,"vfw32.lib") //此行可省去int EnumCodecs(char *strName,int *fccHandler){   static int i;   int ret=1;   HIC hic;   ICINFO icinfo;   if(!ICInfo(ICTYPE_VIDEO, i, &icinfo))    {      i=0;      return 0;   }   hic = ICOpen(icinfo.fccType, icinfo.fccHandler, ICMODE_QUERY);    if (hic)    {      ICGetInfo(hic, &icinfo, sizeof(icinfo));       //由于得到的szDescription是UNICODE双字节字串,所以要转换为ASCII的      wcstombs(strName,icinfo.szDescription,256);      *fccHandler=icinfo.fccHandler;   }   else ret=-1;   ICClose(hic);   i++;   return ret;}main(){   int i,n;   int fccHandler;   char strName[256];   int ret;   for(;;)   {      ret=EnumCodecs(strName,&fccHandler);      if(ret==1)      printf("0x%x,%s/n",fccHandler,strName);      else if(ret==0)  break;   }   getch();} 上面是枚举OS装入那些编解器,只对VFW的那种有效,对filter无效。解码器可以卸载。对于VFW的那种,在WIN98下它是有system.ini的[drivers32]加入一行,如VIDC.MP42=mpg4c32.dll。对于WIN2K是在注册表加入的。对于filter是用注册,用regsvr32.exe


    最新回复(0)