23#if defined(__GNUC__) || defined(__clang__)
24#define GCCU(x) x __attribute__((unused))
32#ifdef SetWindowLongPtr
33#undef SetWindowLongPtr
40#ifdef GetWindowLongPtr
41#undef GetWindowLongPtr
49#pragma push_macro("SubclassWindow")
62#define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
65#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
72template <DWORD t_dwStyle = 0, DWORD t_dwExStyle = 0>
95template <DWORD t_dwStyle = 0, DWORD t_dwExStyle = 0,
class TWinTraits = CControlWinTraits>
101 return dwStyle | t_dwStyle | TWinTraits::GetWndStyle(dwStyle);
106 return dwExStyle | t_dwExStyle | TWinTraits::GetWndExStyle(dwExStyle);
176 m_relproc =
DWORD(
reinterpret_cast<char*
>(
proc) - (
reinterpret_cast<char*
>(
this) +
sizeof(thunkCode)));
182#elif defined(_AMD64_)
219 m_mov_r0 = 0xE59F0000;
220 m_mov_pc = 0xE59FF000;
221 m_this = (
DWORD)pThis;
229#error ARCH not supported
295 return ::ArrangeIconicWindows(
m_hWnd);
306 return ::BeginPaint(
m_hWnd, lpPaint);
312 return ::BringWindowToTop(
m_hWnd);
318 if (hWndCenter ==
NULL)
320 if (hWndCenter ==
NULL)
322 RECT wndCenterRect, wndRect;
325 int wndCenterWidth = wndCenterRect.
right - wndCenterRect.
left;
326 int wndCenterHeight = wndCenterRect.
bottom - wndCenterRect.
top;
327 int wndWidth = wndRect.
right - wndRect.
left;
328 int wndHeight = wndRect.
bottom - wndRect.
top;
329 int xPos = wndCenterRect.
left + ((wndCenterWidth - wndWidth + 1) >> 1);
330 int yPos = wndCenterRect.
top + ((wndCenterHeight - wndHeight + 1) >> 1);
357 return ::MoveWindow(
m_hWnd,
360 wndWidth, wndHeight,
TRUE);
366 return ::ChangeClipboardChain(
m_hWnd, hWndNewNext);
372 return ::CheckDlgButton(
m_hWnd, nIDButton, nCheck);
378 return ::CheckRadioButton(
m_hWnd, nIDFirstButton, nIDLastButton, nIDCheckButton);
396 return ::ClientToScreen(
m_hWnd, lpPoint);
409 lpRect->
left = leftTop.
x;
410 lpRect->
top = leftTop.
y;
411 lpRect->
right = rightBottom.
x;
412 lpRect->
bottom = rightBottom.
y;
427 rect.m_lpRect->right -
rect.m_lpRect->left,
428 rect.m_lpRect->bottom -
rect.m_lpRect->top,
431 _AtlBaseModule.GetModuleInstance(),
441 return ::CreateCaret(
m_hWnd, pBitmap, 0, 0);
483 return ::DlgDirList(
m_hWnd, lpPathSpec, nIDListBox, nIDStaticPath, nFileType);
489 return ::DlgDirListComboBox(
m_hWnd, lpPathSpec, nIDComboBox, nIDStaticPath, nFileType);
495 return ::DlgDirSelectEx(
m_hWnd, lpString, nCount, nIDListBox);
501 return ::DlgDirSelectComboBoxEx(
m_hWnd, lpString, nCount, nIDComboBox);
514 return ::DrawMenuBar(
m_hWnd);
520 return ::EnableScrollBar(
m_hWnd, uSBFlags, uArrowFlags);
544 return ::GetClientRect(
m_hWnd, lpRect);
581 idHWndPair.
nID = nID;
584 return idHWndPair.
hWnd;
596 return ::GetDlgCtrlID(
m_hWnd);
608 return ::GetDlgItem(
m_hWnd, nID);
617 return ::GetDlgItemInt(
m_hWnd, nID, lpTrans, bSigned);
638 return CWindow(
item).GetWindowText(strText);
679 return ::GetLastActivePopup(
m_hWnd);
691 return ::GetNextDlgGroupItem(
m_hWnd, hWndCtl, bPrevious);
697 return ::GetNextDlgTabItem(
m_hWnd, hWndCtl, bPrevious);
709 return ::GetScrollInfo(
m_hWnd, nBar, lpScrollInfo);
715 return ::GetScrollPos(
m_hWnd, nBar);
721 return ::GetScrollRange(
m_hWnd, nBar, lpMinPos, lpMaxPos);
733 return ::GetSystemMenu(
m_hWnd, bRevert);
757 return ::GetTopWindow(
m_hWnd);
763 return ::GetUpdateRect(
m_hWnd, lpRect, bErase);
775 return ::GetWindow(
m_hWnd, nCmd);
781 return ::GetWindowContextHelpId(
m_hWnd);
787 return ::GetWindowDC(
m_hWnd);
793 return ::GetWindowLong(
m_hWnd, nIndex);
799 return ::GetWindowLongPtr(
m_hWnd, nIndex);
805 return ::GetWindowPlacement(
m_hWnd, lpwndpl);
819 return ::GetWindowRect(
m_hWnd, lpRect);
841 strText.ReleaseBuffer(
len);
863 return ::GetWindowTextLength(
m_hWnd);
869 return ::GetWindowThreadProcessId(
m_hWnd,
NULL);
887 return ::HideCaret(
m_hWnd);
893 return ::HiliteMenuItem(
m_hWnd, hMenu, uHiliteItem, uHilite);
899 return ::InvalidateRect(
m_hWnd,
NULL, bErase);
905 return ::InvalidateRect(
m_hWnd, lpRect, bErase);
923 return ::IsDialogMessage(
m_hWnd, lpMsg);
929 return ::IsDlgButtonChecked(
m_hWnd, nIDButton);
935 return ::IsIconic(
m_hWnd);
949 return ::IsWindow(
m_hWnd);
955 return ::IsWindowEnabled(
m_hWnd);
961 return ::IsWindowVisible(
m_hWnd);
967 return ::IsWindowUnicode(
m_hWnd);
973 return ::IsZoomed(
m_hWnd);
979 return ::KillTimer(
m_hWnd, nIDEvent);
986 return ::LockWindowUpdate(
m_hWnd);
987 return ::LockWindowUpdate(
NULL);
993 return ::MapWindowPoints(
m_hWnd, hWndTo, lpPoint, nCount);
1005 return ::MessageBox(
m_hWnd, lpszText, lpszCaption, nType);
1029 return ::MoveWindow(
m_hWnd,
x,
y, nWidth, nHeight, bRepaint);
1041 return ::OpenClipboard(
m_hWnd);
1071 return ::RedrawWindow(
m_hWnd, lpRectUpdate, hRgnUpdate,
flags);
1083 RECT clientRect, wndRect;
1095 return ::ScreenToClient(
m_hWnd, lpPoint);
1101 return ::ScrollWindow(
m_hWnd, xAmount, yAmount, lpRect, lpClipRect);
1107 return ::ScrollWindowEx(
m_hWnd,
dx,
dy, lpRectScroll, lpRectClip, hRgnUpdate, lpRectUpdate,
flags);
1165 return ::SetActiveWindow(
m_hWnd);
1171 return ::SetCapture(
m_hWnd);
1177 return ::SetClipboardViewer(
m_hWnd);
1189 return ::SetDlgItemInt(
m_hWnd, nID, nValue, bSigned);
1195 return ::SetDlgItemText(
m_hWnd, nID, lpszString);
1201 return ::SetFocus(
m_hWnd);
1225 return ::SetMenu(
m_hWnd, hMenu);
1231 return ::SetParent(
m_hWnd, hWndNewParent);
1243 return ::SetScrollInfo(
m_hWnd, nBar, lpScrollInfo, bRedraw);
1249 return ::SetScrollPos(
m_hWnd, nBar, nPos, bRedraw);
1255 return ::SetScrollRange(
m_hWnd, nBar, nMinPos, nMaxPos, bRedraw);
1261 return ::SetTimer(
m_hWnd, nIDEvent, nElapse,
reinterpret_cast<TIMERPROC>(lpfnTimer));
1267 return ::SetWindowContextHelpId(
m_hWnd, dwContextHelpId);
1273 return ::SetWindowLong(
m_hWnd, nIndex, dwNewLong);
1279 return ::SetWindowLongPtr(
m_hWnd, nIndex, dwNewLong);
1285 return ::SetWindowPlacement(
m_hWnd, lpwndpl);
1291 return ::SetWindowPos(
m_hWnd, hWndInsertAfter,
x,
y,
cx,
cy, nFlags);
1297 return ::SetWindowRgn(
m_hWnd,
hRgn, bRedraw);
1303 return ::SetWindowText(
m_hWnd, lpszString);
1318 return ::ShowCaret(
m_hWnd);
1324 return ::ShowOwnedPopups(
m_hWnd, bShow);
1330 return ::ShowScrollBar(
m_hWnd, nBar, bShow);
1336 return ::ShowWindow(
m_hWnd, nCmdShow);
1342 return ::ShowWindowAsync(
m_hWnd, nCmdShow);
1348 return ::UpdateWindow(
m_hWnd);
1354 return ::ValidateRect(
m_hWnd, lpRect);
1372template <
class TBase = CWindow>
1395template <
class TBase = CWindow>
1465 pThis->
m_dwState &= ~WINSTATE_DESTROYED;
1478template <
class T,
class TBase = CWindow>
1497 _AtlWinModule.AddCreateWndData(&
m_thunk.
cd,
this);
1499 pImpl =
static_cast<T*
>(
this);
1513 _AtlWinModule.AddCreateWndData(&
m_thunk.
cd,
this);
1515 pImpl =
static_cast<T*
>(
this);
1516 return ::DialogBoxParam(_AtlBaseModule.GetResourceInstance(),
MAKEINTRESOURCE(pImpl->IDD),
hWndParent, T::StartDialogProc, dwInitParam);
1521 return ::EndDialog(
m_hWnd, nRetCode);
1526 return ::DestroyWindow(
m_hWnd);
1530template <
class TBase = CWindow,
class TWinTraits = CControlWinTraits>
1567 if (oldWindowProc ==
NULL)
1587 if (!bForce && oldWindowProc != subclassedProc)
1604 return TWinTraits::GetWndStyle(dwStyle);
1609 return TWinTraits::GetWndExStyle(dwExStyle);
1663 if (handled ==
FALSE)
1682 pThis->
m_dwState &= ~WINSTATE_DESTROYED;
1704 _AtlWinModule.AddCreateWndData(&
m_thunk.
cd,
this);
1708 rect.m_lpRect = &TBase::rcDefault;
1711 rect.m_lpRect->top,
rect.m_lpRect->right -
rect.m_lpRect->left,
rect.m_lpRect->bottom -
rect.m_lpRect->top,
1712 hWndParent, MenuOrID.
m_hMenu, _AtlBaseModule.GetModuleInstance(), lpCreateParam);
1721template <
class T,
class TBase = CWindow,
class TWinTraits = CControlWinTraits>
1743 if (T::GetWndClassInfo().m_lpszOrigName ==
NULL)
1747 if (szWindowName ==
NULL)
1748 szWindowName = T::GetWndCaption();
1749 dwStyle = T::GetWndStyle(dwStyle);
1750 dwExStyle = T::GetWndExStyle(dwExStyle);
1753 dwExStyle, MenuOrID, atom, lpCreateParam);
1757template <
class TBase = CWindow,
class TWinTraits = CControlWinTraits>
1762 using TBase::m_hWnd;
1811 if (oldWindowProc ==
NULL)
1879 if (handled ==
FALSE)
1898#define BEGIN_MSG_MAP(theClass) \
1900 BOOL ProcessWindowMessage(HWND GCCU(hWnd), UINT GCCU(uMsg), WPARAM GCCU(wParam), LPARAM GCCU(lParam), LRESULT &GCCU(lResult), DWORD dwMsgMapID = 0) \
1902 BOOL GCCU(bHandled) = TRUE; \
1909 switch(dwMsgMapID) \
1913#define ALT_MSG_MAP(map) \
1917#define END_MSG_MAP() \
1926#define MESSAGE_HANDLER(msg, func) \
1930 lResult = func(uMsg, wParam, lParam, bHandled); \
1935#define MESSAGE_RANGE_HANDLER(msgFirst, msgLast, func) \
1936 if (uMsg >= msgFirst && uMsg <= msgLast) \
1939 lResult = func(uMsg, wParam, lParam, bHandled); \
1944#define COMMAND_HANDLER(id, code, func) \
1945 if (uMsg == WM_COMMAND && id == LOWORD(wParam) && code == HIWORD(wParam)) \
1948 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1953#define COMMAND_ID_HANDLER(id, func) \
1954 if (uMsg == WM_COMMAND && id == LOWORD(wParam)) \
1957 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1962#define COMMAND_CODE_HANDLER(code, func) \
1963 if (uMsg == WM_COMMAND && code == HIWORD(wParam)) \
1966 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1971#define COMMAND_RANGE_HANDLER(idFirst, idLast, func) \
1972 if (uMsg == WM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
1975 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1980#define NOTIFY_CODE_HANDLER(cd, func) \
1981 if (uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \
1984 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
1989#define NOTIFY_HANDLER(id, cd, func) \
1990 if (uMsg == WM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom && cd == ((LPNMHDR)lParam)->code) \
1993 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
1998#define CHAIN_MSG_MAP(theChainClass) \
2000 if (theChainClass::ProcessWindowMessage(hWnd, uMsg, wParam, lParam, lResult)) \
2004#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd) \
2005static ATL::CWndClassInfo& GetWndClassInfo() \
2007 static ATL::CWndClassInfo wc = \
2009 { sizeof(WNDCLASSEX), style, StartWindowProc, \
2010 0, 0, NULL, NULL, NULL, (HBRUSH)(bkgnd + 1), NULL, WndClassName, NULL }, \
2011 NULL, NULL, IDC_ARROW, TRUE, 0, _T("") \
2046#pragma pop_macro("SubclassWindow")
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
LRESULT DefWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
WNDPROC m_pfnSuperWindowProc
CContainedWindowT(LPCTSTR lpszClassName, CMessageMap *pObject, DWORD dwMsgMapID=0)
static LRESULT CALLBACK StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
BOOL SubclassWindow(HWND hWnd)
HWND UnsubclassWindow(BOOL bForce=FALSE)
const _ATL_MSG * m_pCurrentMsg
CContainedWindowT(CMessageMap *pObject, DWORD dwMsgMapID=0)
static INT_PTR CALLBACK DialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
virtual void OnFinalMessage(HWND)
static INT_PTR CALLBACK StartDialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
virtual ~CDialogImplBaseT()
virtual DLGPROC GetDialogProc()
BOOL EndDialog(_In_ int nRetCode)
HWND Create(HWND hWndParent, LPARAM dwInitParam=0)
INT_PTR DoModal(HWND hWndParent=::GetActiveWindow(), LPARAM dwInitParam=0)
virtual BOOL ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID)=0
static DWORD GetWndExStyle(DWORD dwExStyle)
static DWORD GetWndStyle(DWORD dwStyle)
static DWORD GetWndExStyle(DWORD dwExStyle)
static DWORD GetWndStyle(DWORD dwStyle)
BOOL SubclassWindow(HWND hWnd)
static LRESULT CALLBACK StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
virtual void OnFinalMessage(HWND)
HWND UnsubclassWindow(BOOL bForce=FALSE)
static DWORD GetWndExStyle(DWORD dwExStyle)
HWND Create(HWND hWndParent, _U_RECT rect, LPCTSTR szWindowName, DWORD dwStyle, DWORD dwExStyle, _U_MENUorID MenuOrID, ATOM atom, LPVOID lpCreateParam)
static DWORD GetWndStyle(DWORD dwStyle)
LRESULT DefWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
virtual WNDPROC GetWindowProc()
WNDPROC m_pfnSuperWindowProc
const _ATL_MSG * m_pCurrentMsg
virtual ~CWindowImplRoot()
HWND Create(HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
static LPCTSTR GetWndCaption()
HWND SetParent(HWND hWndNewParent)
HWND SetClipboardViewer()
DWORD GetWindowContextHelpId() const
UINT_PTR SetTimer(UINT_PTR nIDEvent, UINT nElapse, void(CALLBACK *lpfnTimer)(HWND, UINT, UINT_PTR, DWORD)=NULL)
BOOL CreateCaret(HBITMAP pBitmap)
BOOL LockWindowUpdate(BOOL bLock=TRUE)
BOOL GetDlgItemText(_In_ int nID, _Inout_ _Outref_result_maybenull_ _Post_z_ BSTR &bstrText) const
UINT IsDlgButtonChecked(int nIDButton) const
BOOL ShowWindowAsync(int nCmdShow)
void SendMessageToDescendants(UINT message, WPARAM wParam=0, LPARAM lParam=0, BOOL bDeep=TRUE)
int ScrollWindowEx(int dx, int dy, LPCRECT lpRectScroll, LPCRECT lpRectClip, HRGN hRgnUpdate, LPRECT lpRectUpdate, UINT flags)
int GetWindowTextLength() const
BOOL DlgDirSelect(LPTSTR lpString, int nCount, int nIDListBox)
int GetWindowText(_Out_writes_to_(nMaxCount, return+1) LPTSTR lpszStringBuf, _In_ int nMaxCount) const
struct ATL::CWindow::_IDHWNDPAIR * PIDHWNDPAIR
WORD SetWindowWord(int nIndex, WORD wNewWord)
BOOL SetScrollRange(int nBar, int nMinPos, int nMaxPos, BOOL bRedraw=TRUE)
BOOL ShowOwnedPopups(BOOL bShow=TRUE)
HMENU GetSystemMenu(BOOL bRevert)
int SetWindowRgn(HRGN hRgn, BOOL bRedraw=FALSE)
BOOL ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
BOOL FlashWindow(BOOL bInvert)
BOOL ResizeClient(int nWidth, int nHeight, BOOL bRedraw=FALSE)
BOOL CheckDlgButton(int nIDButton, UINT nCheck)
BOOL SetDlgItemText(int nID, LPCTSTR lpszString)
BOOL SetWindowContextHelpId(DWORD dwContextHelpId)
HWND GetNextDlgTabItem(HWND hWndCtl, BOOL bPrevious=FALSE) const
int DlgDirListComboBox(LPTSTR lpPathSpec, int nIDComboBox, int nIDStaticPath, UINT nFileType)
int MapWindowPoints(HWND hWndTo, LPRECT lpRect) const
HWND Create(LPCTSTR lpstrWndClass, HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
BOOL SetWindowPos(HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
HWND GetLastActivePopup() const
int DlgDirList(LPTSTR lpPathSpec, int nIDListBox, int nIDStaticPath, UINT nFileType)
BOOL GetWindowPlacement(WINDOWPLACEMENT *lpwndpl) const
WORD GetWindowWord(int nIndex) const
static BOOL CALLBACK SendMessageToDescendantsCallbackDeep(HWND hWnd, LPARAM lParam)
HWND ChildWindowFromPoint(POINT point) const
HWND ChildWindowFromPointEx(POINT point, UINT uFlags) const
BOOL CenterWindow(HWND hWndCenter=NULL)
BOOL CheckRadioButton(int nIDFirstButton, int nIDLastButton, int nIDCheckButton)
int SetHotKey(WORD wVirtualKeyCode, WORD wModifiers)
LRESULT SendDlgItemMessage(int nID, UINT message, WPARAM wParam=0, LPARAM lParam=0)
BOOL ShowScrollBar(UINT nBar, BOOL bShow=TRUE)
void EndPaint(LPPAINTSTRUCT lpPaint)
HWND GetTopWindow() const
HWND GetTopLevelParent() const
HWND GetDlgItem(_In_ int nID) const
LRESULT SendMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
int GetWindowRgn(HRGN hRgn)
BOOL SetDlgItemInt(int nID, UINT nValue, BOOL bSigned=TRUE)
DWORD GetWindowThreadID()
BOOL ScreenToClient(LPPOINT lpPoint) const
UINT GetDlgItemText(_In_ int nID, _Out_writes_to_(nMaxCount, return+1) LPTSTR lpStr, _In_ int nMaxCount) const
HICON SetIcon(HICON hIcon, BOOL bBigIcon=TRUE)
HRESULT GetDlgControl(int nID, REFIID iid, void **ppCtrl)
void SetFont(HFONT hFont, BOOL bRedraw=TRUE)
void Print(HDC hDC, DWORD dwFlags) const
void SetRedraw(BOOL bRedraw=TRUE)
BOOL DlgDirSelectComboBox(LPTSTR lpString, int nCount, int nIDComboBox)
int MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption=NULL, UINT nType=MB_OK)
BOOL SendNotifyMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
int MapWindowPoints(HWND hWndTo, LPPOINT lpPoint, UINT nCount) const
BOOL SetWindowText(LPCTSTR lpszString)
HRESULT GetDlgHost(int nID, REFIID iid, void **ppHost)
HWND GetTopLevelWindow() const
HDWP DeferWindowPos(HDWP hWinPosInfo, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags)
BOOL ChangeClipboardChain(HWND hWndNewNext)
BOOL RedrawWindow(LPCRECT lpRectUpdate=NULL, HRGN hRgnUpdate=NULL, UINT flags=RDW_INVALIDATE|RDW_UPDATENOW|RDW_ERASE)
BOOL GetClientRect(LPRECT lpRect) const
BOOL GetUpdateRect(LPRECT lpRect, BOOL bErase=FALSE)
BOOL GetWindowRect(LPRECT lpRect) const
HWND GetDescendantWindow(int nID) const
HWND GetWindow(UINT nCmd) const
BOOL HiliteMenuItem(HMENU hMenu, UINT uHiliteItem, UINT uHilite)
BOOL SetMenu(HMENU hMenu)
static BOOL CALLBACK GetDescendantWindowCallback(HWND hWnd, LPARAM lParam)
BOOL ScrollWindow(int xAmount, int yAmount, LPCRECT lpRect=NULL, LPCRECT lpClipRect=NULL)
BOOL MoveWindow(int x, int y, int nWidth, int nHeight, BOOL bRepaint=TRUE)
BOOL ValidateRect(LPCRECT lpRect)
HDC BeginPaint(LPPAINTSTRUCT lpPaint)
void DragAcceptFiles(BOOL bAccept=TRUE)
LONG_PTR GetWindowLongPtr(int nIndex) const
int GetUpdateRgn(HRGN hRgn, BOOL bErase=FALSE)
BOOL GetScrollPos(int nBar)
BOOL ClientToScreen(LPRECT lpRect) const
int SetScrollPos(int nBar, int nPos, BOOL bRedraw=TRUE)
BOOL GetWindowText(_Inout_ _Outref_result_maybenull_ _Post_z_ BSTR &bstrText) const
CWindow GetParent() const
BOOL KillTimer(UINT_PTR nIDEvent)
BOOL EnableScrollBar(UINT uSBFlags, UINT uArrowFlags=ESB_ENABLE_BOTH)
LONG SetWindowLong(int nIndex, LONG dwNewLong)
BOOL SetWindowPlacement(const WINDOWPLACEMENT *lpwndpl)
BOOL IsWindowVisible() const
void InvalidateRgn(HRGN hRgn, BOOL bErase=TRUE)
BOOL CreateSolidCaret(int nWidth, int nHeight)
int SetDlgCtrlID(int nID)
BOOL ShowWindow(int nCmdShow)
DWORD GetWindowProcessID()
BOOL ClientToScreen(LPPOINT lpPoint) const
static LRESULT SendMessage(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
UINT ArrangeIconicWindows()
BOOL CreateGrayCaret(int nWidth, int nHeight)
HDC GetDCEx(HRGN hRgnClip, DWORD flags)
LONG_PTR SetWindowLongPtr(int nIndex, LONG_PTR dwNewLong)
HICON GetIcon(BOOL bBigIcon=TRUE) const
void PrintClient(HDC hDC, DWORD dwFlags) const
BOOL InvalidateRect(LPCRECT lpRect, BOOL bErase=TRUE)
LONG GetWindowLong(int nIndex) const
int SetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo, BOOL bRedraw=TRUE)
struct ATL::CWindow::_IDHWNDPAIR IDHWNDPAIR
static LPCTSTR GetWndClassName()
BOOL ModifyStyleEx(DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
void Attach(HWND hWndNew)
BOOL IsWindowEnabled() const
BOOL PostMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
UINT GetDlgItemInt(_In_ int nID, _Out_opt_ BOOL *lpTrans=NULL, _In_ BOOL bSigned=TRUE) const
BOOL Invalidate(BOOL bErase=TRUE)
BOOL WinHelp(LPCTSTR lpszHelp, UINT nCmd=HELP_CONTEXT, DWORD dwData=0)
static BOOL CALLBACK SendMessageToDescendantsCallback(HWND hWnd, LPARAM lParam)
void GotoDlgCtrl(HWND hWndCtrl) const
BOOL EnableWindow(BOOL bEnable=TRUE)
BOOL IsChild(const HWND hWnd) const
BOOL GetScrollRange(int nBar, LPINT lpMinPos, LPINT lpMaxPos) const
HWND GetNextDlgGroupItem(HWND hWndCtl, BOOL bPrevious=FALSE) const
BOOL ValidateRgn(HRGN hRgn)
BOOL GetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo)
BOOL IsDialogMessage(LPMSG lpMsg)
BOOL Init(WNDPROC proc, void *pThis)
#define GetCurrentProcess()
BOOL WINAPI FlushInstructionCache(IN HANDLE hProcess, IN LPCVOID lpBaseAddress, IN SIZE_T nSize)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLuint GLsizei GLsizei * length
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static HANDLE ULONG_PTR dwData
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
#define _Outref_result_maybenull_
#define _Out_writes_to_(size, count)
unsigned __int3264 UINT_PTR
HMONITOR WINAPI MonitorFromWindow(HWND, DWORD)
__declspec(selectany) CAtlModule *_pAtlModule
CContainedWindowT< CWindow > CContainedWindow
_ATL_WNDCLASSINFOW CWndClassInfo
CWinTraits< WS_OVERLAPPEDWINDOW|WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS, WS_EX_MDICHILD > CMDIChildWinTraits
CWinTraits< WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS, 0 > CControlWinTraits
CWinTraits< WS_OVERLAPPEDWINDOW|WS_CLIPCHILDREN|WS_CLIPSIBLINGS, WS_EX_APPWINDOW|WS_EX_WINDOWEDGE > CFrameWinTraits
#define PAGE_EXECUTE_READWRITE
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
int WINAPI SysReAllocStringLen(BSTR *old, const OLECHAR *str, unsigned int len)
_Out_opt_ int _Out_opt_ int * cy
_ATL_MSG(HWND hWnd, UINT uMsg, WPARAM wParamIn, LPARAM lParamIn, BOOL bHandledIn=TRUE)
TCHAR m_szAutoName[sizeof("ATL:")+sizeof(void *) *2]
ATOM Register(WNDPROC *p)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
LPVOID NTAPI VirtualAlloc(IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD flAllocationType, IN DWORD flProtect)
BOOL NTAPI VirtualFree(IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD dwFreeType)
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
#define success(from, fromstr, to, tostr)
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define RealGetWindowClass
HWND WINAPI GetActiveWindow(void)
#define CreateDialogParam
BOOL WINAPI EnumChildWindows(_In_opt_ HWND, _In_ WNDENUMPROC, _In_ LPARAM)
int WINAPI GetWindowTextLengthW(_In_ HWND)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
VOID(CALLBACK * TIMERPROC)(HWND, UINT, UINT_PTR, DWORD)