hhctrl.ocx: Move HH_OpenCHM implementation to HH_Open.
diff --git a/dlls/hhctrl.ocx/help.c b/dlls/hhctrl.ocx/help.c
index 6b40baa..0e5d4bd 100644
--- a/dlls/hhctrl.ocx/help.c
+++ b/dlls/hhctrl.ocx/help.c
@@ -48,7 +48,6 @@
HH_WINTYPEW *pHHWinType;
CHMInfo *pCHMInfo;
WBInfo *pWBInfo;
- LPWSTR szCmdLine;
HWND hwndTabCtrl;
HWND hwndSizeBar;
HFONT hFont;
@@ -778,18 +777,6 @@
return TRUE;
}
-static HHInfo *HH_OpenHH(LPWSTR szCmdLine)
-{
- HHInfo *pHHInfo = hhctrl_alloc_zero(sizeof(HHInfo));
-
- pHHInfo->pHHWinType = hhctrl_alloc_zero(sizeof(HH_WINTYPEW));
- pHHInfo->pCHMInfo = hhctrl_alloc(sizeof(CHMInfo));
- pHHInfo->pWBInfo = hhctrl_alloc(sizeof(WBInfo));
- pHHInfo->szCmdLine = szCmdLine;
-
- return pHHInfo;
-}
-
static void HH_Close(HHInfo *pHHInfo)
{
if (!pHHInfo)
@@ -811,7 +798,6 @@
}
hhctrl_free(pHHInfo->pHHWinType);
- hhctrl_free(pHHInfo->szCmdLine);
if (pHHInfo->pCHMInfo)
{
@@ -826,15 +812,21 @@
}
}
-static BOOL HH_OpenCHM(HHInfo *pHHInfo)
+static HHInfo *HH_OpenHH(LPWSTR filename)
{
- if (!CHM_OpenCHM(pHHInfo->pCHMInfo, pHHInfo->szCmdLine))
- return FALSE;
+ HHInfo *pHHInfo = hhctrl_alloc_zero(sizeof(HHInfo));
- if (!CHM_LoadWinTypeFromCHM(pHHInfo->pCHMInfo, pHHInfo->pHHWinType))
- return FALSE;
+ pHHInfo->pHHWinType = hhctrl_alloc_zero(sizeof(HH_WINTYPEW));
+ pHHInfo->pCHMInfo = hhctrl_alloc(sizeof(CHMInfo));
+ pHHInfo->pWBInfo = hhctrl_alloc(sizeof(WBInfo));
- return TRUE;
+ if (!CHM_OpenCHM(pHHInfo->pCHMInfo, filename)
+ || !CHM_LoadWinTypeFromCHM(pHHInfo->pCHMInfo, pHHInfo->pHHWinType)) {
+ HH_Close(pHHInfo);
+ return NULL;
+ }
+
+ return pHHInfo;
}
/* FIXME: Check szCmdLine for bad arguments */
@@ -847,7 +839,7 @@
return -1;
pHHInfo = HH_OpenHH(strdupAtoW(szCmdLine));
- if (!pHHInfo || !HH_OpenCHM(pHHInfo) || !HH_CreateViewer(pHHInfo))
+ if (!pHHInfo || !HH_CreateViewer(pHHInfo))
{
OleUninitialize();
return -1;