Jacek Caban : hhctrl.ocx: Merge WBInfo to HHInfo.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Feb 28 08:19:08 CST 2007
Module: wine
Branch: master
Commit: 24c13b9f8d4eb44825ec9a5a3381b959e4da8252
URL: http://source.winehq.org/git/wine.git/?a=commit;h=24c13b9f8d4eb44825ec9a5a3381b959e4da8252
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Feb 28 03:47:13 2007 +0100
hhctrl.ocx: Merge WBInfo to HHInfo.
---
dlls/hhctrl.ocx/help.c | 42 ++++++++++-----------------------
dlls/hhctrl.ocx/hhctrl.h | 28 +++++++++++++----------
dlls/hhctrl.ocx/webbrowser.c | 51 ++++++++++++++++++-----------------------
3 files changed, 51 insertions(+), 70 deletions(-)
diff --git a/dlls/hhctrl.ocx/help.c b/dlls/hhctrl.ocx/help.c
index d1c60a9..8196e4e 100644
--- a/dlls/hhctrl.ocx/help.c
+++ b/dlls/hhctrl.ocx/help.c
@@ -43,16 +43,6 @@ static void Help_OnSize(HWND hWnd);
static const WCHAR szEmpty[] = {0};
-typedef struct tagHHInfo
-{
- HH_WINTYPEW WinType;
- CHMInfo *pCHMInfo;
- WBInfo *pWBInfo;
- HWND hwndTabCtrl;
- HWND hwndSizeBar;
- HFONT hFont;
-} HHInfo;
-
/* Loads a string from the resource file */
static LPWSTR HH_LoadString(DWORD dwID)
{
@@ -68,7 +58,7 @@ static LPWSTR HH_LoadString(DWORD dwID)
return string;
}
-static BOOL NavigateToChm(WBInfo *pWBInfo, LPCWSTR file, LPCWSTR index)
+static BOOL NavigateToChm(HHInfo *info, LPCWSTR file, LPCWSTR index)
{
WCHAR buf[INTERNET_MAX_URL_LENGTH];
WCHAR full_path[MAX_PATH];
@@ -77,7 +67,7 @@ static BOOL NavigateToChm(WBInfo *pWBInfo, LPCWSTR file, LPCWSTR index)
static const WCHAR url_format[] =
{'m','k',':','@','M','S','I','T','S','t','o','r','e',':','%','s',':',':','/','%','s',0};
- if (!pWBInfo->pWebBrowser2)
+ if (!info->web_browser)
return FALSE;
if(!GetFullPathNameW(file, sizeof(full_path), full_path, NULL)) {
@@ -90,7 +80,7 @@ static BOOL NavigateToChm(WBInfo *pWBInfo, LPCWSTR file, LPCWSTR index)
V_VT(&url) = VT_BSTR;
V_BSTR(&url) = SysAllocString(buf);
- IWebBrowser2_Navigate2(pWBInfo->pWebBrowser2, &url, 0, 0, 0, 0);
+ IWebBrowser2_Navigate2(info->web_browser, &url, 0, 0, 0, 0);
VariantClear(&url);
return TRUE;
@@ -316,24 +306,24 @@ static void HH_RegisterChildWndClass(HHInfo *pHHInfo)
static void TB_OnClick(HWND hWnd, DWORD dwID)
{
- HHInfo *pHHInfo = (HHInfo *)GetWindowLongPtrW(hWnd, GWLP_USERDATA);
+ HHInfo *info = (HHInfo *)GetWindowLongPtrW(hWnd, GWLP_USERDATA);
switch (dwID)
{
case IDTB_STOP:
- WB_DoPageAction(pHHInfo->pWBInfo, WB_STOP);
+ DoPageAction(info, WB_STOP);
break;
case IDTB_REFRESH:
- WB_DoPageAction(pHHInfo->pWBInfo, WB_REFRESH);
+ DoPageAction(info, WB_REFRESH);
break;
case IDTB_BACK:
- WB_DoPageAction(pHHInfo->pWBInfo, WB_GOBACK);
+ DoPageAction(info, WB_GOBACK);
break;
case IDTB_HOME:
- NavigateToChm(pHHInfo->pWBInfo, pHHInfo->pCHMInfo->szFile, pHHInfo->WinType.pszHome);
+ NavigateToChm(info, info->pCHMInfo->szFile, info->WinType.pszHome);
break;
case IDTB_FORWARD:
- WB_DoPageAction(pHHInfo->pWBInfo, WB_GOFORWARD);
+ DoPageAction(info, WB_GOFORWARD);
break;
case IDTB_EXPAND:
case IDTB_CONTRACT:
@@ -580,7 +570,7 @@ static BOOL HH_AddHTMLPane(HHInfo *pHHInfo)
if (!hWnd)
return FALSE;
- if (!WB_EmbedBrowser(pHHInfo->pWBInfo, hWnd))
+ if (!InitWebBrowser(pHHInfo, hWnd))
return FALSE;
/* store the pointer to the HH info struct */
@@ -623,7 +613,7 @@ static void Help_OnSize(HWND hWnd)
/* Resize browser window taking the frame size into account */
dwSize = GetSystemMetrics(SM_CXFRAME);
- WB_ResizeBrowser(pHHInfo->pWBInfo, rc.right - dwSize, rc.bottom - dwSize);
+ ResizeWebBrowser(pHHInfo, rc.right - dwSize, rc.bottom - dwSize);
}
static LRESULT CALLBACK Help_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
@@ -795,11 +785,7 @@ static void HH_Close(HHInfo *info)
if (info->pCHMInfo)
CloseCHM(info->pCHMInfo);
- if (info->pWBInfo)
- {
- WB_UnEmbedBrowser(info->pWBInfo);
- hhctrl_free(info->pWBInfo);
- }
+ ReleaseWebBrowser(info);
}
static HHInfo *HH_OpenHH(LPWSTR filename)
@@ -812,8 +798,6 @@ static HHInfo *HH_OpenHH(LPWSTR filename)
return NULL;
}
- pHHInfo->pWBInfo = hhctrl_alloc(sizeof(WBInfo));
-
if (!CHM_LoadWinTypeFromCHM(pHHInfo->pCHMInfo, &pHHInfo->WinType)) {
HH_Close(pHHInfo);
return NULL;
@@ -838,7 +822,7 @@ int WINAPI doWinMain(HINSTANCE hInstance, LPSTR szCmdLine)
return -1;
}
- NavigateToChm(pHHInfo->pWBInfo, pHHInfo->pCHMInfo->szFile, pHHInfo->WinType.pszFile);
+ NavigateToChm(pHHInfo, pHHInfo->pCHMInfo->szFile, pHHInfo->WinType.pszFile);
while (GetMessageW(&msg, 0, 0, 0))
{
diff --git a/dlls/hhctrl.ocx/hhctrl.h b/dlls/hhctrl.ocx/hhctrl.h
index 36cad0d..2c0b71d 100644
--- a/dlls/hhctrl.ocx/hhctrl.h
+++ b/dlls/hhctrl.ocx/hhctrl.h
@@ -57,18 +57,22 @@ typedef struct CHMInfo
} CHMInfo;
-typedef struct WBInfo
-{
- IOleClientSite *pOleClientSite;
- IWebBrowser2 *pWebBrowser2;
- IOleObject *pBrowserObject;
- HWND hwndParent;
-} WBInfo;
-
-BOOL WB_EmbedBrowser(WBInfo *pWBInfo, HWND hwndParent);
-void WB_UnEmbedBrowser(WBInfo *pWBInfo);
-void WB_ResizeBrowser(WBInfo *pWBInfo, DWORD dwWidth, DWORD dwHeight);
-void WB_DoPageAction(WBInfo *pWBInfo, DWORD dwAction);
+typedef struct {
+ IOleClientSite *client_site;
+ IWebBrowser2 *web_browser;
+ IOleObject *wb_object;
+
+ HH_WINTYPEW WinType;
+ CHMInfo *pCHMInfo;
+ HWND hwndTabCtrl;
+ HWND hwndSizeBar;
+ HFONT hFont;
+} HHInfo;
+
+BOOL InitWebBrowser(HHInfo*,HWND);
+void ReleaseWebBrowser(HHInfo*);
+void ResizeWebBrowser(HHInfo*,DWORD,DWORD);
+void DoPageAction(HHInfo*,DWORD);
CHMInfo *OpenCHM(LPCWSTR szFile);
BOOL CHM_LoadWinTypeFromCHM(CHMInfo *pCHMInfo, HH_WINTYPEW *pHHWinType);
diff --git a/dlls/hhctrl.ocx/webbrowser.c b/dlls/hhctrl.ocx/webbrowser.c
index bf3b65b..dbbb41a 100644
--- a/dlls/hhctrl.ocx/webbrowser.c
+++ b/dlls/hhctrl.ocx/webbrowser.c
@@ -567,7 +567,7 @@ static const IStorageVtbl MyIStorageTable =
static IStorage MyIStorage = { &MyIStorageTable };
-BOOL WB_EmbedBrowser(WBInfo *pWBInfo, HWND hwndParent)
+BOOL InitWebBrowser(HHInfo *info, HWND hwndParent)
{
IOleClientSiteImpl *iOleClientSiteImpl;
IOleInPlaceObject *inplace;
@@ -576,9 +576,6 @@ BOOL WB_EmbedBrowser(WBInfo *pWBInfo, HWND hwndParent)
HRESULT hr;
RECT rc;
- /* clear out struct to keep from accessing invalid ptrs */
- ZeroMemory(pWBInfo, sizeof(WBInfo));
-
iOleClientSiteImpl = hhctrl_alloc_zero(sizeof(IOleClientSiteImpl));
if (!iOleClientSiteImpl)
return FALSE;
@@ -594,8 +591,8 @@ BOOL WB_EmbedBrowser(WBInfo *pWBInfo, HWND hwndParent)
(IOleClientSite *)iOleClientSiteImpl, &MyIStorage,
(void **)&browserObject);
- pWBInfo->pOleClientSite = (IOleClientSite *)iOleClientSiteImpl;
- pWBInfo->pBrowserObject = browserObject;
+ info->client_site = (IOleClientSite *)iOleClientSiteImpl;
+ info->wb_object = browserObject;
if (FAILED(hr)) goto error;
@@ -622,55 +619,51 @@ BOOL WB_EmbedBrowser(WBInfo *pWBInfo, HWND hwndParent)
(void **)&webBrowser2);
if (SUCCEEDED(hr))
{
- pWBInfo->pWebBrowser2 = webBrowser2;
- pWBInfo->hwndParent = hwndParent;
-
+ info->web_browser = webBrowser2;
return TRUE;
}
error:
- WB_UnEmbedBrowser(pWBInfo);
+ ReleaseWebBrowser(info);
hhctrl_free(iOleClientSiteImpl);
return FALSE;
}
-void WB_UnEmbedBrowser(WBInfo *pWBInfo)
+void ReleaseWebBrowser(HHInfo *info)
{
- if (pWBInfo->pBrowserObject)
+ if (info->wb_object)
{
- IOleObject_Close(pWBInfo->pBrowserObject, OLECLOSE_NOSAVE);
- IOleObject_Release(pWBInfo->pBrowserObject);
- pWBInfo->pBrowserObject = NULL;
+ IOleObject_Close(info->wb_object, OLECLOSE_NOSAVE);
+ IOleObject_Release(info->wb_object);
+ info->wb_object = NULL;
}
- if (pWBInfo->pWebBrowser2)
+ if (info->web_browser)
{
- IWebBrowser2_Release(pWBInfo->pWebBrowser2);
- pWBInfo->pWebBrowser2 = NULL;
+ IWebBrowser2_Release(info->web_browser);
+ info->web_browser = NULL;
}
- if (pWBInfo->pOleClientSite)
+ if (info->client_site)
{
- IOleClientSite_Release(pWBInfo->pOleClientSite);
- pWBInfo->pOleClientSite = NULL;
+ IOleClientSite_Release(info->client_site);
+ info->client_site = NULL;
}
}
-void WB_ResizeBrowser(WBInfo *pWBInfo, DWORD dwWidth, DWORD dwHeight)
+void ResizeWebBrowser(HHInfo *info, DWORD dwWidth, DWORD dwHeight)
{
- IWebBrowser2 *pWebBrowser2 = pWBInfo->pWebBrowser2;
-
- if (!pWebBrowser2)
+ if (!info->web_browser)
return;
- IWebBrowser2_put_Width(pWebBrowser2, dwWidth);
- IWebBrowser2_put_Height(pWebBrowser2, dwHeight);
+ IWebBrowser2_put_Width(info->web_browser, dwWidth);
+ IWebBrowser2_put_Height(info->web_browser, dwHeight);
}
-void WB_DoPageAction(WBInfo *pWBInfo, DWORD dwAction)
+void DoPageAction(HHInfo *info, DWORD dwAction)
{
- IWebBrowser2 *pWebBrowser2 = pWBInfo->pWebBrowser2;
+ IWebBrowser2 *pWebBrowser2 = info->web_browser;
if (!pWebBrowser2)
return;
More information about the wine-cvs
mailing list