https://git.reactos.org/?p=reactos.git;a=commitdiff;h=96f371dcdb1874871a206…
commit 96f371dcdb1874871a206e0ff6659042d248ccdd
Author: Amine Khaldi <amine.khaldi(a)reactos.org>
AuthorDate: Thu Mar 15 12:19:43 2018 +0100
Commit: Amine Khaldi <amine.khaldi(a)reactos.org>
CommitDate: Thu Mar 15 12:19:43 2018 +0100
[HHCTRL.OCX] Sync with Wine Staging 3.3. CORE-14434
---
dll/win32/hhctrl.ocx/CMakeLists.txt | 4 +-
dll/win32/hhctrl.ocx/chm.c | 143 ++++++++++++++++++++++++++----------
dll/win32/hhctrl.ocx/content.c | 8 ++
dll/win32/hhctrl.ocx/help.c | 11 ++-
dll/win32/hhctrl.ocx/hhctrl.c | 17 ++++-
dll/win32/hhctrl.ocx/hhctrl.h | 64 +++++-----------
dll/win32/hhctrl.ocx/hhctrl.rc | 5 +-
dll/win32/hhctrl.ocx/index.c | 5 ++
dll/win32/hhctrl.ocx/precomp.h | 19 +++++
dll/win32/hhctrl.ocx/resource.h | 5 ++
dll/win32/hhctrl.ocx/search.c | 5 ++
dll/win32/hhctrl.ocx/stream.c | 5 ++
dll/win32/hhctrl.ocx/stream.h | 2 +-
dll/win32/hhctrl.ocx/webbrowser.c | 5 +-
media/doc/README.WINE | 2 +-
15 files changed, 206 insertions(+), 94 deletions(-)
diff --git a/dll/win32/hhctrl.ocx/CMakeLists.txt b/dll/win32/hhctrl.ocx/CMakeLists.txt
index d94b5b1553..80b7975dca 100644
--- a/dll/win32/hhctrl.ocx/CMakeLists.txt
+++ b/dll/win32/hhctrl.ocx/CMakeLists.txt
@@ -15,7 +15,7 @@ list(APPEND SOURCE
search.c
stream.c
webbrowser.c
- hhctrl.h)
+ precomp.h)
add_library(hhctrl SHARED
${SOURCE}
@@ -34,5 +34,5 @@ set_module_type(hhctrl win32ocx)
target_link_libraries(hhctrl uuid wine)
add_importlibs(hhctrl advapi32 comctl32 shlwapi ole32 oleaut32 user32 gdi32 msvcrt
kernel32 ntdll)
add_dependencies(hhctrl stdole2 wineheaders)
-add_pch(hhctrl hhctrl.h SOURCE)
+add_pch(hhctrl precomp.h SOURCE)
add_cd_file(TARGET hhctrl DESTINATION reactos/system32 FOR all)
diff --git a/dll/win32/hhctrl.ocx/chm.c b/dll/win32/hhctrl.ocx/chm.c
index 617e6dfd1c..8cf2539d71 100644
--- a/dll/win32/hhctrl.ocx/chm.c
+++ b/dll/win32/hhctrl.ocx/chm.c
@@ -20,9 +20,13 @@
*/
#include "hhctrl.h"
+#include "stream.h"
-#include <winreg.h>
-#include <shlwapi.h>
+#include "winreg.h"
+#include "shlwapi.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(htmlhelp);
/* Reads a string from the #STRINGS section in the CHM file */
static LPCSTR GetChmString(CHMInfo *chm, DWORD offset)
@@ -304,15 +308,31 @@ void MergeChmProperties(HH_WINTYPEW *src, HHInfo *info, BOOL
override)
#endif
}
-static inline WCHAR *ConvertChmString(HHInfo *info, const WCHAR **str)
+static inline WCHAR *ConvertChmString(HHInfo *info, DWORD id)
{
WCHAR *ret = NULL;
- if(*str)
- *str = ret = strdupAtoW(GetChmString(info->pCHMInfo, (DWORD_PTR)*str));
+ if(id)
+ ret = strdupAtoW(GetChmString(info->pCHMInfo, id));
return ret;
}
+static inline void wintype_free(HH_WINTYPEW *wintype)
+{
+ heap_free((void *)wintype->pszType);
+ heap_free((void *)wintype->pszCaption);
+ heap_free(wintype->paInfoTypes);
+ heap_free((void *)wintype->pszToc);
+ heap_free((void *)wintype->pszIndex);
+ heap_free((void *)wintype->pszFile);
+ heap_free((void *)wintype->pszHome);
+ heap_free((void *)wintype->pszJump1);
+ heap_free((void *)wintype->pszJump2);
+ heap_free((void *)wintype->pszUrlJump1);
+ heap_free((void *)wintype->pszUrlJump2);
+ heap_free((void *)wintype->pszCustomTabs);
+}
+
/* Loads the HH_WINTYPE data from the CHM file
*
* FIXME: There may be more than one window type in the file, so
@@ -321,8 +341,6 @@ static inline WCHAR *ConvertChmString(HHInfo *info, const WCHAR
**str)
BOOL LoadWinTypeFromCHM(HHInfo *info)
{
LARGE_INTEGER liOffset;
- WCHAR *pszType = NULL, *pszFile = NULL, *pszToc = NULL, *pszIndex = NULL, *pszCaption
= NULL;
- WCHAR *pszHome = NULL, *pszJump1 = NULL, *pszJump2 = NULL, *pszUrlJump1 = NULL,
*pszUrlJump2 = NULL;
IStorage *pStorage = info->pCHMInfo->pStorage;
IStream *pStream = NULL;
HH_WINTYPEW wintype;
@@ -330,11 +348,57 @@ BOOL LoadWinTypeFromCHM(HHInfo *info)
DWORD cbRead;
BOOL ret = FALSE;
- static const WCHAR null[] = {0};
+ static const WCHAR empty[] = {0};
static const WCHAR toc_extW[] = {'h','h','c',0};
static const WCHAR index_extW[] = {'h','h','k',0};
static const WCHAR windowsW[] =
{'#','W','I','N','D','O','W','S',0};
+ /* HH_WINTYPE as stored on disk. It's identical to HH_WINTYPE except that the
pointer fields
+ have been changed to DWORDs, so that the layout on 64-bit remains unchanged. */
+ struct file_wintype
+ {
+ int cbStruct;
+ BOOL fUniCodeStrings;
+ DWORD pszType;
+ DWORD fsValidMembers;
+ DWORD fsWinProperties;
+ DWORD pszCaption;
+ DWORD dwStyles;
+ DWORD dwExStyles;
+ RECT rcWindowPos;
+ int nShowState;
+ DWORD hwndHelp;
+ DWORD hwndCaller;
+ DWORD paInfoTypes;
+ DWORD hwndToolBar;
+ DWORD hwndNavigation;
+ DWORD hwndHTML;
+ int iNavWidth;
+ RECT rcHTML;
+ DWORD pszToc;
+ DWORD pszIndex;
+ DWORD pszFile;
+ DWORD pszHome;
+ DWORD fsToolBarFlags;
+ BOOL fNotExpanded;
+ int curNavType;
+ int tabpos;
+ int idNotify;
+ BYTE tabOrder[HH_MAX_TABS+1];
+ int cHistory;
+ DWORD pszJump1;
+ DWORD pszJump2;
+ DWORD pszUrlJump1;
+ DWORD pszUrlJump2;
+ RECT rcMinSize;
+ int cbInfoTypes;
+ DWORD pszCustomTabs;
+ } file_wintype;
+
+ memset(&wintype, 0, sizeof(wintype));
+ wintype.cbStruct = sizeof(wintype);
+ wintype.fUniCodeStrings = TRUE;
+
hr = IStorage_OpenStream(pStorage, windowsW, NULL, STGM_READ, 0, &pStream);
if (SUCCEEDED(hr))
{
@@ -345,31 +409,45 @@ BOOL LoadWinTypeFromCHM(HHInfo *info)
if (FAILED(hr)) goto done;
/* read the HH_WINTYPE struct data */
- hr = IStream_Read(pStream, &wintype, sizeof(wintype), &cbRead);
+ hr = IStream_Read(pStream, &file_wintype, sizeof(file_wintype),
&cbRead);
if (FAILED(hr)) goto done;
/* convert the #STRINGS offsets to actual strings */
- pszType = ConvertChmString(info, &wintype.pszType);
- pszFile = ConvertChmString(info, &wintype.pszFile);
- pszToc = ConvertChmString(info, &wintype.pszToc);
- pszIndex = ConvertChmString(info, &wintype.pszIndex);
- pszCaption = ConvertChmString(info, &wintype.pszCaption);
- pszHome = ConvertChmString(info, &wintype.pszHome);
- pszJump1 = ConvertChmString(info, &wintype.pszJump1);
- pszJump2 = ConvertChmString(info, &wintype.pszJump2);
- pszUrlJump1 = ConvertChmString(info, &wintype.pszUrlJump1);
- pszUrlJump2 = ConvertChmString(info, &wintype.pszUrlJump2);
+ wintype.pszType = ConvertChmString(info, file_wintype.pszType);
+ wintype.fsValidMembers = file_wintype.fsValidMembers;
+ wintype.fsWinProperties = file_wintype.fsWinProperties;
+ wintype.pszCaption = ConvertChmString(info, file_wintype.pszCaption);
+ wintype.dwStyles = file_wintype.dwStyles;
+ wintype.dwExStyles = file_wintype.dwExStyles;
+ wintype.rcWindowPos = file_wintype.rcWindowPos;
+ wintype.nShowState = file_wintype.nShowState;
+ wintype.iNavWidth = file_wintype.iNavWidth;
+ wintype.rcHTML = file_wintype.rcHTML;
+ wintype.pszToc = ConvertChmString(info, file_wintype.pszToc);
+ wintype.pszIndex = ConvertChmString(info, file_wintype.pszIndex);
+ wintype.pszFile = ConvertChmString(info, file_wintype.pszFile);
+ wintype.pszHome = ConvertChmString(info, file_wintype.pszHome);
+ wintype.fsToolBarFlags = file_wintype.fsToolBarFlags;
+ wintype.fNotExpanded = file_wintype.fNotExpanded;
+ wintype.curNavType = file_wintype.curNavType;
+ wintype.tabpos = file_wintype.tabpos;
+ wintype.idNotify = file_wintype.idNotify;
+ memcpy(&wintype.tabOrder, file_wintype.tabOrder, sizeof(wintype.tabOrder));
+ wintype.cHistory = file_wintype.cHistory;
+ wintype.pszJump1 = ConvertChmString(info, file_wintype.pszJump1);
+ wintype.pszJump2 = ConvertChmString(info, file_wintype.pszJump2);
+ wintype.pszUrlJump1 = ConvertChmString(info, file_wintype.pszUrlJump1);
+ wintype.pszUrlJump2 = ConvertChmString(info, file_wintype.pszUrlJump2);
+ wintype.rcMinSize = file_wintype.rcMinSize;
+ wintype.cbInfoTypes = file_wintype.cbInfoTypes;
}
else
{
/* no defined window types so use (hopefully) sane defaults */
static const WCHAR defaultwinW[] =
{'d','e','f','a','u','l','t','w','i','n','\0'};
- memset(&wintype, 0, sizeof(wintype));
- wintype.cbStruct = sizeof(wintype);
- wintype.fUniCodeStrings = TRUE;
- wintype.pszType = pszType = strdupW(info->pCHMInfo->defWindow ?
info->pCHMInfo->defWindow : defaultwinW);
- wintype.pszToc = pszToc = strdupW(info->pCHMInfo->defToc ?
info->pCHMInfo->defToc : null);
- wintype.pszIndex = pszIndex = strdupW(null);
+ wintype.pszType = strdupW(info->pCHMInfo->defWindow ?
info->pCHMInfo->defWindow : defaultwinW);
+ wintype.pszToc = strdupW(info->pCHMInfo->defToc ?
info->pCHMInfo->defToc : empty);
+ wintype.pszIndex = strdupW(empty);
wintype.fsValidMembers = 0;
wintype.fsWinProperties = HHWIN_PROP_TRI_PANE;
wintype.dwStyles = WS_POPUP;
@@ -381,24 +459,15 @@ BOOL LoadWinTypeFromCHM(HHInfo *info)
/* merge the new data with any pre-existing HH_WINTYPE structure */
MergeChmProperties(&wintype, info, FALSE);
if (!info->WinType.pszCaption)
- info->WinType.pszCaption = info->stringsW.pszCaption =
strdupW(info->pCHMInfo->defTitle ? info->pCHMInfo->defTitle : null);
+ info->WinType.pszCaption = info->stringsW.pszCaption =
strdupW(info->pCHMInfo->defTitle ? info->pCHMInfo->defTitle : empty);
if (!info->WinType.pszFile)
- info->WinType.pszFile = info->stringsW.pszFile =
strdupW(info->pCHMInfo->defTopic ? info->pCHMInfo->defTopic : null);
+ info->WinType.pszFile = info->stringsW.pszFile =
strdupW(info->pCHMInfo->defTopic ? info->pCHMInfo->defTopic : empty);
if (!info->WinType.pszToc)
info->WinType.pszToc = info->stringsW.pszToc =
FindHTMLHelpSetting(info, toc_extW);
if (!info->WinType.pszIndex)
info->WinType.pszIndex = info->stringsW.pszIndex =
FindHTMLHelpSetting(info, index_extW);
- heap_free(pszType);
- heap_free(pszFile);
- heap_free(pszToc);
- heap_free(pszIndex);
- heap_free(pszCaption);
- heap_free(pszHome);
- heap_free(pszJump1);
- heap_free(pszJump2);
- heap_free(pszUrlJump1);
- heap_free(pszUrlJump2);
+ wintype_free(&wintype);
ret = TRUE;
done:
diff --git a/dll/win32/hhctrl.ocx/content.c b/dll/win32/hhctrl.ocx/content.c
index 2a411bd69c..6a7c8f8a8c 100644
--- a/dll/win32/hhctrl.ocx/content.c
+++ b/dll/win32/hhctrl.ocx/content.c
@@ -17,7 +17,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#define NONAMELESSUNION
+
#include "hhctrl.h"
+#include "stream.h"
+#include "resource.h"
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(htmlhelp);
typedef enum {
INSERT_NEXT,
diff --git a/dll/win32/hhctrl.ocx/help.c b/dll/win32/hhctrl.ocx/help.c
index add3b74dac..c7a2a7a9e2 100644
--- a/dll/win32/hhctrl.ocx/help.c
+++ b/dll/win32/hhctrl.ocx/help.c
@@ -22,8 +22,15 @@
#include "hhctrl.h"
-#include <wingdi.h>
-#include <wininet.h>
+#include "wingdi.h"
+#include "commctrl.h"
+#include "wininet.h"
+
+#include "wine/debug.h"
+
+#include "resource.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(htmlhelp);
static LRESULT Help_OnSize(HWND hWnd);
static void ExpandContract(HHInfo *pHHInfo);
diff --git a/dll/win32/hhctrl.ocx/hhctrl.c b/dll/win32/hhctrl.ocx/hhctrl.c
index 89cda1f96a..7efca002f9 100644
--- a/dll/win32/hhctrl.ocx/hhctrl.c
+++ b/dll/win32/hhctrl.ocx/hhctrl.c
@@ -19,9 +19,24 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#include "wine/debug.h"
+
+#include <stdarg.h>
+
+#define COBJMACROS
+
+#include "windef.h"
+#include "winbase.h"
+#include "winuser.h"
+#include "winnls.h"
+#include "htmlhelp.h"
+#include "ole2.h"
+#include "rpcproxy.h"
+
+#define INIT_GUID
#include "hhctrl.h"
-#include <rpcproxy.h>
+WINE_DEFAULT_DEBUG_CHANNEL(htmlhelp);
HINSTANCE hhctrl_hinstance;
BOOL hh_process = FALSE;
diff --git a/dll/win32/hhctrl.ocx/hhctrl.h b/dll/win32/hhctrl.ocx/hhctrl.h
index 34a9153407..b358f54378 100644
--- a/dll/win32/hhctrl.ocx/hhctrl.h
+++ b/dll/win32/hhctrl.ocx/hhctrl.h
@@ -22,32 +22,26 @@
#include <stdarg.h>
-#define WIN32_NO_STATUS
-#define _INC_WINDOWS
-#define COM_NO_WINDOWS_H
-
#define COBJMACROS
-#define NONAMELESSUNION
-#define NONAMELESSSTRUCT
-
-#include <windef.h>
-#include <winbase.h>
-#include <winuser.h>
-#include <htmlhelp.h>
-#include <ole2.h>
-#include <exdisp.h>
-#include <mshtmhst.h>
-#include <commctrl.h>
-
-#include <wine/itss.h>
-#include <wine/unicode.h>
-#include <wine/list.h>
-
-#include <wine/debug.h>
-WINE_DEFAULT_DEBUG_CHANNEL(htmlhelp);
-#include "resource.h"
-#include "stream.h"
+#include "windef.h"
+#include "winbase.h"
+#include "winuser.h"
+#include "winnls.h"
+#include "htmlhelp.h"
+#include "ole2.h"
+#include "exdisp.h"
+#include "mshtmhst.h"
+#include "commctrl.h"
+
+#ifdef INIT_GUID
+#include "initguid.h"
+#endif
+
+#include "wine/itss.h"
+#include "wine/unicode.h"
+#include "wine/heap.h"
+#include "wine/list.h"
#define WB_GOBACK 0
#define WB_GOFORWARD 1
@@ -251,31 +245,11 @@ HHInfo *find_window(const WCHAR *window) DECLSPEC_HIDDEN;
/* memory allocation functions */
-static inline void * __WINE_ALLOC_SIZE(1) heap_alloc(size_t len)
-{
- return HeapAlloc(GetProcessHeap(), 0, len);
-}
-
-static inline void * __WINE_ALLOC_SIZE(1) heap_alloc_zero(size_t len)
-{
- return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
-}
-
-static inline void * __WINE_ALLOC_SIZE(2) heap_realloc(void *mem, size_t len)
-{
- return HeapReAlloc(GetProcessHeap(), 0, mem, len);
-}
-
static inline void * __WINE_ALLOC_SIZE(2) heap_realloc_zero(void *mem, size_t len)
{
return HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, len);
}
-static inline BOOL heap_free(void *mem)
-{
- return HeapFree(GetProcessHeap(), 0, mem);
-}
-
static inline LPWSTR strdupW(LPCWSTR str)
{
LPWSTR ret;
@@ -337,4 +311,4 @@ static inline LPSTR strdupWtoA(LPCWSTR str)
extern HINSTANCE hhctrl_hinstance DECLSPEC_HIDDEN;
extern BOOL hh_process DECLSPEC_HIDDEN;
-#endif /* HHCTRL_H */
+#endif
diff --git a/dll/win32/hhctrl.ocx/hhctrl.rc b/dll/win32/hhctrl.ocx/hhctrl.rc
index aad7643aec..c270efa937 100644
--- a/dll/win32/hhctrl.ocx/hhctrl.rc
+++ b/dll/win32/hhctrl.ocx/hhctrl.rc
@@ -19,9 +19,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include <windef.h>
-#include <htmlhelp.h>
-
#include "resource.h"
/* UTF-8 */
@@ -115,7 +112,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#define WINE_PRODUCTVERSION 5,2,3790,2744
#define WINE_PRODUCTVERSION_STR "5.2.3790.2744"
-#include <wine/wine_common_ver.rc>
+#include "wine/wine_common_ver.rc"
/* @makedep: hhtoolbar.bmp */
IDB_HHTOOLBAR BITMAP "res/hhtoolbar.bmp"
diff --git a/dll/win32/hhctrl.ocx/index.c b/dll/win32/hhctrl.ocx/index.c
index 327d4d7364..8b80ce24e7 100644
--- a/dll/win32/hhctrl.ocx/index.c
+++ b/dll/win32/hhctrl.ocx/index.c
@@ -18,6 +18,11 @@
*/
#include "hhctrl.h"
+#include "stream.h"
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(htmlhelp);
/* Fill the TreeView object corresponding to the Index items */
static void fill_index_tree(HWND hwnd, IndexItem *item)
diff --git a/dll/win32/hhctrl.ocx/precomp.h b/dll/win32/hhctrl.ocx/precomp.h
new file mode 100644
index 0000000000..fa41030858
--- /dev/null
+++ b/dll/win32/hhctrl.ocx/precomp.h
@@ -0,0 +1,19 @@
+
+#ifndef _HHCTRL_PRECOMP_H
+#define _HHCTRL_PRECOMP_H
+
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+#define NONAMELESSUNION
+#define NONAMELESSSTRUCT
+
+#include "hhctrl.h"
+
+#include <wine/debug.h>
+
+#include "resource.h"
+#include "stream.h"
+
+#endif /* !_HHCTRL_PRECOMP_H */
diff --git a/dll/win32/hhctrl.ocx/resource.h b/dll/win32/hhctrl.ocx/resource.h
index 1a1ca0ed22..f2b4383493 100644
--- a/dll/win32/hhctrl.ocx/resource.h
+++ b/dll/win32/hhctrl.ocx/resource.h
@@ -20,6 +20,11 @@
#pragma once
+#include <windef.h>
+#include <winbase.h>
+#include <wingdi.h>
+#include <htmlhelp.h>
+
#define IDS_CONTENTS 1
#define IDS_INDEX 2
#define IDS_SEARCH 3
diff --git a/dll/win32/hhctrl.ocx/search.c b/dll/win32/hhctrl.ocx/search.c
index 874889071b..d758a1b30f 100644
--- a/dll/win32/hhctrl.ocx/search.c
+++ b/dll/win32/hhctrl.ocx/search.c
@@ -17,6 +17,11 @@
*/
#include "hhctrl.h"
+#include "stream.h"
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(htmlhelp);
static SearchItem *SearchCHM_Folder(SearchItem *item, IStorage *pStorage,
const WCHAR *folder, const char *needle);
diff --git a/dll/win32/hhctrl.ocx/stream.c b/dll/win32/hhctrl.ocx/stream.c
index 226aa70184..b4239ca5b6 100644
--- a/dll/win32/hhctrl.ocx/stream.c
+++ b/dll/win32/hhctrl.ocx/stream.c
@@ -17,6 +17,11 @@
*/
#include "hhctrl.h"
+#include "stream.h"
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(htmlhelp);
void strbuf_init(strbuf_t *buf)
{
diff --git a/dll/win32/hhctrl.ocx/stream.h b/dll/win32/hhctrl.ocx/stream.h
index b45869b738..8d61ad54d5 100644
--- a/dll/win32/hhctrl.ocx/stream.h
+++ b/dll/win32/hhctrl.ocx/stream.h
@@ -45,4 +45,4 @@ BOOL next_content(stream_t *stream, strbuf_t *buf) DECLSPEC_HIDDEN;
BOOL next_node(stream_t *stream, strbuf_t *buf) DECLSPEC_HIDDEN;
const char *get_attr(const char *node, const char *name, int *len) DECLSPEC_HIDDEN;
-#endif /* HHCTRL_STREAM_H */
+#endif
diff --git a/dll/win32/hhctrl.ocx/webbrowser.c b/dll/win32/hhctrl.ocx/webbrowser.c
index 0ffc69898b..e44c4ecd9d 100644
--- a/dll/win32/hhctrl.ocx/webbrowser.c
+++ b/dll/win32/hhctrl.ocx/webbrowser.c
@@ -19,8 +19,11 @@
*/
#include "hhctrl.h"
+#include "resource.h"
-#include <mshtmhst.h>
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(htmlhelp);
static inline WebBrowserContainer *impl_from_IOleClientSite(IOleClientSite *iface)
{
diff --git a/media/doc/README.WINE b/media/doc/README.WINE
index fc1cce6951..49de8174aa 100644
--- a/media/doc/README.WINE
+++ b/media/doc/README.WINE
@@ -69,7 +69,7 @@ reactos/dll/win32/faultrep # Synced to WineStaging-2.9
reactos/dll/win32/fontsub # Synced to WineStaging-2.9
reactos/dll/win32/fusion # Synced to WineStaging-3.3
reactos/dll/win32/gdiplus # Synced to WineStaging-3.3
-reactos/dll/win32/hhctrl.ocx # Synced to Wine-3.0
+reactos/dll/win32/hhctrl.ocx # Synced to WineStaging-3.3
reactos/dll/win32/hlink # Synced to Wine-3.0
reactos/dll/win32/hnetcfg # Synced to Wine-3.0
reactos/dll/win32/httpapi # Synced to WineStaging-2.9