From 21bfa0812eb45fe1ca048ace0e63d5b7071bf2f8 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 30 Apr 2013 17:25:29 +0200 Subject: [PATCH] odbc32: Don't unload external libraries on process shutdown. --- dlls/odbc32/proxyodbc.c | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index c7a50387e3a..85b3dfef1b4 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -465,39 +465,25 @@ static void ODBC_ReplicateToRegistry (void) /*********************************************************************** * DllMain [Internal] Initializes the internal 'ODBC32.DLL'. - * - * PARAMS - * hinstDLL [I] handle to the DLL's instance - * fdwReason [I] - * lpvReserved [I] reserved, must be NULL - * - * RETURNS - * Success: TRUE - * Failure: FALSE */ - -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD reason, LPVOID reserved) { - TRACE("Initializing or Finalizing proxy ODBC: %p,%x,%p\n", hinstDLL, fdwReason, lpvReserved); + TRACE("proxy ODBC: %p,%x,%p\n", hinstDLL, reason, reserved); - if (fdwReason == DLL_PROCESS_ATTACH) + switch (reason) { - TRACE("Loading ODBC...\n"); + case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hinstDLL); if (ODBC_LoadDriverManager()) { ODBC_LoadDMFunctions(); ODBC_ReplicateToRegistry(); } - } - else if (fdwReason == DLL_PROCESS_DETACH) - { - TRACE("Unloading ODBC...\n"); - if (dmHandle) - { - wine_dlclose(dmHandle,NULL,0); - dmHandle = NULL; - } + break; + + case DLL_PROCESS_DETACH: + if (reserved) break; + if (dmHandle) wine_dlclose(dmHandle,NULL,0); } return TRUE; -- 2.11.4.GIT