I recently downloaded Wine-20050628 (self contained install with fake Windows drive) and tried to use the aviplay program in programs/avitools directory. However, this program fails with this odd error trace:
[bash$] WINEDEBUG=shell,ole wine ~/temp/wine/wine-20050628-patch/programs/aviplay.exe.so blur24.avi ... trace:shell:SIC_IconAppend L"c:\windows\system\shell32.dll" 37 0x1126 0x112e trace:shell:SHAlloc 20 bytes at 0x65f43068 trace:shell:SIC_IconAppend L"c:\windows\system\shell32.dll" -38 0x1126 0x112e trace:shell:SHAlloc 20 bytes at 0x65f430d0 trace:shell:SIC_Initialize hIconSmall=0x65f2f5e0 hIconBig=0x65f31190 fixme:avifile:AVIFileInit (): stub! trace:shell:HCR_RegOpenClassIDKey CLSID{00020020-0000-0000-c000-000000000046} trace:shell:HCR_GetClassNameA -- trace:shell:HCR_RegOpenClassIDKey CLSID{00020000-0000-0000-c000-000000000046} trace:shell:HCR_GetClassNameA -- Microsoft AVI Files trace:shell:SHCoCreateInstance ((nil), {00020000-0000-0000-c000-000000000046} (Microsoft AVI Files),unk:(nil), {00020020-0000-0000-c000-000000000046} (unknown),0x65cbf8fc) trace:shell:SHQueryValueExW (hkey=0x64,(null),(nil),(nil),0x65cbf338,0x65cbf330=520) trace:shell:SHQueryValueExW (hkey=0x64,L"LoadWithoutCOM",(nil),(nil),(nil),(nil)=0) trace:shell:PathFindFileNameW (L"avifil32.dll") trace:shell:SHCoCreateInstance WithoutCom=0 FromShell=0 trace:shell:HCR_RegOpenClassIDKey CLSID{00020020-0000-0000-c000-000000000046} trace:shell:HCR_GetClassNameA -- trace:shell:HCR_RegOpenClassIDKey CLSID{00020000-0000-0000-c000-000000000046} trace:shell:HCR_GetClassNameA -- Microsoft AVI Files err:shell:SHCoCreateInstance failed (0x800401f0) to create CLSID: {00020000-0000-0000-c000-000000000046} (Microsoft AVI Files) IID: {00020020-0000-0000-c000-000000000046} (unknown) err:shell:SHCoCreateInstance class not found in registry trace:shell:SHCoCreateInstance -- instance: (nil) AVIFileOpen: 0x800401f0
I looked up in the include files, and the value of 0x800410f0 is CO_E_NOTINITIALIZED. This is confirmed by a check in the source code that indicates that the apartment was not initialized (please correct me if I get the terminology wrong). The code for aviplay and aviinfo does not attempt to initialize any apartment prior to calling AVIFileOpen with /pclsidHandler/ set to NULL. I looked up in MSDN, and the documentation for AVIFileOpen does not suggest (to me at least), that an apartment should be initialized by the caller. This seems odd, since this means that the program should never have worked in the first place, yet the comments in the source suggest that it worked at least once.
Are these avitools maintained? If so, does this result from a misconfiguration (the same one in two different machines so far), or from a genuine incomplete implementation? I would like to hear any comment on this. The original purpose of messing with aviplay was to test whether the Indeo video codecs are actually usable after being installed under Wine, but this problems affects even files not encoded with Indeo.
Alex Villacís Lasso