/* Copyright (C) 1999 Corel Corporation (Paul Quinn)
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#ifndef _INC_WINDOWSX
#define _INC_WINDOWSX
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __WINESRC__
/* This file contains macros that cause warnings on gcc 4.1, so avoid it. */
#endif
#ifndef SNDMSG
#ifdef __cplusplus
#else /* __cplusplus */
#endif /* __cplusplus */
#endif /* SNDMSG */
/****** KERNEL Macro APIs ******************************************************/
#define GlobalReAllocPtr(lp, cbNew, flags) (GlobalUnlockPtr(lp), GlobalLock(GlobalReAlloc(GlobalPtrHandle(lp) , (cbNew), (flags))))
/****** USER Macro APIs ******************************************************/
(msg) == WM_CTLCOLORMSGBOX || \
(msg) == WM_CTLCOLOREDIT || \
(msg) == WM_CTLCOLORLISTBOX || \
(msg) == WM_CTLCOLORBTN || \
(msg) == WM_CTLCOLORDLG || \
(msg) == WM_CTLCOLORSCROLLBAR || \
(msg) == WM_CTLCOLORSTATIC || \
(msg) == WM_COMPAREITEM || \
(msg) == WM_VKEYTOITEM || \
(msg) == WM_CHARTOITEM || \
(msg) == WM_QUERYDRAGICON || \
(msg) == WM_INITDIALOG \
/* Button Message APIs */
/* ComboBox Message APIs */
((int)SendMessage((hwndCtl), CB_FINDSTRING, (WPARAM)(int)(indexStart), (LPARAM)(LPCTSTR)(lpszFind)))
((int)SendMessage((hwndCtl), CB_FINDSTRINGEXACT, (WPARAM)(int)(indexStart), (LPARAM)(LPCTSTR)(lpszFind)))
((int)SendMessage((hwndCtl), CB_SELECTSTRING, (WPARAM)(int)(indexStart), (LPARAM)(LPCTSTR)(lpszSelect)))
/* Edit Message APIs */
((*((int *)(lpch)) = (cchMax)), ((int)SendMessage((hwndCtl), EM_GETLINE, (WPARAM)(int)(line), (LPARAM)(LPTSTR)(lpch))))
/* ListBox Message APIs */
((int)SendMessage((hwndCtl), LB_FINDSTRING, (WPARAM)(int)(indexStart), (LPARAM)(LPCTSTR)(lpszFind)))
((int)SendMessage((hwndCtl), LB_FINDSTRINGEXACT, (WPARAM)(int)(indexStart), (LPARAM)(LPCTSTR)(lpszFind)))
((int)SendMessage((hwndCtl), LB_SELECTSTRING, (WPARAM)(int)(indexStart), (LPARAM)(LPCTSTR)(lpszFind)))
((int)SendMessage((hwndCtl), LB_SELITEMRANGE, (WPARAM)(BOOL)(fSelect), MAKELPARAM((first), (last))))
/* Scrollbar Message APIs */
/* Static Message APIs */
/****** Message crackers ****************************************************/
/* void Cls_OnCompacting(HWND hwnd, UINT compactRatio) */
/* void Cls_OnWinIniChange(HWND hwnd, LPCTSTR lpszSectionName) */
/* void Cls_OnSysColorChange(HWND hwnd) */
/* BOOL Cls_OnQueryNewPalette(HWND hwnd) */
/* void Cls_OnPaletteIsChanging(HWND hwnd, HWND hwndPaletteChange) */
/* void Cls_OnPaletteChanged(HWND hwnd, HWND hwndPaletteChange) */
/* void Cls_OnFontChange(HWND hwnd) */
/* void Cls_OnSpoolerStatus(HWND hwnd, UINT status, int cJobInQueue) */
/* void Cls_OnDevModeChange(HWND hwnd, LPCTSTR lpszDeviceName) */
/* void Cls_OnTimeChange(HWND hwnd) */
/* void Cls_OnPower(HWND hwnd, int code) */
/* BOOL Cls_OnQueryEndSession(HWND hwnd) */
/* void Cls_OnEndSession(HWND hwnd, BOOL fEnding) */
/* void Cls_OnQuit(HWND hwnd, int exitCode) */
/* This message is in Windows 3.1 only */
/* void Cls_OnSystemError(HWND hwnd, int errCode) */
/* BOOL Cls_OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct) */
/* BOOL Cls_OnNCCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct) */
/* void Cls_OnDestroy(HWND hwnd) */
/* void Cls_OnNCDestroy(HWND hwnd) */
/* void Cls_OnShowWindow(HWND hwnd, BOOL fShow, UINT status) */
/* void Cls_OnSetRedraw(HWND hwnd, BOOL fRedraw) */
/* void Cls_OnEnable(HWND hwnd, BOOL fEnable) */
/* void Cls_OnSetText(HWND hwnd, LPCTSTR lpszText) */
/* INT Cls_OnGetText(HWND hwnd, int cchTextMax, LPTSTR lpszText) */
/* INT Cls_OnGetTextLength(HWND hwnd) */
/* BOOL Cls_OnWindowPosChanging(HWND hwnd, LPWINDOWPOS lpwpos) */
/* void Cls_OnWindowPosChanged(HWND hwnd, const LPWINDOWPOS lpwpos) */
/* void Cls_OnMove(HWND hwnd, int x, int y) */
/* void Cls_OnSize(HWND hwnd, UINT state, int cx, int cy) */
/* void Cls_OnClose(HWND hwnd) */
/* BOOL Cls_OnQueryOpen(HWND hwnd) */
/* void Cls_OnPaint(HWND hwnd) */
/* BOOL Cls_OnEraseBkgnd(HWND hwnd, HDC hdc) */
/* BOOL Cls_OnIconEraseBkgnd(HWND hwnd, HDC hdc) */
/* void Cls_OnNCPaint(HWND hwnd, HRGN hrgn) */
/* UINT Cls_OnNCCalcSize(HWND hwnd, BOOL fCalcValidRects, NCCALCSIZE_PARAMS * lpcsp) */
/* HICON Cls_OnQueryDragIcon(HWND hwnd) */
/* void Cls_OnDropFiles(HWND hwnd, HDROP hdrop) */
/* void Cls_OnActivate(HWND hwnd, UINT state, HWND hwndActDeact, BOOL fMinimized) */
/* void Cls_OnActivateApp(HWND hwnd, BOOL fActivate, DWORD dwThreadId) */
/* BOOL Cls_OnNCActivate(HWND hwnd, BOOL fActive, HWND hwndActDeact, BOOL fMinimized) */
/* void Cls_OnSetFocus(HWND hwnd, HWND hwndOldFocus) */
/* void Cls_OnKillFocus(HWND hwnd, HWND hwndNewFocus) */
/* void Cls_OnKey(HWND hwnd, UINT vk, BOOL fDown, int cRepeat, UINT flags) */
/* void Cls_OnKey(HWND hwnd, UINT vk, BOOL fDown, int cRepeat, UINT flags) */
/* void Cls_OnChar(HWND hwnd, TCHAR ch, int cRepeat) */
/* void Cls_OnDeadChar(HWND hwnd, TCHAR ch, int cRepeat) */
/* void Cls_OnSysKey(HWND hwnd, UINT vk, BOOL fDown, int cRepeat, UINT flags) */
/* void Cls_OnSysKey(HWND hwnd, UINT vk, BOOL fDown, int cRepeat, UINT flags) */
/* void Cls_OnSysChar(HWND hwnd, TCHAR ch, int cRepeat) */
/* void Cls_OnSysDeadChar(HWND hwnd, TCHAR ch, int cRepeat) */
/* void Cls_OnMouseMove(HWND hwnd, int x, int y, UINT keyFlags) */
/* void Cls_OnLButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT keyFlags) */
(void)(fn)((hwnd), (fDoubleClick) ? WM_LBUTTONDBLCLK : WM_LBUTTONDOWN, (WPARAM)(UINT)(keyFlags), MAKELPARAM((x), (y)))
/* void Cls_OnLButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT keyFlags) */
/* void Cls_OnLButtonUp(HWND hwnd, int x, int y, UINT keyFlags) */
/* void Cls_OnRButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT keyFlags) */
(void)(fn)((hwnd), (fDoubleClick) ? WM_RBUTTONDBLCLK : WM_RBUTTONDOWN, (WPARAM)(UINT)(keyFlags), MAKELPARAM((x), (y)))
/* void Cls_OnRButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT keyFlags) */
/* void Cls_OnRButtonUp(HWND hwnd, int x, int y, UINT flags) */
/* void Cls_OnMButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT keyFlags) */
(void)(fn)((hwnd), (fDoubleClick) ? WM_MBUTTONDBLCLK : WM_MBUTTONDOWN, (WPARAM)(UINT)(keyFlags), MAKELPARAM((x), (y)))
/* void Cls_OnMButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT keyFlags) */
/* void Cls_OnMButtonUp(HWND hwnd, int x, int y, UINT flags) */
/* void Cls_OnNCMouseMove(HWND hwnd, int x, int y, UINT codeHitTest) */
/* void Cls_OnNCLButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT codeHitTest) */
(void)(fn)((hwnd), (fDoubleClick) ? WM_NCLBUTTONDBLCLK : WM_NCLBUTTONDOWN, (WPARAM)(UINT)(codeHitTest), MAKELPARAM((x), (y)))
/* void Cls_OnNCLButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT codeHitTest) */
/* void Cls_OnNCLButtonUp(HWND hwnd, int x, int y, UINT codeHitTest) */
/* void Cls_OnNCRButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT codeHitTest) */
(void)(fn)((hwnd), (fDoubleClick) ? WM_NCRBUTTONDBLCLK : WM_NCRBUTTONDOWN, (WPARAM)(UINT)(codeHitTest), MAKELPARAM((x), (y)) )
/* void Cls_OnNCRButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT codeHitTest) */
/* void Cls_OnNCRButtonUp(HWND hwnd, int x, int y, UINT codeHitTest) */
/* void Cls_OnNCMButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT codeHitTest) */
(void)(fn)((hwnd), (fDoubleClick) ? WM_NCMBUTTONDBLCLK : WM_NCMBUTTONDOWN, (WPARAM)(UINT)(codeHitTest), MAKELPARAM((x), (y)) )
/* void Cls_OnNCMButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT codeHitTest) */
/* void Cls_OnNCMButtonUp(HWND hwnd, int x, int y, UINT codeHitTest) */
/* int Cls_OnMouseActivate(HWND hwnd, HWND hwndTopLevel, UINT codeHitTest, UINT msg) */
(int)(DWORD)(fn)((hwnd), WM_MOUSEACTIVATE, (WPARAM)(HWND)(hwndTopLevel), MAKELPARAM((codeHitTest), (msg)))
/* void Cls_OnCancelMode(HWND hwnd) */
/* void Cls_OnInitMenu(HWND hwnd, HMENU hMenu) */
/* void Cls_OnMenuSelect(HWND hwnd, HMENU hmenu, int item, HMENU hmenuPopup, UINT flags) */
(void)(fn)((hwnd), WM_MENUSELECT, MAKEWPARAM((item), (flags)), (LPARAM)(HMENU)((hmenu) ? (hmenu) : (hmenuPopup)))
/* DWORD Cls_OnMenuChar(HWND hwnd, UINT ch, UINT flags, HMENU hmenu) */
/* void Cls_OnHScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos) */
(void)(fn)((hwnd), WM_HSCROLL, MAKEWPARAM((UINT)(int)(code),(UINT)(int)(pos)), (LPARAM)(UINT)(hwndCtl))
/* void Cls_OnVScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos) */
(void)(fn)((hwnd), WM_VSCROLL, MAKEWPARAM((UINT)(int)(code), (UINT)(int)(pos)), (LPARAM)(HWND)(hwndCtl))
/* void Cls_OnCut(HWND hwnd) */
/* void Cls_OnCopy(HWND hwnd) */
/* void Cls_OnPaste(HWND hwnd) */
/* void Cls_OnClear(HWND hwnd) */
/* void Cls_OnUndo(HWND hwnd) */
/* HANDLE Cls_OnRenderFormat(HWND hwnd, UINT fmt) */
/* void Cls_OnRenderAllFormats(HWND hwnd) */
/* void Cls_OnDestroyClipboard(HWND hwnd) */
/* void Cls_OnDrawClipboard(HWND hwnd) */
/* void Cls_OnPaintClipboard(HWND hwnd, HWND hwndCBViewer, const LPPAINTSTRUCT lpPaintStruct) */
((fn)((hwnd), (HWND)(wParam), (const LPPAINTSTRUCT)GlobalLock((HGLOBAL)(lParam))), GlobalUnlock((HGLOBAL)(lParam)), 0L)
(void)(fn)((hwnd), WM_PAINTCLIPBOARD, (WPARAM)(HWND)(hwndCBViewer), (LPARAM)(LPPAINTSTRUCT)(lpPaintStruct))
/* void Cls_OnSizeClipboard(HWND hwnd, HWND hwndCBViewer, const LPRECT lprc) */
((fn)((hwnd), (HWND)(wParam), (const LPRECT)GlobalLock((HGLOBAL)(lParam))), GlobalUnlock((HGLOBAL)(lParam)), 0L)
/* void Cls_OnVScrollClipboard(HWND hwnd, HWND hwndCBViewer, UINT code, int pos) */
/* void Cls_OnHScrollClipboard(HWND hwnd, HWND hwndCBViewer, UINT code, int pos) */
/* void Cls_OnAskCBFormatName(HWND hwnd, int cchMax, LPTSTR rgchName) */
/* void Cls_OnChangeCBChain(HWND hwnd, HWND hwndRemove, HWND hwndNext) */
/* BOOL Cls_OnSetCursor(HWND hwnd, HWND hwndCursor, UINT codeHitTest, UINT msg) */
(BOOL)(DWORD)(fn)((hwnd), WM_SETCURSOR, (WPARAM)(HWND)(hwndCursor), MAKELPARAM((codeHitTest), (msg)))
/* void Cls_OnSysCommand(HWND hwnd, UINT cmd, int x, int y) */
/* HWND Cls_MDICreate(HWND hwnd, const LPMDICREATESTRUCT lpmcs) */
/* void Cls_MDIDestroy(HWND hwnd, HWND hwndDestroy) */
/* NOTE: Usable only by MDI client windows */
/* void Cls_MDIActivate(HWND hwnd, BOOL fActive, HWND hwndActivate, HWND hwndDeactivate) */
/* void Cls_MDIRestore(HWND hwnd, HWND hwndRestore) */
/* HWND Cls_MDINext(HWND hwnd, HWND hwndCur, BOOL fPrev) */
/* void Cls_MDIMaximize(HWND hwnd, HWND hwndMaximize) */
/* BOOL Cls_MDITile(HWND hwnd, UINT cmd) */
/* BOOL Cls_MDICascade(HWND hwnd, UINT cmd) */
/* void Cls_MDIIconArrange(HWND hwnd) */
/* HWND Cls_MDIGetActive(HWND hwnd) */
/* HMENU Cls_MDISetMenu(HWND hwnd, BOOL fRefresh, HMENU hmenuFrame, HMENU hmenuWindow) */
(HMENU)(UINT)(DWORD)(fn)((hwnd), WM_MDISETMENU, (WPARAM)((fRefresh) ? (hmenuFrame) : 0), (LPARAM)(hmenuWindow))
/* void Cls_OnChildActivate(HWND hwnd) */
/* BOOL Cls_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) */
/* HWND Cls_OnNextDlgCtl(HWND hwnd, HWND hwndSetFocus, BOOL fNext) */
/* void Cls_OnParentNotify(HWND hwnd, UINT msg, HWND hwndChild, int idChild) */
/* void Cls_OnEnterIdle(HWND hwnd, UINT source, HWND hwndSource) */
/* UINT Cls_OnGetDlgCode(HWND hwnd, LPMSG lpmsg) */
/* HBRUSH Cls_OnCtlColor(HWND hwnd, HDC hdc, HWND hwndChild, int type) */
(HBRUSH)(UINT)(DWORD)(fn)((hwnd), WM_CTLCOLORLISTBOX, (WPARAM)(HDC)(hdc), (LPARAM)(HWND)(hwndChild))
(HBRUSH)(UINT)(DWORD)(fn)((hwnd), WM_CTLCOLORSCROLLBAR, (WPARAM)(HDC)(hdc), (LPARAM)(HWND)(hwndChild))
/* void Cls_OnDeleteItem(HWND hwnd, const DELETEITEMSTRUCT * lpDeleteItem) */
(void)(fn)((hwnd), WM_DELETEITEM, (WPARAM)(((const DELETEITEMSTRUCT *)(lpDeleteItem))->CtlID), (LPARAM)(const DELETEITEMSTRUCT *)(lpDeleteItem))
/* int Cls_OnCompareItem(HWND hwnd, const COMPAREITEMSTRUCT * lpCompareItem) */
(int)(DWORD)(fn)((hwnd), WM_COMPAREITEM, (WPARAM)(((const COMPAREITEMSTRUCT *)(lpCompareItem))->CtlID), (LPARAM)(const COMPAREITEMSTRUCT *)(lpCompareItem))
/* int Cls_OnVkeyToItem(HWND hwnd, UINT vk, HWND hwndListbox, int iCaret) */
/* int Cls_OnCharToItem(HWND hwnd, UINT ch, HWND hwndListbox, int iCaret) */
(int)(DWORD)(fn)((hwnd), WM_CHARTOITEM, MAKEWPARAM((UINT)(ch), (UINT)(iCaret)), (LPARAM)(hwndListBox))
/* void Cls_OnQueueSync(HWND hwnd) */
/* void Cls_OnCommNotify(HWND hwnd, int cid, UINT flags) */
/* void Cls_OnDisplayChange(HWND hwnd, UINT bitsPerPixel, UINT cxScreen, UINT cyScreen) */
(void)(fn)((hwnd), WM_DISPLAYCHANGE, (WPARAM)(UINT)(bitsPerPixel), (LPARAM)MAKELPARAM((UINT)(cxScreen), (UINT)(cyScreen)))
/* BOOL Cls_OnDeviceChange(HWND hwnd, UINT uEvent, DWORD dwEventData) */
/* void Cls_OnContextMenu(HWND hwnd, HWND hwndContext, UINT xPos, UINT yPos) */
(void)(fn)((hwnd), WM_CONTEXTMENU, (WPARAM)(HWND)(hwndContext), MAKELPARAM((UINT)(xPos), (UINT)(yPos)))
/* void Cls_OnMeasureItem(HWND hwnd, MEASUREITEMSTRUCT * lpMeasureItem) */
(void)(fn)((hwnd), WM_MEASUREITEM, (WPARAM)(((MEASUREITEMSTRUCT *)lpMeasureItem)->CtlID), (LPARAM)(MEASUREITEMSTRUCT *)(lpMeasureItem))
/* void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) */
/* void Cls_OnTimer(HWND hwnd, UINT id) */
/* void Cls_OnInitMenuPopup(HWND hwnd, HMENU hMenu, UINT item, BOOL fSystemMenu) */
/* UINT Cls_OnNCHitTest(HWND hwnd, int x, int y) */
/* HFONT Cls_OnGetFont(HWND hwnd) */
/* void Cls_OnSetFont(HWND hwndCtl, HFONT hfont, BOOL fRedraw) */
/* void Cls_OnGetMinMaxInfo(HWND hwnd, LPMINMAXINFO lpMinMaxInfo) */
/* void Cls_OnDrawItem(HWND hwnd, const DRAWITEMSTRUCT lpDrawItem) */
(void)(fn)((hwnd), WM_DRAWITEM, (WPARAM)(((const DRAWITEMSTRUCT *)lpDrawItem)->CtlID), (LPARAM)(const DRAWITEMSTRUCT *)(lpDrawItem))
/****** C runtime porting macros ****************************************/
#ifdef __cplusplus
}
#endif
#endif