Wine avitools/aviplay fails with CO_E_NOTINITIALIZED for any AVI file

Alex Villací­s Lasso a_villacis at palosanto.com
Thu Jun 30 13:34:27 CDT 2005


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




More information about the wine-devel mailing list