/////////////////////////////////////////////////////////////////////////////
-// Name: missing.h
+// Name: wx/msw/missing.h
// Purpose: Declarations for parts of the Win32 SDK that are missing in
-// the version that comes with some compilers
+// the versions that come with some compilers
// Created: 2002/04/23
// RCS-ID: $Id$
+// Copyright: (c) 2002 Mattia Barbon
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#define LVCFMT_JUSTIFYMASK 0x0003
#endif
+#ifndef LVSICF_NOSCROLL
+ #define LVSICF_NOINVALIDATEALL 0x0001
+ #define LVSICF_NOSCROLL 0x0002
+#endif
+
// mingw32/cygwin don't have declarations for comctl32.dll 4.70+ stuff
#ifndef NM_CACHEHINT
typedef struct tagNMLVCACHEHINT
#endif
#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;
+#endif
+#endif
+
+#ifndef LVM_SETUNICODEFORMAT
+#define LVM_SETUNICODEFORMAT 0x2005
+#endif
+
+// ----------------------------------------------------------------------------
+// Common Control missing
+// ----------------------------------------------------------------------------
+// __DMC__ date time control IDs
+
+#ifdef __DMC__
+#define DATETIMEPICK_CLASSW L"SysDateTimePick32"
+#define DATETIMEPICK_CLASSA "SysDateTimePick32"
+
+#define ICC_DATE_CLASSES 256
+
+#if (_WIN32_IE >= 0x0300)
+typedef struct tagINITCOMMONCONTROLSEX {
+ DWORD dwSize;
+ DWORD dwICC;
+} INITCOMMONCONTROLSEX,*LPINITCOMMONCONTROLSEX;
+
+#define GDTR_MIN 1
+#define GDTR_MAX 2
+
+#define GDT_ERROR -1
+#define GDT_VALID 0
+#define GDT_NONE 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
+
+
+
+#define DATETIMEPICK_CLASSW L"SysDateTimePick32"
+#define DATETIMEPICK_CLASSA "SysDateTimePick32"
+
+#ifdef UNICODE
+ #define DATETIMEPICK_CLASS DATETIMEPICK_CLASSW
+#else
+ #define DATETIMEPICK_CLASS DATETIMEPICK_CLASSA
+#endif
+
+#define DTM_GETSYSTEMTIME 0x1001
+#define DTM_SETSYSTEMTIME 0x1002
+#define DTM_GETRANGE 0x1003
+#define DTM_SETRANGE 0x1004
+#define DTN_DATETIMECHANGE ((UINT)-759)
+
+#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)
+
+
+#endif //__DMC__ date time control IDs
+
+#if defined(__GNUWIN32__) && !wxCHECK_W32API_VERSION( 2, 4 ) || defined (__DMC__)
+typedef struct tagNMDATETIMECHANGE
+{
+ NMHDR nmhdr;
+ DWORD dwFlags;
+ SYSTEMTIME st;
+} NMDATETIMECHANGE;
+#endif // old gcc headers
+
+// ----------------------------------------------------------------------------
+// Toolbar define value missing
+// ----------------------------------------------------------------------------
+#if !defined(CCS_VERT)
+#define CCS_VERT 0x00000080L
+#endif
// ----------------------------------------------------------------------------
// MS HTML Help
BOOL fIndexOnFail;
};
+// ----------------------------------------------------------------------------
+// SHGetFileInfo-related things
+// ----------------------------------------------------------------------------
+
+#ifndef SHGetFileInfo
+ #ifdef UNICODE
+ #define SHGetFileInfo SHGetFileInfoW
+ #else
+ #define SHGetFileInfo SHGetFileInfoA
+ #endif
+#endif
+
+#ifndef SHGFI_ATTRIBUTES
+ #define SHGFI_ATTRIBUTES 2048
+#endif
+
+#ifndef SFGAO_READONLY
+ #define SFGAO_READONLY 0x00040000L
+#endif
+
+#ifndef SFGAO_REMOVABLE
+ #define SFGAO_REMOVABLE 0x02000000L
+#endif
+
+#ifndef SHGFI_DISPLAYNAME
+ #define SHGFI_DISPLAYNAME 512
+#endif
+
+#ifndef SHGFI_ICON
+ #define SHGFI_ICON 256
+#endif
+
+#ifndef SHGFI_SMALLICON
+ #define SHGFI_SMALLICON 1
+#endif
+
+#ifndef SHGFI_SHELLICONSIZE
+ #define SHGFI_SHELLICONSIZE 4
+#endif
+
+#ifndef SHGFI_OPENICON
+ #define SHGFI_OPENICON 2
+#endif
+
+// ----------------------------------------------------------------------------
+// Rich text control
+// ----------------------------------------------------------------------------
+
+#if wxUSE_RICHEDIT && defined(MAX_TAB_STOPS)
+
+// old mingw32 doesn't define this
+#ifndef CFM_CHARSET
+ #define CFM_CHARSET 0x08000000
+#endif // CFM_CHARSET
+
+#ifndef CFM_BACKCOLOR
+ #define CFM_BACKCOLOR 0x04000000
+#endif
+
+// cygwin does not have these defined for richedit
+#ifndef ENM_LINK
+ #define ENM_LINK 0x04000000
+#endif
+
+#ifndef EM_AUTOURLDETECT
+ #define EM_AUTOURLDETECT (WM_USER + 91)
+#endif
+
+#ifndef EN_LINK
+ #define EN_LINK 0x070b
+
+ 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
+// ----------------------------------------------------------------------------
+
+#if wxUSE_TOOLBAR
+
+#if !defined(TBIF_SIZE)
+
+#define TBIF_SIZE 64
+#define TB_SETBUTTONINFO (WM_USER+66)
+
+typedef struct {
+ UINT cbSize;
+ DWORD dwMask;
+ int idCommand;
+ int iImage;
+ BYTE fsState;
+ BYTE fsStyle;
+ WORD cx;
+ DWORD lParam;
+ LPTSTR pszText;
+ int cchText;
+} TBBUTTONINFO, *LPTBBUTTONINFO;
+
+#endif // !defined(TBIF_SIZE)
+
+#if !defined(TB_SETDISABLEDIMAGELIST)
+ #define TB_SETDISABLEDIMAGELIST (WM_USER + 54)
+#endif // !defined(TB_SETDISABLEDIMAGELIST)
+
+#endif // wxUSE_TOOLBAR
+
+// ----------------------------------------------------------------------------
+// Tree control
+// ----------------------------------------------------------------------------
+
+#ifndef TVIS_FOCUSED
+ #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
+#endif
+
+#ifndef TVM_SETBKCOLOR
+ #define TVM_SETBKCOLOR (TV_FIRST + 29)
+ #define TVM_SETTEXTCOLOR (TV_FIRST + 30)
+#endif
+
+#ifndef TVS_INFOTIP
+ #define TVS_INFOTIP 2048
+#endif
+
+#ifndef TVN_GETINFOTIPA
+ #define TVN_GETINFOTIPA (TVN_FIRST-13)
+ #define TVN_GETINFOTIPW (TVN_FIRST-14)
+#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
+ // <commctrl.h> (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
+#endif
// ----------------------------------------------------------------------------
// Misc stuff
// ----------------------------------------------------------------------------
+#ifndef CCM_SETUNICODEFORMAT
+ #define CCM_SETUNICODEFORMAT 8197
+#endif
+
#ifndef QS_ALLPOSTMESSAGE
#define QS_ALLPOSTMESSAGE 0x0100
#endif
-#ifdef __WXWINE__
-#define LV_ITEMA LVITEMA
-#define LV_ITEMW LVITEMW
-#define LV_DISPINFOA NMLVDISPINFOA
-#define LV_DISPINFOW NMLVDISPINFOW
+#ifndef WS_EX_CLIENTEDGE
+ #define WS_EX_CLIENTEDGE 0x00000200L
+#endif
-#if wxUSE_UNICODE
-#define LV_FINDINFO LVFINDINFOW
-#else
-#define LV_FINDINFO LVFINDINFOA
+#ifndef ENDSESSION_LOGOFF
+ #define ENDSESSION_LOGOFF 0x80000000
+#endif
+
+#ifndef HANGUL_CHARSET
+ #define HANGUL_CHARSET 129
+#endif
+
+#ifndef TME_HOVER
+ #define TME_HOVER 1
+#endif
+
+#ifndef TME_LEAVE
+ #define TME_LEAVE 2
+#endif
+
+#ifndef TME_QUERY
+ #define TME_QUERY 0x40000000
+#endif
+
+#ifndef TME_CANCEL
+ #define TME_CANCEL 0x80000000
+#endif
+
+#ifndef HOVER_DEFAULT
+ #define HOVER_DEFAULT 0xFFFFFFFF
+#endif
+
+#ifdef __DMC__
+
+ #ifndef _TrackMouseEvent
+ #define _TrackMouseEvent TrackMouseEvent
+ #endif
+
+#endif
+
+// This didn't appear in mingw until 2.95.2
+#ifndef SIF_TRACKPOS
+#define SIF_TRACKPOS 16
+#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 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 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 WM_UPDATEUISTATE
+ #define WM_UPDATEUISTATE 0x128
+#endif
+
+#ifndef UIS_INITIALIZE
+ #define UIS_INITIALIZE 3
+#endif
+
+#ifndef UISF_HIDEFOCUS
+ #define UISF_HIDEFOCUS 1
+#endif
+
+#ifndef UISF_HIDEACCEL
+ #define UISF_HIDEACCEL 2
+#endif
+
+#ifndef WC_NO_BEST_FIT_CHARS
+ #define WC_NO_BEST_FIT_CHARS 0x400
+#endif
+
+#ifndef OFN_EXPLORER
+ #define OFN_EXPLORER 0x00080000
+#endif
+
+#ifndef OFN_ENABLESIZING
+ #define OFN_ENABLESIZING 0x00800000
+#endif
+
+// ------------------ For Flashing Window -------------
+#if (defined(__BORLANDC__) && (__BORLANDC__ < 550))
+typedef struct {
+ UINT cbSize;
+ HWND hwnd;
+ DWORD dwFlags;
+ UINT uCount;
+ DWORD dwTimeout;
+} FLASHWINFO, *PFLASHWINFO;
#endif
+// In addition, include stuff not defined in WinCE
+#ifdef __WXWINCE__
+ #include "wx/msw/wince/missing.h"
#endif
#endif