| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: wx/msw/missing.h
- // Purpose: Declarations for parts of the Win32 SDK that are missing in
- // the versions that come with some compilers
- // Created: 2002/04/23
- // Copyright: (c) 2002 Mattia Barbon
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_MISSING_H_
- #define _WX_MISSING_H_
- /*
- * The following are required for VC++ 6.
- */
- // Needed by cursor.cpp
- #ifndef IDC_HAND
- #define IDC_HAND MAKEINTRESOURCE(32649)
- #endif
- // Needed by strconv.cpp
- #ifndef WC_NO_BEST_FIT_CHARS
- #define WC_NO_BEST_FIT_CHARS 0x400
- #endif
- #ifndef WM_CONTEXTMENU
- #define WM_CONTEXTMENU 0x007B
- #endif
- #ifndef WM_CHANGEUISTATE
- #define WM_CHANGEUISTATE 0x0127
- #endif
- #ifndef WM_UPDATEUISTATE
- #define WM_UPDATEUISTATE 0x0128
- #endif
- #ifndef WM_QUERYUISTATE
- #define WM_QUERYUISTATE 0x0129
- #endif
- #ifndef WM_PRINTCLIENT
- #define WM_PRINTCLIENT 0x318
- #endif
- #ifndef DT_HIDEPREFIX
- #define DT_HIDEPREFIX 0x00100000
- #endif
- #ifndef DSS_HIDEPREFIX
- #define DSS_HIDEPREFIX 0x0200
- #endif
- // Needed by toplevel.cpp
- #ifndef UIS_SET
- #define UIS_SET 1
- #define UIS_CLEAR 2
- #define UIS_INITIALIZE 3
- #endif
- #ifndef UISF_HIDEFOCUS
- #define UISF_HIDEFOCUS 1
- #endif
- #ifndef UISF_HIDEACCEL
- #define UISF_HIDEACCEL 2
- #endif
- #ifndef OFN_EXPLORER
- #define OFN_EXPLORER 0x00080000
- #endif
- #ifndef OFN_ENABLESIZING
- #define OFN_ENABLESIZING 0x00800000
- #endif
- // Needed by window.cpp
- #if wxUSE_MOUSEWHEEL
- #ifndef WM_MOUSEWHEEL
- #define WM_MOUSEWHEEL 0x020A
- #endif
- #ifndef WM_MOUSEHWHEEL
- #define WM_MOUSEHWHEEL 0x020E
- #endif
- #ifndef WHEEL_DELTA
- #define WHEEL_DELTA 120
- #endif
- #ifndef SPI_GETWHEELSCROLLLINES
- #define SPI_GETWHEELSCROLLLINES 104
- #endif
- #ifndef SPI_GETWHEELSCROLLCHARS
- #define SPI_GETWHEELSCROLLCHARS 108
- #endif
- #endif // wxUSE_MOUSEWHEEL
- // Needed by window.cpp
- #ifndef VK_OEM_1
- #define VK_OEM_1 0xBA
- #define VK_OEM_2 0xBF
- #define VK_OEM_3 0xC0
- #define VK_OEM_4 0xDB
- #define VK_OEM_5 0xDC
- #define VK_OEM_6 0xDD
- #define VK_OEM_7 0xDE
- #define VK_OEM_102 0xE2
- #endif
- #ifndef VK_OEM_COMMA
- #define VK_OEM_PLUS 0xBB
- #define VK_OEM_COMMA 0xBC
- #define VK_OEM_MINUS 0xBD
- #define VK_OEM_PERIOD 0xBE
- #endif
- #ifndef SM_TABLETPC
- #define SM_TABLETPC 86
- #endif
- #ifndef INKEDIT_CLASS
- # define INKEDIT_CLASSW L"INKEDIT"
- # ifdef UNICODE
- # define INKEDIT_CLASS INKEDIT_CLASSW
- # else
- # define INKEDIT_CLASS "INKEDIT"
- # endif
- #endif
- #ifndef EM_SETINKINSERTMODE
- # define EM_SETINKINSERTMODE (WM_USER + 0x0204)
- #endif
- #ifndef EM_SETUSEMOUSEFORINPUT
- #define EM_SETUSEMOUSEFORINPUT (WM_USER + 0x224)
- #endif
- #ifndef TPM_RECURSE
- #define TPM_RECURSE 1
- #endif
- #ifndef WS_EX_LAYOUTRTL
- #define WS_EX_LAYOUTRTL 0x00400000
- #endif
- #ifndef WS_EX_COMPOSITED
- #define WS_EX_COMPOSITED 0x02000000L
- #endif
- #ifndef WS_EX_LAYERED
- #define WS_EX_LAYERED 0x00080000
- #endif
- #ifndef LWA_ALPHA
- #define LWA_ALPHA 2
- #endif
- #ifndef QS_ALLPOSTMESSAGE
- #define QS_ALLPOSTMESSAGE 0
- #endif
- /*
- * The following are required for VC++ 5 when the PSDK is not available.
- */
- #if defined __VISUALC__ && __VISUALC__ <= 1100
- #ifndef VER_NT_WORKSTATION
- typedef struct _OSVERSIONINFOEXA {
- DWORD dwOSVersionInfoSize;
- DWORD dwMajorVersion;
- DWORD dwMinorVersion;
- DWORD dwBuildNumber;
- DWORD dwPlatformId;
- CHAR szCSDVersion[128];
- WORD wServicePackMajor;
- WORD wServicePackMinor;
- WORD wSuiteMask;
- BYTE wProductType;
- BYTE wReserved;
- } OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
- typedef struct _OSVERSIONINFOEXW {
- DWORD dwOSVersionInfoSize;
- DWORD dwMajorVersion;
- DWORD dwMinorVersion;
- DWORD dwBuildNumber;
- DWORD dwPlatformId;
- WCHAR szCSDVersion[128];
- WORD wServicePackMajor;
- WORD wServicePackMinor;
- WORD wSuiteMask;
- BYTE wProductType;
- BYTE wReserved;
- } OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW;
- #ifdef UNICODE
- typedef OSVERSIONINFOW OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
- typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
- #else
- typedef OSVERSIONINFOA OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
- typedef OSVERSIONINFOEXA OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
- #endif
- #endif // defined VER_NT_WORKSTATION
- #ifndef CP_SYMBOL
- #define CP_SYMBOL 42
- #endif
- // NMLVCUSTOMDRAW originally didn't have the iSubItem member. It was added
- // with IE4, as was IPN_FIRST which is used as a test :-(.
- //
- #ifndef IPN_FIRST
- typedef struct wxtagNMLVCUSTOMDRAW_ {
- NMCUSTOMDRAW nmcd;
- COLORREF clrText;
- COLORREF clrTextBk;
- int iSubItem;
- } wxNMLVCUSTOMDRAW_, *wxLPNMLVCUSTOMDRAW_;
- #define NMLVCUSTOMDRAW wxNMLVCUSTOMDRAW_
- #define LPNMLVCUSTOMDRAW wxLPNMLVCUSTOMDRAW_
- #endif // defined IPN_FIRST
- #endif // defined __VISUALC__ && __VISUALC__ <= 1100
- // ----------------------------------------------------------------------------
- // menu stuff
- // ----------------------------------------------------------------------------
- #ifndef MIIM_BITMAP
- #define MIIM_STRING 0x00000040
- #define MIIM_BITMAP 0x00000080
- #define MIIM_FTYPE 0x00000100
- #define HBMMENU_CALLBACK ((HBITMAP) -1)
- typedef struct tagMENUINFO
- {
- DWORD cbSize;
- DWORD fMask;
- DWORD dwStyle;
- UINT cyMax;
- HBRUSH hbrBack;
- DWORD dwContextHelpID;
- DWORD dwMenuData;
- } MENUINFO, FAR *LPMENUINFO;
- #endif // MIIM_BITMAP &c
- // ----------------------------------------------------------------------------
- // definitions related to ListView and Header common controls, needed by
- // msw/listctrl.cpp and msw/headerctrl.cpp
- // ----------------------------------------------------------------------------
- #ifndef I_IMAGENONE
- #define I_IMAGENONE (-2)
- #endif
- #ifndef LVS_EX_FULLROWSELECT
- #define LVS_EX_FULLROWSELECT 0x00000020
- #endif
- // LVS_EX_LABELTIP is not supported by Windows CE, don't define it there
- #if !defined(LVS_EX_LABELTIP) && !defined(__WXWINCE__)
- #define LVS_EX_LABELTIP 0x00004000
- #endif
- #ifndef LVS_EX_SUBITEMIMAGES
- #define LVS_EX_SUBITEMIMAGES 0x00000002
- #endif
- #ifndef HDN_GETDISPINFOW
- #define HDN_GETDISPINFOW (HDN_FIRST-29)
- #endif
- #ifndef HDS_HOTTRACK
- #define HDS_HOTTRACK 4
- #endif
- #ifndef HDS_FLAT
- #define HDS_FLAT 0x0200
- #endif
- #ifndef HDF_SORTUP
- #define HDF_SORTUP 0x0400
- #define HDF_SORTDOWN 0x0200
- #endif
- /*
- * In addition to the above, the following are required for several compilers.
- */
- #if !defined(CCS_VERT)
- #define CCS_VERT 0x00000080L
- #endif
- #if !defined(CCS_RIGHT)
- #define CCS_RIGHT (CCS_VERT|CCS_BOTTOM)
- #endif
- #if !defined(TB_SETDISABLEDIMAGELIST)
- #define TB_SETDISABLEDIMAGELIST (WM_USER + 54)
- #endif // !defined(TB_SETDISABLEDIMAGELIST)
- #ifndef CFM_BACKCOLOR
- #define CFM_BACKCOLOR 0x04000000
- #endif
- #ifndef HANGUL_CHARSET
- #define HANGUL_CHARSET 129
- #endif
- #ifndef CCM_SETUNICODEFORMAT
- #define CCM_SETUNICODEFORMAT 8197
- #endif
- // ----------------------------------------------------------------------------
- // Tree control
- // ----------------------------------------------------------------------------
- #ifndef TV_FIRST
- #define TV_FIRST 0x1100
- #endif
- #ifndef TVS_FULLROWSELECT
- #define TVS_FULLROWSELECT 0x1000
- #endif
- #ifndef TVM_SETBKCOLOR
- #define TVM_SETBKCOLOR (TV_FIRST + 29)
- #define TVM_SETTEXTCOLOR (TV_FIRST + 30)
- #endif
- /*
- * The following are required for BC++ 5.5 (none at present.)
- */
- /*
- * The following are specifically required for Digital Mars C++
- */
- #ifdef __DMC__
- #ifndef VER_NT_WORKSTATION
- typedef struct _OSVERSIONINFOEX {
- DWORD dwOSVersionInfoSize;
- DWORD dwMajorVersion;
- DWORD dwMinorVersion;
- DWORD dwBuildNumber;
- DWORD dwPlatformId;
- TCHAR szCSDVersion[ 128 ];
- WORD wServicePackMajor;
- WORD wServicePackMinor;
- WORD wSuiteMask;
- BYTE wProductType;
- BYTE wReserved;
- } OSVERSIONINFOEX;
- #endif // !defined(VER_NT_WORKSTATION)
- #ifndef _TrackMouseEvent
- #define _TrackMouseEvent TrackMouseEvent
- #endif
- #ifndef LVM_SETEXTENDEDLISTVIEWSTYLE
- #define LVM_SETEXTENDEDLISTVIEWSTYLE (0x1000 + 54)
- #endif
- #ifndef LVM_GETSUBITEMRECT
- #define LVM_GETSUBITEMRECT (0x1000 + 56)
- #endif
- #ifndef LVCF_IMAGE
- #define LVCF_IMAGE 0x0010
- #endif
- #ifndef Header_GetItemRect
- #define Header_GetItemRect(w,i,r) \
- (BOOL)SendMessage((w),HDM_GETITEMRECT,(WPARAM)(i),(LPARAM)(r))
- #endif
- #ifndef HDM_GETITEMRECT
- #define HDM_GETITEMRECT (HDM_FIRST+7)
- #endif
- #ifndef ListView_GetHeader
- #define ListView_GetHeader(w) (HWND)SendMessage((w),LVM_GETHEADER,0,0)
- #endif
- #ifndef ListView_GetSubItemRect
- #define ListView_GetSubItemRect(w, i, s, c, p) (HWND)SendMessage(w,LVM_GETSUBITEMRECT,i, ((p) ? ((((LPRECT)(p))->top = s), (((LPRECT)(p))->left = c), (LPARAM)(p)) : (LPARAM)(LPRECT)NULL))
- #endif
- #ifndef LVM_GETHEADER
- #define LVM_GETHEADER (LVM_FIRST+31)
- #endif
- #ifndef HDLAYOUT
- #define HDLAYOUT HD_LAYOUT
- #endif
- #ifndef HDITEM
- #define HDITEM HD_ITEM
- #endif
- #ifndef NMHEADER
- #define NMHEADER HD_NOTIFY
- #endif
- #ifndef HDS_DRAGDROP
- #define HDS_DRAGDROP 0x0040
- #endif
- #ifndef HDS_FULLDRAG
- #define HDS_FULLDRAG 0x0080
- #endif
- #ifndef HDN_BEGINDRAG
- #define HDN_BEGINDRAG (HDN_FIRST - 11)
- #endif
- #ifndef HDN_ENDDRAG
- #define HDN_ENDDRAG (HDN_FIRST - 10)
- #endif
- #ifndef LVSICF_NOSCROLL
- #define LVSICF_NOINVALIDATEALL 0x0001
- #define LVSICF_NOSCROLL 0x0002
- #endif
- #ifndef CP_SYMBOL
- #define CP_SYMBOL 42
- #endif
- // ----------------------------------------------------------------------------
- // wxDisplay
- // ----------------------------------------------------------------------------
- // The windows headers with Digital Mars lack some typedefs.
- // typedef them as my_XXX and then #define to rename to XXX in case
- // a newer version of Digital Mars fixes the headers
- // (or up to date PSDK is in use with older version)
- // also we use any required definition (MONITOR_DEFAULTTONULL) to recognize
- // whether whole missing block needs to be included
- #ifndef MONITOR_DEFAULTTONULL
- #define HMONITOR_DECLARED
- DECLARE_HANDLE(HMONITOR);
- typedef BOOL(CALLBACK* my_MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
- #define MONITORENUMPROC my_MONITORENUMPROC
- typedef struct my_tagMONITORINFO {
- DWORD cbSize;
- RECT rcMonitor;
- RECT rcWork;
- DWORD dwFlags;
- } my_MONITORINFO,*my_LPMONITORINFO;
- #define MONITORINFO my_MONITORINFO
- #define LPMONITORINFO my_LPMONITORINFO
- typedef struct my_MONITORINFOEX : public my_tagMONITORINFO
- {
- TCHAR szDevice[CCHDEVICENAME];
- } my_MONITORINFOEX, *my_LPMONITORINFOEX;
- #define MONITORINFOEX my_MONITORINFOEX
- #define LPMONITORINFOEX my_LPMONITORINFOEX
- #ifndef MONITOR_DEFAULTTONULL
- #define MONITOR_DEFAULTTONULL 0
- #endif // MONITOR_DEFAULTTONULL
- #ifndef MONITORINFOF_PRIMARY
- #define MONITORINFOF_PRIMARY 1
- #endif // MONITORINFOF_PRIMARY
- #ifndef DDENUM_ATTACHEDSECONDARYDEVICES
- #define DDENUM_ATTACHEDSECONDARYDEVICES 1
- #endif
- #endif // MONITOR_DEFAULTTONULL
- // ----------------------------------------------------------------------------
- // Tree control
- // ----------------------------------------------------------------------------
- #ifndef TVIS_FOCUSED
- #define TVIS_FOCUSED 0x0001
- #endif
- #ifndef TVS_CHECKBOXES
- #define TVS_CHECKBOXES 0x0100
- #endif
- #ifndef TVITEM
- #define TVITEM TV_ITEM
- #endif
- #endif
- // DMC++
- /*
- * The following are specifically required for OpenWatcom C++ (none at present)
- */
- #if defined(__WATCOMC__)
- #endif
- /*
- * The following are specifically required for MinGW (none at present)
- */
- #if defined (__MINGW32__)
- #if !wxCHECK_W32API_VERSION(3,1)
- #include <windows.h>
- #include "wx/msw/winundef.h"
- typedef struct
- {
- RECT rgrc[3];
- WINDOWPOS *lppos;
- } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
- #endif
- #endif
- //Various defines that will be needed by mingw and possibly VC++6
- //Used by the webview library
- #ifndef DISPID_COMMANDSTATECHANGE
- #define DISPID_COMMANDSTATECHANGE 105
- #endif
- #ifndef DISPID_NAVIGATECOMPLETE2
- #define DISPID_NAVIGATECOMPLETE2 252
- #endif
- #ifndef DISPID_NAVIGATEERROR
- #define DISPID_NAVIGATEERROR 271
- #endif
- #ifndef DISPID_NEWWINDOW3
- #define DISPID_NEWWINDOW3 273
- #endif
- #ifndef INET_E_ERROR_FIRST
- #define INET_E_ERROR_FIRST 0x800C0002L
- #endif
- #ifndef INET_E_INVALID_URL
- #define INET_E_INVALID_URL 0x800C0002L
- #endif
- #ifndef INET_E_NO_SESSION
- #define INET_E_NO_SESSION 0x800C0003L
- #endif
- #ifndef INET_E_CANNOT_CONNECT
- #define INET_E_CANNOT_CONNECT 0x800C0004L
- #endif
- #ifndef INET_E_RESOURCE_NOT_FOUND
- #define INET_E_RESOURCE_NOT_FOUND 0x800C0005L
- #endif
- #ifndef INET_E_OBJECT_NOT_FOUND
- #define INET_E_OBJECT_NOT_FOUND 0x800C0006L
- #endif
- #ifndef INET_E_DATA_NOT_AVAILABLE
- #define INET_E_DATA_NOT_AVAILABLE 0x800C0007L
- #endif
- #ifndef INET_E_DOWNLOAD_FAILURE
- #define INET_E_DOWNLOAD_FAILURE 0x800C0008L
- #endif
- #ifndef INET_E_AUTHENTICATION_REQUIRED
- #define INET_E_AUTHENTICATION_REQUIRED 0x800C0009L
- #endif
- #ifndef INET_E_NO_VALID_MEDIA
- #define INET_E_NO_VALID_MEDIA 0x800C000AL
- #endif
- #ifndef INET_E_CONNECTION_TIMEOUT
- #define INET_E_CONNECTION_TIMEOUT 0x800C000BL
- #endif
- #ifndef INET_E_INVALID_REQUEST
- #define INET_E_INVALID_REQUEST 0x800C000CL
- #endif
- #ifndef INET_E_UNKNOWN_PROTOCOL
- #define INET_E_UNKNOWN_PROTOCOL 0x800C000DL
- #endif
- #ifndef INET_E_SECURITY_PROBLEM
- #define INET_E_SECURITY_PROBLEM 0x800C000EL
- #endif
- #ifndef INET_E_CANNOT_LOAD_DATA
- #define INET_E_CANNOT_LOAD_DATA 0x800C000FL
- #endif
- #ifndef INET_E_CANNOT_INSTANTIATE_OBJECT
- #define INET_E_CANNOT_INSTANTIATE_OBJECT 0x800C0010L
- #endif
- #ifndef INET_E_QUERYOPTION_UNKNOWN
- #define INET_E_QUERYOPTION_UNKNOWN 0x800C0013L
- #endif
- #ifndef INET_E_REDIRECT_FAILED
- #define INET_E_REDIRECT_FAILED 0x800C0014L
- #endif
- #ifndef INET_E_REDIRECT_TO_DIR
- #define INET_E_REDIRECT_TO_DIR 0x800C0015L
- #endif
- #ifndef INET_E_CANNOT_LOCK_REQUEST
- #define INET_E_CANNOT_LOCK_REQUEST 0x800C0016L
- #endif
- #ifndef INET_E_USE_EXTEND_BINDING
- #define INET_E_USE_EXTEND_BINDING 0x800C0017L
- #endif
- #ifndef INET_E_TERMINATED_BIND
- #define INET_E_TERMINATED_BIND 0x800C0018L
- #endif
- #ifndef INET_E_INVALID_CERTIFICATE
- #define INET_E_INVALID_CERTIFICATE 0x800C0019L
- #endif
- #ifndef INET_E_CODE_DOWNLOAD_DECLINED
- #define INET_E_CODE_DOWNLOAD_DECLINED 0x800C0100L
- #endif
- #ifndef INET_E_RESULT_DISPATCHED
- #define INET_E_RESULT_DISPATCHED 0x800C0200L
- #endif
- #ifndef INET_E_CANNOT_REPLACE_SFP_FILE
- #define INET_E_CANNOT_REPLACE_SFP_FILE 0x800C0300L
- #endif
- #ifndef INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY
- #define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY 0x800C0500L
- #endif
- #ifndef INET_E_CODE_INSTALL_SUPPRESSED
- #define INET_E_CODE_INSTALL_SUPPRESSED 0x800C0400L
- #endif
- #ifndef MUI_LANGUAGE_NAME
- #define MUI_LANGUAGE_NAME 0x8
- #endif
- /*
- * In addition to the declarations for VC++, the following are required for WinCE
- */
- #ifdef __WXWINCE__
- #include "wx/msw/wince/missing.h"
- #endif
- /*
- * The following are specifically required for Wine
- */
- #ifdef __WINE__
- #ifndef ENUM_CURRENT_SETTINGS
- #define ENUM_CURRENT_SETTINGS ((DWORD)-1)
- #endif
- #ifndef BROADCAST_QUERY_DENY
- #define BROADCAST_QUERY_DENY 1112363332
- #endif
- #endif // defined __WINE__
- #ifndef INVALID_FILE_ATTRIBUTES
- #define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
- #endif
- #endif
- // _WX_MISSING_H_
|