ddeinitialize fix

Rein Klazes rklazes at xs4all.nl
Thu Apr 5 12:53:38 CDT 2001


hi,

This solves the "err:ddeml:Release_reserved_mutex ReleaseMutex failed"
error that causes a crash in pegasus mail, and makes some other
programs refuse to run when another application has called
DdeInitialize() before.

Changelog:
	dlls/user	: ddeml.c
	Handle the case in if the DdeInstanceMutex is already created
in 
	another process.
	 
-- 
Rein Klazes
rklazes at xs4all.nl
-------------- next part --------------
--- ./wine/dlls/user/ddeml.c	Wed Feb 28 07:07:12 2001
+++ ./mywine/dlls/user/ddeml.c	Thu Apr  5 18:02:46 2001
@@ -379,14 +379,15 @@
 		s_attrib.bInheritHandle = TRUE;
 		s_attrib.lpSecurityDescriptor = NULL;
 		s_attrib.nLength = sizeof(s_attrib);
-		inst_count_mutex = CreateMutexA(&s_attrib,1,DDEInstanceAccess); /* 1st time through */
-	} else {
+		inst_count_mutex = CreateMutexA(&s_attrib,0,DDEInstanceAccess); /* 1st time through */
+	} 
+        if ( inst_count_mutex )
+        {
         	if ( !WaitForMutex(inst_count_mutex) )
         	{
                 	return DMLERR_SYS_ERROR;
         	}
-	}
-	if ( !inst_count_mutex )
+        } else
 	{
 		ERR("CreateMutex failed - inst_count %li\n",GetLastError());
 		Release_reserved_mutex (handle_mutex,"handle_mutex",0,1,this_instance);


More information about the wine-patches mailing list