static void process_detach(void) { close_gecko(); release_typelib(); if(shdoclc) FreeLibrary(shdoclc); if(mshtml_tls != TLS_OUT_OF_INDEXES) TlsFree(mshtml_tls); if(display_dc) DeleteObject(display_dc); free_strings(); }
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID reserved) { MSXML_hInstance = hInstDLL; switch(fdwReason) { case DLL_PROCESS_ATTACH: #ifdef HAVE_LIBXML2 xmlInitParser(); /* Set the default indent character to a single tab, for this thread and as default for new threads */ xmlTreeIndentString = "\t"; xmlThrDefTreeIndentString("\t"); /* Register callbacks for loading XML files */ if(xmlRegisterInputCallbacks(wineXmlMatchCallback, wineXmlOpenCallback, wineXmlReadCallback, wineXmlFileCloseCallback) == -1) WARN("Failed to register callbacks\n"); schemasInit(); init_libxslt(); #endif DisableThreadLibraryCalls(hInstDLL); break; case DLL_PROCESS_DETACH: if (reserved) break; #ifdef HAVE_LIBXML2 #ifdef SONAME_LIBXSLT if (libxslt_handle) { pxsltCleanupGlobals(); wine_dlclose(libxslt_handle, NULL, 0); } #endif /* Restore default Callbacks */ xmlCleanupInputCallbacks(); xmlRegisterDefaultInputCallbacks(); xmlCleanupParser(); schemasCleanup(); #endif release_typelib(); break; } return TRUE; }
/****************************************************************** * DllMain */ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: msi_hInstance = hinstDLL; DisableThreadLibraryCalls(hinstDLL); IsWow64Process( GetCurrentProcess(), &is_wow64 ); break; case DLL_PROCESS_DETACH: msi_dialog_unregister_class(); msi_free_handle_table(); msi_free( gszLogFile ); release_typelib(); break; } return TRUE; }
/****************************************************************** * DllMain (vbscript.@) */ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv) { TRACE("(%p %d %p)\n", hInstDLL, fdwReason, lpv); switch(fdwReason) { case DLL_WINE_PREATTACH: return FALSE; /* prefer native version */ case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hInstDLL); vbscript_hinstance = hInstDLL; break; case DLL_PROCESS_DETACH: release_typelib(); } return TRUE; }
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID reserved) { TRACE("(0x%p, %d, %p)\n", hInstDLL, fdwReason, reserved); switch(fdwReason) { case DLL_WINE_PREATTACH: return FALSE; case DLL_PROCESS_ATTACH: instance = hInstDLL; DisableThreadLibraryCalls(hInstDLL); break; case DLL_PROCESS_DETACH: if (reserved) break; release_typelib(); break; } return TRUE; }
BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved ) { TRACE("%p, %u, %p\n", hinst, reason, reserved); switch (reason) { case DLL_WINE_PREATTACH: return FALSE; /* prefer native version */ case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls( hinst ); scrrun_instance = hinst; break; case DLL_PROCESS_DETACH: if (reserved) break; release_typelib(); break; } return TRUE; }
/****************************************************************** * DllMain (ieframe.@) */ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv) { TRACE("(%p %d %p)\n", hInstDLL, fdwReason, lpv); switch(fdwReason) { case DLL_WINE_PREATTACH: return FALSE; /* prefer native version */ case DLL_PROCESS_ATTACH: ieframe_instance = hInstDLL; register_iewindow_class(); DisableThreadLibraryCalls(ieframe_instance); break; case DLL_PROCESS_DETACH: unregister_iewindow_class(); release_typelib(); } return TRUE; }