HWND ShowHelpV(HWND hOwner, void *help_dir, void *help_file, void *section) { #if defined(ENABLE_HTML_HELP) static HWND (WINAPI *pHtmlHelpV)(HWND, void *, UINT, DWORD_PTR) = NULL; if (pHtmlHelpV == NULL) { DWORD cookie=0; HMODULE hHtmlHelp = TLoadLibrary("hhctrl.ocx"); if (hHtmlHelp) pHtmlHelpV = (HWND (WINAPI *)(HWND, void *, UINT, DWORD_PTR)) ::GetProcAddress(hHtmlHelp, IS_WINNT_V ? "HtmlHelpW" : "HtmlHelpA"); if (pHtmlHelpV) pHtmlHelpV(NULL, NULL, HH_INITIALIZE, (DWORD)&cookie); } if (pHtmlHelpV) { WCHAR path[MAX_PATH]; MakePathV(path, help_dir, help_file); if (section) strcpyV(MakeAddr(path, strlenV(path)), section); return pHtmlHelpV(hOwner, path, HH_DISPLAY_TOC, 0); } #endif return NULL; }
int ShellExtFunc(char *setup_dir, ShellExtOpe kind) { char buf[MAX_PATH]; int ret = FALSE; MakePath(buf, setup_dir, CURRENT_SHEXTDLL); HMODULE hShellExtDll = TLoadLibrary(buf); if (hShellExtDll) { BOOL (WINAPI *IsRegisterDll)(void) = (BOOL (WINAPI *)(void)) GetProcAddress(hShellExtDll, "IsRegistServer"); HRESULT (WINAPI *UnRegisterDll)(void) = (HRESULT (WINAPI *)(void)) GetProcAddress(hShellExtDll, "DllUnregisterServer"); if (IsRegisterDll && UnRegisterDll) { switch (kind) { case CHECK_SHELLEXT: ret = IsRegisterDll(); break; case UNREGISTER_SHELLEXT: ret = UnRegisterDll(); break; } ::FreeLibrary(hShellExtDll); } } return ret; }
BOOL InitHtmlHelpCore() { DWORD cookie=0; HMODULE hHtmlHelp = TLoadLibrary("hhctrl.ocx"); if (hHtmlHelp) pHtmlHelpW = (HWND (WINAPI *)(HWND, WCHAR *, UINT, DWORD_PTR)) ::GetProcAddress(hHtmlHelp, "HtmlHelpW"); if (pHtmlHelpW) pHtmlHelpW(NULL, NULL, HH_INITIALIZE, (DWORD)&cookie); return pHtmlHelpW ? TRUE : FALSE;; }