https://bugs.winehq.org/show_bug.cgi?id=37818
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|UNCONFIRMED |NEW URL| |http://skylink.dl.sourcefor | |ge.net/project/monopolie/Mo | |nopolie/Monopolie%200.9.7/m | |onopolie0.9.7-installer.exe CC| |focht@gmx.net Summary|Monopolie 0.9.7 crashes on |Monopolie 0.9.7 (VB6 game) |the first buy |crashes on the first buy | |(missing OLE1 | |'{0003000d-0000-0000-c000-0 | |00000000046}' Sound class | |registry data) Ever confirmed|0 |1
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
Prerequisite: 'winetricks -q comctl32ocx'
That VB6 based game is very old, possibly from Win9X era. It makes use of several outdated/superseded OLE1 classes which are not present in Wine.
Basically stuff in '{0003xxxx-0000-0000-C000-000000000046}' range.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Monopolie
$ WINEDEBUG=+tid,+seh,+relay,+ole,+variant wine ./Monopolie\ 0.9.7.exe
log.txt 2>&1
... 0023:trace:ole:CoCreateInstance (rclsid={0003000d-0000-0000-c000-000000000046}, pUnkOuter=(nil), dwClsContext=00000014, riid={00000112-0000-0000-c000-000000000046}, ppv=0x17c51c) 0023:trace:ole:CoGetTreatAsClass ({0003000d-0000-0000-c000-000000000046},0x33ce98) 0023:Call ntdll.RtlInitUnicodeString(0033cce0,0033cd32 L"CLSID\{0003000D-0000-0000-C000-000000000046}") ret=7e94c764 0023:Ret ntdll.RtlInitUnicodeString() retval=0033cce0 ret=7e94c764 0023:Call ntdll.NtOpenKey(0033cd2c,00020019,0033cce8) ret=7e94c780 0023:Ret ntdll.NtOpenKey() retval=c0000034 ret=7e94c780 0023:Call ntdll.RtlNtStatusToDosError(c0000034) ret=7e94c78b 0023:Ret ntdll.RtlNtStatusToDosError() retval=00000002 ret=7e94c78b 0023:trace:ole:CoGetClassObject CLSID: {0003000d-0000-0000-c000-000000000046},IID: {00000001-0000-0000-c000-000000000046} 0023:trace:ole:RPC_GetLocalClassObject rclsid={0003000d-0000-0000-c000-000000000046}, iid={00000001-0000-0000-c000-000000000046} 0023:trace:ole:RPC_GetLocalClassObject waiting for L"\\.\pipe\{0003000D-0000-0000-C000-000000000046}" 0023:Call KERNEL32.WaitNamedPipeW(0033cbf8 L"\\.\pipe\{0003000D-0000-0000-C000-000000000046}",ffffffff) ret=7e9915bf 0023:Ret KERNEL32.WaitNamedPipeW() retval=00000000 ret=7e9915bf 0023:Call KERNEL32.CreateFileW(0033cbf8 L"\\.\pipe\{0003000D-0000-0000-C000-000000000046}",c0000000,00000000,00000000,00000003,00000000,00000000) ret=7e991600 0023:Ret KERNEL32.CreateFileW() retval=ffffffff ret=7e991600 0023:trace:ole:create_local_service Attempting to start Local service for {0003000d-0000-0000-c000-000000000046} ... 0023:err:ole:create_server class {0003000d-0000-0000-c000-000000000046} not registered 0023:fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported 0023:err:ole:CoGetClassObject no class object {0003000d-0000-0000-c000-000000000046} could be created for context 0x14 0023:Ret ole32.OleRun() retval=80040154 ret=734c91f2 ... --- snip ---
CLSID '{0003000D-0000-0000-C000-000000000046}' is 'SoundRec' OLE1 class.
I found more or less conflicting information since the original OLE1 CLSID is not to be directly used but substituted ('TreatAs' attribute).
Depending on Windows version used you end up with different CLSIDs.
http://camas.comodo.com/cgi-bin/submit?file=8c76de1f01099579e73a6a0a032aeaf0...
(Windows 2k/XP?)
--- snip --- LM\Software\Classes\ClsId{0003000D-0000-0000-C000-000000000046}\ REG_SZ 12 "Sound" LM\Software\Classes\ClsId{0003000D-0000-0000-C000-000000000046}\Insertable\ REG_SZ 2 "" LM\Software\Classes\ClsId{0003000D-0000-0000-C000-000000000046}\Ole1Class\ REG_SZ 18 "SoundRec" LM\Software\Classes\ClsId{0003000D-0000-0000-C000-000000000046}\ProgID\ REG_SZ 18 "SoundRec" LM\Software\Classes\ClsId{0003000D-0000-0000-C000-000000000046}\TreatAs\ REG_SZ 78 "{00020C01-0000-0000-C000-000000000046}" --- snip ---
The substitution CLSID is not present in Wine:
http://camas.comodo.com/cgi-bin/submit?file=8c76de1f01099579e73a6a0a032aeaf0...
--- snip --- LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\ REG_SZ 26 "Sound (OLE2)" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\AuxUserType\2\ REG_SZ 48 "Sound Recorder Document" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\AuxUserType\3\ REG_SZ 64 "Microsoft Sound Recorder Server" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\DataFormats\DefaultFile\ REG_SZ 6 "12" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\DataFormats\DefaultSet\ REG_SZ 18 "SoundRec" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\DataFormats\GetSet\0\ REG_SZ 18 "3,1,32,1" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\DataFormats\GetSet\1\ REG_SZ 18 "8,-1,1,3" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\Implemented Categories{7DD95801-9882-11CF-9FA9-00AA006C42C4}\ REG_SZ 2 "" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\Implemented Categories{7DD95802-9882-11CF-9FA9-00AA006C42C4}\ REG_SZ 2 "" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\InprocHandler32\ REG_SZ 20 "ole32.dll" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\Insertable\ REG_SZ 2 "" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\LocalServer\ REG_SZ 26 "sndrec32.exe" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\LocalServer32\ REG_SZ 26 "sndrec32.exe" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\MiscStatus\ REG_SZ 4 "0" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\PersistentHandler\ REG_SZ 78 "{098f2470-bae0-11cd-b579-08002b30bfeb}" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\ProgID\ REG_SZ 18 "SoundRec" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\verb\0\ REG_SZ 20 "&Play,0,3" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\verb\1\ REG_SZ 20 "&Edit,0,2" LM\Software\Classes\ClsId{00020C01-0000-0000-C000-000000000046}\verb\2\ REG_SZ 20 "&Open,0,2" --- snip ---
http://www.windowrdb.com/w.php?w=hkcr-clsid-0003000d-0000-0000-c000-00000000...
(Windows Vista/7+)
--- snip --- [HKEY_CLASSES_ROOT\CLSID{0003000D-0000-0000-C000-000000000046}] Name : (Default) Value : Sound Type : REG_SZ
[HKEY_CLASSES_ROOT\CLSID{0003000D-0000-0000-C000-000000000046}\NotInsertable] Name : (Default) Value : (Value not set) Type : REG_SZ
[HKEY_CLASSES_ROOT\CLSID{0003000D-0000-0000-C000-000000000046}\TreatAs] Name : (Default) Value : {F20DA720-C02F-11CE-927B-0800095AE340} Type : REG_SZ --- snip ---
The substitution CLSID is present:
http://mikolajapp.appspot.com/uuid/query?q=%7Bf20da720-c02f-11ce-927b-080009...
--- snip --- Results for {f20da720-c02f-11ce-927b-0800095ae340} Found in Windows Vista registry
Registered class: Package Inproc sever: packager.dll (product: Microsoft Windows Operating System,version 6.0.6000.16386) Subkey of registry key HKLM\SOFTWARE\Classes\AppID --- snip ---
Putting the entries from Windows 7 in registry reveals another problem which will be subject to a new bug.
--- snip --- REGEDIT4
[HKEY_CLASSES_ROOT\CLSID{0003000D-0000-0000-C000-000000000046}] @="Sound"
[HKEY_CLASSES_ROOT\CLSID{0003000D-0000-0000-C000-000000000046}\NotInsertable]
[HKEY_CLASSES_ROOT\CLSID{0003000D-0000-0000-C000-000000000046}\TreatAs] @="{F20DA720-C02F-11CE-927B-0800095AE340}" --- snip ---
$ sha1sum monopolie0.9.7-installer.exe b7cff9b04b11c55b5d1fa4cddb2f0914f61b6653 monopolie0.9.7-installer.exe
$ du -sh monopolie0.9.7-installer.exe 1.7M monopolie0.9.7-installer.exe
$ wine --version wine-1.7.33-117-g6bab173
Regards