40#define WINTYPE_DEFAULT_X 280
41#define WINTYPE_DEFAULT_Y 100
42#define WINTYPE_DEFAULT_WIDTH 740
43#define WINTYPE_DEFAULT_HEIGHT 640
44#define WINTYPE_DEFAULT_NAVWIDTH 250
46#define TAB_TOP_PADDING 8
47#define TAB_RIGHT_PADDING 4
187 memcpy(
string, stringresource, iSize*
sizeof(
WCHAR));
203 hres = IWebBrowser2_Navigate2(
info->web_browser->web_browser, &
url, 0, 0, 0, 0);
208 TRACE(
"Navigation failed: %08x\n",
hres);
219 static const WCHAR url_indicator[] = {
':',
'/',
'/', 0};
223 if (
wcsstr(surl, url_indicator)) {
240 static const WCHAR url_format[] =
241 {
'm',
'k',
':',
'@',
'M',
'S',
'I',
'T',
'S',
't',
'o',
'r',
'e',
':',
'%',
's',
':',
':',
'%',
's',
'%',
's',0};
242 static const WCHAR slash[] = {
'/',0};
275 hres = IWebBrowser2_get_LocationURL(
info->web_browser->web_browser, &
url);
279 WARN(
"get_LocationURL failed: %08x\n",
hres);
292 static const WCHAR delimW[] = {
':',
':',
'/',0};
306#define SIZEBAR_WIDTH 4
309 'H',
'H',
' ',
'S',
'i',
'z',
'e',
'B',
'a',
'r',0
413 RECT rectWND, rectTB, rectNP;
451 'H',
'H',
' ',
'C',
'h',
'i',
'l',
'd',0
518 width-scroll_width-2*border_width-2*edge_width);
537 width-scroll_width-2*border_width-2*edge_width);
566 int tab_id, tab_index,
i;
573 if(
info->tabs[
info->current_tab].hwnd)
581 if (
info->tabs[
i].id == tab_id)
589 FIXME(
"Tab ID %d does not correspond to a valid index in the tab list.\n", tab_id);
592 info->current_tab = tab_index;
594 if(
info->tabs[
info->current_tab].hwnd)
607 if(!user_data || !
info)
610 switch (
info->current_tab)
627 FIXME(
"No entries for this item!\n");
643 memset(&lvi, 0,
sizeof(lvi));
662 chmfile =
info->pCHMInfo->szFile;
665 FIXME(
"Unhandled operation for this tab!\n");
671 FIXME(
"No help file found for this item!\n");
709 switch(nmhdr->
code) {
735 switch(
info->current_tab)
746 switch(
info->current_tab) {
765 FIXME(
"Unable to get search text.\n");
776 HWND hwndList =
info->search.hwndList;
845 if (
info->WinType.fNotExpanded)
927 pButtons[dwIndex].
iBitmap = dwBitmap;
931 pButtons[dwIndex].
dwData = 0;
937 int nHistBitmaps = 0, nStdBitmaps = 0, nHHBitmaps = 0;
961 FIXME(
"got asked for unsupported buttons: %06x\n", unsupported);
1005 DWORD dwStyles, dwExStyles;
1006 DWORD dwNumButtons, dwIndex;
1029 for (dwIndex = 0; dwIndex < dwNumButtons; dwIndex++)
1033 szBuf[dwLen + 1] = 0;
1053 RECT rectWND, rectTB;
1115 if (*
info->WinType.pszToc)
1118 if (*
info->WinType.pszIndex)
1129 info->hwndTabCtrl = hwndTabCtrl;
1130 info->WinType.hwndNavigation =
hWnd;
1138 RECT rectTB, rectWND, rectNP, rectSB;
1200 ERR(
"Could not create treeview control\n");
1209 info->contents.hImageList = hImageList;
1219 char hidden_column[] =
"Column";
1228 ERR(
"Could not create ListView control\n");
1231 memset(&lvc, 0,
sizeof(lvc));
1236 ERR(
"Could not create ListView column\n");
1249 char hidden_column[] =
"Column";
1258 if(!hwndContainer) {
1259 ERR(
"Could not create search window container control.\n");
1266 ERR(
"Could not create search ListView control.\n");
1271 ERR(
"Could not set font for edit control.\n");
1276 ERR(
"Could not redirect messages for edit control.\n");
1285 ERR(
"Could not create search ListView control.\n");
1288 memset(&lvc, 0,
sizeof(lvc));
1293 ERR(
"Could not create ListView column\n");
1298 info->search.hwndList = hwndList;
1299 info->search.hwndContainer = hwndContainer;
1337 width-scroll_width-2*border_width-2*edge_width);
1412 static const WCHAR szPopupChildClass[] = {
'H',
'H',
' ',
'P',
'o',
'p',
'u',
'p',
' ',
'C',
'h',
'i',
'l',
'd',0};
1413 static const WCHAR windowCaptionW[] = {
'S',
'e',
'l',
'e',
'c',
't',
' ',
'T',
'o',
'p',
'i',
'c',
':',0};
1415 HWND hwndList, hwndPopup, hwndCallback;
1416 char hidden_column[] =
"Column";
1474 ERR(
"Could not create popup ListView control\n");
1477 memset(&lvc, 0,
sizeof(lvc));
1482 ERR(
"Could not create popup ListView column\n");
1486 info->popup.hwndCallback = hwndCallback;
1487 info->popup.hwndPopup = hwndPopup;
1488 info->popup.hwndList = hwndList;
1565 if (!
info->WinType.hwndHelp)
1568 WARN(
"Only the size of the window is currently updated.\n");
1611 RECT winPos =
info->WinType.rcWindowPos;
1613 DWORD dwStyles, dwExStyles;
1618 'H',
'H',
' ',
'P',
'a',
'r',
'e',
'n',
't',0
1647 dwStyles =
info->WinType.dwStyles;
1656 dwExStyles =
info->WinType.dwExStyles;
1679 info->WinType.iNavWidth == 0)
1684 x +=
info->WinType.iNavWidth;
1689 caption =
info->WinType.pszCaption;
1690 if (!*caption) caption =
info->pCHMInfo->defTitle;
1724 icex.
dwICC = dwControls;
1822 if(
info->contents.hImageList)
1824 if(
info->WinType.hwndHelp)
1846 info->tabs[
i].id = -1;
1851 if(!
info->pCHMInfo) {
1860 info->WinType.hwndCaller = caller;
1904 const char *
h = html_fragment, *amp, *
sem;
1906 int len, tmp_len = 0;
1907 WCHAR *unicode_text;
1925 tmp[tmp_len++] =
'&';
1933 char *endnum =
NULL;
1944 FIXME(
"Failed to translate HTML encoded character '&%.*s;'.\n",
len, amp);
1946 tmp[tmp_len++] =
'&';
1951 tmp[tmp_len++] = symbol;
1954 len = html_fragment_len-(
h-html_fragment);
1963 return unicode_text;
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
char * strchr(const char *String, int ch)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
CHMInfo * CloseCHM(CHMInfo *chm)
WCHAR * GetDocumentTitle(CHMInfo *info, LPCWSTR document)
CHMInfo * OpenCHM(LPCWSTR szFile)
void SetChmPath(ChmPath *file, LPCWSTR base_file, LPCWSTR path)
BOOL LoadWinTypeFromCHM(HHInfo *info)
BOOL WINAPI InitCommonControlsEx(const INITCOMMONCONTROLSEX *lpInitCtrls)
INT WINAPI ImageList_Add(HIMAGELIST himl, HBITMAP hbmImage, HBITMAP hbmMask)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
static const WCHAR empty[]
#define MultiByteToWideChar
#define WINTYPE_DEFAULT_Y
void wintype_stringsW_free(struct wintype_stringsW *stringsW)
static LRESULT Child_OnSize(HWND hwnd)
#define WINTYPE_DEFAULT_NAVWIDTH
#define WINTYPE_DEFAULT_WIDTH
static LRESULT CALLBACK EditChild_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
static void ResizeTabChild(HHInfo *info, int tab)
static BOOL HH_CreateHelpWindow(HHInfo *info)
HHInfo * CreateHelpViewer(HHInfo *info, LPCWSTR filename, HWND caller)
static void HH_InitRequiredControls(DWORD dwControls)
static BOOL AddIndexTab(HHInfo *info)
static char find_html_symbol(const char *entity, int entity_len)
static void HH_RegisterSizeBarClass(HHInfo *pHHInfo)
static DWORD NP_CreateTab(HINSTANCE hInstance, HWND hwndTabCtrl, DWORD index)
static void DoSync(HHInfo *info)
static void TB_AddButtonsFromFlags(HHInfo *pHHInfo, TBBUTTON *pButtons, DWORD dwButtonFlags, LPDWORD pdwNumButtons)
void wintype_stringsA_free(struct wintype_stringsA *stringsA)
static LRESULT CALLBACK PopupChild_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
static void HP_GetHTMLRect(HHInfo *info, RECT *rc)
static BOOL AddSearchTab(HHInfo *info)
static LRESULT Help_OnSize(HWND hWnd)
static LRESULT OnTopicChange(HHInfo *info, void *user_data)
static BOOL CreateViewer(HHInfo *pHHInfo)
#define WINTYPE_DEFAULT_HEIGHT
void ReleaseHelpViewer(HHInfo *info)
BOOL NavigateToChm(HHInfo *info, LPCWSTR file, LPCWSTR index)
static LRESULT CALLBACK SizeBar_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
static void SB_GetSizeBarRect(HHInfo *info, RECT *rc)
WCHAR * decode_html(const char *html_fragment, int html_fragment_len, UINT code_page)
static void SB_OnLButtonUp(HWND hWnd, WPARAM wParam, LPARAM lParam)
#define TAB_RIGHT_PADDING
static void ExpandContract(HHInfo *pHHInfo)
static void HH_RegisterChildWndClass(HHInfo *pHHInfo)
static const WCHAR szSizeBarClass[]
void UpdateHelpWindow(HHInfo *info)
static BOOL AppendFullPathURL(LPCWSTR file, LPWSTR buf, LPCWSTR index)
static BOOL navigation_visible(HHInfo *info)
static LPWSTR HH_LoadString(DWORD dwID)
static void HH_CreateFont(HHInfo *pHHInfo)
static void TB_OnClick(HWND hWnd, DWORD dwID)
static LRESULT CALLBACK Child_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
static const WCHAR szChildClass[]
static void SB_OnLButtonDown(HWND hWnd, WPARAM wParam, LPARAM lParam)
static void ResizePopupChild(HHInfo *info)
static BOOL AddIndexPopup(HHInfo *info)
static struct html_encoded_symbol html_encoded_symbols[]
static BOOL HH_AddNavigationPane(HHInfo *info)
static LRESULT CALLBACK HelpPopup_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
BOOL NavigateToUrl(HHInfo *info, LPCWSTR surl)
static BOOL AddContentTab(HHInfo *info)
static LRESULT Child_OnPaint(HWND hWnd)
static HRESULT navigate_url(HHInfo *info, LPCWSTR surl)
static void NP_GetNavigationRect(HHInfo *pHHInfo, RECT *rc)
static void SB_OnMouseMove(HWND hWnd, WPARAM wParam, LPARAM lParam)
#define WINTYPE_DEFAULT_X
static LRESULT OnTabChange(HWND hwnd)
static void DisplayPopupMenu(HHInfo *info)
static LRESULT CALLBACK Help_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
static BOOL HH_AddHTMLPane(HHInfo *pHHInfo)
static void SB_OnPaint(HWND hWnd)
static BOOL HH_AddToolbar(HHInfo *pHHInfo)
static BOOL HH_AddSizeBar(HHInfo *pHHInfo)
static const WCHAR szEmpty[]
static void TB_AddButton(TBBUTTON *pButtons, DWORD dwIndex, DWORD dwID, DWORD dwBitmap)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
void WINAPI DECLSPEC_HOTPATCH OleUninitialize(void)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
#define INTERNET_MAX_URL_LENGTH
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLint GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLenum GLuint GLenum GLsizei const GLchar * buf
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HINSTANCE hhctrl_hinstance
void ReleaseWebBrowser(HHInfo *) DECLSPEC_HIDDEN
void ReleaseSearch(HHInfo *info) DECLSPEC_HIDDEN
void InitIndex(HHInfo *) DECLSPEC_HIDDEN
void DoPageAction(WebBrowserContainer *, DWORD) DECLSPEC_HIDDEN
void InitSearch(HHInfo *info, const char *needle) DECLSPEC_HIDDEN
void ReleaseIndex(HHInfo *) DECLSPEC_HIDDEN
void ResizeWebBrowser(HHInfo *, DWORD, DWORD) DECLSPEC_HIDDEN
BOOL InitWebBrowser(HHInfo *, HWND) DECLSPEC_HIDDEN
#define HHWIN_BUTTON_INDEX
#define HHWIN_BUTTON_FAVORITES
#define HHWIN_PROP_TAB_FAVORITES
#define HHWIN_BUTTON_REFRESH
#define HHWIN_BUTTON_JUMP1
#define HHWIN_PARAM_EXSTYLES
#define HHWIN_BUTTON_STOP
#define HHWIN_BUTTON_SEARCH
#define HHWIN_BUTTON_FORWARD
#define HHWIN_PARAM_TB_FLAGS
#define HHWIN_PARAM_NAV_WIDTH
#define HHWIN_BUTTON_TOC_NEXT
#define HHWIN_BUTTON_OPTIONS
#define HHWIN_BUTTON_SYNC
#define HHWIN_BUTTON_BROWSE_FWD
#define HHWIN_BUTTON_PRINT
#define HHWIN_BUTTON_TOC_PREV
#define HHWIN_BUTTON_ZOOM
#define HHWIN_BUTTON_HISTORY
#define HHWIN_BUTTON_EXPAND
#define HHWIN_BUTTON_NOTES
#define HHWIN_PROP_TAB_SEARCH
#define HHWIN_BUTTON_HOME
#define HHWIN_DEF_BUTTONS
#define HHWIN_PROP_TRI_PANE
#define HHWIN_BUTTON_BACK
#define HHWIN_BUTTON_CONTENTS
#define HHWIN_BUTTON_JUMP2
#define HHWIN_BUTTON_BROWSE_BCK
#define HHWIN_PARAM_STYLES
_Check_return_ long __cdecl strtol(_In_z_ const char *_Str, _Out_opt_ _Deref_post_z_ char **_EndPtr, _In_ int _Radix)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
#define memcpy(s1, s2, n)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static IHTMLWindow2 * window
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define WS_OVERLAPPEDWINDOW
#define LVM_DELETEALLITEMS
struct tagINITCOMMONCONTROLSEX INITCOMMONCONTROLSEX
#define LVM_INSERTCOLUMNA
#define LVS_NOCOLUMNHEADER
#define IDB_HIST_LARGE_COLOR
#define LVM_SETCOLUMNWIDTH
#define TB_GETBUTTONINFOW
#define TB_BUTTONSTRUCTSIZE
#define TVS_SHOWSELALWAYS
#define IDB_STD_LARGE_COLOR
#define TOOLBARCLASSNAMEW
#define LVM_GETSELECTIONMARK
#define TVN_ITEMEXPANDINGW
#define TVIF_SELECTEDIMAGE
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
static const WCHAR windowClassW[]
struct ContentItem * parent
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
static HWND find_window()
void InitContent(HHInfo *info)
void ActivateContentTopic(HWND hWnd, LPCWSTR filename, ContentItem *item)
void ReleaseContent(HHInfo *info)
COLORREF WINAPI SetDCPenColor(_In_ HDC hdc, _In_ COLORREF crColor)
int WINAPI GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount)
DWORD WINAPI GetLastError(void)
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)
HWND WINAPI SetCapture(_In_ HWND hWnd)
DWORD WINAPI GetSysColor(_In_ int)
int WINAPI FrameRect(_In_ HDC, _In_ LPCRECT, _In_ HBRUSH)
#define GetWindowLongPtrW
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI ReleaseCapture(void)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WS_EX_RIGHTSCROLLBAR
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define WS_EX_CONTROLPARENT
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
BOOL WINAPI SetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _In_ LPCMENUITEMINFOW)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
BOOL WINAPI UpdateWindow(_In_ HWND)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
HWND WINAPI GetParent(_In_ HWND)
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
struct _WNDCLASSEXW WNDCLASSEXW
BOOL WINAPI TrackPopupMenu(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _Reserved_ int, _In_ HWND, _Reserved_ LPCRECT)
#define MAKEINTRESOURCEW(i)
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
HBITMAP WINAPI LoadBitmapW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define SetWindowLongPtrW
BOOL WINAPI DestroyWindow(_In_ HWND)
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
struct tagMENUITEMINFOW MENUITEMINFOW
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)