Bill Medland wrote:

On December 17, 2004 01:56 pm, Mike Hearn wrote:


On Fri, 17 Dec 2004 13:34:53 -0800, Bill Medland wrote:


Well, it gets me past the illegal memory reference; I can start looking
at what else failed now.


In case you aren't already aware, Rob and I are doing a lot of work in
this area currently. If you want to pool resources that'd be good. Posting
a +ole trace of the failing app would be a good start.

thanks -mike


Pooling would be good.  I'll help as much as I can.

To start with, here's the relevant part of the trace.

trace:ole:WINE_StringFromCLSID 0x456ed8->{B6B35894-DD6F-11D3-84AC-00C04F0E1B46}
trace:ole:CoGetClassObject CLSID: {b6b35894-dd6f-11d3-84ac-00c04f0e1b46},
IID: {00000001-0000-0000-c000-000000000046}
warn:ole:CoGetClassObject class {B6B35894-DD6F-11D3-84AC-00C04F0E1B46} not registered inproc
trace:ole:create_marshalled_proxy rclsid={b6b35894-dd6f-11d3-84ac-00c04f0e1b46}, iid={00000001-0000-0000-c000-000000000046}
trace:ole:WINE_StringFromCLSID 0x456ed8->{B6B35894-DD6F-11D3-84AC-00C04F0E1B46}
trace:ole:WINE_StringFromCLSID 0x456ed8->{B6B35894-DD6F-11D3-84AC-00C04F0E1B46}
trace:ole:create_server activating local server 'L"G:\\runtime\\a4wsignonmgr.exe -Embedding"' for {B6B35894-DD6F-11D3-84AC-00C04F0E1B46}
trace:ole:DllMain 0x409e0000 0x1 0x1
warn:ole:create_marshalled_proxy Could not open named pipe to broker \\.\pipe\{B6B35894-DD6F-11D3-84AC-00C04F0E1B46}, le is 2
trace:ole:DllMain (0x40ab0000,1,0x1)
trace:ole:CoInitializeEx ((nil), 2)
trace:ole:CoInitializeEx () - Initializing the COM libraries
trace:ole:RunningObjectTableImpl_Initialize ()
trace:ole:WINE_StringFromCLSID 0x41f320->{A2086A6A-3F3E-457C-8102-A4F99AD7C2DA}
trace:ole:CoRegisterClassObject ({b6b35894-dd6f-11d3-84ac-00c04f0e1b46},0x42130170,0x00000004,0x00000001,0x41f094)
trace:ole:listener_thread Process listener thread starting on (\\.\pipe\WINE_OLE_StubMgr_00000010)



Here's an untested patch. Let me know if it works.

Rob
Index: rpc.c
===================================================================
RCS file: /home/wine/wine/dlls/ole32/rpc.c,v
retrieving revision 1.31
diff -u -p -r1.31 rpc.c
--- rpc.c	14 Dec 2004 15:28:58 -0000	1.31
+++ rpc.c	18 Dec 2004 13:52:47 -0000
@@ -758,8 +758,9 @@ static DWORD WINAPI listener_thread(LPVO
 {
     char		pipefn[200];
     HANDLE		listenPipe;
+    APARTMENT * apt = (APARTMENT *)param;
 
-    sprintf(pipefn,OLESTUBMGR"_%08lx",GetCurrentProcessId());
+    sprintf(pipefn,OLESTUBMGR"_%08lx%08lx",(DWORD)(apt->oxid >> 32),(DWORD)apt->oxid);
     TRACE("Process listener thread starting on (%s)\n",pipefn);
 
     while (1) {
@@ -795,7 +796,7 @@ void start_listener_thread()
   if (!running)
   {
       running = TRUE;
-      CreateThread(NULL, 0, listener_thread, NULL, 0, &tid);
+      CreateThread(NULL, 0, listener_thread, COM_CurrentApt(), 0, &tid);
       Sleep(2000); /* actually we just try opening the pipe until it succeeds */
   }
 }

Reply via email to