X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1a3c509512ef9d89396c951053e859102ac605a5..31fb3cfe02f5ed82c47b80d264e84b8207a456b4:/include/wx/msw/missing.h?ds=sidebyside diff --git a/include/wx/msw/missing.h b/include/wx/msw/missing.h index 7d1f8db5c8..b6ab671844 100644 --- a/include/wx/msw/missing.h +++ b/include/wx/msw/missing.h @@ -11,484 +11,463 @@ #ifndef _WX_MISSING_H_ #define _WX_MISSING_H_ -// ---------------------------------------------------------------------------- -// ListView common control -// ---------------------------------------------------------------------------- +/* + * The following are required for VC++ 6. + */ -#ifndef LVHT_ONITEM - #define LVHT_ONITEM \ - (LVHT_ONITEMICON | LVHT_ONITEMLABEL | LVHT_ONITEMSTATEICON) +// Needed by cursor.cpp +#ifndef IDC_HAND + #define IDC_HAND MAKEINTRESOURCE(32649) #endif -#ifndef LVM_SETEXTENDEDLISTVIEWSTYLE - #define LVM_SETEXTENDEDLISTVIEWSTYLE (0x1000 + 54) +// Needed by strconv.cpp +#ifndef WC_NO_BEST_FIT_CHARS + #define WC_NO_BEST_FIT_CHARS 0x400 #endif -#ifndef LVS_EX_FULLROWSELECT - #define LVS_EX_FULLROWSELECT 0x00000020 +#ifndef WM_CONTEXTMENU + #define WM_CONTEXTMENU 0x007B #endif -#ifndef LVS_EX_LABELTIP - #define LVS_EX_LABELTIP 0x00004000 +#ifndef WM_CHANGEUISTATE + #define WM_CHANGEUISTATE 0x0127 #endif -#ifndef LVS_OWNERDATA - #define LVS_OWNERDATA 0x1000 +#ifndef WM_UPDATEUISTATE + #define WM_UPDATEUISTATE 0x0128 #endif -#ifndef LVM_FIRST - #define LVM_FIRST 0x1000 +#ifndef WM_QUERYUISTATE + #define WM_QUERYUISTATE 0x0129 #endif -#ifndef HDM_FIRST - #define HDM_FIRST 0x1200 +#ifndef WM_PRINTCLIENT + #define WM_PRINTCLIENT 0x318 #endif -#ifndef LVCFMT_JUSTIFYMASK - #define LVCFMT_JUSTIFYMASK 0x0003 +#ifndef DT_HIDEPREFIX + #define DT_HIDEPREFIX 0x00100000 #endif -#ifndef LVSICF_NOSCROLL - #define LVSICF_NOINVALIDATEALL 0x0001 - #define LVSICF_NOSCROLL 0x0002 +// Needed by toplevel.cpp +#ifndef UIS_SET + #define UIS_SET 1 + #define UIS_CLEAR 2 + #define UIS_INITIALIZE 3 #endif -// mingw32/cygwin don't have declarations for comctl32.dll 4.70+ stuff -#ifndef NM_CACHEHINT - typedef struct tagNMLVCACHEHINT - { - NMHDR hdr; - int iFrom; - int iTo; - } NMLVCACHEHINT; - - #define NM_CACHEHINT NMLVCACHEHINT +#ifndef UISF_HIDEFOCUS + #define UISF_HIDEFOCUS 1 #endif -#ifndef LVN_ODCACHEHINT - #define LVN_ODCACHEHINT (-113) +#ifndef UISF_HIDEACCEL + #define UISF_HIDEACCEL 2 #endif -#ifndef ListView_GetHeader - #define ListView_GetHeader(w) (HWND)SendMessage((w),LVM_GETHEADER,0,0) +#ifndef OFN_EXPLORER + #define OFN_EXPLORER 0x00080000 #endif -#ifndef LVM_GETHEADER - #define LVM_GETHEADER (LVM_FIRST+31) +#ifndef OFN_ENABLESIZING + #define OFN_ENABLESIZING 0x00800000 #endif -#ifndef Header_GetItemRect - #define Header_GetItemRect(w,i,r) \ - (BOOL)SendMessage((w),HDM_GETITEMRECT,(WPARAM)(i),(LPARAM)(r)) -#endif +// Needed by window.cpp +#if wxUSE_MOUSEWHEEL + #ifndef WM_MOUSEWHEEL + #define WM_MOUSEWHEEL 0x020A + #endif + #ifndef WHEEL_DELTA + #define WHEEL_DELTA 120 + #endif + #ifndef SPI_GETWHEELSCROLLLINES + #define SPI_GETWHEELSCROLLLINES 104 + #endif +#endif // wxUSE_MOUSEWHEEL -#ifndef HDM_GETITEMRECT - #define HDM_GETITEMRECT (HDM_FIRST+7) +// 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 #endif -#ifndef LVCF_IMAGE - #define LVCF_IMAGE 0x0010 +#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 LVCFMT_BITMAP_ON_RIGHT - #define LVCFMT_BITMAP_ON_RIGHT 0x1000 +#ifndef SM_TABLETPC + #define SM_TABLETPC 86 #endif -#if defined(__GNUWIN32__) && !defined(LV_ITEM) \ - && !wxCHECK_W32API_VERSION( 0, 5 ) -typedef struct _LVITEMW { - UINT mask; - int iItem; - int iSubItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -#if (_WIN32_IE >= 0x0300) - int iIndent; +#ifndef INKEDIT_CLASS +# define INKEDIT_CLASSW L"INKEDIT" +# ifdef UNICODE +# define INKEDIT_CLASS INKEDIT_CLASSW +# else +# define INKEDIT_CLASS "INKEDIT" +# endif #endif -} LV_ITEMW; -typedef struct tagLVITEMA -{ - UINT mask; - int iItem; - int iSubItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -#if (_WIN32_IE >= 0x0300) - int iIndent; +#ifndef EM_SETINKINSERTMODE +# define EM_SETINKINSERTMODE (WM_USER + 0x0204) #endif -} LV_ITEMA; -#define LV_ITEM LV_ITEMA; +#ifndef EM_SETUSEMOUSEFORINPUT +#define EM_SETUSEMOUSEFORINPUT (WM_USER + 0x224) #endif -#ifndef ListView_GetColumnWidth -#define ListView_GetColumnWidth(hwnd, iCol) \ - (int)SNDMSG((hwnd), LVM_GETCOLUMNWIDTH, (WPARAM)(int)(iCol), 0) +#ifndef TPM_RECURSE +#define TPM_RECURSE 1 #endif -#ifndef ListView_SetColumnWidth -#define ListView_SetColumnWidth(hwnd, iCol, cx) \ - (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNWIDTH, (WPARAM)(int)(iCol), MAKELPARAM((cx), 0)) -#endif -#ifndef ListView_GetTextColor -#define ListView_GetTextColor(hwnd) \ - (COLORREF)SNDMSG((hwnd), LVM_GETTEXTCOLOR, 0, 0L) +#ifndef WS_EX_LAYOUTRTL +#define WS_EX_LAYOUTRTL 0x00400000 #endif -#ifndef ListView_FindItem -#define ListView_FindItem(hwnd, iStart, plvfi) \ - (int)SNDMSG((hwnd), LVM_FINDITEM, (WPARAM)(int)(iStart), (LPARAM)(const LV_FINDINFO FAR*)(plvfi)) +#ifndef WS_EX_COMPOSITED +#define WS_EX_COMPOSITED 0x02000000L #endif -#if defined(__GNUWIN32__) && !wxCHECK_W32API_VERSION( 0, 5 ) -#ifndef LV_DISPINFOA -typedef struct tagNMLVDISPINFOA { - NMHDR hdr; - LV_ITEMA item; -} NMLVDISPINFOA, FAR *LPNMLVDISPINFOA; -#define _LV_DISPINFOA tagNMLVDISPINFOA -#define LV_DISPINFOA NMLVDISPINFOA -#endif -#ifndef LV_DISPINFOW -typedef struct tagNMLVDISPINFOW { - NMHDR hdr; - LV_ITEMW item; -} NMLVDISPINFOW, FAR *LPNMLVDISPINFOW; -#define _LV_DISPINFOW tagNMLVDISPINFOW -#define LV_DISPINFOW NMLVDISPINFOW -#endif +#ifndef WS_EX_LAYERED +#define WS_EX_LAYERED 0x00080000 #endif -#if ((defined(__WATCOMC__) && __WATCOMC__ >= 1200) || defined(__GNUWIN32__) || defined (__MINGW32__) || defined(__DIGITALMARS__) || defined (__BORLANDC__)) && !defined(HDN_GETDISPINFOW) -#define HDN_GETDISPINFOW (HDN_FIRST-29) -#if !wxCHECK_W32API_VERSION(2, 2) -typedef struct { - NMHDR hdr; - int iItem; - UINT mask; - LPWSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} NMHDDISPINFOW, *LPNMHDDISPINFOW; +#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 -#ifndef LVM_SETUNICODEFORMAT -#define LVM_SETUNICODEFORMAT 0x2005 +#endif // defined VER_NT_WORKSTATION + +#ifndef CP_SYMBOL + #define CP_SYMBOL 42 #endif -// ---------------------------------------------------------------------------- -// Common Control missing -// ---------------------------------------------------------------------------- -// __DMC__ date time control IDs +// 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 -#ifdef __DMC__ -#define DATETIMEPICK_CLASSW L"SysDateTimePick32" -#define DATETIMEPICK_CLASSA "SysDateTimePick32" +typedef struct wxtagNMLVCUSTOMDRAW_ { + NMCUSTOMDRAW nmcd; + COLORREF clrText; + COLORREF clrTextBk; + int iSubItem; +} wxNMLVCUSTOMDRAW_, *wxLPNMLVCUSTOMDRAW_; -#define ICC_DATE_CLASSES 256 +#define NMLVCUSTOMDRAW wxNMLVCUSTOMDRAW_ +#define LPNMLVCUSTOMDRAW wxLPNMLVCUSTOMDRAW_ -#if (_WIN32_IE >= 0x0300) -typedef struct tagINITCOMMONCONTROLSEX { - DWORD dwSize; - DWORD dwICC; -} INITCOMMONCONTROLSEX,*LPINITCOMMONCONTROLSEX; +#endif // defined IPN_FIRST -#define GDTR_MIN 1 -#define GDTR_MAX 2 +#endif // defined __VISUALC__ && __VISUALC__ <= 1100 -#define GDT_ERROR -1 -#define GDT_VALID 0 -#define GDT_NONE 1 +// ---------------------------------------------------------------------------- +// menu stuff +// ---------------------------------------------------------------------------- +#ifndef MIIM_BITMAP + #define MIIM_STRING 0x00000040 + #define MIIM_BITMAP 0x00000080 + #define MIIM_FTYPE 0x00000100 + #define HBMMENU_CALLBACK ((HBITMAP) -1) -#define DTS_UPDOWN 1 -#define DTS_SHOWNONE 2 -#define DTS_SHORTDATEFORMAT 0 -#define DTS_LONGDATEFORMAT 4 -#define DTS_TIMEFORMAT 9 -#define DTS_APPCANPARSE 16 -#define DTS_RIGHTALIGN 32 -#if ( _WIN32_IE >= 0x500 ) -#define DTS_SHORTDATECENTURYFORMAT 0x000C -#endif /* _WIN32_IE >= 0x500 */ -#endif + 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 -#define DATETIMEPICK_CLASSW L"SysDateTimePick32" -#define DATETIMEPICK_CLASSA "SysDateTimePick32" +#ifndef LVS_EX_FULLROWSELECT + #define LVS_EX_FULLROWSELECT 0x00000020 +#endif -#ifdef UNICODE - #define DATETIMEPICK_CLASS DATETIMEPICK_CLASSW -#else - #define DATETIMEPICK_CLASS DATETIMEPICK_CLASSA +// 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 -#define DTM_GETSYSTEMTIME 0x1001 -#define DTM_SETSYSTEMTIME 0x1002 -#define DTM_GETRANGE 0x1003 -#define DTM_SETRANGE 0x1004 -#define DTN_DATETIMECHANGE ((UINT)-759) +#ifndef LVS_EX_SUBITEMIMAGES + #define LVS_EX_SUBITEMIMAGES 0x00000002 +#endif -#define DateTime_GetMonthCal(hwnd) SNDMSG(hwnd, DTM_GETMONTHCAL, 0, 0) -#define DateTime_GetMonthCalColor(hwnd, icolor) SNDMSG(hwnd, DTM_GETMONTHCAL, (WPARAM)icolor,0) -#define DateTime_GetMonthCalFont(hwnd) SNDMSG(hwnd,DTM_GETMCFONT,0,0) -#define DateTime_GetRange(hwnd,lpsystimearray) SNDMSG(hwnd,DTM_GETRANGE,0,(LPARAM)lpsystimearray) -#define DateTime_GetSystemTime(hwnd,lpsystime) SNDMSG(hwnd,DTM_GETSYSTEMTIME,0,(LPARAM)lpsystime) -#define DateTime_SetFormat(hwnd,lpszformat) SNDMSG(hwnd,DTM_SETFORMAT,0,(LPARAM)lpszformat) -#define DateTime_SetMonthCalColor(hwnd,icolor,clr) SNDMSG(hwnd,DTM_SETMCCOLOR,(WPARAM)icolor,(LPARAM)clr) -#define DateTime_SetMonthCalFont(hwnd,hfont,lparam) SNDMSG(hwnd,DTM_SETMCFONT,(WPARAM)hfont,(LPARAM)lparam) -#define DateTime_SetRange(hwnd,flags,lpsystimearray) SNDMSG(hwnd,DTM_SETRANGE,(WPARAM)flags,(LPARAM)lpsystimearray) -#define DateTime_SetSystemTime(hwnd,flag,lpsystime) SNDMSG(hwnd,DTM_SETSYSTEMTIME,(WPARAM)flag,(LPARAM)lpsystime) +#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 -#endif //__DMC__ date time control IDs +#ifndef HDF_SORTUP + #define HDF_SORTUP 0x0400 + #define HDF_SORTDOWN 0x0200 +#endif -#if defined(__GNUWIN32__) && !wxCHECK_W32API_VERSION( 2, 4 ) || defined (__DMC__) -typedef struct tagNMDATETIMECHANGE -{ - NMHDR nmhdr; - DWORD dwFlags; - SYSTEMTIME st; -} NMDATETIMECHANGE; -#endif // old gcc headers + /* + * In addition to the above, the following are required for several compilers. + */ -// ---------------------------------------------------------------------------- -// Toolbar define value missing -// ---------------------------------------------------------------------------- #if !defined(CCS_VERT) #define CCS_VERT 0x00000080L #endif -// ---------------------------------------------------------------------------- -// MS HTML Help -// ---------------------------------------------------------------------------- +#if !defined(CCS_RIGHT) +#define CCS_RIGHT (CCS_VERT|CCS_BOTTOM) +#endif -// instead of including htmlhelp.h, duplicate the things from it we need here: +#if !defined(TB_SETDISABLEDIMAGELIST) + #define TB_SETDISABLEDIMAGELIST (WM_USER + 54) +#endif // !defined(TB_SETDISABLEDIMAGELIST) -enum -{ - HH_DISPLAY_TOPIC, - HH_DISPLAY_TOC, - HH_DISPLAY_INDEX, - HH_DISPLAY_SEARCH, - HH_SET_WIN_TYPE, - HH_GET_WIN_TYPE, - HH_GET_WIN_HANDLE, - HH_ENUM_INFO_TYPE, - HH_SET_INFO_TYPE, - HH_SYNC, - HH_RESERVED1, - HH_RESERVED2, - HH_RESERVED3, - HH_KEYWORD_LOOKUP, - HH_DISPLAY_TEXT_POPUP, - HH_HELP_CONTEXT, - HH_TP_HELP_CONTEXTMENU, - HH_TP_HELP_WM_HELP, - HH_CLOSE_ALL, - HH_ALINK_LOOKUP, - HH_GET_LAST_ERROR, - HH_ENUM_CATEGORY, - HH_ENUM_CATEGORY_IT, - HH_RESET_IT_FILTER, - HH_SET_INCLUSIVE_FILTER, - HH_SET_EXCLUSIVE_FILTER -}; +#ifndef CFM_BACKCOLOR + #define CFM_BACKCOLOR 0x04000000 +#endif -struct HH_POPUP -{ - int cbStruct; - HINSTANCE hinst; - UINT idString; - LPCTSTR pszText; - POINT pt; - COLORREF clrForeground; - COLORREF clrBackground; - RECT rcMargins; - LPCTSTR pszFont; -}; +#ifndef HANGUL_CHARSET + #define HANGUL_CHARSET 129 +#endif -struct HH_AKLINK -{ - int cbStruct; - BOOL fReserved; - LPCTSTR pszKeywords; - LPCTSTR pszUrl; - LPCTSTR pszMsgText; - LPCTSTR pszMsgTitle; - LPCTSTR pszWindow; - BOOL fIndexOnFail; -}; +#ifndef CCM_SETUNICODEFORMAT + #define CCM_SETUNICODEFORMAT 8197 +#endif // ---------------------------------------------------------------------------- -// SHGetFileInfo-related things +// Tree control // ---------------------------------------------------------------------------- -#ifndef SHGetFileInfo - #ifdef UNICODE - #define SHGetFileInfo SHGetFileInfoW - #else - #define SHGetFileInfo SHGetFileInfoA - #endif +#ifndef TV_FIRST + #define TV_FIRST 0x1100 #endif -#ifndef SHGFI_ATTRIBUTES - #define SHGFI_ATTRIBUTES 2048 +#ifndef TVS_FULLROWSELECT + #define TVS_FULLROWSELECT 0x1000 #endif -#ifndef SFGAO_READONLY - #define SFGAO_READONLY 0x00040000L +#ifndef TVM_SETBKCOLOR + #define TVM_SETBKCOLOR (TV_FIRST + 29) + #define TVM_SETTEXTCOLOR (TV_FIRST + 30) #endif -#ifndef SFGAO_REMOVABLE - #define SFGAO_REMOVABLE 0x02000000L + /* + * 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 SHGFI_DISPLAYNAME - #define SHGFI_DISPLAYNAME 512 +#ifndef LVM_SETEXTENDEDLISTVIEWSTYLE + #define LVM_SETEXTENDEDLISTVIEWSTYLE (0x1000 + 54) #endif -#ifndef SHGFI_ICON - #define SHGFI_ICON 256 +#ifndef LVM_GETSUBITEMRECT + #define LVM_GETSUBITEMRECT (0x1000 + 56) #endif -#ifndef SHGFI_SMALLICON - #define SHGFI_SMALLICON 1 +#ifndef LVCF_IMAGE + #define LVCF_IMAGE 0x0010 #endif -#ifndef SHGFI_SHELLICONSIZE - #define SHGFI_SHELLICONSIZE 4 +#ifndef Header_GetItemRect + #define Header_GetItemRect(w,i,r) \ + (BOOL)SendMessage((w),HDM_GETITEMRECT,(WPARAM)(i),(LPARAM)(r)) #endif -#ifndef SHGFI_OPENICON - #define SHGFI_OPENICON 2 +#ifndef HDM_GETITEMRECT + #define HDM_GETITEMRECT (HDM_FIRST+7) #endif -// ---------------------------------------------------------------------------- -// Rich text control -// ---------------------------------------------------------------------------- +#ifndef ListView_GetHeader + #define ListView_GetHeader(w) (HWND)SendMessage((w),LVM_GETHEADER,0,0) +#endif -#if wxUSE_RICHEDIT && defined(MAX_TAB_STOPS) +#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 -// old mingw32 doesn't define this -#ifndef CFM_CHARSET - #define CFM_CHARSET 0x08000000 -#endif // CFM_CHARSET +#ifndef LVM_GETHEADER + #define LVM_GETHEADER (LVM_FIRST+31) +#endif -#ifndef CFM_BACKCOLOR - #define CFM_BACKCOLOR 0x04000000 +#ifndef HDLAYOUT + #define HDLAYOUT HD_LAYOUT #endif -// cygwin does not have these defined for richedit -#ifndef ENM_LINK - #define ENM_LINK 0x04000000 +#ifndef HDITEM + #define HDITEM HD_ITEM #endif -#ifndef EM_AUTOURLDETECT - #define EM_AUTOURLDETECT (WM_USER + 91) +#ifndef NMHEADER + #define NMHEADER HD_NOTIFY #endif -#ifndef EN_LINK - #define EN_LINK 0x070b +#ifndef HDS_DRAGDROP + #define HDS_DRAGDROP 0x0040 +#endif +#ifndef HDS_FULLDRAG + #define HDS_FULLDRAG 0x0080 +#endif - typedef struct _enlink - { - NMHDR nmhdr; - UINT msg; - WPARAM wParam; - LPARAM lParam; - CHARRANGE chrg; - } ENLINK; -#endif // ENLINK - -#ifndef SF_UNICODE - #define SF_UNICODE 0x0010 -#endif - -// Watcom C++ doesn't define this -#ifndef SCF_ALL - #define SCF_ALL 0x0004 -#endif - -#ifndef PFA_JUSTIFY -#define PFA_JUSTIFY 4 - -typedef struct _paraformat2 { - UINT cbSize; - DWORD dwMask; - WORD wNumbering; - WORD wEffects; - LONG dxStartIndent; - LONG dxRightIndent; - LONG dxOffset; - WORD wAlignment; - SHORT cTabCount; - LONG rgxTabs[MAX_TAB_STOPS]; - LONG dySpaceBefore; - LONG dySpaceAfter; - LONG dyLineSpacing; - SHORT sStype; - BYTE bLineSpacingRule; - BYTE bOutlineLevel; - WORD wShadingWeight; - WORD wShadingStyle; - WORD wNumberingStart; - WORD wNumberingStyle; - WORD wNumberingTab; - WORD wBorderSpace; - WORD wBorderWidth; - WORD wBorders; -} PARAFORMAT2; -#define wxEffects wReserved - -#endif - -#endif // wxUSE_RICHEDIT -// ---------------------------------------------------------------------------- -// ToolBar -// ---------------------------------------------------------------------------- +#ifndef HDN_BEGINDRAG + #define HDN_BEGINDRAG (HDN_FIRST - 11) +#endif -#if wxUSE_TOOLBAR +#ifndef HDN_ENDDRAG + #define HDN_ENDDRAG (HDN_FIRST - 10) +#endif -#if !defined(TBIF_SIZE) +#ifndef LVSICF_NOSCROLL + #define LVSICF_NOINVALIDATEALL 0x0001 + #define LVSICF_NOSCROLL 0x0002 +#endif -#define TBIF_SIZE 64 -#define TB_SETBUTTONINFO (WM_USER+66) +#ifndef CP_SYMBOL + #define CP_SYMBOL 42 +#endif -typedef struct { - UINT cbSize; - DWORD dwMask; - int idCommand; - int iImage; - BYTE fsState; - BYTE fsStyle; - WORD cx; - DWORD lParam; - LPTSTR pszText; - int cchText; -} TBBUTTONINFO, *LPTBBUTTONINFO; +// ---------------------------------------------------------------------------- +// wxDisplay +// ---------------------------------------------------------------------------- -#endif // !defined(TBIF_SIZE) +// 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 -#if !defined(TB_SETDISABLEDIMAGELIST) - #define TB_SETDISABLEDIMAGELIST (WM_USER + 54) -#endif // !defined(TB_SETDISABLEDIMAGELIST) + #ifndef MONITOR_DEFAULTTONULL + #define MONITOR_DEFAULTTONULL 0 + #endif // MONITOR_DEFAULTTONULL -#endif // wxUSE_TOOLBAR + #ifndef MONITORINFOF_PRIMARY + #define MONITORINFOF_PRIMARY 1 + #endif // MONITORINFOF_PRIMARY + + #ifndef DDENUM_ATTACHEDSECONDARYDEVICES + #define DDENUM_ATTACHEDSECONDARYDEVICES 1 + #endif + +#endif // MONITOR_DEFAULTTONULL // ---------------------------------------------------------------------------- // Tree control @@ -498,203 +477,342 @@ typedef struct { #define TVIS_FOCUSED 0x0001 #endif -#ifndef TV_FIRST - #define TV_FIRST 0x1100 -#endif - #ifndef TVS_CHECKBOXES #define TVS_CHECKBOXES 0x0100 #endif -#ifndef TVS_FULLROWSELECT - #define TVS_FULLROWSELECT 0x1000 +#ifndef TVITEM + #define TVITEM TV_ITEM #endif -#ifndef TVM_SETBKCOLOR - #define TVM_SETBKCOLOR (TV_FIRST + 29) - #define TVM_SETTEXTCOLOR (TV_FIRST + 30) #endif + // DMC++ + + /* + * The following are specifically required for OpenWatcom C++ (none at present) + */ -#ifndef TVS_INFOTIP - #define TVS_INFOTIP 2048 +#if defined(__WATCOMC__) #endif -#ifndef TVN_GETINFOTIPA - #define TVN_GETINFOTIPA (TVN_FIRST-13) - #define TVN_GETINFOTIPW (TVN_FIRST-14) + /* + * The following are specifically required for MinGW (none at present) + */ + +#if defined (__MINGW32__) + +#if !wxCHECK_W32API_VERSION(3,1) + +#include +#include "wx/msw/winundef.h" + +typedef struct +{ + RECT rgrc[3]; + WINDOWPOS *lppos; +} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; + #endif -#ifndef TVN_GETINFOTIP - #ifdef UNICODE - #define TVN_GETINFOTIP TVN_GETINFOTIPW - #else - #define TVN_GETINFOTIP TVN_GETINFOTIPA - #endif #endif -#if !defined(NMTVGETINFOTIP) && defined(TVN_FIRST) - // NB: Check for TVN_FIRST is done so that this code is not included if - // (which defined HTREEITEM) wasn't included before. - struct NMTVGETINFOTIPA - { - NMHDR hdr; - LPSTR pszText; - int cchTextMax; - HTREEITEM hItem; - LPARAM lParam; - }; - struct NMTVGETINFOTIPW - { - NMHDR hdr; - LPWSTR pszText; - int cchTextMax; - HTREEITEM hItem; - LPARAM lParam; - }; - #ifdef UNICODE - #define NMTVGETINFOTIP NMTVGETINFOTIPW - #else - #define NMTVGETINFOTIP NMTVGETINFOTIPA - #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 -// ---------------------------------------------------------------------------- -// Misc stuff -// ---------------------------------------------------------------------------- +#ifndef DISPID_NAVIGATECOMPLETE2 +#define DISPID_NAVIGATECOMPLETE2 252 +#endif -#ifndef CCM_SETUNICODEFORMAT - #define CCM_SETUNICODEFORMAT 8197 +#ifndef DISPID_NAVIGATEERROR +#define DISPID_NAVIGATEERROR 271 #endif -#ifndef QS_ALLPOSTMESSAGE - #define QS_ALLPOSTMESSAGE 0x0100 +#ifndef DISPID_NEWWINDOW3 +#define DISPID_NEWWINDOW3 273 #endif -#ifndef WS_EX_CLIENTEDGE - #define WS_EX_CLIENTEDGE 0x00000200L +#ifndef INET_E_ERROR_FIRST +#define INET_E_ERROR_FIRST 0x800C0002L #endif -#ifndef ENDSESSION_LOGOFF - #define ENDSESSION_LOGOFF 0x80000000 +#ifndef INET_E_INVALID_URL +#define INET_E_INVALID_URL 0x800C0002L #endif -#ifndef HANGUL_CHARSET - #define HANGUL_CHARSET 129 +#ifndef INET_E_NO_SESSION +#define INET_E_NO_SESSION 0x800C0003L #endif -#ifndef TME_HOVER - #define TME_HOVER 1 +#ifndef INET_E_CANNOT_CONNECT +#define INET_E_CANNOT_CONNECT 0x800C0004L #endif -#ifndef TME_LEAVE - #define TME_LEAVE 2 +#ifndef INET_E_RESOURCE_NOT_FOUND +#define INET_E_RESOURCE_NOT_FOUND 0x800C0005L #endif -#ifndef TME_QUERY - #define TME_QUERY 0x40000000 +#ifndef INET_E_OBJECT_NOT_FOUND +#define INET_E_OBJECT_NOT_FOUND 0x800C0006L #endif -#ifndef TME_CANCEL - #define TME_CANCEL 0x80000000 +#ifndef INET_E_DATA_NOT_AVAILABLE +#define INET_E_DATA_NOT_AVAILABLE 0x800C0007L #endif -#ifndef HOVER_DEFAULT - #define HOVER_DEFAULT 0xFFFFFFFF +#ifndef INET_E_DOWNLOAD_FAILURE +#define INET_E_DOWNLOAD_FAILURE 0x800C0008L #endif -#ifdef __DMC__ +#ifndef INET_E_AUTHENTICATION_REQUIRED +#define INET_E_AUTHENTICATION_REQUIRED 0x800C0009L +#endif - #ifndef _TrackMouseEvent - #define _TrackMouseEvent TrackMouseEvent - #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 -// This didn't appear in mingw until 2.95.2 -#ifndef SIF_TRACKPOS -#define SIF_TRACKPOS 16 +#ifndef INET_E_INVALID_REQUEST +#define INET_E_INVALID_REQUEST 0x800C000CL #endif -#if wxUSE_MOUSEWHEEL - #ifndef WM_MOUSEWHEEL - #define WM_MOUSEWHEEL 0x020A - #endif - #ifndef WHEEL_DELTA - #define WHEEL_DELTA 120 - #endif - #ifndef SPI_GETWHEELSCROLLLINES - #define SPI_GETWHEELSCROLLLINES 104 - #endif -#endif // wxUSE_MOUSEWHEEL +#ifndef INET_E_UNKNOWN_PROTOCOL +#define INET_E_UNKNOWN_PROTOCOL 0x800C000DL +#endif -#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 +#ifndef INET_E_SECURITY_PROBLEM +#define INET_E_SECURITY_PROBLEM 0x800C000EL #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 +#ifndef INET_E_CANNOT_LOAD_DATA +#define INET_E_CANNOT_LOAD_DATA 0x800C000FL #endif -#ifndef WM_CONTEXTMENU - #define WM_CONTEXTMENU 0x007B +#ifndef INET_E_CANNOT_INSTANTIATE_OBJECT +#define INET_E_CANNOT_INSTANTIATE_OBJECT 0x800C0010L #endif -#ifndef WM_UPDATEUISTATE - #define WM_UPDATEUISTATE 0x0128 +#ifndef INET_E_QUERYOPTION_UNKNOWN +#define INET_E_QUERYOPTION_UNKNOWN 0x800C0013L #endif -#ifndef WM_PRINTCLIENT - #define WM_PRINTCLIENT 0x318 +#ifndef INET_E_REDIRECT_FAILED +#define INET_E_REDIRECT_FAILED 0x800C0014L #endif -#ifndef UIS_INITIALIZE - #define UIS_INITIALIZE 3 +#ifndef INET_E_REDIRECT_TO_DIR +#define INET_E_REDIRECT_TO_DIR 0x800C0015L #endif -#ifndef UISF_HIDEFOCUS - #define UISF_HIDEFOCUS 1 +#ifndef INET_E_CANNOT_LOCK_REQUEST +#define INET_E_CANNOT_LOCK_REQUEST 0x800C0016L #endif -#ifndef UISF_HIDEACCEL - #define UISF_HIDEACCEL 2 +#ifndef INET_E_USE_EXTEND_BINDING +#define INET_E_USE_EXTEND_BINDING 0x800C0017L #endif -#ifndef WC_NO_BEST_FIT_CHARS - #define WC_NO_BEST_FIT_CHARS 0x400 +#ifndef INET_E_TERMINATED_BIND +#define INET_E_TERMINATED_BIND 0x800C0018L #endif -#ifndef OFN_EXPLORER - #define OFN_EXPLORER 0x00080000 +#ifndef INET_E_INVALID_CERTIFICATE +#define INET_E_INVALID_CERTIFICATE 0x800C0019L #endif -#ifndef OFN_ENABLESIZING - #define OFN_ENABLESIZING 0x00800000 +#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 -// ------------------ For Flashing Window ------------- -#if (defined(__BORLANDC__) && (__BORLANDC__ < 550)) -typedef struct { - UINT cbSize; - HWND hwnd; - DWORD dwFlags; - UINT uCount; - DWORD dwTimeout; -} FLASHWINFO, *PFLASHWINFO; +#ifndef INET_E_CODE_INSTALL_SUPPRESSED +#define INET_E_CODE_INSTALL_SUPPRESSED 0x800C0400L #endif -// In addition, include stuff not defined in WinCE +//We need to check if we are using MinGW or mingw-w64 as their +//definitions are different + +#ifdef __MINGW32__ +#include <_mingw.h> +#endif + +#if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) +typedef enum CommandStateChangeConstants { + CSC_UPDATECOMMANDS = (int) 0xFFFFFFFF, + CSC_NAVIGATEFORWARD = 0x1, + CSC_NAVIGATEBACK = 0x2 +} CommandStateChangeConstants; +#endif + +//Definitions from w64 mingw-runtime package, in the public domain +//Used by webview + +//The GUIDs are currently not defined in either mingw or mingw-w64 + +#ifdef __MINGW32__ +DEFINE_GUID(IID_IInternetProtocolRoot,0x79eac9e3,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); +DEFINE_GUID(IID_IInternetProtocol,0x79eac9e4,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); +#endif + + +#if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) + +#define REFRESH_NORMAL 0 +#define REFRESH_COMPLETELY 3 + +EXTERN_C const IID CLSID_FileProtocol; + + +typedef enum __MIDL_IBindStatusCallback_0006 +{ + BSCF_FIRSTDATANOTIFICATION = 0x1, + BSCF_INTERMEDIATEDATANOTIFICATION = 0x2, + BSCF_LASTDATANOTIFICATION = 0x4, + BSCF_DATAFULLYAVAILABLE = 0x8, + BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10 +} BSCF; + +typedef struct _tagPROTOCOLDATA +{ + DWORD grfFlags; + DWORD dwState; + LPVOID pData; + ULONG cbData; +} PROTOCOLDATA; + +typedef struct _tagBINDINFO +{ + ULONG cbSize; + LPWSTR szExtraInfo; + STGMEDIUM stgmedData; + DWORD grfBindInfoF; + DWORD dwBindVerb; + LPWSTR szCustomVerb; + DWORD cbstgmedData; + DWORD dwOptions; + DWORD dwOptionsFlags; + DWORD dwCodePage; + SECURITY_ATTRIBUTES securityAttributes; + IID iid; + IUnknown *pUnk; + DWORD dwReserved; +} BINDINFO; + + +struct IInternetBindInfo : public IUnknown +{ +public: + virtual HRESULT WINAPI GetBindInfo(DWORD *grfBINDF,BINDINFO *pbindinfo) = 0; + virtual HRESULT WINAPI GetBindString(ULONG ulStringType,LPOLESTR *ppwzStr, + ULONG cEl,ULONG *pcElFetched) = 0; +}; + +struct IInternetProtocolSink : public IUnknown +{ +public: + virtual HRESULT WINAPI Switch(PROTOCOLDATA *pProtocolData) = 0; + virtual HRESULT WINAPI ReportProgress(ULONG ulStatusCode, + LPCWSTR szStatusText) = 0; + virtual HRESULT WINAPI ReportData(DWORD grfBSCF,ULONG ulProgress, + ULONG ulProgressMax) = 0; + virtual HRESULT WINAPI ReportResult(HRESULT hrResult,DWORD dwError, + LPCWSTR szResult) = 0; +}; + +struct IInternetProtocolRoot : public IUnknown +{ +public: + virtual HRESULT WINAPI Start(LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink, + IInternetBindInfo *pOIBindInfo,DWORD grfPI, + HANDLE_PTR dwReserved) = 0; + virtual HRESULT WINAPI Continue(PROTOCOLDATA *pProtocolData) = 0; + virtual HRESULT WINAPI Abort(HRESULT hrReason,DWORD dwOptions) = 0; + virtual HRESULT WINAPI Terminate(DWORD dwOptions) = 0; + virtual HRESULT WINAPI Suspend(void) = 0; + virtual HRESULT WINAPI Resume(void) = 0; +}; + +struct IInternetProtocol : public IInternetProtocolRoot +{ +public: + virtual HRESULT WINAPI Read(void *pv,ULONG cb,ULONG *pcbRead) = 0; + virtual HRESULT WINAPI Seek(LARGE_INTEGER dlibMove,DWORD dwOrigin, + ULARGE_INTEGER *plibNewPosition) = 0; + virtual HRESULT WINAPI LockRequest(DWORD dwOptions) = 0; + virtual HRESULT WINAPI UnlockRequest(void) = 0; +}; + +struct IInternetSession : public IUnknown +{ + public: + virtual HRESULT WINAPI RegisterNameSpace(IClassFactory *pCF,REFCLSID rclsid, + LPCWSTR pwzProtocol, + ULONG cPatterns, + const LPCWSTR *ppwzPatterns, + DWORD dwReserved) = 0; + virtual HRESULT WINAPI UnregisterNameSpace(IClassFactory *pCF, + LPCWSTR pszProtocol) = 0; + virtual HRESULT WINAPI RegisterMimeFilter(IClassFactory *pCF, + REFCLSID rclsid, + LPCWSTR pwzType) = 0; + virtual HRESULT WINAPI UnregisterMimeFilter(IClassFactory *pCF, + LPCWSTR pwzType) = 0; + virtual HRESULT WINAPI CreateBinding(LPBC pBC,LPCWSTR szUrl, + IUnknown *pUnkOuter,IUnknown **ppUnk, + IInternetProtocol **ppOInetProt, + DWORD dwOption) = 0; + virtual HRESULT WINAPI SetSessionOption(DWORD dwOption,LPVOID pBuffer, + DWORD dwBufferLength, + DWORD dwReserved) = 0; + virtual HRESULT WINAPI GetSessionOption(DWORD dwOption,LPVOID pBuffer, + DWORD *pdwBufferLength, + DWORD dwReserved) = 0; +}; + +#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_