]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/msw/missing.h
Wrap <commdlgs.h> as <commctls.h>. Required makefiles rebuilded.
[wxWidgets.git] / include / wx / msw / missing.h
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: wx/msw/missing.h
3// Purpose: Declarations for parts of the Win32 SDK that are missing in
4// the versions that come with some compilers
5// Created: 2002/04/23
6// RCS-ID: $Id$
7// Copyright: (c) 2002 Mattia Barbon
8// Licence: wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11#ifndef _WX_MISSING_H_
12#define _WX_MISSING_H_
13
14// ----------------------------------------------------------------------------
15// ListView common control
16// ----------------------------------------------------------------------------
17
18#ifndef LVHT_ONITEM
19 #define LVHT_ONITEM \
20 (LVHT_ONITEMICON | LVHT_ONITEMLABEL | LVHT_ONITEMSTATEICON)
21#endif
22
23#ifndef LVM_SETEXTENDEDLISTVIEWSTYLE
24 #define LVM_SETEXTENDEDLISTVIEWSTYLE (0x1000 + 54)
25#endif
26
27#ifndef LVS_EX_FULLROWSELECT
28 #define LVS_EX_FULLROWSELECT 0x00000020
29#endif
30
31#ifndef LVS_OWNERDATA
32 #define LVS_OWNERDATA 0x1000
33#endif
34
35#ifndef LVM_FIRST
36 #define LVM_FIRST 0x1000
37#endif
38
39#ifndef HDM_FIRST
40 #define HDM_FIRST 0x1200
41#endif
42
43#ifndef LVCFMT_JUSTIFYMASK
44 #define LVCFMT_JUSTIFYMASK 0x0003
45#endif
46
47#ifndef LVSICF_NOSCROLL
48 #define LVSICF_NOINVALIDATEALL 0x0001
49 #define LVSICF_NOSCROLL 0x0002
50#endif
51
52// mingw32/cygwin don't have declarations for comctl32.dll 4.70+ stuff
53#ifndef NM_CACHEHINT
54 typedef struct tagNMLVCACHEHINT
55 {
56 NMHDR hdr;
57 int iFrom;
58 int iTo;
59 } NMLVCACHEHINT;
60
61 #define NM_CACHEHINT NMLVCACHEHINT
62#endif
63
64#ifndef LVN_ODCACHEHINT
65 #define LVN_ODCACHEHINT (-113)
66#endif
67
68#ifndef ListView_GetHeader
69 #define ListView_GetHeader(w) (HWND)SendMessage((w),LVM_GETHEADER,0,0)
70#endif
71
72#ifndef LVM_GETHEADER
73 #define LVM_GETHEADER (LVM_FIRST+31)
74#endif
75
76#ifndef Header_GetItemRect
77 #define Header_GetItemRect(w,i,r) \
78 (BOOL)SendMessage((w),HDM_GETITEMRECT,(WPARAM)(i),(LPARAM)(r))
79#endif
80
81#ifndef HDM_GETITEMRECT
82 #define HDM_GETITEMRECT (HDM_FIRST+7)
83#endif
84
85#ifndef LVCF_IMAGE
86 #define LVCF_IMAGE 0x0010
87#endif
88
89#ifndef LVCFMT_BITMAP_ON_RIGHT
90 #define LVCFMT_BITMAP_ON_RIGHT 0x1000
91#endif
92
93#if defined(__GNUWIN32__) && !defined(LV_ITEM) \
94 && !wxCHECK_W32API_VERSION( 0, 5 )
95typedef struct _LVITEMW {
96 UINT mask;
97 int iItem;
98 int iSubItem;
99 UINT state;
100 UINT stateMask;
101 LPWSTR pszText;
102 int cchTextMax;
103 int iImage;
104 LPARAM lParam;
105#if (_WIN32_IE >= 0x0300)
106 int iIndent;
107#endif
108} LV_ITEMW;
109
110typedef struct tagLVITEMA
111{
112 UINT mask;
113 int iItem;
114 int iSubItem;
115 UINT state;
116 UINT stateMask;
117 LPSTR pszText;
118 int cchTextMax;
119 int iImage;
120 LPARAM lParam;
121#if (_WIN32_IE >= 0x0300)
122 int iIndent;
123#endif
124} LV_ITEMA;
125
126#define LV_ITEM LV_ITEMA;
127#endif
128
129#ifndef ListView_GetColumnWidth
130#define ListView_GetColumnWidth(hwnd, iCol) \
131 (int)SNDMSG((hwnd), LVM_GETCOLUMNWIDTH, (WPARAM)(int)(iCol), 0)
132#endif
133
134#ifndef ListView_SetColumnWidth
135#define ListView_SetColumnWidth(hwnd, iCol, cx) \
136 (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNWIDTH, (WPARAM)(int)(iCol), MAKELPARAM((cx), 0))
137#endif
138
139#ifndef ListView_GetTextColor
140#define ListView_GetTextColor(hwnd) \
141 (COLORREF)SNDMSG((hwnd), LVM_GETTEXTCOLOR, 0, 0L)
142#endif
143
144#ifndef ListView_FindItem
145#define ListView_FindItem(hwnd, iStart, plvfi) \
146 (int)SNDMSG((hwnd), LVM_FINDITEM, (WPARAM)(int)(iStart), (LPARAM)(const LV_FINDINFO FAR*)(plvfi))
147#endif
148
149#if defined(__GNUWIN32__) && !wxCHECK_W32API_VERSION( 0, 5 )
150#ifndef LV_DISPINFOA
151typedef struct tagNMLVDISPINFOA {
152 NMHDR hdr;
153 LV_ITEMA item;
154} NMLVDISPINFOA, FAR *LPNMLVDISPINFOA;
155#define _LV_DISPINFOA tagNMLVDISPINFOA
156#define LV_DISPINFOA NMLVDISPINFOA
157#endif
158#ifndef LV_DISPINFOW
159typedef struct tagNMLVDISPINFOW {
160 NMHDR hdr;
161 LV_ITEMW item;
162} NMLVDISPINFOW, FAR *LPNMLVDISPINFOW;
163#define _LV_DISPINFOW tagNMLVDISPINFOW
164#define LV_DISPINFOW NMLVDISPINFOW
165#endif
166#endif
167
168#if ((defined(__WATCOMC__) && __WATCOMC__ >= 1200) || defined(__GNUWIN32__) || defined (__MINGW32__) || defined(__DIGITALMARS__) || defined (__BORLANDC__)) && !defined(HDN_GETDISPINFOW)
169#define HDN_GETDISPINFOW (HDN_FIRST-29)
170#if !wxCHECK_W32API_VERSION(2, 2)
171typedef struct {
172 NMHDR hdr;
173 int iItem;
174 UINT mask;
175 LPWSTR pszText;
176 int cchTextMax;
177 int iImage;
178 LPARAM lParam;
179} NMHDDISPINFOW, *LPNMHDDISPINFOW;
180#endif
181#endif
182
183#ifndef LVM_SETUNICODEFORMAT
184#define LVM_SETUNICODEFORMAT 0x2005
185#endif
186
187// ----------------------------------------------------------------------------
188// Common Control missing
189// ----------------------------------------------------------------------------
190// __DMC__ date time control IDs
191
192#ifdef __DMC__
193#define DATETIMEPICK_CLASSW L"SysDateTimePick32"
194#define DATETIMEPICK_CLASSA "SysDateTimePick32"
195
196#define ICC_DATE_CLASSES 256
197
198#if (_WIN32_IE >= 0x0300)
199typedef struct tagINITCOMMONCONTROLSEX {
200 DWORD dwSize;
201 DWORD dwICC;
202} INITCOMMONCONTROLSEX,*LPINITCOMMONCONTROLSEX;
203
204#define GDTR_MIN 1
205#define GDTR_MAX 2
206
207#define GDT_ERROR -1
208#define GDT_VALID 0
209#define GDT_NONE 1
210
211
212#define DTS_UPDOWN 1
213#define DTS_SHOWNONE 2
214#define DTS_SHORTDATEFORMAT 0
215#define DTS_LONGDATEFORMAT 4
216#define DTS_TIMEFORMAT 9
217#define DTS_APPCANPARSE 16
218#define DTS_RIGHTALIGN 32
219#if ( _WIN32_IE >= 0x500 )
220#define DTS_SHORTDATECENTURYFORMAT 0x000C
221#endif /* _WIN32_IE >= 0x500 */
222#endif
223
224
225
226#define DATETIMEPICK_CLASSW L"SysDateTimePick32"
227#define DATETIMEPICK_CLASSA "SysDateTimePick32"
228
229#ifdef UNICODE
230 #define DATETIMEPICK_CLASS DATETIMEPICK_CLASSW
231#else
232 #define DATETIMEPICK_CLASS DATETIMEPICK_CLASSA
233#endif
234
235#define DTM_GETSYSTEMTIME 0x1001
236#define DTM_SETSYSTEMTIME 0x1002
237#define DTM_GETRANGE 0x1003
238#define DTM_SETRANGE 0x1004
239#define DTN_DATETIMECHANGE ((UINT)-759)
240
241#define DateTime_GetMonthCal(hwnd) SNDMSG(hwnd, DTM_GETMONTHCAL, 0, 0)
242#define DateTime_GetMonthCalColor(hwnd, icolor) SNDMSG(hwnd, DTM_GETMONTHCAL, (WPARAM)icolor,0)
243#define DateTime_GetMonthCalFont(hwnd) SNDMSG(hwnd,DTM_GETMCFONT,0,0)
244#define DateTime_GetRange(hwnd,lpsystimearray) SNDMSG(hwnd,DTM_GETRANGE,0,(LPARAM)lpsystimearray)
245#define DateTime_GetSystemTime(hwnd,lpsystime) SNDMSG(hwnd,DTM_GETSYSTEMTIME,0,(LPARAM)lpsystime)
246#define DateTime_SetFormat(hwnd,lpszformat) SNDMSG(hwnd,DTM_SETFORMAT,0,(LPARAM)lpszformat)
247#define DateTime_SetMonthCalColor(hwnd,icolor,clr) SNDMSG(hwnd,DTM_SETMCCOLOR,(WPARAM)icolor,(LPARAM)clr)
248#define DateTime_SetMonthCalFont(hwnd,hfont,lparam) SNDMSG(hwnd,DTM_SETMCFONT,(WPARAM)hfont,(LPARAM)lparam)
249#define DateTime_SetRange(hwnd,flags,lpsystimearray) SNDMSG(hwnd,DTM_SETRANGE,(WPARAM)flags,(LPARAM)lpsystimearray)
250#define DateTime_SetSystemTime(hwnd,flag,lpsystime) SNDMSG(hwnd,DTM_SETSYSTEMTIME,(WPARAM)flag,(LPARAM)lpsystime)
251
252
253#endif //__DMC__ date time control IDs
254
255#if defined(__GNUWIN32__) && !wxCHECK_W32API_VERSION( 2, 4 ) || defined (__DMC__)
256typedef struct tagNMDATETIMECHANGE
257{
258 NMHDR nmhdr;
259 DWORD dwFlags;
260 SYSTEMTIME st;
261} NMDATETIMECHANGE;
262#endif // old gcc headers
263
264// ----------------------------------------------------------------------------
265// Toolbar define value missing
266// ----------------------------------------------------------------------------
267#if !defined(CCS_VERT)
268#define CCS_VERT 0x00000080L
269#endif
270
271// ----------------------------------------------------------------------------
272// MS HTML Help
273// ----------------------------------------------------------------------------
274
275// instead of including htmlhelp.h, duplicate the things from it we need here:
276
277enum
278{
279 HH_DISPLAY_TOPIC,
280 HH_DISPLAY_TOC,
281 HH_DISPLAY_INDEX,
282 HH_DISPLAY_SEARCH,
283 HH_SET_WIN_TYPE,
284 HH_GET_WIN_TYPE,
285 HH_GET_WIN_HANDLE,
286 HH_ENUM_INFO_TYPE,
287 HH_SET_INFO_TYPE,
288 HH_SYNC,
289 HH_RESERVED1,
290 HH_RESERVED2,
291 HH_RESERVED3,
292 HH_KEYWORD_LOOKUP,
293 HH_DISPLAY_TEXT_POPUP,
294 HH_HELP_CONTEXT,
295 HH_TP_HELP_CONTEXTMENU,
296 HH_TP_HELP_WM_HELP,
297 HH_CLOSE_ALL,
298 HH_ALINK_LOOKUP,
299 HH_GET_LAST_ERROR,
300 HH_ENUM_CATEGORY,
301 HH_ENUM_CATEGORY_IT,
302 HH_RESET_IT_FILTER,
303 HH_SET_INCLUSIVE_FILTER,
304 HH_SET_EXCLUSIVE_FILTER
305};
306
307struct HH_POPUP
308{
309 int cbStruct;
310 HINSTANCE hinst;
311 UINT idString;
312 LPCTSTR pszText;
313 POINT pt;
314 COLORREF clrForeground;
315 COLORREF clrBackground;
316 RECT rcMargins;
317 LPCTSTR pszFont;
318};
319
320struct HH_AKLINK
321{
322 int cbStruct;
323 BOOL fReserved;
324 LPCTSTR pszKeywords;
325 LPCTSTR pszUrl;
326 LPCTSTR pszMsgText;
327 LPCTSTR pszMsgTitle;
328 LPCTSTR pszWindow;
329 BOOL fIndexOnFail;
330};
331
332// ----------------------------------------------------------------------------
333// SHGetFileInfo-related things
334// ----------------------------------------------------------------------------
335
336#ifndef SHGetFileInfo
337 #ifdef UNICODE
338 #define SHGetFileInfo SHGetFileInfoW
339 #else
340 #define SHGetFileInfo SHGetFileInfoA
341 #endif
342#endif
343
344#ifndef SHGFI_ATTRIBUTES
345 #define SHGFI_ATTRIBUTES 2048
346#endif
347
348#ifndef SFGAO_READONLY
349 #define SFGAO_READONLY 0x00040000L
350#endif
351
352#ifndef SFGAO_REMOVABLE
353 #define SFGAO_REMOVABLE 0x02000000L
354#endif
355
356#ifndef SHGFI_DISPLAYNAME
357 #define SHGFI_DISPLAYNAME 512
358#endif
359
360#ifndef SHGFI_ICON
361 #define SHGFI_ICON 256
362#endif
363
364#ifndef SHGFI_SMALLICON
365 #define SHGFI_SMALLICON 1
366#endif
367
368#ifndef SHGFI_SHELLICONSIZE
369 #define SHGFI_SHELLICONSIZE 4
370#endif
371
372#ifndef SHGFI_OPENICON
373 #define SHGFI_OPENICON 2
374#endif
375
376// ----------------------------------------------------------------------------
377// Rich text control
378// ----------------------------------------------------------------------------
379
380#if wxUSE_RICHEDIT && defined(MAX_TAB_STOPS)
381
382// old mingw32 doesn't define this
383#ifndef CFM_CHARSET
384 #define CFM_CHARSET 0x08000000
385#endif // CFM_CHARSET
386
387#ifndef CFM_BACKCOLOR
388 #define CFM_BACKCOLOR 0x04000000
389#endif
390
391// cygwin does not have these defined for richedit
392#ifndef ENM_LINK
393 #define ENM_LINK 0x04000000
394#endif
395
396#ifndef EM_AUTOURLDETECT
397 #define EM_AUTOURLDETECT (WM_USER + 91)
398#endif
399
400#ifndef EN_LINK
401 #define EN_LINK 0x070b
402
403 typedef struct _enlink
404 {
405 NMHDR nmhdr;
406 UINT msg;
407 WPARAM wParam;
408 LPARAM lParam;
409 CHARRANGE chrg;
410 } ENLINK;
411#endif // ENLINK
412
413#ifndef SF_UNICODE
414 #define SF_UNICODE 0x0010
415#endif
416
417// Watcom C++ doesn't define this
418#ifndef SCF_ALL
419 #define SCF_ALL 0x0004
420#endif
421
422#ifndef PFA_JUSTIFY
423#define PFA_JUSTIFY 4
424
425typedef struct _paraformat2 {
426 UINT cbSize;
427 DWORD dwMask;
428 WORD wNumbering;
429 WORD wEffects;
430 LONG dxStartIndent;
431 LONG dxRightIndent;
432 LONG dxOffset;
433 WORD wAlignment;
434 SHORT cTabCount;
435 LONG rgxTabs[MAX_TAB_STOPS];
436 LONG dySpaceBefore;
437 LONG dySpaceAfter;
438 LONG dyLineSpacing;
439 SHORT sStype;
440 BYTE bLineSpacingRule;
441 BYTE bOutlineLevel;
442 WORD wShadingWeight;
443 WORD wShadingStyle;
444 WORD wNumberingStart;
445 WORD wNumberingStyle;
446 WORD wNumberingTab;
447 WORD wBorderSpace;
448 WORD wBorderWidth;
449 WORD wBorders;
450} PARAFORMAT2;
451#define wxEffects wReserved
452
453#endif
454
455#endif // wxUSE_RICHEDIT
456
457// ----------------------------------------------------------------------------
458// ToolBar
459// ----------------------------------------------------------------------------
460
461#if wxUSE_TOOLBAR
462
463#if !defined(TBIF_SIZE)
464
465#define TBIF_SIZE 64
466#define TB_SETBUTTONINFO (WM_USER+66)
467
468typedef struct {
469 UINT cbSize;
470 DWORD dwMask;
471 int idCommand;
472 int iImage;
473 BYTE fsState;
474 BYTE fsStyle;
475 WORD cx;
476 DWORD lParam;
477 LPTSTR pszText;
478 int cchText;
479} TBBUTTONINFO, *LPTBBUTTONINFO;
480
481#endif // !defined(TBIF_SIZE)
482
483#endif // wxUSE_TOOLBAR
484
485// ----------------------------------------------------------------------------
486// Tree control
487// ----------------------------------------------------------------------------
488
489#ifndef TVIS_FOCUSED
490 #define TVIS_FOCUSED 0x0001
491#endif
492
493#ifndef TV_FIRST
494 #define TV_FIRST 0x1100
495#endif
496
497#ifndef TVS_CHECKBOXES
498 #define TVS_CHECKBOXES 0x0100
499#endif
500
501#ifndef TVS_FULLROWSELECT
502 #define TVS_FULLROWSELECT 0x1000
503#endif
504
505#ifndef TVM_SETBKCOLOR
506 #define TVM_SETBKCOLOR (TV_FIRST + 29)
507 #define TVM_SETTEXTCOLOR (TV_FIRST + 30)
508#endif
509
510#ifndef TVS_INFOTIP
511 #define TVS_INFOTIP 2048
512#endif
513
514#ifndef TVN_GETINFOTIPA
515 #define TVN_GETINFOTIPA (TVN_FIRST-13)
516 #define TVN_GETINFOTIPW (TVN_FIRST-14)
517#endif
518
519#ifndef TVN_GETINFOTIP
520 #ifdef UNICODE
521 #define TVN_GETINFOTIP TVN_GETINFOTIPW
522 #else
523 #define TVN_GETINFOTIP TVN_GETINFOTIPA
524 #endif
525#endif
526
527#if !defined(NMTVGETINFOTIP) && defined(TVN_FIRST)
528 // NB: Check for TVN_FIRST is done so that this code is not included if
529 // <commctrl.h> (which defined HTREEITEM) wasn't included before.
530 struct NMTVGETINFOTIPA
531 {
532 NMHDR hdr;
533 LPSTR pszText;
534 int cchTextMax;
535 HTREEITEM hItem;
536 LPARAM lParam;
537 };
538 struct NMTVGETINFOTIPW
539 {
540 NMHDR hdr;
541 LPWSTR pszText;
542 int cchTextMax;
543 HTREEITEM hItem;
544 LPARAM lParam;
545 };
546 #ifdef UNICODE
547 #define NMTVGETINFOTIP NMTVGETINFOTIPW
548 #else
549 #define NMTVGETINFOTIP NMTVGETINFOTIPA
550 #endif
551#endif
552
553// ----------------------------------------------------------------------------
554// Misc stuff
555// ----------------------------------------------------------------------------
556
557#ifndef CCM_SETUNICODEFORMAT
558 #define CCM_SETUNICODEFORMAT 8197
559#endif
560
561#ifndef QS_ALLPOSTMESSAGE
562 #define QS_ALLPOSTMESSAGE 0x0100
563#endif
564
565#ifndef WS_EX_CLIENTEDGE
566 #define WS_EX_CLIENTEDGE 0x00000200L
567#endif
568
569#ifndef ENDSESSION_LOGOFF
570 #define ENDSESSION_LOGOFF 0x80000000
571#endif
572
573#ifndef HANGUL_CHARSET
574 #define HANGUL_CHARSET 129
575#endif
576
577#ifndef TME_HOVER
578 #define TME_HOVER 1
579#endif
580
581#ifndef TME_LEAVE
582 #define TME_LEAVE 2
583#endif
584
585#ifndef TME_QUERY
586 #define TME_QUERY 0x40000000
587#endif
588
589#ifndef TME_CANCEL
590 #define TME_CANCEL 0x80000000
591#endif
592
593#ifndef HOVER_DEFAULT
594 #define HOVER_DEFAULT 0xFFFFFFFF
595#endif
596
597#ifdef __DMC__
598
599 #ifndef _TrackMouseEvent
600 #define _TrackMouseEvent TrackMouseEvent
601 #endif
602
603#endif
604
605// This didn't appear in mingw until 2.95.2
606#ifndef SIF_TRACKPOS
607#define SIF_TRACKPOS 16
608#endif
609
610#if wxUSE_MOUSEWHEEL
611 #ifndef WM_MOUSEWHEEL
612 #define WM_MOUSEWHEEL 0x020A
613 #endif
614 #ifndef WHEEL_DELTA
615 #define WHEEL_DELTA 120
616 #endif
617 #ifndef SPI_GETWHEELSCROLLLINES
618 #define SPI_GETWHEELSCROLLLINES 104
619 #endif
620#endif // wxUSE_MOUSEWHEEL
621
622#ifndef VK_OEM_1
623 #define VK_OEM_1 0xBA
624 #define VK_OEM_2 0xBF
625 #define VK_OEM_3 0xC0
626 #define VK_OEM_4 0xDB
627 #define VK_OEM_5 0xDC
628 #define VK_OEM_6 0xDD
629 #define VK_OEM_7 0xDE
630#endif
631
632#ifndef VK_OEM_COMMA
633 #define VK_OEM_PLUS 0xBB
634 #define VK_OEM_COMMA 0xBC
635 #define VK_OEM_MINUS 0xBD
636 #define VK_OEM_PERIOD 0xBE
637#endif
638
639#ifndef WM_UPDATEUISTATE
640 #define WM_UPDATEUISTATE 0x128
641#endif
642
643#ifndef UIS_INITIALIZE
644 #define UIS_INITIALIZE 3
645#endif
646
647#ifndef UISF_HIDEFOCUS
648 #define UISF_HIDEFOCUS 1
649#endif
650
651#ifndef UISF_HIDEACCEL
652 #define UISF_HIDEACCEL 2
653#endif
654
655#ifndef WC_NO_BEST_FIT_CHARS
656 #define WC_NO_BEST_FIT_CHARS 0x400
657#endif
658
659#ifndef OFN_EXPLORER
660 #define OFN_EXPLORER 0x00080000
661#endif
662
663#ifndef OFN_ENABLESIZING
664 #define OFN_ENABLESIZING 0x00800000
665#endif
666
667// ------------------ For Flashing Window -------------
668#if (defined(__BORLANDC__) && (__BORLANDC__ < 550))
669typedef struct {
670 UINT cbSize;
671 HWND hwnd;
672 DWORD dwFlags;
673 UINT uCount;
674 DWORD dwTimeout;
675} FLASHWINFO, *PFLASHWINFO;
676#endif
677
678// In addition, include stuff not defined in WinCE
679#ifdef __WXWINCE__
680 #include "wx/msw/wince/missing.h"
681#endif
682
683#endif
684 // _WX_MISSING_H_