summaryrefslogtreecommitdiff
path: root/vcl/os2/inc/xwphook.h
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/os2/inc/xwphook.h')
-rw-r--r--vcl/os2/inc/xwphook.h620
1 files changed, 620 insertions, 0 deletions
diff --git a/vcl/os2/inc/xwphook.h b/vcl/os2/inc/xwphook.h
new file mode 100644
index 000000000000..07e00bd4c4c1
--- /dev/null
+++ b/vcl/os2/inc/xwphook.h
@@ -0,0 +1,620 @@
+
+/*
+ * xwphook.h:
+ * header for both xwphook.c and xwpdaemon.c. This is also
+ * included from a number of sources for XFLDR.DLL which need
+ * to interface (configure) the daemon.
+ */
+
+/*
+ * Copyright (C) 1999-2002 Ulrich Mller.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, in version 2 as it comes in the COPYING
+ * file of the XWorkplace main distribution.
+ * This program 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 General Public License for more details.
+ */
+
+#ifndef XWPHOOK_HEADER_INCLUDED
+ #define XWPHOOK_HEADER_INCLUDED
+
+ /* ******************************************************************
+ *
+ * OS2.INI applications and keys
+ *
+ ********************************************************************/
+
+ #define INIAPP_XWPHOOK "XWorkplace:Hook" // added V0.9.0
+ #define INIKEY_HOOK_HOTKEYS "Hotkeys" // added V0.9.0
+ #define INIKEY_HOOK_CONFIG "Config" // added V0.9.0
+ #define INIKEY_HOOK_PAGERCONFIG "PagerConfig" // V0.9.2 (2000-02-25) [umoeller]
+ // changed V0.9.19 (2002-05-07) [umoeller]
+ #define INIKEY_HOOK_PAGERWINPOS "PagerWinPos"
+ // changed V0.9.19 (2002-05-07) [umoeller]
+ #define INIKEY_HOOK_FUNCTIONKEYS "FuncKeys" // added V0.9.3 (2000-04-19) [umoeller]
+ #define INIKEY_HOOK_MOUSEMAPPINGS "MouseMappings" // added V0.9.19 (2002-04-20) [lafaix]
+
+ /* ******************************************************************
+ *
+ * Structures
+ *
+ ********************************************************************/
+
+ // do not change the following, or this will break
+ // binary compatibility of the XPager OS2.INI data
+ #define MAX_STICKIES 64
+ #define STICKYLEN 50
+
+#ifndef __NOPAGER__
+
+ // flags for PAGERCONFIG.aulStickyFlags
+ #define SF_CONTAINS 0x00000000L // default
+ #define SF_BEGINSWITH 0x00000001L
+ #define SF_ENDSWITH 0x00000002L
+ #define SF_EQUALS 0x00000004L
+ #define SF_MATCHES 0x00000008L // V0.9.19 (2002-04-17) [umoeller]
+ #define SF_OPERATOR_MASK 0x0000FFFFL
+
+ #define SF_INCLUDE 0x00000000L // default
+ #define SF_EXCLUDE 0x00010000L
+ #define SF_CRITERIA_MASK 0x00010000L
+
+ #define SF_TITLE 0x00000000L // default
+ #define SF_ATTRIBUTE_MASK 0xFFFE0000L
+
+ #pragma pack(1)
+
+ /*
+ *@@ PAGERCONFIG:
+ * XPager configuration data.
+ * This is stored within the HOOKDATA structure
+ * (statically in the hook DLL) so that both
+ * the daemon and the hook have access to this.
+ *
+ *@@added V0.9.2 (2000-02-25) [umoeller]
+ */
+
+ typedef struct _PAGERCONFIG
+ {
+ BYTE cDesktopsX,
+ cDesktopsY,
+ // no. of virtual Desktops (x and y)
+ bStartX,
+ bStartY;
+ // initial desktop at startup
+
+ ULONG flPager;
+ // flags for "XPager" settings page 1
+ #define PGRFL_WRAPAROUND 0x0001
+ #define PGRFL_HOTKEYS 0x0002
+ #define PGRFL_NOFOLLOWFOCUS 0x0004
+
+ #define PGRMASK_PAGE1 (PGRFL_WRAPAROUND | PGRFL_HOTKEYS)
+ #define PGRFL_PAGE1_DEFAULTS 0
+
+ // flags for "XPager" settings page 2
+ #define PGRFL_PRESERVEPROPS 0x0010
+ // preserve proportions of XPager win when resizing?
+ #define PGRFL_STAYONTOP 0x0020
+ // stay on top?
+ #define PGRFL_FLASHTOTOP 0x0040
+ #define PGRFL_MINIWINDOWS 0x0080
+ // show mini windows in XPager?
+ #define PGRFL_MINIWIN_TITLES 0x0100
+ // show mini window titles?
+ #define PGRFL_MINIWIN_MOUSE 0x0200
+ // allow activate/lower by mouse clicks?
+ #define PGRFL_INCLUDESECONDARY 0x0400
+ #define PGRFL_INCLUDESTICKY 0x0800
+ #define PGRFL_MINIWIN_ICONS 0x1000
+ // show mini window icons?
+ // V0.9.19 (2002-06-13) [umoeller]
+
+ #define PGRMASK_PAGE2 ( PGRFL_PRESERVEPROPS \
+ | PGRFL_STAYONTOP \
+ | PGRFL_FLASHTOTOP \
+ | PGRFL_MINIWINDOWS \
+ | PGRFL_MINIWIN_TITLES \
+ | PGRFL_MINIWIN_MOUSE \
+ | PGRFL_INCLUDESECONDARY \
+ | PGRFL_INCLUDESTICKY \
+ | PGRFL_MINIWIN_ICONS )
+ #define PGRFL_PAGE2_DEFAULTS ( PGRFL_PRESERVEPROPS \
+ | PGRFL_MINIWINDOWS \
+ | PGRFL_MINIWIN_TITLES \
+ | PGRFL_MINIWIN_MOUSE)
+
+ // flags for "XPager" settings page 3
+ #define PGRFL_ADDSTICKYTOGGLE 0x2000
+ // add "sticky" option to system menu?
+ // V1.0.0 (2002-09-14) [lafaix]
+
+ #define PGRMASK_PAGE3 ( PGRFL_ADDSTICKYTOGGLE )
+ #define PGRFL_PAGE3_DEFAULTS 0
+ #define PGRFL_WINDOWS_KEYS 0x00010000
+ // V1.0.3 (2004-10-14) [bird]: Use windows keys for left / right
+
+ ULONG ulFlashDelay;
+ // "flash" delay in milliseconds, if PGRFL_FLASHTOTOP
+ ULONG flKeyShift; // KC_* values
+
+ // paint settings
+ ULONG flPaintMode; // as in BKGNDINFO (gpih.h)
+ LONG lcolDesktop1, // as in BKGNDINFO (gpih.h)
+ lcolDesktop2; // as in BKGNDINFO (gpih.h)
+
+ LONG lcolActiveDesktop; // color of hatching for active desktop
+
+ LONG lcolGrid; // grid color (separators between desktops)
+
+ LONG lcolInactiveWindow,
+ lcolActiveWindow,
+ lcolWindowFrame,
+ lcolInactiveText,
+ lcolActiveText;
+
+ // sticky windows
+ ULONG cStickies;
+ ULONG aulStickyFlags[MAX_STICKIES]; // SF_* flags per sticky
+ CHAR aszStickies[MAX_STICKIES][STICKYLEN];
+
+ } PAGERCONFIG, *PPAGERCONFIG;
+
+ #pragma pack()
+
+#endif
+
+ // flags for HOOKCONFIG.usScrollMode
+ #define SM_LINEWISE 0
+ #define SM_AMPLIFIED 1
+
+ // flags for HOOKCONFIG.ulAutoHideFlags
+ #define AHF_IGNOREMENUS 0x00000001L
+ #define AHF_IGNOREBUTTONS 0x00000002L
+
+ // flags for HOOKCONFIG.ulAutoMoveFlags
+ #define AMF_ALWAYSMOVE 0x00000001L
+ #define AMF_IGNORENOBUTTON 0x00000002L
+ #define AMF_ANIMATE 0x00000004L
+
+ /*
+ *@@ HOOKCONFIG:
+ * configuration data for the hook and the daemon.
+ *
+ * This is stored within the HOOKDATA structure
+ * (statically in the hook DLL) so that both
+ * the daemon and the hook have access to this.
+ *
+ * A mirror of this structure is put into OS2.INI
+ * which gets loaded by the XWorkplace settings
+ * objects in XFLDR.DLL to configure the hook.
+ * This gets (re)loaded by the daemon when XFLDR.DLL
+ * posts XDM_HOOKCONFIG to fnwpDaemonObject.
+ *
+ * So this is seen by the hook and the daemon;
+ * XFLDR.DLL only writes this back to OS2.INI and
+ * notifies the daemon to reload this.
+ *
+ * For every item, the safe default value is null
+ * so the structure can be zeroed to disable
+ * everything.
+ *
+ * If settings are added to this structure, they
+ * must be added to the bottom in order not to
+ * break binary compatibility between XWP versions.
+ *
+ * Note that the object hotkey _definitions_ are
+ * not part of this structure. Those are set using
+ * XDM_HOTKEYSCHANGED instead. However, object
+ * hotkeys are globally enabled in here (fGlobalHotkeys).
+ */
+#pragma pack(4)
+ typedef struct _HOOKCONFIG
+ {
+ // Sliding focus:
+
+ PM_BOOL __fSlidingFocus;
+ // enabled?
+ ULONG __ulSlidingFocusDelay;
+ // delay in ms; 0 = off
+
+ PM_BOOL __fSlidingBring2Top;
+ // bring windows to top or preserve Z-order
+ PM_BOOL __fSlidingIgnoreDesktop;
+ // ignore Desktop windows
+ PM_BOOL __fSlidingIgnoreSeamless;
+ // TRUE: ignore seamless Win-OS/2 windows
+ // FALSE: always bring them to top
+
+ // Screen corner objects:
+ HOBJECT ahobjDummy[4]; // was four screen corner objects;
+ // we extended the array to 8 items
+ // so the array had to be moved to the
+ // bottom in order not to break binary
+ // compatibility
+
+ BYTE bMonitorDrives[30]; // array of 1-byte BOOLs; if any of these
+ // is "1", the corresponding drive letter
+ // will be monitored for media change
+ // (index 1 = A, index 2 = B, index 3 = C, ...).
+ // Index 0 is unused to match logical drive numbers.
+
+ // More mouse mappings: V0.9.1 (99-12-03)
+
+ PM_BOOL fChordWinList; // deprecated V0.9.19 (2002-04-20) [lafaix]
+ // show window list on mb1+2 chord
+ PM_BOOL fSysMenuMB2TitleBar; // deprecated V0.9.19 (2002-04-20) [lafaix]
+ // show system menu on mb2 title-bar click
+
+ // Mouse-button-3 scrolling: V0.9.1 (99-12-03)
+
+ PM_BOOL fMB3Scroll; // deprecated V0.9.19 (2002-04-20) [lafaix]
+ // scroll window contents on MB3Drag
+ PM_BOOL fMB3ScrollReverse; // deprecated V0.9.19 (2002-04-20) [lafaix]
+ // reverse scrolling
+ USHORT usScrollMode; // deprecated V0.9.19 (2002-04-20) [lafaix]
+ // one of the following:
+ // -- SM_LINEWISE (0): scroll fixed, line-wise
+ // -- SM_AMPLIFIED (1): scroll amplified, relative to window size
+ USHORT usMB3ScrollMin;
+ // minimum pixels that mouse must be moved;
+ // 0 means 1, 1 means 2, ...
+ SHORT sAmplification;
+ // amplification (-9 thru +10)
+ // the amplification in percent is calculated like this:
+ // percent = 100 + (sAmplification * 10)
+ // so we get:
+ // 0 --> 100%
+ // 2 --> 120%
+ // 10 --> 200%
+ // -2 --> 80%
+ // -9 --> 10%
+
+ // Auto-hide mouse pointer: V0.9.1 (99-12-03)
+ PM_BOOL __fAutoHideMouse;
+ ULONG __ulAutoHideDelay;
+ // delay in seconds; 0 means 1 second, 2 means 3, ...
+
+ // Global object hotkeys enabled:
+ // this can be disabled even if any hotkeys are defined
+ // because the hotkeys themselves are stored separately
+ // in shared memory
+ PM_BOOL __fGlobalHotkeys;
+
+ // XPager configuration
+ PM_BOOL fRemoved1, // _fXPagerStayOnTop,
+ fRemoved2; //__fSlidingIgnoreXPager;
+ // removed V0.9.19 (2002-05-07) [umoeller]
+
+ // Sliding menus
+ PM_BOOL fSlidingMenus;
+ // enabled?
+ ULONG ulSubmenuDelay;
+ // delay in ms; 0 = off
+ PM_BOOL fMenuImmediateHilite;
+
+ // Mouse-button-3 single-clicks to MB1 double-clicks
+ // V0.9.4 (2000-06-12) [umoeller]
+ PM_BOOL fMB3Click2MB1DblClk; // deprecated V0.9.19 (2002-04-20) [lafaix]
+
+ // Screen corner objects:
+ // moved the array down here (there's a dummy above)
+ // V0.9.4 (2000-06-12) [umoeller]
+ HOBJECT ahobjHotCornerObjects[8];
+ // Indices:
+ // 0 = lower left corner,
+ // 1 = top left corner,
+ // 2 = lower right corner,
+ // 3 = top right corner;
+ // borders added V0.9.4 (2000-06-12) [umoeller]:
+ // 4 = top border,
+ // 5 = left border,
+ // 6 = right border,
+ // 7 = bottom border.
+ // V0.9.18 (2002-02-12) [pr]
+ #define SCREENCORNER_MIN 0
+ #define SCREENCORNER_BOTTOMLEFT 0
+ #define SCREENCORNER_TOPLEFT 1
+ #define SCREENCORNER_BOTTOMRIGHT 2
+ #define SCREENCORNER_TOPRIGHT 3
+ #define SCREENCORNER_TOP 4
+ #define SCREENCORNER_LEFT 5
+ #define SCREENCORNER_RIGHT 6
+ #define SCREENCORNER_BOTTOM 7
+ #define SCREENCORNER_MAX 7
+ // If any item is NULLHANDLE, it means the
+ // corner is inactive (no function defined).
+ // If the hiword of the item is 0xFFFF, this
+ // means a special function has been defined:
+ // (#define's added V0.9.19 (2002-04-17) [umoeller]):
+ #define SPECIALOBJ_FIRST 0xFFFF0000
+ #define SPECIALOBJ_SHOWWINDOWLIST 0xFFFF0000
+ #define SPECIALOBJ_DESKTOPCONTEXTMENU 0xFFFF0001
+ #define SPECIALOBJ_PAGER_SHOW 0xFFFF0002
+ // the following added (2001-01-26) [lafaix]
+ #define SPECIALOBJ_PAGER_UP 0xFFFF0003
+ #define SPECIALOBJ_PAGER_RIGHT 0xFFFF0004
+ #define SPECIALOBJ_PAGER_DOWN 0xFFFF0005
+ #define SPECIALOBJ_PAGER_LEFT 0xFFFF0006
+ // the following added V0.9.18 [pr]
+ #define SPECIALOBJ_SCREENWRAP 0xFFFF0007
+ // Otherwise (> 0 and < 0xFFFF0000), we have
+ // a "real" object handle, and a regular WPS
+ // object is to be opened.
+
+ // special treatment for conditional-cascade submenus when
+ // using sliding menus (V0.9.6 (2000-10-27) [umoeller])
+ PM_BOOL fConditionalCascadeSensitive;
+
+ // more XPager configuration V0.9.7 (2000-12-08) [umoeller]
+ PM_BOOL fRemoved3; // __fSlidingIgnoreXCenter;
+ // removed V0.9.19 (2002-05-07) [umoeller]
+
+ // screen corner objects sensitivity; in percent of the
+ // adjacents borders. 0 = off, 50 = borders objects disabled
+ // V0.9.9 (2001-03-15) [lafaix]
+ ULONG ulCornerSensitivity;
+
+ // Mouse-button-3 autoscroll and push to bottom features
+ PM_BOOL fMB3AutoScroll; // deprecated V0.9.19 (2002-04-20) [lafaix]
+ PM_BOOL fMB3Push2Bottom; // deprecated V0.9.19 (2002-04-20) [lafaix]
+
+ // Auto hide and automatic pointer movement options
+ // V0.9.14 (2001-08-02) [lafaix]
+ ULONG __ulAutoHideFlags;
+ PM_BOOL __fAutoMoveMouse;
+ ULONG __ulAutoMoveFlags;
+ ULONG __ulAutoMoveDelay; // V0.9.14 (2001-08-21) [umoeller]
+ ULONG __ulMouseMappingsCount; // V0.9.19 (2002-04-20) [lafaix]
+ } HOOKCONFIG, *PHOOKCONFIG;
+#pragma pack()
+
+ /*
+ *@@ GLOBALHOTKEY:
+ * single XWorkplace object hotkey definition.
+ * Arrays of this are allocated in shared memory and
+ * used by xwphook.c, xwpdaemn.c, and also XFldObject
+ * for hotkey manipulation and detection.
+ */
+
+ typedef struct _GLOBALHOTKEY
+ {
+ USHORT usFlags;
+ // Keyboard control codes:
+ // SHORT1FROMMP(mp1) of WM_CHAR, filtered.
+ // Only the following flags will be set:
+ // -- KC_CTRL
+ // -- KC_ALT
+ // -- KC_SHIFT
+ // -- KC_VIRTUALKEY
+ // -- KC_INVALIDCOMP: special flag used if the
+ // scan code represents one of the user-defined
+ // function keys in the XWPKeyboard object.
+ // KC_CTRL, KC_ALT, KC_SHIFT work always,
+ // no matter if we're in a PM or VIO session.
+ // However, for some reason, KC_VIRTUALKEY is
+ // never set in VIO sessions. We still store it
+ // in this structure though to be able to display
+ // the hotkey in the configuration pages.
+ // The hook will filter that out since the scan
+ // code is good enough to identify the key.
+ UCHAR ucScanCode;
+ // Hardware scan code:
+ // CHAR4FROMMP(mp1) of WM_CHAR.
+ // As opposed to what we do with folder hotkeys,
+ // this must be stored also, because we must use
+ // the scan code for WM_CHAR processing in the hook
+ // to identify hotkeys. We cannot use usKeyCode
+ // because that's different in VIO sessions, while
+ // this one is always the same.
+ // Even if any of Ctrl, Alt, Shift are pressed, this
+ // has the scan code of the additional key which was
+ // pressed.
+ USHORT usKeyCode;
+ // key code:
+ // if KC_VIRTUALKEY is set in usFlags, this has usvk,
+ // otherwise usch from WM_CHAR.
+ // This is only used to be able to display the hotkey
+ // in the hotkey configuration dialogs; we do _not_ use
+ // this to check WM_CHAR messages in the hook, because
+ // this is different between PM and VIO sessions.
+ ULONG ulHandle;
+ // handle to post to thread-1 object window (kernel.c);
+ // this is normally the HOBJECT of the object to be
+ // opened.
+ } GLOBALHOTKEY, *PGLOBALHOTKEY;
+
+ /*
+ *@@ MOUSEMAPPING:
+ * single XWorkplace mouse mapping definition.
+ * Arrays of this are allocated in shared memory and
+ * used by xwphook.c, xwpdaemn.c, and also XWPMouse
+ * for mouse mappings manipulation and detection.
+ *
+ *@@added V0.9.19 (2002-04-20) [lafaix]
+ */
+
+ typedef struct _MOUSEMAPPING
+ {
+ USHORT usEvent;
+ // One of the MME_* values (or MME_XBUTTON_FIRST+n
+ // to denote extra button n, 0 <= n < 32).
+ // standard mouse events
+ #define MME_BUTTON1CLICK 0x0001
+ #define MME_BUTTON2CLICK 0x0002
+ #define MME_BUTTON3CLICK 0x0003
+ #define MME_BUTTON1DRAG 0x0004
+ #define MME_BUTTON2DRAG 0x0005
+ #define MME_BUTTON3DRAG 0x0006
+ #define MME_CHORD 0x0007
+ // wheel/stick events
+ #define MME_UP 0x1001
+ #define MME_DOWN 0x1002
+ #define MME_LEFT 0x1003
+ #define MME_RIGHT 0x1004
+ // the 2X and 3X variants are handy when mapping an action
+ // to a wheel/stick movement. They map at least 2 (or 3)
+ // consecutive events, and hence disambiguate an unexpected
+ // wheel/stick event.
+ #define MME_UP2X 0x2001
+ #define MME_DOWN2X 0x2002
+ #define MME_LEFT2X 0x2003
+ #define MME_RIGHT2X 0x2004
+ #define MME_UP3X 0x3001
+ #define MME_DOWN3X 0x3002
+ #define MME_LEFT3X 0x3003
+ #define MME_RIGHT3X 0x3004
+ // extra buttons
+ #define MME_XBUTTON_FIRST 0x4000
+ // type helpers
+ #define MME_TYPE_MASK 0xF000
+ #define MME_TYPE_STANDARD 0x0000
+ #define MME_TYPE_WHEEL 0x1000
+ #define MME_TYPE_WHEEL2X 0x2000
+ #define MME_TYPE_WHEEL3X 0x3000
+ #define MME_TYPE_XBUTTON 0x4000
+ #define MME_TYPE_DISABLED 0x8000
+
+ USHORT usModifiers;
+ // A possibly empty combination of KC_SHIFT, KC_CTRL,
+ // and KC_ALT.
+ CHAR achLocation[32];
+ // The class name upon which this mapping applies.
+ // An empty location (i.e., achLocation[0] = 0) means
+ // a global mapping.
+ CHAR achPluginName[8];
+ // The plugin library providing the action defined for
+ // this mapping. An empty location (i.e.,
+ // achPluginName[0] = 0) means a buildin action.
+ USHORT usAction;
+ // The action (relative to the plugin) defined for
+ // this event.
+ BYTE abSetup[16];
+ // A private area possibly refining the action.
+ } MOUSEMAPPING, *PMOUSEMAPPING;
+
+ /*
+ *@@ FUNCTIONKEY:
+ * XWorkplace function key description.
+ * An array of these is returned by
+ * hifQueryFunctionKeys().
+ *
+ *@@added V0.9.3 (2000-04-19) [umoeller]
+ */
+
+ typedef struct _FUNCTIONKEY
+ {
+ UCHAR ucScanCode; // hardware scan code;
+ // CHAR4FROMMP(mp1) of WM_CHAR
+ CHAR szDescription[30]; // key description (e.g. "Win left")
+ PM_BOOL fModifier; // TRUE if the scan code represents
+ // a modifier key which can be pressed
+ // together with another key, similar
+ // to Ctrl or Alt or Del; this will
+ // allow us to do things like "WinLeft + C"
+ } FUNCTIONKEY, *PFUNCTIONKEY;
+
+ /* ******************************************************************
+ *
+ * Messages
+ *
+ ********************************************************************/
+
+ #define XDM_HOOKINSTALL (WM_USER + 400)
+
+ #define XDM_DESKTOPREADY (WM_USER + 401)
+
+ #define XDM_HOOKCONFIG (WM_USER + 402)
+
+#ifndef __NOPAGER__
+ #define XDM_STARTSTOPPAGER (WM_USER + 403)
+
+ #define XDM_PAGERCONFIG (WM_USER + 404)
+ // flags for XDM_PAGERCONFIG:
+ #define PGRCFG_REPAINT 0x0001 // invalidates mini windows
+ #define PGRCFG_REFORMAT 0x0004 // causes PGRM_POSITIONFRAME,
+ // repaints background too
+ #define PGRCFG_STICKIES 0x0008 // sticky windows have changed
+#endif
+
+ #define XDM_HOTKEYPRESSED (WM_USER + 405)
+
+ #define XDM_HOTKEYSCHANGED (WM_USER + 406)
+
+ #define XDM_FUNCTIONKEYSCHANGED (WM_USER + 407)
+
+#ifndef __NOSLIDINGFOCUS__
+ #define XDM_SLIDINGFOCUS (WM_USER + 408)
+#endif
+
+ #define XDM_SLIDINGMENU (WM_USER + 409)
+
+ #define XDM_HOTCORNER (WM_USER + 410)
+
+ #define XDM_WMCHORDWINLIST (WM_USER + 411)
+
+ // added V0.9.9 (2001-03-18) [lafaix]
+ #define XDM_BEGINSCROLL (WM_USER + 413)
+ #define XDM_SETPOINTER (WM_USER + 414)
+ #define XDM_ENDSCROLL (WM_USER + 415)
+
+ // added V0.9.12 (2001-05-12) [umoeller]
+ #define XDM_RECOVERWINDOWS (WM_USER + 416)
+
+ #define XDM_ADDDISKWATCH (WM_USER + 417)
+
+ /*
+ *@@ ADDDISKWATCH:
+ * struct used with XDM_ADDDISKWATCH.
+ *
+ *@@added V0.9.14 (2001-08-01) [umoeller]
+ */
+
+ typedef struct _ADDDISKWATCH
+ {
+ ULONG ulLogicalDrive; // disk to be monitored
+ HWND hwndNotify; // window to be notified on change
+ ULONG ulMessage; // message to be posted to window
+ } ADDDISKWATCH, *PADDDISKWATCH;
+
+ #define XDM_REMOVEDISKWATCH (WM_USER + 418)
+
+ #define XDM_QUERYDISKS (WM_USER + 419)
+
+ #define XDM_ADDCLICKWATCH (WM_USER + 420)
+
+ #define XDM_MOUSECLICKED (WM_USER + 421)
+
+#ifndef __NOMOVEMENT2FEATURES__
+ #define XDM_MOVEPTRTOBUTTON (WM_USER + 422)
+#endif
+
+ #define XDM_DISABLEHOTKEYSTEMP (WM_USER + 423)
+
+ #define XDM_STARTAPP (WM_USER + 424)
+
+ #define XDM_ADDWINLISTWATCH (WM_USER + 425)
+
+ #define XDM_WINDOWCHANGE (WM_USER + 426)
+
+ #define XDM_ICONCHANGE (WM_USER + 427)
+
+ #define XDM_QUERYWINLIST (WM_USER + 428)
+
+ #define XDM_REMOVEWINLISTWATCH (WM_USER + 429) // V0.9.19 (2002-06-14) [lafaix]
+
+ #define XDM_REMOVECLICKWATCH (WM_USER + 430) // V0.9.19 (2002-06-14) [lafaix]
+
+#ifndef __NOPAGER__
+ #define XDM_TOGGLETRANSIENTSTICKY (WM_USER + 431) // V1.0.0 (2002-07-26) [lafaix]
+ #define XDM_ISTRANSIENTSTICKY (WM_USER + 432)
+#endif
+
+ #define XDM_NLSCHANGED (WM_USER + 433) // V1.0.0 (2002-09-15) [lafaix]
+#endif
+
+
+