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;
228#elif defined(_M_ARM64)
243 m_ldr_x0 = 0x58000080;
244 m_ldr_x16 = 0x580000B0;
245 m_br_x16 = 0xD61F0200;
255#error ARCH not supported
321 return ::ArrangeIconicWindows(
m_hWnd);
332 return ::BeginPaint(
m_hWnd, lpPaint);
338 return ::BringWindowToTop(
m_hWnd);
344 if (hWndCenter ==
NULL)
346 if (hWndCenter ==
NULL)
348 RECT wndCenterRect, wndRect;
351 int wndCenterWidth = wndCenterRect.
right - wndCenterRect.
left;
352 int wndCenterHeight = wndCenterRect.
bottom - wndCenterRect.
top;
353 int wndWidth = wndRect.
right - wndRect.
left;
354 int wndHeight = wndRect.
bottom - wndRect.
top;
355 int xPos = wndCenterRect.
left + ((wndCenterWidth - wndWidth + 1) >> 1);
356 int yPos = wndCenterRect.
top + ((wndCenterHeight - wndHeight + 1) >> 1);
383 return ::MoveWindow(
m_hWnd,
386 wndWidth, wndHeight,
TRUE);
392 return ::ChangeClipboardChain(
m_hWnd, hWndNewNext);
398 return ::CheckDlgButton(
m_hWnd, nIDButton, nCheck);
404 return ::CheckRadioButton(
m_hWnd, nIDFirstButton, nIDLastButton, nIDCheckButton);
422 return ::ClientToScreen(
m_hWnd, lpPoint);
435 lpRect->
left = leftTop.
x;
436 lpRect->
top = leftTop.
y;
437 lpRect->
right = rightBottom.
x;
438 lpRect->
bottom = rightBottom.
y;
457 _AtlBaseModule.GetModuleInstance(),
467 return ::CreateCaret(
m_hWnd, pBitmap, 0, 0);
509 return ::DlgDirList(
m_hWnd, lpPathSpec, nIDListBox, nIDStaticPath, nFileType);
515 return ::DlgDirListComboBox(
m_hWnd, lpPathSpec, nIDComboBox, nIDStaticPath, nFileType);
521 return ::DlgDirSelectEx(
m_hWnd, lpString, nCount, nIDListBox);
527 return ::DlgDirSelectComboBoxEx(
m_hWnd, lpString, nCount, nIDComboBox);
540 return ::DrawMenuBar(
m_hWnd);
546 return ::EnableScrollBar(
m_hWnd, uSBFlags, uArrowFlags);
570 return ::GetClientRect(
m_hWnd, lpRect);
607 idHWndPair.
nID = nID;
610 return idHWndPair.
hWnd;
622 return ::GetDlgCtrlID(
m_hWnd);
634 return ::GetDlgItem(
m_hWnd, nID);
643 return ::GetDlgItemInt(
m_hWnd, nID, lpTrans, bSigned);
664 return CWindow(
item).GetWindowText(strText);
705 return ::GetLastActivePopup(
m_hWnd);
717 return ::GetNextDlgGroupItem(
m_hWnd, hWndCtl, bPrevious);
723 return ::GetNextDlgTabItem(
m_hWnd, hWndCtl, bPrevious);
735 return ::GetScrollInfo(
m_hWnd, nBar, lpScrollInfo);
741 return ::GetScrollPos(
m_hWnd, nBar);
747 return ::GetScrollRange(
m_hWnd, nBar, lpMinPos, lpMaxPos);
759 return ::GetSystemMenu(
m_hWnd, bRevert);
783 return ::GetTopWindow(
m_hWnd);
789 return ::GetUpdateRect(
m_hWnd, lpRect, bErase);
801 return ::GetWindow(
m_hWnd, nCmd);
807 return ::GetWindowContextHelpId(
m_hWnd);
813 return ::GetWindowDC(
m_hWnd);
819 return ::GetWindowLong(
m_hWnd, nIndex);
825 return ::GetWindowLongPtr(
m_hWnd, nIndex);
831 return ::GetWindowPlacement(
m_hWnd, lpwndpl);
845 return ::GetWindowRect(
m_hWnd, lpRect);
867 strText.ReleaseBuffer(
len);
889 return ::GetWindowTextLength(
m_hWnd);
895 return ::GetWindowThreadProcessId(
m_hWnd,
NULL);
913 return ::HideCaret(
m_hWnd);
919 return ::HiliteMenuItem(
m_hWnd, hMenu, uHiliteItem, uHilite);
925 return ::InvalidateRect(
m_hWnd,
NULL, bErase);
931 return ::InvalidateRect(
m_hWnd, lpRect, bErase);
949 return ::IsDialogMessage(
m_hWnd, lpMsg);
955 return ::IsDlgButtonChecked(
m_hWnd, nIDButton);
961 return ::IsIconic(
m_hWnd);
975 return ::IsWindow(
m_hWnd);
981 return ::IsWindowEnabled(
m_hWnd);
987 return ::IsWindowVisible(
m_hWnd);
993 return ::IsWindowUnicode(
m_hWnd);
999 return ::IsZoomed(
m_hWnd);
1005 return ::KillTimer(
m_hWnd, nIDEvent);
1012 return ::LockWindowUpdate(
m_hWnd);
1013 return ::LockWindowUpdate(
NULL);
1019 return ::MapWindowPoints(
m_hWnd, hWndTo, lpPoint, nCount);
1031 return ::MessageBox(
m_hWnd, lpszText, lpszCaption, nType);
1055 return ::MoveWindow(
m_hWnd,
x,
y, nWidth, nHeight, bRepaint);
1067 return ::OpenClipboard(
m_hWnd);
1097 return ::RedrawWindow(
m_hWnd, lpRectUpdate, hRgnUpdate,
flags);
1109 RECT clientRect, wndRect;
1121 return ::ScreenToClient(
m_hWnd, lpPoint);
1127 return ::ScrollWindow(
m_hWnd, xAmount, yAmount, lpRect, lpClipRect);
1133 return ::ScrollWindowEx(
m_hWnd,
dx,
dy, lpRectScroll, lpRectClip, hRgnUpdate, lpRectUpdate,
flags);
1191 return ::SetActiveWindow(
m_hWnd);
1197 return ::SetCapture(
m_hWnd);
1203 return ::SetClipboardViewer(
m_hWnd);
1215 return ::SetDlgItemInt(
m_hWnd, nID, nValue, bSigned);
1221 return ::SetDlgItemText(
m_hWnd, nID, lpszString);
1227 return ::SetFocus(
m_hWnd);
1251 return ::SetMenu(
m_hWnd, hMenu);
1257 return ::SetParent(
m_hWnd, hWndNewParent);
1269 return ::SetScrollInfo(
m_hWnd, nBar, lpScrollInfo, bRedraw);
1275 return ::SetScrollPos(
m_hWnd, nBar, nPos, bRedraw);
1281 return ::SetScrollRange(
m_hWnd, nBar, nMinPos, nMaxPos, bRedraw);
1287 return ::SetTimer(
m_hWnd, nIDEvent, nElapse,
reinterpret_cast<TIMERPROC>(lpfnTimer));
1293 return ::SetWindowContextHelpId(
m_hWnd, dwContextHelpId);
1299 return ::SetWindowLong(
m_hWnd, nIndex, dwNewLong);
1305 return ::SetWindowLongPtr(
m_hWnd, nIndex, dwNewLong);
1311 return ::SetWindowPlacement(
m_hWnd, lpwndpl);
1317 return ::SetWindowPos(
m_hWnd, hWndInsertAfter,
x,
y,
cx,
cy, nFlags);
1323 return ::SetWindowRgn(
m_hWnd,
hRgn, bRedraw);
1329 return ::SetWindowText(
m_hWnd, lpszString);
1344 return ::ShowCaret(
m_hWnd);
1350 return ::ShowOwnedPopups(
m_hWnd, bShow);
1356 return ::ShowScrollBar(
m_hWnd, nBar, bShow);
1362 return ::ShowWindow(
m_hWnd, nCmdShow);
1368 return ::ShowWindowAsync(
m_hWnd, nCmdShow);
1374 return ::UpdateWindow(
m_hWnd);
1380 return ::ValidateRect(
m_hWnd, lpRect);
1398template <
class TBase = CWindow>
1421template <
class TBase = CWindow>
1491 pThis->
m_dwState &= ~WINSTATE_DESTROYED;
1504template <
class T,
class TBase = CWindow>
1523 _AtlWinModule.AddCreateWndData(&
m_thunk.
cd,
this);
1525 pImpl =
static_cast<T*
>(
this);
1539 _AtlWinModule.AddCreateWndData(&
m_thunk.
cd,
this);
1541 pImpl =
static_cast<T*
>(
this);
1542 return ::DialogBoxParam(_AtlBaseModule.GetResourceInstance(),
MAKEINTRESOURCE(pImpl->IDD),
hWndParent, T::StartDialogProc, dwInitParam);
1547 return ::EndDialog(
m_hWnd, nRetCode);
1552 return ::DestroyWindow(
m_hWnd);
1556template <
class TBase = CWindow,
class TWinTraits = CControlWinTraits>
1593 if (oldWindowProc ==
NULL)
1613 if (!bForce && oldWindowProc != subclassedProc)
1630 return TWinTraits::GetWndStyle(dwStyle);
1635 return TWinTraits::GetWndExStyle(dwExStyle);
1689 if (handled ==
FALSE)
1708 pThis->
m_dwState &= ~WINSTATE_DESTROYED;
1730 _AtlWinModule.AddCreateWndData(&
m_thunk.
cd,
this);
1734 rect.m_lpRect = &TBase::rcDefault;
1738 hWndParent, MenuOrID.
m_hMenu, _AtlBaseModule.GetModuleInstance(), lpCreateParam);
1747template <
class T,
class TBase = CWindow,
class TWinTraits = CControlWinTraits>
1769 if (T::GetWndClassInfo().m_lpszOrigName ==
NULL)
1773 if (szWindowName ==
NULL)
1774 szWindowName = T::GetWndCaption();
1775 dwStyle = T::GetWndStyle(dwStyle);
1776 dwExStyle = T::GetWndExStyle(dwExStyle);
1779 dwExStyle, MenuOrID, atom, lpCreateParam);
1783template <
class TBase = CWindow,
class TWinTraits = CControlWinTraits>
1788 using TBase::m_hWnd;
1837 if (oldWindowProc ==
NULL)
1905 if (handled ==
FALSE)
1924#define BEGIN_MSG_MAP(theClass) \
1926 BOOL ProcessWindowMessage(HWND GCCU(hWnd), UINT GCCU(uMsg), WPARAM GCCU(wParam), LPARAM GCCU(lParam), LRESULT &GCCU(lResult), DWORD dwMsgMapID = 0) \
1928 BOOL GCCU(bHandled) = TRUE; \
1935 switch(dwMsgMapID) \
1939#define ALT_MSG_MAP(map) \
1943#define END_MSG_MAP() \
1952#define MESSAGE_HANDLER(msg, func) \
1956 lResult = func(uMsg, wParam, lParam, bHandled); \
1961#define MESSAGE_RANGE_HANDLER(msgFirst, msgLast, func) \
1962 if (uMsg >= msgFirst && uMsg <= msgLast) \
1965 lResult = func(uMsg, wParam, lParam, bHandled); \
1970#define COMMAND_HANDLER(id, code, func) \
1971 if (uMsg == WM_COMMAND && id == LOWORD(wParam) && code == HIWORD(wParam)) \
1974 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1979#define COMMAND_ID_HANDLER(id, func) \
1980 if (uMsg == WM_COMMAND && id == LOWORD(wParam)) \
1983 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1988#define COMMAND_CODE_HANDLER(code, func) \
1989 if (uMsg == WM_COMMAND && code == HIWORD(wParam)) \
1992 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
1997#define COMMAND_RANGE_HANDLER(idFirst, idLast, func) \
1998 if (uMsg == WM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
2001 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
2006#define NOTIFY_CODE_HANDLER(cd, func) \
2007 if (uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \
2010 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
2015#define NOTIFY_HANDLER(id, cd, func) \
2016 if (uMsg == WM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom && cd == ((LPNMHDR)lParam)->code) \
2019 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
2024#define CHAIN_MSG_MAP(theChainClass) \
2026 if (theChainClass::ProcessWindowMessage(hWnd, uMsg, wParam, lParam, lResult)) \
2030#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd) \
2031static ATL::CWndClassInfo& GetWndClassInfo() \
2033 static ATL::CWndClassInfo wc = \
2035 { sizeof(WNDCLASSEX), style, StartWindowProc, \
2036 0, 0, NULL, NULL, NULL, (HBRUSH)(bkgnd + 1), NULL, WndClassName, NULL }, \
2037 NULL, NULL, IDC_ARROW, TRUE, 0, _T("") \
2072#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)
void __declspec(noinline) __cdecl _free_base(void *const block)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLuint GLsizei GLsizei * length
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
unsigned __int3264 UINT_PTR
HMONITOR WINAPI MonitorFromWindow(HWND, DWORD)
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
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define _Outref_result_maybenull_
#define _Out_writes_to_(s, c)
#define PAGE_EXECUTE_READWRITE
static HANDLE ULONG_PTR dwData
#define MAKEINTRESOURCE(i)
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
#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)
_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)