9 int PASCAL WinMain (HANDLE hInstance, HANDLE prev, LPSTR cmdline, int show)
11 int n=0,doabout=0,doconfigure=0;
12 char buf[128],type[5],handler[5];
13 HMODULE msvfw32 = LoadLibrary("msvfw32.dll");
15 BOOL32 (VFWAPI *fnICInfo)(DWORD fccType, DWORD fccHandler, ICINFO * lpicinfo);
16 LRESULT (VFWAPI *fnICClose)(HIC hic);
17 HIC (VFWAPI *fnICOpen)(DWORD fccType, DWORD fccHandler, UINT wMode);
18 LRESULT (VFWAPI *fnICGetInfo)(HIC hic,ICINFO *picinfo, DWORD cb);
19 LRESULT (VFWAPI *fnICSendMessage)(HIC hic, UINT msg, DWORD dw1, DWORD dw2);
21 #define XX(x) fn##x = (void*)GetProcAddress(msvfw32,#x);
29 if (strstr(cmdline,"-about"))
31 if (strstr(cmdline,"-configure"))
34 printf("Currently installed Video Compressors:\n");
39 ii.dwSize = sizeof(ii);
40 if (!fnICInfo(ICTYPE_VIDEO,n++,&ii))
42 if (!(hic=fnICOpen(ii.fccType,ii.fccHandler,ICMODE_QUERY)))
44 if (!fnICGetInfo(hic,&ii,sizeof(ii))) {
48 #define w2s(w,s) WideCharToMultiByte(0,0,w,-1,s,128,0,NULL)
51 memcpy(type,&(ii.fccType),4);type[4]='\0';
52 memcpy(handler,&(ii.fccHandler),4);handler[4]='\0';
53 printf("%s.%s: %s\n",type,handler,buf);
54 printf("\tdwFlags: 0x%08lx (",ii.dwFlags);
55 #define XX(x) if (ii.dwFlags & x) printf(#x" ");
59 XX(VIDCF_COMPRESSFRAMES);
61 XX(VIDCF_FASTTEMPORALC);
62 XX(VIDCF_FASTTEMPORALD);
63 XX(VIDCF_QUALITYTIME);
66 printf("\tdwVersion: 0x%08lx\n",ii.dwVersion);
67 printf("\tdwVersionICM: 0x%08lx\n",ii.dwVersionICM);
68 w2s(ii.szDescription,buf);
69 printf("\tszDescription: %s\n",buf);
70 if (doabout) ICAbout(hic,0);
71 if (doconfigure && ICQueryConfigure32(hic))