summaryrefslogtreecommitdiffstats
path: root/docs/release/src/osd/winui/help.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'docs/release/src/osd/winui/help.cpp')
-rw-r--r--docs/release/src/osd/winui/help.cpp107
1 files changed, 107 insertions, 0 deletions
diff --git a/docs/release/src/osd/winui/help.cpp b/docs/release/src/osd/winui/help.cpp
new file mode 100644
index 00000000000..971c369bd86
--- /dev/null
+++ b/docs/release/src/osd/winui/help.cpp
@@ -0,0 +1,107 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+/***************************************************************************
+
+ help.c
+
+ Help wrapper code.
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+
+// MAME/MAMEUI headers
+#include "help.h"
+
+typedef HWND (WINAPI *HtmlHelpProc)(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);
+
+/***************************************************************************
+ Internal structures
+***************************************************************************/
+
+/***************************************************************************
+ function prototypes
+***************************************************************************/
+
+static void Help_Load(void);
+
+/***************************************************************************
+ External function prototypes
+***************************************************************************/
+
+/***************************************************************************
+ External variables
+***************************************************************************/
+
+/***************************************************************************
+ Internal variables
+***************************************************************************/
+
+static HtmlHelpProc g_pHtmlHelp;
+static HMODULE g_hHelpLib;
+static DWORD g_dwCookie = 0;
+
+/**************************************************************************
+ External functions
+***************************************************************************/
+
+int HelpInit(void)
+{
+ g_pHtmlHelp = NULL;
+ g_hHelpLib = NULL;
+
+ g_dwCookie = 0;
+ HelpFunction(NULL, NULL, HH_INITIALIZE, (DWORD_PTR)&g_dwCookie);
+ return 0;
+}
+
+void HelpExit(void)
+{
+ HelpFunction(NULL, NULL, HH_CLOSE_ALL, 0);
+ HelpFunction(NULL, NULL, HH_UNINITIALIZE, (DWORD_PTR)&g_dwCookie);
+
+ g_dwCookie = 0;
+ g_pHtmlHelp = NULL;
+
+ if (g_hHelpLib)
+ {
+ FreeLibrary(g_hHelpLib);
+ g_hHelpLib = NULL;
+ }
+}
+
+HWND HelpFunction(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData)
+{
+ if (g_pHtmlHelp == NULL)
+ Help_Load();
+
+ if (g_pHtmlHelp)
+ return g_pHtmlHelp(hwndCaller, pszFile, uCommand, dwData);
+ else
+ return NULL;
+}
+
+/***************************************************************************
+ Internal functions
+***************************************************************************/
+
+static void Help_Load(void)
+{
+ g_hHelpLib = LoadLibrary(TEXT("hhctrl.ocx"));
+ if (g_hHelpLib)
+ {
+ FARPROC pProc = NULL;
+ pProc = GetProcAddress(g_hHelpLib, "HtmlHelpA");
+ if (pProc)
+ {
+ g_pHtmlHelp = (HtmlHelpProc)pProc;
+ }
+ else
+ {
+ FreeLibrary(g_hHelpLib);
+ g_hHelpLib = NULL;
+ }
+ }
+}