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; }
void deb_register_cbg() { xmlRegisterInputCallbacks(deb_Match, deb_Open, deb_Read, deb_Close); }