31#define NONAMELESSUNION
48WINHELP_GLOBALS Globals = {3,
NULL,
TRUE,
NULL,
NULL,
NULL,
NULL,
NULL, {{{
NULL,
NULL}},0},
NULL};
50#define CTL_ID_BUTTON 0x700
51#define CTL_ID_TEXT 0x701
62 {-10, 0, 0, 0, 400, 0, 0, 0,
DEFAULT_CHARSET, 0, 0, 0, 32, {
'H',
'e',
'l',
'v',0}},
63 {-12, 0, 0, 0, 700, 0, 0, 0,
DEFAULT_CHARSET, 0, 0, 0, 32, {
'H',
'e',
'l',
'v',0}},
64 {-12, 0, 0, 0, 700, 0, 0, 0,
DEFAULT_CHARSET, 0, 0, 0, 32, {
'H',
'e',
'l',
'v',0}},
65 {-12, 0, 0, 0, 400, 0, 0, 0,
DEFAULT_CHARSET, 0, 0, 0, 32, {
'H',
'e',
'l',
'v',0}},
66 {-12, 0, 0, 0, 700, 0, 0, 0,
DEFAULT_CHARSET, 0, 0, 0, 32, {
'H',
'e',
'l',
'v',0}},
67 {-10, 0, 0, 0, 700, 0, 0, 0,
DEFAULT_CHARSET, 0, 0, 0, 32, {
'H',
'e',
'l',
'v',0}},
68 { -8, 0, 0, 0, 400, 0, 0, 0,
DEFAULT_CHARSET, 0, 0, 0, 32, {
'H',
'e',
'l',
'v',0}}};
94 if (
rd->where >=
rd->ptr)
return 1;
95 if (
rd->where +
cb >
rd->ptr)
129 cp =
rd.char_pos_rel;
134 pt.x = 0;
pt.y = ptl.
y;
325 if (
parent->page->file->has_popup_color)
361 if (cds->
dwData != 0xA1DE505)
373 WINE_TRACE(
"Got[%u]: cmd=%u data=%08x fn=%s\n",
453 text_top =
rect.top + button_box_rect.
bottom - button_box_rect.
top;
458 rect.bottom - text_top, 0);
471 for (
b =
win->first_button;
b;
b = bp)
488 for (
i = 0;
i <
win->back.index;
i++)
505 for (curr =
page->first_link; curr; curr =
next)
531 if (!--
win->ref_count)
592 return wpage->
page->
file->lpszTitle;
617 if (
win->back.index ==
num)
622 (
num - 1) *
sizeof(
win->back.set[0]));
625 win->back.set[
win->back.index++] = *wpage;
636 POINTL mouse_ptl, char_ptl, char_next_ptl;
648 if (
link->cpMin <=
cp && cp <= link->cpMax)
658 if ((mouse_ptl.
x < char_ptl.x + hslink->
x) ||
659 (mouse_ptl.
x >= char_ptl.x + hslink->
x + hslink->
width) ||
660 (mouse_ptl.
y < char_ptl.y + hslink->
y) ||
661 (mouse_ptl.
y >= char_ptl.y + hslink->
y + hslink->
height))
665 if (char_next_ptl.y != char_ptl.y || mouse_ptl.
x >= char_next_ptl.x)
738 flags &= ~SWP_NOSIZE;
744 flags &= ~SWP_NOMOVE;
783 if (!bPopup && wpage->
page && remember)
794 if (bPrimary && wpage->
page)
840 for (macro = wpage->
page->
file->first_macro; macro; macro = macro->
next)
911 switch (
link->cookie)
916 if (
link->window == -1)
1060 NONCLIENTMETRICSW ncm;
1063 ncm.cbSize =
sizeof(NONCLIENTMETRICSW);
1065 sizeof(NONCLIENTMETRICSW), &ncm, 0);
1087 if (
x + 2 * button_size.
cx <= winpos->
cx)
1088 x += button_size.
cx;
1090 x = 0,
y += button_size.
cy;
1092 winpos->
cy =
y + (
x ? button_size.
cy : 0);
1141 r.right =
r.left + 30 *
tm.tmAveCharWidth;
1144 if (
r.left < 0) {
r.right -=
r.left;
r.left = 0;}
1145 if (
r.top < 0) {
r.bottom -=
r.top;
r.top = 0;}
1181 len = ptr2 ? ptr2 - ptr1 :
strlen(ptr1);
1194 win->hHistoryWnd = 0;
1271 id->offset = *(
long*)(
id->hlpfile->kwdata +
id->offset + 9);
1272 if (
id->offset == 0xFFFFFFFF)
1377 if (
win->font_scale != 0)
1379 win->font_scale = 0;
1386 if (
win->font_scale != 1)
1388 win->font_scale = 1;
1395 if (
win->font_scale != 2)
1397 win->font_scale = 2;
1475 switch (
win->font_scale)
1567 memset(&psp, 0,
sizeof(psp));
1568 psp.
dwSize =
sizeof(psp);
1582 memset(&psHead, 0,
sizeof(psHead));
1583 psHead.
dwSize =
sizeof(psHead);
1592 psHead.u3.
phpage = psPage;
1611 WNDCLASSEXA class_main, class_button_box, class_history;
1613 class_main.
cbSize =
sizeof(class_main);
1628 class_button_box = class_main;
1634 class_history = class_main;
1652 static CHAR default_wndname[] =
"main";
1653 LPSTR wndname = default_wndname;
1668 if (*
cmdline++ ==
' ')
continue;
char * strcat(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
char * strchr(const char *String, int ch)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
const char MAIN_WIN_CLASS_NAME[]
const char STRING_BUTTON[]
const char HISTORY_WIN_CLASS_NAME[]
const char BUTTON_BOX_WIN_CLASS_NAME[]
static LRESULT WINHELP_HandleCommand(HWND hSrcWnd, LPARAM lParam)
static void WINHELP_DeleteButtons(WINHELP_WINDOW *win)
BOOL WINHELP_CreateHelpWindow(WINHELP_WNDPAGE *wpage, int nCmdShow, BOOL remember)
static DWORD CALLBACK WINHELP_RtfStreamIn(DWORD_PTR cookie, BYTE *buff, LONG cb, LONG *pcb)
static void WINHELP_DeleteWindow(WINHELP_WINDOW *win)
WINHELP_WINDOW * WINHELP_GrabWindow(WINHELP_WINDOW *win)
HLPFILE * WINHELP_LookupHelpFile(LPCSTR lpszFile)
BOOL WINHELP_OpenHelpWindow(HLPFILE_PAGE *(*lookup)(HLPFILE *, LONG, ULONG *), HLPFILE *hlpfile, LONG val, HLPFILE_WINDOWINFO *wi, int nCmdShow)
static BOOL WINHELP_HandleTextMouse(WINHELP_WINDOW *win, UINT msg, LPARAM lParam)
static LRESULT CALLBACK WINHELP_MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
static HLPFILE_LINK * WINHELP_FindLink(WINHELP_WINDOW *win, LPARAM pos)
BOOL WINHELP_ReleaseWindow(WINHELP_WINDOW *win)
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE prev, LPSTR cmdline, int show)
static LRESULT CALLBACK WINHELP_ButtonWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
BOOL WINHELP_CreateIndexWindow(BOOL is_search)
static BOOL WINHELP_CheckPopup(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *lret)
static char * WINHELP_GetCaption(WINHELP_WNDPAGE *wpage)
static INT_PTR CALLBACK WINHELP_SearchDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
static void WINHELP_SetupText(HWND hTextWnd, WINHELP_WINDOW *win, ULONG relative)
static INT_PTR CALLBACK WINHELP_IndexDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
struct WINHELP * LPWINHELP
static void cb_KWBTree(void *p, void **next, void *cookie)
static LRESULT CALLBACK WINHELP_ButtonBoxWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
static LRESULT CALLBACK WINHELP_RicheditWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
void WINHELP_LayoutMainWindow(WINHELP_WINDOW *win)
void WINHELP_DeleteBackSet(WINHELP_WINDOW *win)
static HLPFILE_WINDOWINFO * WINHELP_GetPopupWindowInfo(HLPFILE *hlpfile, WINHELP_WINDOW *parent, LPARAM mouse)
static void WINHELP_RememberPage(WINHELP_WINDOW *win, WINHELP_WNDPAGE *wpage)
static BOOL WINHELP_HasWorkingWindow(void)
static BOOL WINHELP_RegisterWinClasses(void)
static void WINHELP_DeletePageLinks(HLPFILE_PAGE *page)
static INT WINHELP_MessageBoxIDS_s(UINT ids_text, LPCSTR str, UINT ids_title, WORD type)
static LRESULT CALLBACK WINHELP_HistoryWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
static void WINHELP_InitFonts(HWND hWnd)
HLPFILE_WINDOWINFO * WINHELP_GetWindowInfo(HLPFILE *hlpfile, LPCSTR name)
BOOL WINHELP_GetOpenFileName(LPSTR lpszFile, int len)
VOID WINAPI InitCommonControls(void)
INT_PTR WINAPI PropertySheetA(LPCPROPSHEETHEADERA lppsh)
HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(LPCPROPSHEETPAGEA lpPropSheetPage)
BOOL WINAPI GetOpenFileNameA(OPENFILENAMEA *ofn)
#define HeapFree(x, y, z)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
DWORD WINAPI GetCurrentDirectoryA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
DWORD WINAPI SearchPathA(IN LPCSTR lpPath OPTIONAL, IN LPCSTR lpFileName, IN LPCSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPSTR lpBuffer, OUT LPSTR *lpFilePart OPTIONAL)
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
static unsigned char buff[32768]
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLubyte GLubyte GLubyte GLubyte w
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
BOOL HLPFILE_BrowsePage(HLPFILE_PAGE *page, struct RtfData *rd, unsigned font_scale, unsigned relative)
void HLPFILE_BPTreeEnum(BYTE *buf, HLPFILE_BPTreeCallback cb, void *cookie)
HLPFILE_PAGE * HLPFILE_PageByHash(HLPFILE *hlpfile, LONG lHash, ULONG *relative)
LONG HLPFILE_Hash(LPCSTR lpszContext)
void HLPFILE_FreeHlpFile(HLPFILE *hlpfile)
HLPFILE_PAGE * HLPFILE_PageByOffset(HLPFILE *hlpfile, LONG offset, ULONG *relative)
HLPFILE * HLPFILE_ReadHlpFile(LPCSTR lpszPath)
static const WCHAR emptyW[]
void CALLBACK MACRO_Print(void)
void CALLBACK MACRO_SetContents(LPCSTR str, LONG u)
void CALLBACK MACRO_BookmarkDefine(void)
void CALLBACK MACRO_CopyDialog(void)
void CALLBACK MACRO_JumpContents(LPCSTR lpszPath, LPCSTR lpszWindow)
void CALLBACK MACRO_CreateButton(LPCSTR id, LPCSTR name, LPCSTR macro)
void CALLBACK MACRO_Exit(void)
void CALLBACK MACRO_PopupContext(LPCSTR str, LONG u)
void CALLBACK MACRO_JumpContext(LPCSTR lpszPath, LPCSTR lpszWindow, LONG context)
void CALLBACK MACRO_PrinterSetup(void)
void CALLBACK MACRO_FileOpen(void)
void CALLBACK MACRO_HelpOnTop(void)
void CALLBACK MACRO_About(void)
void CALLBACK MACRO_JumpHash(LPCSTR lpszPath, LPCSTR lpszWindow, LONG lHash)
void CALLBACK MACRO_History(void)
void CALLBACK MACRO_Annotate(void)
void CALLBACK MACRO_HelpOn(void)
void CALLBACK MACRO_DisableButton(LPCSTR id)
BOOL MACRO_ExecuteMacro(struct tagWinHelp *, LPCSTR)
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static HMODULE MODULEINFO DWORD cb
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
struct _PSP * HPROPSHEETPAGE
#define WS_OVERLAPPEDWINDOW
static unsigned __int64 next
#define RICHEDIT_CLASS20A
#define EM_SETTARGETDEVICE
#define ENM_REQUESTRESIZE
_CRT_RESTORE_GCC_WARNINGS _CRT_DISABLE_GCC_WARNINGS _Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
WINHELP_WINDOW * active_popup
WINHELP_WINDOW * active_win
WINHELP_WINDOW * win_list
HLPFILE_WINDOWINFO * wininfo
HLPFILE_WINDOWINFO * windows
struct tagHlpFileLink * next
struct tagHlpFileMacro * next
HLPFILE_MACRO * first_macro
struct tagHlpFileFile * file
HLPFILE_WINDOWINFO * info
TW_UINT32 TW_UINT16 TW_UINT16 MSG
BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW)
BOOL WINAPI TextOutA(_In_ HDC hdc, _In_ int x, _In_ int y, _In_reads_(c) LPCSTR lpString, _In_ int c)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
BOOL WINAPI GetTextExtentPointA(_In_ HDC hdc, _In_reads_(c) LPCSTR lpString, _In_ int c, _Out_ LPSIZE lpsz)
#define STID_HLPFILE_ERROR_s
#define MNID_OPTS_FONTS_NORMAL
#define MNID_CTXT_FONTS_SMALL
#define MNID_OPTS_FONTS_SMALL
#define MNID_OPTS_FONTS_LARGE
#define MNID_HELP_HELPTOP
#define STID_HELP_FILES_HLP
#define MNID_CTXT_ANNOTATE
#define MNID_EDIT_COPYDLG
#define STID_FILE_NOT_FOUND_s
#define MNID_CTXT_FONTS_LARGE
#define MNID_EDIT_ANNOTATE
#define MNID_OPTS_HISTORY
#define STID_NOT_IMPLEMENTED
#define MNID_CTXT_FONTS_NORMAL
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define SetWindowLongPtrA
#define HELP_CONTEXTPOPUP
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
BOOL WINAPI SetWindowTextA(_In_ HWND, _In_opt_ LPCSTR)
#define GetWindowLongPtrW
BOOL WINAPI TranslateMessage(_In_ const MSG *)
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR 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 ShowWindow(_In_ HWND, _In_ int)
DWORD WINAPI GetMessagePos(void)
BOOL WINAPI AdjustWindowRect(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_WINDOWPOSCHANGING
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
int WINAPI MessageBoxA(_In_opt_ HWND hWnd, _In_opt_ LPCSTR lpText, _In_opt_ LPCSTR lpCaption, _In_ UINT uType)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
#define GetWindowLongPtrA
int WINAPI LoadStringA(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPSTR lpBuffer, _In_ int cchBufferMax)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
ATOM WINAPI RegisterClassExA(_In_ CONST WNDCLASSEXA *)
HWND WINAPI SetActiveWindow(_In_ HWND)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
#define MAKEINTRESOURCEA(i)
HWND WINAPI GetParent(_In_ HWND)
HACCEL WINAPI LoadAcceleratorsW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
BOOL WINAPI DestroyMenu(_In_ HMENU)
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
int WINAPI TranslateAcceleratorW(_In_ HWND, _In_ HACCEL, _In_ LPMSG)
BOOL WINAPI TrackPopupMenu(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _Reserved_ int, _In_ HWND, _Reserved_ LPCRECT)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define SetWindowLongPtrW
#define WM_WINDOWPOSCHANGED
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 CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)