https://bugs.winehq.org/show_bug.cgi?id=45449
Bug ID: 45449
Summary: Add diagnostic 'mscoree.dll.CorGetSvc' stub (NGEN
client) to hint at broken Microsoft .NET Frameworks
installation (Wine-Mono not uninstalled and
'mscoree.dll' placeholders not removed prior install)
Product: Wine
Version: 3.12
Hardware: x86-64
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: mscoree
Assignee: wine-bugs(a)winehq.org
Reporter: focht(a)gmx.net
Distribution: ---
Hello folks,
continuation of bug 45333 (diagnostics for the NGEN server side).
The client side 'ngen.exe' calls unimplemented 'mscoree.dll.CorGetSvc'.
NOTE: MSI (CA) server is currently broken/regressed for 64-bit WINEPREFIXes, so
a broken .NET installation can't be tested there.
Prepare a broken 32-bit WINEPREFIX:
--- snip ---
$ wineserver -k
$ rm -rf .wine
$ export WINEARCH=win32
$ wineboot
$ wine uninstaller --list
{BB9BDB97-C247-4F20-B710-8B6765F67105}|||Wine Gecko (32-bit)
{E45D8920-A758-4088-B6C6-31DBB276992E}|||Wine Mono
$ wine uninstaller --remove {E45D8920-A758-4088-B6C6-31DBB276992E}
# to be really sure 'mscoree.dll' won't get updated -> keeps Wine's placeholder
$ winetricks win7
# run .NET 4.0 installer without 'winetricks'
$ wine ./dotNetFx40_Full_x86_x64.exe
...
# really check if placeholder is still there
$ winedump .wine/drive_c/windows/system32/mscoree.dll
Contents of .wine/drive_c/windows/system32/mscoree.dll: 5236 bytes
*** This is a Wine fake DLL ***
File Header
Machine: 014C (i386)
Number of Sections: 3
TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) offset 104
PointerToSymbolTable: 00000000
NumberOfSymbols: 00000000
SizeOfOptionalHeader: 00E0
Characteristics: 2022
EXECUTABLE_IMAGE
LARGE_ADDRESS_AWARE
DLL
...
--- snip ---
Test by trigger .NET GAC update:
--- snip ---
$ wine "c:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\ngen.exe" update
0012:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
0012:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
0016:fixme:service:svcctl_ChangeServiceConfig2W SERVICE_CONFIG_FAILURE_ACTIONS
not implemented: period 86400 msg (null) cmd (null)
0019:fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial
stub.
0019:err:winediag:CorIsLatestSvc If this function is called, it is likely the
result of a broken .NET installation
0019:fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime Optimization
Service"): stub
0019:fixme:advapi:ReportEventW
(0xcafe4242,0x0001,0x0000,0x0000044f,(nil),0x0001,0x00000000,0x76f9d0,(nil)):
stub
0019:err:eventlog:ReportEventW L".NET Runtime Optimization Service
(clr_optimization_v4.0.30319_32) - Tried to start a service that wasn't the
latest version of CLR Optimization service. Will shutdown\n"
0019:fixme:advapi:DeregisterEventSource (0xcafe4242) stub
0009:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
0009:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
wine: Call from 0x7b447132 to unimplemented function mscoree.dll.CorGetSvc,
aborting
Unknown exception
--- snip ---
That one is actually documented:
https://github.com/dotnet/coreclr/blob/master/src/inc/mscorsvc.idl#L21
--- snip ---
#pragma midl_echo("STDAPI CorGetSvc(IUnknown **pIUnknown);")
--- snip ---
With a stub added, returning default 'CLR_E_SHIM_RUNTIMEEXPORT':
--- snip ---
0009:Call mscoree.CorGetSvc(0033f9f8) ret=1000df20
0009:fixme:mscoree:CorGetSvc stub(0x33f9f8)!
0009:Ret mscoree.CorGetSvc() retval=80131701 ret=1000df20
0009:Call KERNEL32.GetLastError() ret=1000f4c7
0009:Ret KERNEL32.GetLastError() retval=000000b7 ret=1000f4c7
...
0009:Call KERNEL32.GetLastError() ret=1000f417
0009:Ret KERNEL32.GetLastError() retval=000000b7 ret=1000f417
...
0009:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0033f9a4)
ret=79084c0f
0009:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b446fe6
ip=7b446fe6 tid=0009
0009:trace:seh:raise_exception info[0]=19930520
0009:trace:seh:raise_exception info[1]=0033f9e4
0009:trace:seh:raise_exception info[2]=1001a760
0009:trace:seh:raise_exception eax=7b4356b1 ebx=00000000 ecx=00000000
edx=0033f990 esi=0033f990 edi=0033f950
0009:trace:seh:raise_exception ebp=0033f928 esp=0033f8c4 cs=330023 ds=33002b
es=f7bc002b fs=f7bc0063 gs=f7bc006b flags=00000212
0009:trace:seh:call_stack_handlers calling handler at 0x10018276 code=e06d7363
flags=1
...
Failed to find a required export in the runtime. (Exception from HRESULT:
0x80131701)
...
--- snip ---
$ wine --version
wine-3.12-110-g414fe80aeb
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=30075
Bug #: 30075
Summary: Microsoft .NET Framework 4.5 Developer Preview CLR
needs kernel32.dll WerRegisterRuntimeExceptionModule
(returning S_OK) to run .NET apps
Product: Wine
Version: 1.4-rc6
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: focht(a)gmx.net
Classification: Unclassified
Hello,
after upgrading an existing .NET Framework 4.0 WINEPREFIX with .NET Framework
4.5 (dev preview) some simple apps that previously worked failed to run.
I created a simple C# based .NET "hello world" console app using the provided
C# compiler (csc.exe) in .NET 4.0 prefix and it fails to execute after .NET 4.5
CLR upgrade:
--- snip ---
002b:Starting process
L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\hello.exe"
(entryproc=0x40233e)
...
002b:Call KERNEL32.GetModuleHandleW(007f8424 L"kernel32.dll") ret=008378ea
002b:Ret KERNEL32.GetModuleHandleW() retval=7b810000 ret=008378ea
002b:Call KERNEL32.GetProcAddress(7b810000,00837968
"WerRegisterRuntimeExceptionModule") ret=008378fe
002b:Ret KERNEL32.GetProcAddress() retval=00000000 ret=008378fe
...
002b:Call KERNEL32.LoadLibraryExW(0032f944
L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorrc.dll",00000000,00000002)
ret=008e1f58
002b:Ret KERNEL32.LoadLibraryExW() retval=00f00001 ret=008e1f58
...
002b:Call user32.MessageBoxW(00000000,0032fa20 L"CLR error: 80004005.\n The
program will now terminate.",0032f3f0 L"hello.exe - Fatal error",00002010)
ret=00ace3f9
...
--- snip ---
It seems there is an improved integration of error reporting with WER.
MSDN:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd408167%28v=vs.85%…
Adding a stub returning E_NOTIMPL doesn't make the CLR happy:
--- snip ---
002b:Call KERNEL32.GetModuleHandleW(007f8424 L"kernel32.dll") ret=008378ea
002b:Ret KERNEL32.GetModuleHandleW() retval=7b810000 ret=008378ea
002b:Call KERNEL32.GetProcAddress(7b810000,00837968
"WerRegisterRuntimeExceptionModule") ret=008378fe
002b:Ret KERNEL32.GetProcAddress() retval=7b825418 ret=008378fe
002b:Call KERNEL32.WerRegisterRuntimeExceptionModule(0032f88c
L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscordacwks.dll",00740000)
ret=00837915
002b:fixme:wer:WerRegisterRuntimeExceptionModule
(L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscordacwks.dll",
0x740000) stub!
002b:Ret KERNEL32.WerRegisterRuntimeExceptionModule() retval=80004001
ret=00837915
...
002b:Call user32.MessageBoxW(00000000,0032fa20 L"CLR error: 80004005.\n The
program will now terminate.",0032f3f0 L"hello.exe - Fatal error",00002010)
ret=00ace3f9
--- snip ---
You have to return S_OK to please the CLR.
With that change "hello world" runs again. Yay!
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=15437
Summary: Company of Heroes Opposing Fronts: Installer fails
Product: Wine
Version: 1.1.5
Platform: PC-x86-64
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: xvachon(a)gmail.com
Created an attachment (id=16303)
--> (http://bugs.winehq.org/attachment.cgi?id=16303)
log
Installation of the game is not possible. Exception EAccessViolation error in
module GameInst.exe happens. According to test data the game had to be
installed from a Windows installation in order to be played. A log is attached.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=30072
Bug #: 30072
Summary: Microsoft .NET Framework 4.5 Developer Preview
installer needs some wevtapi.dll stubs
(EvtOpenChannelConfig, ...)
Product: Wine
Version: 1.4-rc6
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: focht(a)gmx.net
Classification: Unclassified
Hello,
continuation of bug 29742
After a stub "wevtapi" dll is provided the installer still crashes.
A stub is needed for the following event API functions:
EvtOpenChannelConfig
EvtGetChannelConfigProperty
EvtSetChannelConfigProperty
EvtSubscribe
With these stubs in place the installer doesn't crash and continues.
winecfg -> "Windows 7"
--- snip ---
$ WINEDEBUG=+tid,+loaddll,+wevtapi wine dotNetFx45_Full_x86_x64.exe /q
...
0015:trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\wuapi.dll"
at 0xf7180000: builtin
000f:trace:loaddll:load_builtin_dll Loaded
L"C:\\windows\\system32\\rstrtmgr.dll" at 0xf75f0000: builtin
001d:trace:loaddll:load_builtin_dll Loaded
L"C:\\windows\\system32\\wevtapi.dll" at 0xf7340000: builtin
001d:trace:wevtapi:DllMain (0x0xf7340000, 1, (nil))
001d:fixme:wevtapi:EvtOpenChannelConfig stub((nil),
L"Microsoft-Windows-CAPI2/Operational", 0)
001d:fixme:wevtapi:EvtGetChannelConfigProperty stub((nil), 0, 0, 16, 0x61c254,
0x61c270)
001d:fixme:wevtapi:EvtSetChannelConfigProperty stub((nil), 0, 0, 0x61c24c)
001d:fixme:wevtapi:EvtSubscribe stub((nil), 0x80,
L"Microsoft-Windows-CAPI2/Operational", (null), (nil), (nil), (nil), 1)
...
--- snip ---
$ sha1sum dotNetFx45_Full_x86_x64.exe
e3ffcb31565ebee65cc95c93db7d11eee2055d68 dotNetFx45_Full_x86_x64.exe
$ wine --version
wine-1.4-rc6-1-ge11565b
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=30074
Bug #: 30074
Summary: Microsoft .NET Framework 4.5 Developer Preview
installer needs stub wusa.exe
Product: Wine
Version: 1.4-rc6
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: focht(a)gmx.net
Classification: Unclassified
Hello,
continuation of bug 30072
The installer now aborts due to missing "wusa.exe" executable.
I didn't find any installer on MS downloads that contains this standalone
component (only updates).
With a stub executable provided the installer is happy:
--- snip ---
$ WINEDEBUG=+tid,+wusa wine ./dotNetFx45_Full_x86_x64.exe -q
...
fixme:wusa:wmain stub: L"wusa.exe"
L"C:\\711ec06a13d5ed1f9b3e\\Windows6.1-KB958488-v6001-x86.msu" L"/quiet"
L"/norestart"
...
--- snip ---
At least the .NET Framework 4.5 installation finishes without further critical
error in basic ui or silent mode.
Although .NET Framework 4.5 is an update of .NET Framework 4.0, no previous
install of .NET Framework 4.0 is required (winetricks -q dotnet40).
One problem will turn up later: mscoree.dll is still builtin (Mono
placeholder/fake) which will prevent from loading CLR.
Actually this component gets updated through
"Windows6.1-KB958488-v6001-x86.msu" (Microsoft .NET Framework 4.0 Shared ->
KB958488) Windows6.1-KB958488-x86.cab.
Due to wusa.exe stub this update is skipped.
Maybe a winetricks recipe will take care of that in future (manually
extracting/unpacking the missing dlls from msu).
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39402
Bug ID: 39402
Summary: Lost Planet 2 Benchmark crashes at launch due to
missing audio format conversion
(IXAudio2Impl_CreateSourceVoice)
Product: Wine
Version: 1.7.52
Hardware: x86-64
URL: http://www.geforce.com/games-applications/pc-games/los
t-planet-2
OS: Linux
Status: NEW
Keywords: download
Severity: normal
Priority: P2
Component: xaudio2
Assignee: wine-bugs(a)winehq.org
Reporter: andrey.goosev(a)gmail.com
CC: aeikum(a)codeweavers.com
Distribution: ---
Created attachment 52514
--> https://bugs.winehq.org/attachment.cgi?id=52514
log
warn:xaudio2:IXAudio2Impl_CreateSourceVoice OpenAL can't convert this format!
wine-1.7.52-134-g20ff335
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=38176
Bug ID: 38176
Summary: Optical Circuit 4K demo crashes on startup
Product: Wine
Version: 1.7.37
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs(a)winehq.org
Reporter: t.artem(a)mailcity.com
Distribution: ---
Created attachment 50930
--> https://bugs.winehq.org/attachment.cgi?id=50930
demo itself
Backtrace:
=>0 0x004000aa in optical_circuit.1280x720.150221 (+0xaa) (0x00000000)
0x004000aa: xorb 0x0(%edi),%al
Modules:
Module Address Debug info Name (17 modules)
PE 400000- 683b6eb Export optical_circuit.1280x720.150221
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=42125
Bug ID: 42125
Summary: 8k demos often fail with Bad EXE Format
Product: Wine
Version: unspecified
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs(a)winehq.org
Reporter: aaronbpaden(a)gmail.com
Distribution: ---
Several 8k demos fail to load because of a Bad EXE format error. I'm assuming
they're hacking off unnecessary bits from the executable format to get within
their size constraints, and wine is getting confused.
This is the error I get in the logs:
wine: Bad EXE format for Z:\home\aaron\eos_-_blue_morpho_1280x720.exe.
This particular demo can be found at http://www.pouet.net/prod.php?which=68352
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46005
Bug ID: 46005
Summary: Multiple games and applications fail due to missing
interface proxy information in registry
(oleautomation/dual interfaces referenced in coclass
section)
Product: Wine
Version: 3.18
Hardware: x86-64
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: tools
Assignee: wine-bugs(a)winehq.org
Reporter: focht(a)gmx.net
Distribution: ---
Hello folks,
split off from bug 34711
See my comment https://bugs.winehq.org/show_bug.cgi?id=34711#c3 where I stated
my surprise about the interface proxies not being registered.
Zebediah's comment
https://www.winehq.org/pipermail/wine-devel/2018-October/133648.html convinced
me to create a new ticket to target this problem in general.
--- quote ---
I don't think this is the right solution to this problem. On Windows
only the coclass declaration is inside the library declaration, so I
think we should fix widl to also register dependent interfaces.
--- quote ---
Copy/pasta from https://bugs.winehq.org/show_bug.cgi?id=34711
---
Download:
http://wc3dota.persiangig.com/.Srl0nxC6Ke/Terraria/terraria-server-12031.zip
New version:
http://terraria.org/system/dedicated_servers/archives/000/000/032/original/…
It crashes. Running under managed CLR debugger shows:
--- snip ---
...
0035:trace:loaddll:load_builtin_dll Loaded
L"C:\\windows\\system32\\hnetcfg.dll" at 0x7d060000: builtin
0035:fixme:hnetcfg:hnetcfg_cf_QueryInterface interface
{00000003-0000-0000-c000-000000000046} not implemented
0035:fixme:hnetcfg:hnetcfg_cf_QueryInterface interface
{00000019-0000-0000-c000-000000000046} not implemented
0035:fixme:hnetcfg:hnetcfg_cf_QueryInterface interface
{b196b28f-bab4-101a-b69c-00aa00341d07} not implemented
0035:err:ole:marshal_object Failed to create an IRpcStubBuffer from IPSFactory
for {b196b28f-bab4-101a-b69c-00aa00341d07} with error 0x80004002
0032:err:ole:ClientIdentity_QueryMultipleInterfaces
IRemUnknown_RemQueryInterface failed with error 0x80004002
0035:fixme:hnetcfg:upnpnat_QueryInterface interface
{00000003-0000-0000-c000-000000000046} not implemented
0035:fixme:hnetcfg:upnpnat_QueryInterface interface
{00000003-0000-0000-c000-000000000046} not implemented
0035:fixme:hnetcfg:upnpnat_QueryInterface interface
{00000019-0000-0000-c000-000000000046} not implemented
0035:fixme:hnetcfg:upnpnat_QueryInterface interface
{c3fcc19e-a970-11d2-8b5a-00a0c9b7c9c4} not implemented
0035:fixme:hnetcfg:upnpnat_QueryInterface interface
{c3fcc19e-a970-11d2-8b5a-00a0c9b7c9c4} not implemented
0032:err:ole:ClientIdentity_QueryMultipleInterfaces
IRemUnknown_RemQueryInterface failed with error 0x80004002
0035:fixme:hnetcfg:upnpnat_QueryInterface interface
{b196b283-bab4-101a-b69c-00aa00341d07} not implemented
0035:err:ole:marshal_object Failed to create an IRpcStubBuffer from IPSFactory
for {b196b283-bab4-101a-b69c-00aa00341d07} with error 0x80004002
0032:err:ole:ClientIdentity_QueryMultipleInterfaces
IRemUnknown_RemQueryInterface failed with error 0x80004002
0035:err:ole:marshal_object couldn't get IPSFactory buffer for interface
{00000144-0000-0000-c000-000000000046}
0032:err:ole:ClientIdentity_QueryMultipleInterfaces
IRemUnknown_RemQueryInterface failed with error 0x80004002
0035:err:ole:marshal_object couldn't get IPSFactory buffer for interface
{b171c812-cc76-485a-94d8-b6b3a2794e99}
0032:err:ole:ClientIdentity_QueryMultipleInterfaces
IRemUnknown_RemQueryInterface failed with error 0x80004002
0035:err:ole:marshal_object couldn't get IPSFactory buffer for interface
{b171c812-cc76-485a-94d8-b6b3a2794e99}
0032:err:ole:ClientIdentity_QueryMultipleInterfaces
IRemUnknown_RemQueryInterface failed with error 0x80004002
(31.32): C++ EH exception - code e06d7363 (first chance)
0030:fixme:ntdll:RtlGetUnloadEventTrace stub!
0030:trace:loaddll:load_builtin_dll Loaded
L"C:\\windows\\system32\\wtsapi32.dll" at 0xf7df0000: builtin
0030:trace:loaddll:load_native_dll Loaded
L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscordacwks.dll" at
0x7a820000: native
There is no current managed exception on this thread
OS Thread Id: 0x32 (0)
Child SP IP Call Site
0033d664 7b43c87b [HelperMethodFrame_1OBJ: 0033d664]
0033d6c0 0389014c Terraria.Netplay..cctor()
0033d928 791421db [GCFrame: 0033d928]
0033f30c 791421db [PrestubMethodFrame: 0033f30c]
Terraria.ProgramServer.Main(System.String[])
0033f548 791421db [GCFrame: 0033f548]
0032:fixme:ntdll:EtwRegisterTraceGuidsW (0xc405ba, (nil),
{8e9f5090-2d75-4d03-8a81-e5afbf85daf1}, 1, 0x33b930, (null), (null), 0xfb2d64):
stub
0032:fixme:ntdll:EtwRegisterTraceGuidsW register trace class
{8e9f5090-2d75-4d03-8a81-e5afbf85daf1}
(31.32): CLR exception - code e0434352 (first chance)
Exception object: 00f9d5e4
Exception type: System.InvalidCastException
Message: Unable to cast COM object of type 'System.__ComObject' to
interface type 'NATUPNPLib.UPnPNAT'. This operation failed because the
QueryInterface call on the COM component for the interface with IID
'{B171C812-CC76-485A-94D8-B6B3A2794E99}' failed due to the following error:
Exception from HRESULT: 0x80004002 (E_NOINTERFACE).
InnerException: <none>
StackTrace (generated):
<none>
StackTraceString: <none>
HResult: 80004002
OS Thread Id: 0x32 (0)
Child SP IP Call Site
0033d664 7b43c87b [HelperMethodFrame_1OBJ: 0033d664]
0033d6c0 0389014c Terraria.Netplay..cctor()
0033d928 791421db [GCFrame: 0033d928]
0033f30c 791421db [PrestubMethodFrame: 0033f30c]
Terraria.ProgramServer.Main(System.String[])
0033f548 791421db [GCFrame: 0033f548]
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
--- snip ---
"Unable to cast COM object of type 'System.__ComObject' to interface type
'NATUPNPLib.UPnPNAT'. This operation failed because the QueryInterface call on
the COM component for the interface with IID
'{B171C812-CC76-485A-94D8-B6B3A2794E99}' failed due to the following error:
Exception from HRESULT: 0x80004002 (E_NOINTERFACE)."
Cross-thread marshalling doesn't work here. Each thread must have access to the
type information (registry) that describes the COM object to be able to
unmarshal the object from the source thread.
Wine source:
https://source.winehq.org/git/wine.git/blob/HEAD:/include/natupnp.idl#l205
--- snip ---
187 [
188 object,
189 uuid(b171c812-cc76-485a-94d8-b6b3a2794e99),
190 dual,
191 pointer_default(unique)
192 ]
193 interface IUPnPNAT : IDispatch
194 {
195 [propget, id(1)]
196 HRESULT StaticPortMappingCollection ([out, retval]
IStaticPortMappingCollection **collection);
197
198 [propget, id(2)]
199 HRESULT DynamicPortMappingCollection ([out, retval]
IDynamicPortMappingCollection **collection);
200
201 [propget, id(3)]
202 HRESULT NATEventManager ([out, retval] INATEventManager **manager);
203 };
204
205 [
206 id(2),
207 uuid(1c565858-f302-471e-b409-f180aa4abec6),
208 version(1.0)
209 ]
210 library NATUPNPLib
211 {
212 importlib("stdole2.tlb");
213
214 [
215 vi_progid("HNetCfg.NATUPnP"),
216 progid("HNetCfg.NATUPnP.1"),
217 threading(apartment),
218 uuid(ae1e00aa-3fd5-403c-8a27-2bbdc30cd0e1)
219 ]
220 coclass UPnPNAT
221 {
222 [default] interface IUPnPNAT;
223 };
224 };
--- snip ---
It seems for Wine's MIDL the interface in question needs to be defined *inside*
the 'library' block and have 'oleautomation' attribute. Otherwise it's not
getting registered under 'HKEY_CLASSES_ROOT\\Interface\\{IID}\\...'
(proxy/stub).
I was surprised about that behaviour since the interface was referenced by the
coclass within the library block and had 'dual' attribute.
http://diranieh.com/IDL/Structure.htm
--- quote ---
Interface location [oleautomation]/ [dual] defined
Inside library block Interface uses Universal Marshaler
Interface appears in type library
Outside library block Interface uses Universal Marshaler
Interface does not appear in type library (unless
referenced, perhaps in the coclass section)
---
Interface location [oleautomation]/ [dual] not defined
Inside library block AVOID. NO INTERCEPTION CODE GENERATED!
Outside library block Interface does not use Universal Marshaler. Need to
build proxy/stub DLL.
Interface does not appear in type library (unless
referenced, perhaps in the coclass section)
--- quote ---
$ wine --version
wine-3.18-75-ge55aca8f49
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.