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")
56#define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
59#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
66template <DWORD t_dwStyle = 0, DWORD t_dwExStyle = 0>
89template <DWORD t_dwStyle = 0, DWORD t_dwExStyle = 0,
class TWinTraits = CControlWinTraits>
95 return dwStyle | t_dwStyle | TWinTraits::GetWndStyle(dwStyle);
100 return dwExStyle | t_dwExStyle | TWinTraits::GetWndExStyle(dwExStyle);
170 m_relproc =
DWORD(
reinterpret_cast<char*
>(
proc) - (
reinterpret_cast<char*
>(
this) +
sizeof(thunkCode)));
176#elif defined(_AMD64_)
213 m_mov_r0 = 0xE59F0000;
214 m_mov_pc = 0xE59FF000;
215 m_this = (
DWORD)pThis;
223#error ARCH not supported
289 return ::ArrangeIconicWindows(
m_hWnd);
300 return ::BeginPaint(
m_hWnd, lpPaint);
306 return ::BringWindowToTop(
m_hWnd);
312 if (hWndCenter ==
NULL)
314 if (hWndCenter ==
NULL)
316 RECT wndCenterRect, wndRect;
319 int wndCenterWidth = wndCenterRect.
right - wndCenterRect.
left;
320 int wndCenterHeight = wndCenterRect.
bottom - wndCenterRect.
top;
321 int wndWidth = wndRect.
right - wndRect.
left;
322 int wndHeight = wndRect.
bottom - wndRect.
top;
323 int xPos = wndCenterRect.
left + ((wndCenterWidth - wndWidth + 1) >> 1);
324 int yPos = wndCenterRect.
top + ((wndCenterHeight - wndHeight + 1) >> 1);
351 return ::MoveWindow(
m_hWnd,
354 wndWidth, wndHeight,
TRUE);
360 return ::ChangeClipboardChain(
m_hWnd, hWndNewNext);
366 return ::CheckDlgButton(
m_hWnd, nIDButton, nCheck);
372 return ::CheckRadioButton(
m_hWnd, nIDFirstButton, nIDLastButton, nIDCheckButton);
390 return ::ClientToScreen(
m_hWnd, lpPoint);
403 lpRect->
left = leftTop.
x;
404 lpRect->
top = leftTop.
y;
405 lpRect->
right = rightBottom.
x;
406 lpRect->
bottom = rightBottom.
y;
421 rect.m_lpRect->right -
rect.m_lpRect->left,
422 rect.m_lpRect->bottom -
rect.m_lpRect->top,
425 _AtlBaseModule.GetModuleInstance(),
435 return ::CreateCaret(
m_hWnd, pBitmap, 0, 0);
477 return ::DlgDirList(
m_hWnd, lpPathSpec, nIDListBox, nIDStaticPath, nFileType);
483 return ::DlgDirListComboBox(
m_hWnd, lpPathSpec, nIDComboBox, nIDStaticPath, nFileType);
489 return ::DlgDirSelectEx(
m_hWnd, lpString, nCount, nIDListBox);
495 return ::DlgDirSelectComboBoxEx(
m_hWnd, lpString, nCount, nIDComboBox);
508 return ::DrawMenuBar(
m_hWnd);
514 return ::EnableScrollBar(
m_hWnd, uSBFlags, uArrowFlags);
538 return ::GetClientRect(
m_hWnd, lpRect);
575 idHWndPair.
nID = nID;
578 return idHWndPair.
hWnd;
590 return ::GetDlgCtrlID(
m_hWnd);
602 return ::GetDlgItem(
m_hWnd, nID);
611 return ::GetDlgItemInt(
m_hWnd, nID, lpTrans, bSigned);
632 return CWindow(
item).GetWindowText(strText);
673 return ::GetLastActivePopup(
m_hWnd);
685 return ::GetNextDlgGroupItem(
m_hWnd, hWndCtl, bPrevious);
691 return ::GetNextDlgTabItem(
m_hWnd, hWndCtl, bPrevious);
703 return ::GetScrollInfo(
m_hWnd, nBar, lpScrollInfo);
709 return ::GetScrollPos(
m_hWnd, nBar);
715 return ::GetScrollRange(
m_hWnd, nBar, lpMinPos, lpMaxPos);
727 return ::GetSystemMenu(
m_hWnd, bRevert);
751 return ::GetTopWindow(
m_hWnd);
757 return ::GetUpdateRect(
m_hWnd, lpRect, bErase);
769 return ::GetWindow(
m_hWnd, nCmd);
775 return ::GetWindowContextHelpId(
m_hWnd);
781 return ::GetWindowDC(
m_hWnd);
787 return ::GetWindowLong(
m_hWnd, nIndex);
793 return ::GetWindowLongPtr(
m_hWnd, nIndex);
799 return ::GetWindowPlacement(
m_hWnd, lpwndpl);
813 return ::GetWindowRect(
m_hWnd, lpRect);
835 strText.ReleaseBuffer(
len);
857 return ::GetWindowTextLength(
m_hWnd);
863 return ::GetWindowThreadProcessId(
m_hWnd,
NULL);
881 return ::HideCaret(
m_hWnd);
887 return ::HiliteMenuItem(
m_hWnd, hMenu, uHiliteItem, uHilite);
893 return ::InvalidateRect(
m_hWnd,
NULL, bErase);
899 return ::InvalidateRect(
m_hWnd, lpRect, bErase);
917 return ::IsDialogMessage(
m_hWnd, lpMsg);
923 return ::IsDlgButtonChecked(
m_hWnd, nIDButton);
929 return ::IsIconic(
m_hWnd);
943 return ::IsWindow(
m_hWnd);
949 return ::IsWindowEnabled(
m_hWnd);
955 return ::IsWindowVisible(
m_hWnd);
961 return ::IsWindowUnicode(
m_hWnd);
967 return ::IsZoomed(
m_hWnd);
973 return ::KillTimer(
m_hWnd, nIDEvent);
980 return ::LockWindowUpdate(
m_hWnd);
981 return ::LockWindowUpdate(
NULL);
987 return ::MapWindowPoints(
m_hWnd, hWndTo, lpPoint, nCount);
999 return ::MessageBox(
m_hWnd, lpszText, lpszCaption, nType);
1023 return ::MoveWindow(
m_hWnd,
x,
y, nWidth, nHeight, bRepaint);
1035 return ::OpenClipboard(
m_hWnd);
1065 return ::RedrawWindow(
m_hWnd, lpRectUpdate, hRgnUpdate,
flags);
1077 RECT clientRect, wndRect;
1089 return ::ScreenToClient(
m_hWnd, lpPoint);
1095 return ::ScrollWindow(
m_hWnd, xAmount, yAmount, lpRect, lpClipRect);
1101 return ::ScrollWindowEx(
m_hWnd,
dx,
dy, lpRectScroll, lpRectClip, hRgnUpdate, lpRectUpdate,
flags);
1159 return ::SetActiveWindow(
m_hWnd);
1165 return ::SetCapture(
m_hWnd);
1171 return ::SetClipboardViewer(
m_hWnd);
1183 return ::SetDlgItemInt(
m_hWnd, nID, nValue, bSigned);
1189 return ::SetDlgItemText(
m_hWnd, nID, lpszString);
1195 return ::SetFocus(
m_hWnd);
1219 return ::SetMenu(
m_hWnd, hMenu);
1225 return ::SetParent(
m_hWnd, hWndNewParent);
1237 return ::SetScrollInfo(
m_hWnd, nBar, lpScrollInfo, bRedraw);
1243 return ::SetScrollPos(
m_hWnd, nBar, nPos, bRedraw);
1249 return ::SetScrollRange(
m_hWnd, nBar, nMinPos, nMaxPos, bRedraw);
1255 return ::SetTimer(
m_hWnd, nIDEvent, nElapse,
reinterpret_cast<TIMERPROC>(lpfnTimer));
1261 return ::SetWindowContextHelpId(
m_hWnd, dwContextHelpId);
1267 return ::SetWindowLong(
m_hWnd, nIndex, dwNewLong);
1273 return ::SetWindowLongPtr(
m_hWnd, nIndex, dwNewLong);
1279 return ::SetWindowPlacement(
m_hWnd, lpwndpl);
1285 return ::SetWindowPos(
m_hWnd, hWndInsertAfter,
x,
y,
cx,
cy, nFlags);
1291 return ::SetWindowRgn(
m_hWnd,
hRgn, bRedraw);
1297 return ::SetWindowText(
m_hWnd, lpszString);
1312 return ::ShowCaret(
m_hWnd);
1318 return ::ShowOwnedPopups(
m_hWnd, bShow);
1324 return ::ShowScrollBar(
m_hWnd, nBar, bShow);
1330 return ::ShowWindow(
m_hWnd, nCmdShow);
1336 return ::ShowWindowAsync(
m_hWnd, nCmdShow);
1342 return ::UpdateWindow(
m_hWnd);
1348 return ::ValidateRect(
m_hWnd, lpRect);
1366template <
class TBase = CWindow>
1389template <
class TBase = CWindow>
1459 pThis->
m_dwState &= ~WINSTATE_DESTROYED;
1472template <
class T,
class TBase = CWindow>
1491 _AtlWinModule.AddCreateWndData(&
m_thunk.
cd,
this);
1493 pImpl =
static_cast<T*
>(
this);
1507 _AtlWinModule.AddCreateWndData(&
m_thunk.
cd,
this);
1509 pImpl =
static_cast<T*
>(
this);
1510 return ::DialogBoxParam(_AtlBaseModule.GetResourceInstance(),
MAKEINTRESOURCE(pImpl->IDD),
hWndParent, T::StartDialogProc, dwInitParam);
1515 return ::EndDialog(
m_hWnd, nRetCode);
1520 return ::DestroyWindow(
m_hWnd);
1524template <
class TBase = CWindow,
class TWinTraits = CControlWinTraits>
1561 if (oldWindowProc ==
NULL)
1581 if (!bForce && oldWindowProc != subclassedProc)
1598 return TWinTraits::GetWndStyle(dwStyle);
1603 return TWinTraits::GetWndExStyle(dwExStyle);
1657 if (handled ==
FALSE)
1676 pThis->
m_dwState &= ~WINSTATE_DESTROYED;
1698 _AtlWinModule.AddCreateWndData(&
m_thunk.
cd,
this);
1702 rect.m_lpRect = &TBase::rcDefault;
1705 rect.m_lpRect->top,
rect.m_lpRect->right -
rect.m_lpRect->left,
rect.m_lpRect->bottom -
rect.m_lpRect->top,
1706 hWndParent, MenuOrID.
m_hMenu, _AtlBaseModule.GetModuleInstance(), lpCreateParam);
1715template <
class T,
class TBase = CWindow,
class TWinTraits = CControlWinTraits>
1737 if (T::GetWndClassInfo().m_lpszOrigName ==
NULL)
1741 if (szWindowName ==
NULL)
1742 szWindowName = T::GetWndCaption();
1743 dwStyle = T::GetWndStyle(dwStyle);
1744 dwExStyle = T::GetWndExStyle(dwExStyle);
1747 dwExStyle, MenuOrID, atom, lpCreateParam);
1751template <
class TBase = CWindow,
class TWinTraits = CControlWinTraits>
1756 using TBase::m_hWnd;
1805 if (oldWindowProc ==
NULL)
1873 if (handled ==
FALSE)
1892#define BEGIN_MSG_MAP(theClass) \
1894 BOOL ProcessWindowMessage(HWND GCCU(hWnd), UINT GCCU(uMsg), WPARAM GCCU(wParam), LPARAM GCCU(lParam), LRESULT &GCCU(lResult), DWORD dwMsgMapID = 0) \
1896 BOOL GCCU(bHandled) = TRUE; \
1903 switch(dwMsgMapID) \
1907#define ALT_MSG_MAP(map) \
1911#define END_MSG_MAP() \
1920#define MESSAGE_HANDLER(msg, func) \
1924 lResult = func(uMsg, wParam, lParam, bHandled); \
1929#define MESSAGE_RANGE_HANDLER(msgFirst, msgLast, func) \
1930 if (uMsg >= msgFirst && uMsg <= msgLast) \
1933 lResult = func(uMsg, wParam, lParam, bHandled); \
1938#define COMMAND_HANDLER(id, code, func) \
1939 if (uMsg == WM_COMMAND && id == LOWORD(wParam) && code == HIWORD(wParam)) \
1942 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1947#define COMMAND_ID_HANDLER(id, func) \
1948 if (uMsg == WM_COMMAND && id == LOWORD(wParam)) \
1951 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1956#define COMMAND_CODE_HANDLER(code, func) \
1957 if (uMsg == WM_COMMAND && code == HIWORD(wParam)) \
1960 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1965#define COMMAND_RANGE_HANDLER(idFirst, idLast, func) \
1966 if (uMsg == WM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
1969 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1974#define NOTIFY_CODE_HANDLER(cd, func) \
1975 if (uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \
1978 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
1983#define NOTIFY_HANDLER(id, cd, func) \
1984 if (uMsg == WM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom && cd == ((LPNMHDR)lParam)->code) \
1987 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
1992#define CHAIN_MSG_MAP(theChainClass) \
1994 if (theChainClass::ProcessWindowMessage(hWnd, uMsg, wParam, lParam, lResult)) \
1998#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd) \
1999static ATL::CWndClassInfo& GetWndClassInfo() \
2001 static ATL::CWndClassInfo wc = \
2003 { sizeof(WNDCLASSEX), style, StartWindowProc, \
2004 0, 0, NULL, NULL, NULL, (HBRUSH)(bkgnd + 1), NULL, WndClassName, NULL }, \
2005 NULL, NULL, IDC_ARROW, TRUE, 0, _T("") \
2040#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)
INT_PTR DoModal(HWND hWndParent=::GetActiveWindow(), LPARAM dwInitParam=NULL)
HWND Create(HWND hWndParent, LPARAM dwInitParam=NULL)
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)