88#define MDI_MAXTITLELENGTH 0xa1
90#define WM_MDICALCCHILDSCROLL 0x003F
93#define MDI_MOREWINDOWSLIMIT 9
95#define MDI_IDC_LISTBOX 100
96#define IDS_MDI_MOREWINDOWS 13
98#define MDIF_NEEDUPDATE 0x0001
173 pHwnd[dwCount] = (
HWND) 0;
234 if (
win == WND_OTHER_PROCESS ||
win == WND_DESKTOP)
239 if (
win->flags & WIN_ISMDICLIENT)
243 WIN_ReleasePtr(
win );
289 if (bNext)
goto found;
297 if (bNext)
goto found;
320 TRACE(
"MDI child id %04x\n", *
id);
324 if(
rect.bottom -
rect.top - delta >= spacing )
325 rect.bottom -= delta;
327 nstagger = (
rect.bottom -
rect.top)/(3 * spacing);
328 lpPos[1].
x = (
rect.right -
rect.left - nstagger * spacing);
329 lpPos[1].
y = (
rect.bottom -
rect.top - nstagger * spacing);
330 lpPos[0].
x = lpPos[0].
y = spacing * (
total%(nstagger+1));
342 TRACE(
"%p, frame menu %p, window menu %p\n",
hwnd, hmenuFrame, hmenuWindow);
344 if (hmenuFrame && !
IsMenu(hmenuFrame))
346 WARN(
"hmenuFrame is not a menu handle\n");
350 if (hmenuWindow && !
IsMenu(hmenuWindow))
352 WARN(
"hmenuWindow is not a menu handle\n");
368 if( hmenuWindow && hmenuWindow != ci->
hWindowMenu )
393 SetMenu(hwndFrame, hmenuFrame);
437 memset(&mii, 0,
sizeof(mii));
445 memset(&mii, 0,
sizeof(mii));
452 TRACE(
"removing %u items including separator\n",
count -
i);
486 buf[1] =
'0' + visible;
496 TRACE(
"MDI child %p is not visible, skipping\n", ci->
child[
i]);
540 TRACE(
"from %p, to %p\n", hwndPrev, hwndTo);
542 if ( hwndTo != hwndPrev )
599 if (new_child !=
NULL)
605 ci->
child = new_child;
642 HWND prevActiveWnd, frame;
643 BOOL isActiveFrameWnd;
667 if( isActiveFrameWnd )
736 for (
i =
total = 0; win_array[
i];
i++)
745 win_array[
total++] = win_array[
i];
747 win_array[
total] = 0;
751 INT delta = 0,
n = 0,
i;
762 TRACE(
"move %p to (%ld,%ld) size [%ld,%ld]\n",
783 int i,
total, rows, columns;
794 for (
i =
total = rows = 0; win_array[
i];
i++)
804 if(
total == (rows * (rows + 2))) rows++;
805 win_array[
total++] = win_array[
i];
807 win_array[
total] = 0;
813 HWND *pWnd = win_array;
815 int x,
y, xsize, ysize;
819 columns =
total/rows;
835 ysize =
rect.bottom / rows;
836 xsize =
rect.right / columns;
838 for (
x =
i = 0,
c = 1;
c <= columns && *pWnd;
c++)
843 ysize =
rect.bottom / rows;
847 for (
r = 1;
r <= rows && *pWnd;
r++,
i++)
881 if( !menu )
return FALSE;
888 ERR(
"system buttons already exist\n");
895 TRACE(
"child %p doesn't have a system menu\n",
hChild);
944 TRACE(
"not inserted\n");
972 if (!menu)
return FALSE;
979 ERR(
"no system buttons then nothing to do\n");
987 memset(&menuInfo, 0,
sizeof(menuInfo));
988 menuInfo.
cbSize =
sizeof(menuInfo);
1005 if ( menuInfo.hbmpItem != 0 )
1057 static const WCHAR lpBracket[] = {
' ',
'-',
' ',
'[',0};
1058 static const WCHAR lpBracket2[] = {
']',0};
1143 TRACE(
"Client created: hwnd %p, Window menu %p, idFirst = %04x\n",
1193 csW->
x, csW->
y, csW->
cx, csW->
cy,
1202 csA->
x, csA->
y, csA->
cx, csA->
cy,
1288 TRACE(
"Adding MDI child %p, # of children %d\n",
1421 if( (
id - 0xf000) & 0xf00f )
break;
1633 if( hMaxChild ==
hwnd )
break;
1659 if (!switchTo) switchTo =
hwnd;
1720 TRACE(
"(%s,%s,%08lx,%d,%d,%d,%d,%p,%p,%08lx)\n",
1748 TRACE(
"(%s,%s,%08lx,%d,%d,%d,%d,%p,%p,%08lx)\n",
1773 switch(
msg->wParam )
1804 RECT childRect, clientRect;
1819 WindowInfo.
cbSize =
sizeof(WindowInfo);
1822 ERR(
"Can't get window info\n");
1826 TRACE(
"CalcChildScroll 1\n");
1837 ERR(
"CalcChildScroll 2\n");
1847 TRACE(
"CalcChildScroll L\n");
1853 UnionRect( &childRect, &clientRect, &childRect );
1854 TRACE(
"CalcChildScroll 3\n");
1930 newPos = curPos -
shift;
1933 newPos = curPos +
shift;
1936 newPos = curPos -
length;
1939 newPos = curPos +
length;
1960 if( newPos > maxPos )
1963 if( newPos < minPos )
2033 pInfo->
ahwnd = ahwnd;
2090 if (cKids == 0 || lpKids ==
NULL)
2092 info.hwndTop = hwndTop;
2135 for (
i =
info.chwnd;
i > 0;)
2157#define MIN_THRESHOLD(xy) (((xy) * 4) / 7)
2158#define MAX_THRESHOLD(xy) (((xy) * 5) / 7)
2163 if (
cx != cxNew ||
cy != cyNew)
2198 if (cKids == 0 || lpKids ==
NULL)
2228 DWORD i, iRow, iColumn, cRows, cColumns,
ret = 0;
2229 INT x,
y,
cx,
cy, cxNew, cyNew, cxWork, cyWork, cxCell, cyCell, cxMin2, cyMin3;
2246 if (cKids == 0 || lpKids ==
NULL)
2248 info.hwndTop = hwndTop;
2289 cColumns =
info.chwnd;
2293 cxCell = cxWork / cColumns;
2294 cyCell = cyWork / cRows;
2295 if (cyCell <= cyMin3 || cxCell >= cxMin2)
2299 cColumns = (
info.chwnd + cRows - 1) / cRows;
2308 cxCell = cxWork / cColumns;
2309 cyCell = cyWork / cRows;
2310 if (cxCell <= cxMin2 || cyCell >= cyMin3)
2314 cRows = (
info.chwnd + cColumns - 1) / cColumns;
2326 for (
i =
info.chwnd;
i > 0;)
2362 if (iColumn >= cColumns)
2392 if (cKids == 0 || lpKids ==
NULL)
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
#define ERROR_NOT_ENOUGH_MEMORY
#define NT_SUCCESS(StatCode)
#define HeapFree(x, y, z)
#define MultiByteToWideChar
static void cleanup(void)
HRSRC WINAPI FindResourceA(HMODULE hModule, LPCSTR name, LPCSTR type)
LPVOID WINAPI LockResource(HGLOBAL handle)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
static VOID BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
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
DWORD_PTR NTAPI NtUserCallTwoParam(DWORD_PTR Param1, DWORD_PTR Param2, DWORD Routine)
@ TWOPARAM_ROUTINE_REDRAWTITLE
NTSTATUS NTAPI NtUserBuildHwndList(HDESK hDesktop, HWND hwndParent, BOOLEAN bChildren, ULONG dwThreadId, ULONG cHwnd, HWND *phwndList, ULONG *pcHwndNeeded)
BOOL NTAPI NtUserSetWindowFNID(HWND hWnd, WORD fnID)
BOOL NTAPI NtUserEndDeferWindowPosEx(HDWP WinPosInfo, BOOL bAsync)
#define memcpy(s1, s2, n)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
unsigned __int3264 UINT_PTR
HMONITOR WINAPI MonitorFromPoint(POINT, DWORD)
_Out_opt_ int _Out_opt_ int * cy
static unsigned __int64 next
const char * SPY_GetMsgName(UINT msg, HWND hWnd)
#define WIN_GetFullHandle(h)
static void MDITile(HWND client, MDICLIENTINFO *ci, WPARAM wParam)
#define MIN_THRESHOLD(xy)
void WINAPI CalcChildScroll(HWND hwnd, INT scroll)
HWND WINAPI CreateMDIWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, INT X, INT Y, INT nWidth, INT nHeight, HWND hWndParent, HINSTANCE hInstance, LPARAM lParam)
LRESULT WINAPI DefMDIChildProcA(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
#define IDS_MDI_MOREWINDOWS
#define MDI_MOREWINDOWSLIMIT
WORD WINAPI TileWindows(HWND hwndParent, UINT wFlags, LPCRECT lpRect, UINT cKids, const HWND *lpKids)
static LRESULT MDI_RefreshMenu(MDICLIENTINFO *)
static LRESULT MDISetMenu(HWND hwnd, HMENU hmenuFrame, HMENU hmenuWindow)
HWND * WIN_ListChildren(HWND hWndparent)
static void MDI_SwitchActiveChild(MDICLIENTINFO *ci, HWND hwndTo, BOOL activate)
LRESULT WINAPI MDIClientWndProcW(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static BOOL MDI_RestoreFrameMenu(HWND, HWND, HBITMAP)
static void MDI_PostUpdate(HWND hwnd, MDICLIENTINFO *ci, WORD recalc)
static LRESULT MDIDestroyChild(HWND client, MDICLIENTINFO *ci, HWND child, BOOL flagDestroy)
static HBITMAP CreateMDIMenuBitmap(void)
static HWND MDI_GetChildByID(HWND hwnd, UINT id, MDICLIENTINFO *ci)
#define WM_MDICALCCHILDSCROLL
void MDI_CalcDefaultChildPos(HWND hwndClient, INT total, LPPOINT lpPos, INT delta, UINT *id)
static BOOL QuerySizeFix(HWND hwnd, LPINT pcx, LPINT pcy)
static void MDI_UpdateFrameText(HWND, HWND, BOOL, LPCWSTR)
LRESULT WINAPI DefFrameProcW(HWND hwnd, HWND hwndMDIClient, UINT message, WPARAM wParam, LPARAM lParam)
WORD WINAPI CascadeWindows(HWND hwndParent, UINT wFlags, LPCRECT lpRect, UINT cKids, const HWND *lpKids)
static LONG MDICascade(HWND client, MDICLIENTINFO *ci)
const struct builtin_class_descr MDICLIENT_builtin_class
WORD WINAPI TileChildWindows(HWND parent, UINT flags)
static LONG MDI_ChildActivate(HWND, HWND)
LRESULT WINAPI DefMDIChildProcW(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
LRESULT WINAPI DefFrameProcA(HWND hwnd, HWND hwndMDIClient, UINT message, WPARAM wParam, LPARAM lParam)
LRESULT WINAPI MDIClientWndProcA(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static BOOL CALLBACK GetCascadeChildProc(HWND hwnd, LPARAM lParam)
static MDICLIENTINFO * get_client_info(HWND client)
static HWND MDI_MoreWindowsDialog(HWND)
LRESULT WINAPI MDIClientWndProc_common(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, BOOL unicode)
static BOOL is_close_enabled(HWND hwnd, HMENU hSysMenu)
HWND WINAPI CreateMDIWindowA(LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, INT X, INT Y, INT nWidth, INT nHeight, HWND hWndParent, HINSTANCE hInstance, LPARAM lParam)
#define MAX_THRESHOLD(xy)
static INT_PTR WINAPI MDI_MoreWindowsDlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
static BOOL MDI_AugmentFrameMenu(HWND, HWND)
void WINAPI ScrollChildren(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static void MDI_ChildGetMinMaxInfo(HWND client, HWND hwnd, MINMAXINFO *lpMinMax)
static HWND MDI_GetWindow(MDICLIENTINFO *clientInfo, HWND hWnd, BOOL bNext, DWORD dwStyleMask)
WORD WINAPI CascadeChildWindows(HWND parent, UINT flags)
#define MDI_MAXTITLELENGTH
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
_In_ DWORD _Out_ _In_ WORD wFlags
int WINAPI SetMapMode(_In_ HDC, _In_ int)
HGDIOBJ WINAPI GetStockObject(_In_ int)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
BOOL WINAPI DeleteDC(_In_ HDC)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)
HWND WINAPI ChildWindowFromPoint(_In_ HWND, _In_ POINT)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI IsWindow(_In_opt_ HWND)
HWND WINAPI GetActiveWindow(void)
BOOL WINAPI SetMenu(_In_ HWND, _In_opt_ HMENU)
#define GetWindowLongPtrW
#define HBMMENU_MBAR_RESTORE
#define LB_SETHORIZONTALEXTENT
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)
BOOL WINAPI SetMenuDefaultItem(_In_ HMENU, _In_ UINT, _In_ UINT)
UINT WINAPI GetMenuState(_In_ HMENU, _In_ UINT, _In_ UINT)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
UINT WINAPI ArrangeIconicWindows(_In_ HWND)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define SW_SCROLLCHILDREN
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI GetWindowInfo(_In_ HWND, _Inout_ PWINDOWINFO)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define HBMMENU_MBAR_MINIMIZE
HBRUSH WINAPI GetSysColorBrush(_In_ int)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
HWND WINAPI GetTopWindow(_In_opt_ HWND)
struct tagCREATESTRUCTA * LPCREATESTRUCTA
BOOL WINAPI SetForegroundWindow(_In_ HWND)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
BOOL WINAPI AdjustWindowRectEx(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL, _In_ DWORD)
#define SW_SHOWNOACTIVATE
BOOL WINAPI DeleteMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
BOOL WINAPI IsMenu(_In_ HMENU)
#define GetWindowLongPtrA
UINT WINAPI GetMenuItemID(_In_ HMENU, _In_ int)
HMENU WINAPI GetSystemMenu(_In_ HWND, _In_ BOOL)
BOOL WINAPI InsertMenuA(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT_PTR, _In_opt_ LPCSTR)
BOOL WINAPI EnumChildWindows(_In_opt_ HWND, _In_ WNDENUMPROC, _In_ LPARAM)
int WINAPI SetScrollPos(_In_ HWND, _In_ int, _In_ int, _In_ BOOL)
LRESULT WINAPI SendMessageTimeoutW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM, _In_ UINT, _In_ UINT, _Out_opt_ PDWORD_PTR)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
BOOL WINAPI IsIconic(_In_ HWND)
BOOL WINAPI GetScrollRange(_In_ HWND, _In_ int, _Out_ LPINT, _Out_ LPINT)
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define WM_MDIREFRESHMENU
#define WM_MDIICONARRANGE
HWND WINAPI GetDesktopWindow(void)
BOOL WINAPI IsZoomed(_In_ HWND)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI TranslateMDISysAccel(_In_ HWND, _In_ LPMSG)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
#define MAKELRESULT(l, h)
HWND WINAPI SetFocus(_In_opt_ HWND)
BOOL WINAPI DrawMenuBar(_In_ HWND)
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 DrawIconEx(_In_ HDC, _In_ int, _In_ int, _In_ HICON, _In_ int, _In_ int, _In_ UINT, _In_opt_ HBRUSH, _In_ UINT)
BOOL WINAPI RemoveMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
#define COLOR_APPWORKSPACE
HDC WINAPI GetDC(_In_opt_ HWND)
INT_PTR WINAPI DialogBoxIndirectParamA(_In_opt_ HINSTANCE, _In_ LPCDLGTEMPLATE, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
BOOL WINAPI IsWindowEnabled(_In_ HWND)
#define HBMMENU_MBAR_CLOSE
HWND WINAPI GetParent(_In_ HWND)
BOOL WINAPI DestroyMenu(_In_ HMENU)
BOOL WINAPI GetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOW)
struct tagCLIENTCREATESTRUCT * LPCLIENTCREATESTRUCT
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
#define MDITILE_SKIPDISABLED
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
HDWP WINAPI DeferWindowPos(_In_ HDWP, _In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define MDITILE_HORIZONTAL
#define HBMMENU_MBAR_CLOSE_D
int WINAPI SetScrollInfo(_In_ HWND, _In_ int, _In_ LPCSCROLLINFO, _In_ BOOL)
BOOL WINAPI ShowScrollBar(_In_ HWND, _In_ int, _In_ BOOL)
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO)
HWND WINAPI FindWindowW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
int WINAPI GetScrollPos(_In_ HWND, _In_ int)
#define MAKEINTRESOURCEW(i)
HBITMAP WINAPI LoadBitmapW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
BOOL WINAPI UnionRect(_Out_ LPRECT, _In_ LPCRECT, _In_ LPCRECT)
INT WINAPI InternalGetWindowText(_In_ HWND hWnd, _Out_writes_to_(cchMaxCount, return+1) LPWSTR pString, _In_ int cchMaxCount)
#define SetWindowLongPtrW
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
int WINAPI ScrollWindowEx(_In_ HWND, _In_ int, _In_ int, _In_opt_ LPCRECT, _In_opt_ LPCRECT, _In_opt_ HRGN, _Out_opt_ LPRECT, _In_ UINT)
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
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)
HMENU WINAPI GetMenu(_In_ HWND)
SHORT WINAPI GetKeyState(_In_ int)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
HDWP WINAPI BeginDeferWindowPos(_In_ int)
BOOL WINAPI AppendMenuW(_In_ HMENU, _In_ UINT, _In_ UINT_PTR, _In_opt_ LPCWSTR)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)