1/*
2 * compstui.h
3 *
4 * This file is part of the ReactOS PSDK package.
5 *
6 * Contributors:
7 *   Created by Amine Khaldi.
8 *
9 * THIS SOFTWARE IS NOT COPYRIGHTED
10 *
11 * This source code is offered for use in the public domain. You may
12 * use, modify or distribute it freely.
13 *
14 * This code is distributed in the hope that it will be useful but
15 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
16 * DISCLAIMED. This includes but is not limited to warranties of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 *
19 */
20
21#pragma once
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27#define IDI_CPSUI_ICONID_FIRST          64000
28
29#define IDI_CPSUI_EMPTY                 64000
30#define IDI_CPSUI_SEL_NONE              64001
31#define IDI_CPSUI_WARNING               64002
32#define IDI_CPSUI_NO                    64003
33#define IDI_CPSUI_YES                   64004
34#define IDI_CPSUI_FALSE                 64005
35#define IDI_CPSUI_TRUE                  64006
36#define IDI_CPSUI_OFF                   64007
37#define IDI_CPSUI_ON                    64008
38#define IDI_CPSUI_PAPER_OUTPUT          64009
39#define IDI_CPSUI_ENVELOPE              64010
40#define IDI_CPSUI_MEM                   64011
41#define IDI_CPSUI_FONTCARTHDR           64012
42#define IDI_CPSUI_FONTCART              64013
43#define IDI_CPSUI_STAPLER_ON            64014
44#define IDI_CPSUI_STAPLER_OFF           64015
45#define IDI_CPSUI_HT_HOST               64016
46#define IDI_CPSUI_HT_DEVICE             64017
47#define IDI_CPSUI_TT_PRINTASGRAPHIC     64018
48#define IDI_CPSUI_TT_DOWNLOADSOFT       64019
49#define IDI_CPSUI_TT_DOWNLOADVECT       64020
50#define IDI_CPSUI_TT_SUBDEV             64021
51#define IDI_CPSUI_PORTRAIT              64022
52#define IDI_CPSUI_LANDSCAPE             64023
53#define IDI_CPSUI_ROT_LAND              64024
54#define IDI_CPSUI_AUTOSEL               64025
55#define IDI_CPSUI_PAPER_TRAY            64026
56#define IDI_CPSUI_PAPER_TRAY2           64027
57#define IDI_CPSUI_PAPER_TRAY3           64028
58#define IDI_CPSUI_TRANSPARENT           64029
59#define IDI_CPSUI_COLLATE               64030
60#define IDI_CPSUI_DUPLEX_NONE           64031
61#define IDI_CPSUI_DUPLEX_HORZ           64032
62#define IDI_CPSUI_DUPLEX_VERT           64033
63#define IDI_CPSUI_RES_DRAFT             64034
64#define IDI_CPSUI_RES_LOW               64035
65#define IDI_CPSUI_RES_MEDIUM            64036
66#define IDI_CPSUI_RES_HIGH              64037
67#define IDI_CPSUI_RES_PRESENTATION      64038
68#define IDI_CPSUI_MONO                  64039
69#define IDI_CPSUI_COLOR                 64040
70#define IDI_CPSUI_DITHER_NONE           64041
71#define IDI_CPSUI_DITHER_COARSE         64042
72#define IDI_CPSUI_DITHER_FINE           64043
73#define IDI_CPSUI_DITHER_LINEART        64044
74#define IDI_CPSUI_SCALING               64045
75#define IDI_CPSUI_COPY                  64046
76#define IDI_CPSUI_HTCLRADJ              64047
77#define IDI_CPSUI_HALFTONE_SETUP        64048
78#define IDI_CPSUI_WATERMARK             64049
79#define IDI_CPSUI_ERROR                 64050
80#define IDI_CPSUI_ICM_OPTION            64051
81#define IDI_CPSUI_ICM_METHOD            64052
82#define IDI_CPSUI_ICM_INTENT            64053
83#define IDI_CPSUI_STD_FORM              64054
84#define IDI_CPSUI_OUTBIN                64055
85#define IDI_CPSUI_OUTPUT                64056
86#define IDI_CPSUI_GRAPHIC               64057
87#define IDI_CPSUI_ADVANCE               64058
88#define IDI_CPSUI_DOCUMENT              64059
89#define IDI_CPSUI_DEVICE                64060
90#define IDI_CPSUI_DEVICE2               64061
91#define IDI_CPSUI_PRINTER               64062
92#define IDI_CPSUI_PRINTER2              64063
93#define IDI_CPSUI_PRINTER3              64064
94#define IDI_CPSUI_PRINTER4              64065
95#define IDI_CPSUI_OPTION                64066
96#define IDI_CPSUI_OPTION2               64067
97#define IDI_CPSUI_STOP                  64068
98#define IDI_CPSUI_NOTINSTALLED          64069
99#define IDI_CPSUI_WARNING_OVERLAY       64070
100#define IDI_CPSUI_STOP_WARNING_OVERLAY  64071
101#define IDI_CPSUI_GENERIC_OPTION        64072
102#define IDI_CPSUI_GENERIC_ITEM          64073
103#define IDI_CPSUI_RUN_DIALOG            64074
104#define IDI_CPSUI_QUESTION              64075
105#define IDI_CPSUI_FORMTRAYASSIGN        64076
106#define IDI_CPSUI_PRINTER_FOLDER        64077
107#define IDI_CPSUI_INSTALLABLE_OPTION    64078
108#define IDI_CPSUI_PRINTER_FEATURE       64079
109#define IDI_CPSUI_DEVICE_FEATURE        64080
110#define IDI_CPSUI_FONTSUB               64081
111#define IDI_CPSUI_POSTSCRIPT            64082
112#define IDI_CPSUI_TELEPHONE             64083
113#define IDI_CPSUI_DUPLEX_NONE_L         64084
114#define IDI_CPSUI_DUPLEX_HORZ_L         64085
115#define IDI_CPSUI_DUPLEX_VERT_L         64086
116#define IDI_CPSUI_LF_PEN_PLOTTER        64087
117#define IDI_CPSUI_SF_PEN_PLOTTER        64088
118#define IDI_CPSUI_LF_RASTER_PLOTTER     64089
119#define IDI_CPSUI_SF_RASTER_PLOTTER     64090
120#define IDI_CPSUI_ROLL_PAPER            64091
121#define IDI_CPSUI_PEN_CARROUSEL         64092
122#define IDI_CPSUI_PLOTTER_PEN           64093
123#define IDI_CPSUI_MANUAL_FEED           64094
124#define IDI_CPSUI_FAX                   64095
125#define IDI_CPSUI_PAGE_PROTECT          64096
126#define IDI_CPSUI_ENVELOPE_FEED         64097
127#define IDI_CPSUI_FONTCART_SLOT         64098
128#define IDI_CPSUI_LAYOUT_BMP_PORTRAIT   64099
129#define IDI_CPSUI_LAYOUT_BMP_ARROWL     64100
130#define IDI_CPSUI_LAYOUT_BMP_ARROWS     64101
131#define IDI_CPSUI_LAYOUT_BMP_BOOKLETL   64102
132#define IDI_CPSUI_LAYOUT_BMP_BOOKLETP   64103
133#if (NTDDI_VERSION >= NTDDI_VISTA)
134#define IDI_CPSUI_LAYOUT_BMP_ARROWLR    64104
135#define IDI_CPSUI_LAYOUT_BMP_ROT_PORT   64105
136#define IDI_CPSUI_LAYOUT_BMP_BOOKLETL_NB 64106
137#define IDI_CPSUI_LAYOUT_BMP_BOOKLETP_NB 64107
138#define IDI_CPSUI_ROT_PORT              64110
139#define IDI_CPSUI_NUP_BORDER            64111
140#define IDI_CPSUI_ICONID_LAST           64111
141#else
142#define IDI_CPSUI_ICONID_LAST           64103
143#endif
144
145#define IDS_CPSUI_STRID_FIRST           64700
146
147#define IDS_CPSUI_SETUP                 64700
148#define IDS_CPSUI_MORE                  64701
149#define IDS_CPSUI_CHANGE                64702
150#define IDS_CPSUI_OPTION                64703
151#define IDS_CPSUI_OF                    64704
152#define IDS_CPSUI_RANGE_FROM            64705
153#define IDS_CPSUI_TO                    64706
154#define IDS_CPSUI_COLON_SEP             64707
155#define IDS_CPSUI_LEFT_ANGLE            64708
156#define IDS_CPSUI_RIGHT_ANGLE           64709
157#define IDS_CPSUI_SLASH_SEP             64710
158#define IDS_CPSUI_PERCENT               64711
159#define IDS_CPSUI_LBCB_NOSEL            64712
160#define IDS_CPSUI_PROPERTIES            64713
161#define IDS_CPSUI_DEFAULTDOCUMENT       64714
162#define IDS_CPSUI_DOCUMENT              64715
163#define IDS_CPSUI_ADVANCEDOCUMENT       64716
164#define IDS_CPSUI_PRINTER               64717
165#define IDS_CPSUI_AUTOSELECT            64718
166#define IDS_CPSUI_PAPER_OUTPUT          64719
167#define IDS_CPSUI_GRAPHIC               64720
168#define IDS_CPSUI_OPTIONS               64721
169#define IDS_CPSUI_ADVANCED              64722
170#define IDS_CPSUI_STDDOCPROPTAB         64723
171#define IDS_CPSUI_STDDOCPROPTVTAB       64724
172#define IDS_CPSUI_DEVICEOPTIONS         64725
173#define IDS_CPSUI_FALSE                 64726
174#define IDS_CPSUI_TRUE                  64727
175#define IDS_CPSUI_NO                    64728
176#define IDS_CPSUI_YES                   64729
177#define IDS_CPSUI_OFF                   64730
178#define IDS_CPSUI_ON                    64731
179#define IDS_CPSUI_DEFAULT               64732
180#define IDS_CPSUI_ERROR                 64733
181#define IDS_CPSUI_NONE                  64734
182#define IDS_CPSUI_NOT                   64735
183#define IDS_CPSUI_EXIST                 64736
184#define IDS_CPSUI_NOTINSTALLED          64737
185#define IDS_CPSUI_ORIENTATION           64738
186#define IDS_CPSUI_SCALING               64739
187#define IDS_CPSUI_NUM_OF_COPIES         64740
188#define IDS_CPSUI_SOURCE                64741
189#define IDS_CPSUI_PRINTQUALITY          64742
190#define IDS_CPSUI_RESOLUTION            64743
191#define IDS_CPSUI_COLOR_APPERANCE       64744
192#define IDS_CPSUI_DUPLEX                64745
193#define IDS_CPSUI_TTOPTION              64746
194#define IDS_CPSUI_FORMNAME              64747
195#define IDS_CPSUI_ICM                   64748
196#define IDS_CPSUI_ICMMETHOD             64749
197#define IDS_CPSUI_ICMINTENT             64750
198#define IDS_CPSUI_MEDIA                 64751
199#define IDS_CPSUI_DITHERING             64752
200#define IDS_CPSUI_PORTRAIT              64753
201#define IDS_CPSUI_LANDSCAPE             64754
202#define IDS_CPSUI_ROT_LAND              64755
203#define IDS_CPSUI_COLLATE               64756
204#define IDS_CPSUI_COLLATED              64757
205#define IDS_CPSUI_PRINTFLDSETTING       64758
206#define IDS_CPSUI_DRAFT                 64759
207#define IDS_CPSUI_LOW                   64760
208#define IDS_CPSUI_MEDIUM                64761
209#define IDS_CPSUI_HIGH                  64762
210#define IDS_CPSUI_PRESENTATION          64763
211#define IDS_CPSUI_COLOR                 64764
212#define IDS_CPSUI_GRAYSCALE             64765
213#define IDS_CPSUI_MONOCHROME            64766
214#define IDS_CPSUI_SIMPLEX               64767
215#define IDS_CPSUI_HORIZONTAL            64768
216#define IDS_CPSUI_VERTICAL              64769
217#define IDS_CPSUI_LONG_SIDE             64770
218#define IDS_CPSUI_SHORT_SIDE            64771
219#define IDS_CPSUI_TT_PRINTASGRAPHIC     64772
220#define IDS_CPSUI_TT_DOWNLOADSOFT       64773
221#define IDS_CPSUI_TT_DOWNLOADVECT       64774
222#define IDS_CPSUI_TT_SUBDEV             64775
223#define IDS_CPSUI_ICM_BLACKWHITE        64776
224#define IDS_CPSUI_ICM_NO                64777
225#define IDS_CPSUI_ICM_YES               64778
226#define IDS_CPSUI_ICM_SATURATION        64779
227#define IDS_CPSUI_ICM_CONTRAST          64780
228#define IDS_CPSUI_ICM_COLORMETRIC       64781
229#define IDS_CPSUI_STANDARD              64782
230#define IDS_CPSUI_GLOSSY                64783
231#define IDS_CPSUI_TRANSPARENCY          64784
232#define IDS_CPSUI_REGULAR               64785
233#define IDS_CPSUI_BOND                  64786
234#define IDS_CPSUI_COARSE                64787
235#define IDS_CPSUI_FINE                  64788
236#define IDS_CPSUI_LINEART               64789
237#define IDS_CPSUI_ERRDIFFUSE            64790
238#define IDS_CPSUI_HALFTONE              64791
239#define IDS_CPSUI_HTCLRADJ              64792
240#define IDS_CPSUI_USE_HOST_HT           64793
241#define IDS_CPSUI_USE_DEVICE_HT         64794
242#define IDS_CPSUI_USE_PRINTER_HT        64795
243#define IDS_CPSUI_OUTBINASSIGN          64796
244#define IDS_CPSUI_WATERMARK             64797
245#define IDS_CPSUI_FORMTRAYASSIGN        64798
246#define IDS_CPSUI_UPPER_TRAY            64799
247#define IDS_CPSUI_ONLYONE               64800
248#define IDS_CPSUI_LOWER_TRAY            64801
249#define IDS_CPSUI_MIDDLE_TRAY           64802
250#define IDS_CPSUI_MANUAL_TRAY           64803
251#define IDS_CPSUI_ENVELOPE_TRAY         64804
252#define IDS_CPSUI_ENVMANUAL_TRAY        64805
253#define IDS_CPSUI_TRACTOR_TRAY          64806
254#define IDS_CPSUI_SMALLFMT_TRAY         64807
255#define IDS_CPSUI_LARGEFMT_TRAY         64808
256#define IDS_CPSUI_LARGECAP_TRAY         64809
257#define IDS_CPSUI_CASSETTE_TRAY         64810
258#define IDS_CPSUI_DEFAULT_TRAY          64811
259#define IDS_CPSUI_FORMSOURCE            64812
260#define IDS_CPSUI_MANUALFEED            64813
261#define IDS_CPSUI_PRINTERMEM_KB         64814
262#define IDS_CPSUI_PRINTERMEM_MB         64815
263#define IDS_CPSUI_PAGEPROTECT           64816
264#define IDS_CPSUI_HALFTONE_SETUP        64817
265#define IDS_CPSUI_INSTFONTCART          64818
266#define IDS_CPSUI_SLOT1                 64819
267#define IDS_CPSUI_SLOT2                 64820
268#define IDS_CPSUI_SLOT3                 64821
269#define IDS_CPSUI_SLOT4                 64822
270#define IDS_CPSUI_LEFT_SLOT             64823
271#define IDS_CPSUI_RIGHT_SLOT            64824
272#define IDS_CPSUI_STAPLER               64825
273#define IDS_CPSUI_STAPLER_ON            64826
274#define IDS_CPSUI_STAPLER_OFF           64827
275#define IDS_CPSUI_STACKER               64828
276#define IDS_CPSUI_MAILBOX               64829
277#define IDS_CPSUI_COPY                  64830
278#define IDS_CPSUI_COPIES                64831
279#define IDS_CPSUI_TOTAL                 64832
280#define IDS_CPSUI_MAKE                  64833
281#define IDS_CPSUI_PRINT                 64834
282#define IDS_CPSUI_FAX                   64835
283#define IDS_CPSUI_PLOT                  64836
284#define IDS_CPSUI_SLOW                  64837
285#define IDS_CPSUI_FAST                  64838
286#define IDS_CPSUI_ROTATED               64839
287#define IDS_CPSUI_RESET                 64840
288#define IDS_CPSUI_ALL                   64841
289#define IDS_CPSUI_DEVICE                64842
290#define IDS_CPSUI_SETTINGS              64843
291#define IDS_CPSUI_REVERT                64844
292#define IDS_CPSUI_CHANGES               64845
293#define IDS_CPSUI_CHANGED               64846
294#define IDS_CPSUI_WARNING               64847
295#define IDS_CPSUI_ABOUT                 64848
296#define IDS_CPSUI_VERSION               64849
297#define IDS_CPSUI_NO_NAME               64850
298#define IDS_CPSUI_SETTING               64851
299#define IDS_CPSUI_DEVICE_SETTINGS       64852
300#define IDS_CPSUI_STDDOCPROPTAB1        64853
301#define IDS_CPSUI_STDDOCPROPTAB2        64854
302#define IDS_CPSUI_PAGEORDER             64855
303#define IDS_CPSUI_FRONTTOBACK           64856
304#define IDS_CPSUI_BACKTOFRONT           64857
305#define IDS_CPSUI_QUALITY_SETTINGS      64858
306#define IDS_CPSUI_QUALITY_DRAFT         64859
307#define IDS_CPSUI_QUALITY_BETTER        64860
308#define IDS_CPSUI_QUALITY_BEST          64861
309#define IDS_CPSUI_QUALITY_CUSTOM        64862
310#define IDS_CPSUI_OUTPUTBIN             64863
311#define IDS_CPSUI_NUP                   64864
312#define IDS_CPSUI_NUP_NORMAL            64865
313#define IDS_CPSUI_NUP_TWOUP             64866
314#define IDS_CPSUI_NUP_FOURUP            64867
315#define IDS_CPSUI_NUP_SIXUP             64868
316#define IDS_CPSUI_NUP_NINEUP            64869
317#define IDS_CPSUI_NUP_SIXTEENUP         64870
318#define IDS_CPSUI_SIDE1                 64871
319#define IDS_CPSUI_SIDE2                 64872
320#define IDS_CPSUI_BOOKLET               64873
321#if (NTDDI_VERSION >= NTDDI_VISTA)
322#define IDS_CPSUI_POSTER                64874
323#define IDS_CPSUI_POSTER_2x2            64875
324#define IDS_CPSUI_POSTER_3x3            64876
325#define IDS_CPSUI_POSTER_4x4            64877
326#define IDS_CPSUI_NUP_DIRECTION         64878
327#define IDS_CPSUI_RIGHT_THEN_DOWN       64879
328#define IDS_CPSUI_DOWN_THEN_RIGHT       64880
329#define IDS_CPSUI_LEFT_THEN_DOWN        64881
330#define IDS_CPSUI_DOWN_THEN_LEFT        64882
331#define IDS_CPSUI_MANUAL_DUPLEX         64883
332#define IDS_CPSUI_MANUAL_DUPLEX_ON      64884
333#define IDS_CPSUI_MANUAL_DUPLEX_OFF     64885
334#define IDS_CPSUI_ROT_PORT              64886
335#define IDS_CPSUI_STAPLE                64887
336#define IDS_CPSUI_BOOKLET_EDGE          64888
337#define IDS_CPSUI_BOOKLET_EDGE_LEFT     64889
338#define IDS_CPSUI_BOOKLET_EDGE_RIGHT    64890
339#define IDS_CPSUI_NUP_BORDER            64891
340#define IDS_CPSUI_NUP_BORDERED          64892
341#define IDS_CPSUI_STRID_LAST            64892
342#else
343#define IDS_CPSUI_STRID_LAST            64873
344#endif
345
346#if (!defined(RC_INVOKED))
347
348/* DEFINES */
349
350#define TVOT_2STATES                   0
351#define TVOT_3STATES                   1
352#define TVOT_UDARROW                   2
353#define TVOT_TRACKBAR                  3
354#define TVOT_SCROLLBAR                 4
355#define TVOT_LISTBOX                   5
356#define TVOT_COMBOBOX                  6
357#define TVOT_EDITBOX                   7
358#define TVOT_PUSHBUTTON                8
359#define TVOT_CHKBOX                    9
360#if (NTDDI_VERSION >= NTDDI_VISTA)
361#define TVOT_NSTATES_EX                10
362#define TVOT_LAST                      TVOT_NSTATES_EX
363#else
364#define TVOT_LAST                      TVOT_CHKBOX
365#endif
366#define TVOT_NONE                      (TVOT_LAST + 1)
367
368#define CHKBOXS_FALSE_TRUE             0
369#define CHKBOXS_NO_YES                 1
370#define CHKBOXS_OFF_ON                 2
371#define CHKBOXS_FALSE_PDATA            3
372#define CHKBOXS_NO_PDATA               4
373#define CHKBOXS_OFF_PDATA              5
374#define CHKBOXS_NONE_PDATA             6
375
376#define PUSHBUTTON_TYPE_DLGPROC        0
377#define PUSHBUTTON_TYPE_CALLBACK       1
378#define PUSHBUTTON_TYPE_HTCLRADJ       2
379#define PUSHBUTTON_TYPE_HTSETUP        3
380
381#define MAX_RES_STR_CHARS              160
382
383#define OPTPF_HIDE                     0x01
384#define OPTPF_DISABLED                 0x02
385#define OPTPF_ICONID_AS_HICON          0x04
386#define OPTPF_OVERLAY_WARNING_ICON     0x08
387#define OPTPF_OVERLAY_STOP_ICON        0x10
388#define OPTPF_OVERLAY_NO_ICON          0x20
389#define OPTPF_USE_HDLGTEMPLATE         0x40
390
391#if (NTDDI_VERSION >= NTDDI_VISTA)
392#define OPTPF_MASK                     0x7f
393#endif
394
395#if (NTDDI_VERSION >= NTDDI_VISTA)
396#define OPTCF_HIDE                     0x01
397#define OPTCF_MASK                     0x01
398#endif
399
400#define OPTTF_TYPE_DISABLED            0x01
401#define OPTTF_NOSPACE_BEFORE_POSTFIX   0x02
402
403#if (NTDDI_VERSION >= NTDDI_VISTA)
404#define OPTTF_MASK                     0x03
405#endif
406
407#define OTS_LBCB_SORT                  0x0001
408#define OTS_LBCB_PROPPAGE_LBUSECB      0x0002
409#define OTS_LBCB_PROPPAGE_CBUSELB      0x0004
410#define OTS_LBCB_INCL_ITEM_NONE        0x0008
411#define OTS_LBCB_NO_ICON16_IN_ITEM     0x0010
412#define OTS_PUSH_INCL_SETUP_TITLE      0x0020
413#define OTS_PUSH_NO_DOT_DOT_DOT        0x0040
414#define OTS_PUSH_ENABLE_ALWAYS         0x0080
415
416#if (NTDDI_VERSION >= NTDDI_VISTA)
417#define OTS_MASK                       0x00ff
418#endif
419
420#define EPF_PUSH_TYPE_DLGPROC          0x0001
421#define EPF_INCL_SETUP_TITLE           0x0002
422#define EPF_NO_DOT_DOT_DOT             0x0004
423#define EPF_ICONID_AS_HICON            0x0008
424#define EPF_OVERLAY_WARNING_ICON       0x0010
425#define EPF_OVERLAY_STOP_ICON          0x0020
426#define EPF_OVERLAY_NO_ICON            0x0040
427#define EPF_USE_HDLGTEMPLATE           0x0080
428
429#if (NTDDI_VERSION >= NTDDI_VISTA)
430#define EPF_MASK                       0x00ff
431#endif
432
433#define ECBF_CHECKNAME_AT_FRONT           0x0001
434#define ECBF_CHECKNAME_ONLY_ENABLED       0x0002
435#define ECBF_ICONID_AS_HICON              0x0004
436#define ECBF_OVERLAY_WARNING_ICON         0x0008
437#define ECBF_OVERLAY_ECBICON_IF_CHECKED   0x0010
438#define ECBF_OVERLAY_STOP_ICON            0x0020
439#define ECBF_OVERLAY_NO_ICON              0x0040
440#define ECBF_CHECKNAME_ONLY               0x0080
441
442#if (NTDDI_VERSION >= NTDDI_VISTA)
443#define ECBF_MASK                         0x00ff
444#endif
445
446#define OPTIF_COLLAPSE                 __MSABI_LONG(0x00000001)
447#define OPTIF_HIDE                     __MSABI_LONG(0x00000002)
448#define OPTIF_CALLBACK                 __MSABI_LONG(0x00000004)
449#define OPTIF_CHANGED                  __MSABI_LONG(0x00000008)
450#define OPTIF_CHANGEONCE               __MSABI_LONG(0x00000010)
451#define OPTIF_DISABLED                 __MSABI_LONG(0x00000020)
452#define OPTIF_ECB_CHECKED              __MSABI_LONG(0x00000040)
453#define OPTIF_EXT_HIDE                 __MSABI_LONG(0x00000080)
454#define OPTIF_EXT_DISABLED             __MSABI_LONG(0x00000100)
455#define OPTIF_SEL_AS_HICON             __MSABI_LONG(0x00000200)
456#define OPTIF_EXT_IS_EXTPUSH           __MSABI_LONG(0x00000400)
457#define OPTIF_NO_GROUPBOX_NAME         __MSABI_LONG(0x00000800)
458#define OPTIF_OVERLAY_WARNING_ICON     __MSABI_LONG(0x00001000)
459#define OPTIF_OVERLAY_STOP_ICON        __MSABI_LONG(0x00002000)
460#define OPTIF_OVERLAY_NO_ICON          __MSABI_LONG(0x00004000)
461#define OPTIF_INITIAL_TVITEM           __MSABI_LONG(0x00008000)
462#define OPTIF_HAS_POIEXT               __MSABI_LONG(0x00010000)
463
464#define OPTIF_MASK                     __MSABI_LONG(0x0001ffff)
465
466
467#define DMPUB_NONE                     0
468#define DMPUB_FIRST                    1
469
470#define DMPUB_ORIENTATION              1
471#define DMPUB_SCALE                    2
472#define DMPUB_COPIES_COLLATE           3
473#define DMPUB_DEFSOURCE                4
474#define DMPUB_PRINTQUALITY             5
475#define DMPUB_COLOR                    6
476#define DMPUB_DUPLEX                   7
477#define DMPUB_TTOPTION                 8
478#define DMPUB_FORMNAME                 9
479#define DMPUB_ICMMETHOD                10
480#define DMPUB_ICMINTENT                11
481#define DMPUB_MEDIATYPE                12
482#define DMPUB_DITHERTYPE               13
483#define DMPUB_OUTPUTBIN                14
484#define DMPUB_QUALITY                  15
485#define DMPUB_NUP                      16
486#define DMPUB_PAGEORDER                17
487#if (NTDDI_VERSION >= NTDDI_VISTA)
488#define DMPUB_NUP_DIRECTION            18
489#define DMPUB_MANUAL_DUPLEX            19
490#define DMPUB_STAPLE                   20
491#define DMPUB_BOOKLET_EDGE             21
492#define DMPUB_LAST                     21
493#else
494#define DMPUB_LAST                     17
495#endif
496
497#define DMPUB_OEM_PAPER_ITEM           97
498#define DMPUB_OEM_GRAPHIC_ITEM         98
499#define DMPUB_OEM_ROOT_ITEM            99
500#define DMPUB_USER                     100
501
502#define MAKE_DMPUB_HIDEBIT(DMPub) (DWORD)(((DWORD)0x01 << ((DMPub) - 1)))
503#define IS_DMPUB_HIDDEN(dw, DMPub) (WINBOOL)((DWORD)(dw) & MAKE_DMPUB_HIDEBIT(DMPub))
504
505#define OIEXTF_ANSI_STRING             0x0001
506
507#define CPSUICB_REASON_SEL_CHANGED      0
508#define CPSUICB_REASON_PUSHBUTTON       1
509#define CPSUICB_REASON_ECB_CHANGED      2
510#define CPSUICB_REASON_DLGPROC          3
511#define CPSUICB_REASON_UNDO_CHANGES     4
512#define CPSUICB_REASON_EXTPUSH          5
513#define CPSUICB_REASON_APPLYNOW         6
514#define CPSUICB_REASON_OPTITEM_SETFOCUS 7
515#define CPSUICB_REASON_ITEMS_REVERTED   8
516#define CPSUICB_REASON_ABOUT            9
517#define CPSUICB_REASON_SETACTIVE        10
518#define CPSUICB_REASON_KILLACTIVE       11
519
520#define CPSUICB_ACTION_NONE             0
521#define CPSUICB_ACTION_OPTIF_CHANGED    1
522#define CPSUICB_ACTION_REINIT_ITEMS     2
523#define CPSUICB_ACTION_NO_APPLY_EXIT    3
524#define CPSUICB_ACTION_ITEMS_APPLIED    4
525
526#define DP_STD_TREEVIEWPAGE             0xFFFF
527#define DP_STD_DOCPROPPAGE2             0xFFFE
528#define DP_STD_DOCPROPPAGE1             0XFFFD
529#define DP_STD_RESERVED_START           0xFFF0
530
531#define MAX_DLGPAGE_COUNT               64
532
533#define DPF_ICONID_AS_HICON             0x0001
534#define DPF_USE_HDLGTEMPLATE            0x0002
535
536#define CPSUIF_UPDATE_PERMISSION        0x0001
537#define CPSUIF_ICONID_AS_HICON          0x0002
538#define CPSUIF_ABOUT_CALLBACK           0x0004
539
540#define CPSUI_PDLGPAGE_DOCPROP          (PDLGPAGE)1
541#define CPSUI_PDLGPAGE_ADVDOCPROP       (PDLGPAGE)2
542#define CPSUI_PDLGPAGE_PRINTERPROP      (PDLGPAGE)3
543#define CPSUI_PDLGPAGE_TREEVIEWONLY     (PDLGPAGE)4
544
545#define CPSUI_PDLGPAGE_TREEVIWONLY      CPSUI_PDLGPAGE_TREEVIEWONLY
546
547#define CPSFUNC_ADD_HPROPSHEETPAGE          0
548#define CPSFUNC_ADD_PROPSHEETPAGEW          1
549#define CPSFUNC_ADD_PCOMPROPSHEETUIA        2
550#define CPSFUNC_ADD_PCOMPROPSHEETUIW        3
551#define CPSFUNC_ADD_PFNPROPSHEETUIA         4
552#define CPSFUNC_ADD_PFNPROPSHEETUIW         5
553#define CPSFUNC_DELETE_HCOMPROPSHEET        6
554#define CPSFUNC_SET_HSTARTPAGE              7
555#define CPSFUNC_GET_PAGECOUNT               8
556#define CPSFUNC_SET_RESULT                  9
557#define CPSFUNC_GET_HPSUIPAGES              10
558#define CPSFUNC_LOAD_CPSUI_STRINGA          11
559#define CPSFUNC_LOAD_CPSUI_STRINGW          12
560#define CPSFUNC_LOAD_CPSUI_ICON             13
561#define CPSFUNC_GET_PFNPROPSHEETUI_ICON     14
562#define CPSFUNC_ADD_PROPSHEETPAGEA          15
563#define CPSFUNC_INSERT_PSUIPAGEA            16
564#define CPSFUNC_INSERT_PSUIPAGEW            17
565#define CPSFUNC_SET_PSUIPAGE_TITLEA         18
566#define CPSFUNC_SET_PSUIPAGE_TITLEW         19
567#define CPSFUNC_SET_PSUIPAGE_ICON           20
568#define CPSFUNC_SET_DATABLOCK               21
569#define CPSFUNC_QUERY_DATABLOCK             22
570#define CPSFUNC_SET_DMPUB_HIDEBITS          23
571#define CPSFUNC_IGNORE_CPSUI_PSN_APPLY      24
572#define CPSFUNC_DO_APPLY_CPSUI              25
573
574#if (NTDDI_VERSION >= NTDDI_WINXP)
575#define CPSFUNC_SET_FUSION_CONTEXT          26
576#define MAX_CPSFUNC_INDEX                   26
577#else
578#define MAX_CPSFUNC_INDEX                   25
579#endif
580
581#ifdef UNICODE
582#define CPSFUNC_ADD_PCOMPROPSHEETUI         CPSFUNC_ADD_PCOMPROPSHEETUIW
583#define CPSFUNC_ADD_PFNPROPSHEETUI          CPSFUNC_ADD_PFNPROPSHEETUIW
584#define CPSFUNC_LOAD_CPSUI_STRING           CPSFUNC_LOAD_CPSUI_STRINGW
585#define CPSFUNC_ADD_PROPSHEETPAGE           CPSFUNC_ADD_PROPSHEETPAGEW
586#define CPSFUNC_INSERT_PSUIPAGE             CPSFUNC_INSERT_PSUIPAGEW
587#define CPSFUNC_SET_PSUIPAGE_TITLE          CPSFUNC_SET_PSUIPAGE_TITLEW
588
589#else
590#define CPSFUNC_ADD_PCOMPROPSHEETUI         CPSFUNC_ADD_PCOMPROPSHEETUIA
591#define CPSFUNC_ADD_PFNPROPSHEETUI          CPSFUNC_ADD_PFNPROPSHEETUIA
592#define CPSFUNC_LOAD_CPSUI_STRING           CPSFUNC_LOAD_CPSUI_STRINGA
593#define CPSFUNC_ADD_PROPSHEETPAGE           CPSFUNC_ADD_PROPSHEETPAGEA
594#define CPSFUNC_INSERT_PSUIPAGE             CPSFUNC_INSERT_PSUIPAGEA
595#define CPSFUNC_SET_PSUIPAGE_TITLE          CPSFUNC_SET_PSUIPAGE_TITLEA
596
597#endif
598
599#define SR_OWNER            0
600#define SR_OWNER_PARENT     1
601
602#define HINSPSUIPAGE_FIRST              (HANDLE)0xFFFFFFFE
603#define HINSPSUIPAGE_LAST               (HANDLE)0xFFFFFFFF
604#define HINSPSUIPAGE_INDEX(i)           (HANDLE)MAKELONG(i, 0);
605
606#define PSUIPAGEINSERT_GROUP_PARENT     0
607#define PSUIPAGEINSERT_PCOMPROPSHEETUI  1
608#define PSUIPAGEINSERT_PFNPROPSHEETUI   2
609#define PSUIPAGEINSERT_PROPSHEETPAGE    3
610#define PSUIPAGEINSERT_HPROPSHEETPAGE   4
611#define PSUIPAGEINSERT_DLL              5
612#define MAX_PSUIPAGEINSERT_INDEX        5
613
614#define INSPSUIPAGE_MODE_BEFORE         0
615#define INSPSUIPAGE_MODE_AFTER          1
616#define INSPSUIPAGE_MODE_FIRST_CHILD    2
617#define INSPSUIPAGE_MODE_LAST_CHILD     3
618#define INSPSUIPAGE_MODE_INDEX          4
619
620#define SSP_TVPAGE          10000
621#define SSP_STDPAGE1        10001
622#define SSP_STDPAGE2        10002
623
624#define APPLYCPSUI_NO_NEWDEF        0x00000001
625#define APPLYCPSUI_OK_CANCEL_BUTTON 0x00000002
626
627#define PROPSHEETUI_REASON_INIT             0
628#define PROPSHEETUI_REASON_GET_INFO_HEADER  1
629#define PROPSHEETUI_REASON_DESTROY          2
630#define PROPSHEETUI_REASON_SET_RESULT       3
631#define PROPSHEETUI_REASON_GET_ICON         4
632#define MAX_PROPSHEETUI_REASON_INDEX        4
633
634#define PROPSHEETUI_INFO_VERSION            0x0100
635
636#define PSUIINFO_UNICODE                    0x0001
637
638/* return-values for CommonPropertySheetUI on success */
639#define CPSUI_CANCEL                        0
640#define CPSUI_OK                            1
641#define CPSUI_RESTARTWINDOWS                2
642#define CPSUI_REBOOTSYSTEM                  3
643
644#define ERR_CPSUI_GETLASTERROR              -1
645#define ERR_CPSUI_ALLOCMEM_FAILED           -2
646#define ERR_CPSUI_INVALID_PDATA             -3
647#define ERR_CPSUI_INVALID_LPARAM            -4
648#define ERR_CPSUI_NULL_HINST                -5
649#define ERR_CPSUI_NULL_CALLERNAME           -6
650#define ERR_CPSUI_NULL_OPTITEMNAME          -7
651#define ERR_CPSUI_NO_PROPSHEETPAGE          -8
652#define ERR_CPSUI_TOO_MANY_PROPSHEETPAGES   -9
653#define ERR_CPSUI_CREATEPROPPAGE_FAILED     -10
654#define ERR_CPSUI_MORE_THAN_ONE_TVPAGE      -11
655#define ERR_CPSUI_MORE_THAN_ONE_STDPAGE     -12
656#define ERR_CPSUI_INVALID_PDLGPAGE          -13
657#define ERR_CPSUI_INVALID_DLGPAGE_CBSIZE    -14
658#define ERR_CPSUI_TOO_MANY_DLGPAGES         -15
659#define ERR_CPSUI_INVALID_DLGPAGEIDX        -16
660#define ERR_CPSUI_SUBITEM_DIFF_DLGPAGEIDX   -17
661#define ERR_CPSUI_NULL_POPTITEM             -18
662#define ERR_CPSUI_INVALID_OPTITEM_CBSIZE    -19
663#define ERR_CPSUI_INVALID_OPTTYPE_CBSIZE    -20
664#define ERR_CPSUI_INVALID_OPTTYPE_COUNT     -21
665#define ERR_CPSUI_NULL_POPTPARAM            -22
666#define ERR_CPSUI_INVALID_OPTPARAM_CBSIZE   -23
667#define ERR_CPSUI_INVALID_EDITBOX_PSEL      -24
668#define ERR_CPSUI_INVALID_EDITBOX_BUF_SIZE  -25
669#define ERR_CPSUI_INVALID_ECB_CBSIZE        -26
670#define ERR_CPSUI_NULL_ECB_PTITLE           -27
671#define ERR_CPSUI_NULL_ECB_PCHECKEDNAME     -28
672#define ERR_CPSUI_INVALID_DMPUBID           -29
673#define ERR_CPSUI_INVALID_DMPUB_TVOT        -30
674#define ERR_CPSUI_CREATE_TRACKBAR_FAILED    -31
675#define ERR_CPSUI_CREATE_UDARROW_FAILED     -32
676#define ERR_CPSUI_CREATE_IMAGELIST_FAILED   -33
677#define ERR_CPSUI_INVALID_TVOT_TYPE         -34
678#define ERR_CPSUI_INVALID_LBCB_TYPE         -35
679#define ERR_CPSUI_SUBITEM_DIFF_OPTIF_HIDE   -36
680#define ERR_CPSUI_INVALID_PUSHBUTTON_TYPE   -38
681#define ERR_CPSUI_INVALID_EXTPUSH_CBSIZE    -39
682#define ERR_CPSUI_NULL_EXTPUSH_DLGPROC      -40
683#define ERR_CPSUI_NO_EXTPUSH_DLGTEMPLATEID  -41
684#define ERR_CPSUI_NULL_EXTPUSH_CALLBACK     -42
685#define ERR_CPSUI_DMCOPIES_USE_EXTPUSH      -43
686#define ERR_CPSUI_ZERO_OPTITEM              -44
687
688#define ERR_CPSUI_FUNCTION_NOT_IMPLEMENTED  -9999
689#define ERR_CPSUI_INTERNAL_ERROR            -10000
690
691#define PSUIHDRF_OBSOLETE       0x0001
692#define PSUIHDRF_NOAPPLYNOW     0x0002
693#define PSUIHDRF_PROPTITLE      0x0004
694#define PSUIHDRF_USEHICON       0x0008
695#define PSUIHDRF_DEFTITLE       0x0010
696#define PSUIHDRF_EXACT_PTITLE   0x0020
697
698/* TYPES */
699
700typedef struct _OPTPARAM {
701  WORD cbSize;
702  BYTE Flags;
703  BYTE Style;
704  LPTSTR pData;
705  ULONG_PTR IconID;
706  LPARAM lParam;
707  ULONG_PTR dwReserved[2];
708} OPTPARAM, *POPTPARAM;
709
710#if (NTDDI_VERSION >= NTDDI_VISTA)
711typedef struct _OPTCOMBO {
712  WORD cbSize;
713  BYTE Flags;
714  WORD cListItem;
715  POPTPARAM pListItem;
716  LONG Sel;
717  DWORD dwReserved[3];
718} OPTCOMBO, *POPTCOMBO;
719#endif
720
721typedef struct _OPTTYPE {
722  WORD cbSize;
723  BYTE Type;
724  BYTE Flags;
725  WORD Count;
726  WORD BegCtrlID;
727  POPTPARAM pOptParam;
728  WORD Style;
729  WORD wReserved[3];
730  ULONG_PTR dwReserved[3];
731} OPTTYPE, *POPTTYPE;
732
733typedef struct _EXTPUSH {
734  WORD cbSize;
735  WORD Flags;
736  LPTSTR pTitle;
737  __C89_NAMELESS union {
738    DLGPROC DlgProc;
739    FARPROC pfnCallBack;
740  } DUMMYUNIONNAME;
741  ULONG_PTR IconID;
742  __C89_NAMELESS union {
743    WORD DlgTemplateID;
744    HANDLE hDlgTemplate;
745  } DUMMYUNIONNAME2;
746  ULONG_PTR dwReserved[3];
747} EXTPUSH, *PEXTPUSH;
748
749typedef struct _EXTCHKBOX {
750  WORD cbSize;
751  WORD Flags;
752  LPTSTR pTitle;
753  LPTSTR pSeparator;
754  LPTSTR pCheckedName;
755  ULONG_PTR IconID;
756  WORD wReserved[4];
757  ULONG_PTR dwReserved[2];
758} EXTCHKBOX, *PEXTCHKBOX;
759
760typedef struct _OIEXT {
761  WORD cbSize;
762  WORD Flags;
763  HINSTANCE hInstCaller;
764  LPTSTR pHelpFile;
765  ULONG_PTR dwReserved[4];
766} OIEXT, *POIEXT;
767
768typedef struct _OPTITEM {
769  WORD cbSize;
770  BYTE Level;
771  BYTE DlgPageIdx;
772  DWORD Flags;
773  ULONG_PTR UserData;
774  LPTSTR pName;
775  __C89_NAMELESS union {
776    LONG Sel;
777    LPTSTR pSel;
778  } DUMMYUNIONNAME;
779  __C89_NAMELESS union {
780    PEXTCHKBOX pExtChkBox;
781    PEXTPUSH pExtPush;
782  } DUMMYUNIONNAME2;
783  POPTTYPE pOptType;
784  DWORD HelpIndex;
785  BYTE DMPubID;
786  BYTE UserItemID;
787  WORD wReserved;
788  POIEXT pOIExt;
789  ULONG_PTR dwReserved[3];
790} OPTITEM, *POPTITEM;
791
792typedef struct _CPSUICBPARAM {
793  WORD cbSize;
794  WORD Reason;
795  HWND hDlg;
796  POPTITEM pOptItem;
797  WORD cOptItem;
798  WORD Flags;
799  POPTITEM pCurItem;
800  __C89_NAMELESS union {
801    LONG OldSel;
802    LPTSTR pOldSel;
803  } DUMMYUNIONNAME;
804  ULONG_PTR UserData;
805  ULONG_PTR Result;
806} CPSUICBPARAM, *PCPSUICBPARAM;
807
808typedef LONG
809(APIENTRY *_CPSUICALLBACK)(
810  PCPSUICBPARAM pCPSUICBParam);
811
812#define CPSUICALLBACK        LONG APIENTRY
813
814typedef struct _DLGPAGE {
815  WORD cbSize;
816  WORD Flags;
817  DLGPROC DlgProc;
818  LPTSTR pTabName;
819  ULONG_PTR IconID;
820  __C89_NAMELESS union {
821    WORD DlgTemplateID;
822    HANDLE hDlgTemplate;
823  } DUMMYUNIONNAME;
824} DLGPAGE, *PDLGPAGE;
825
826typedef struct _COMPROPSHEETUI {
827  WORD cbSize;
828  WORD Flags;
829  HINSTANCE hInstCaller;
830  LPTSTR pCallerName;
831  ULONG_PTR UserData;
832  LPTSTR pHelpFile;
833  _CPSUICALLBACK pfnCallBack;
834  POPTITEM pOptItem;
835  PDLGPAGE pDlgPage;
836  WORD cOptItem;
837  WORD cDlgPage;
838  ULONG_PTR IconID;
839  LPTSTR pOptItemName;
840  WORD CallerVersion;
841  WORD OptItemVersion;
842  ULONG_PTR dwReserved[4];
843} COMPROPSHEETUI, *PCOMPROPSHEETUI;
844
845typedef struct _SETRESULT_INFO {
846  WORD cbSize;
847  WORD wReserved;
848  HANDLE hSetResult;
849  LRESULT Result;
850} SETRESULT_INFO, *PSETRESULT_INFO;
851
852typedef struct _INSERTPSUIPAGE_INFO {
853  WORD cbSize;
854  BYTE Type;
855  BYTE Mode;
856  ULONG_PTR dwData1;
857  ULONG_PTR dwData2;
858  ULONG_PTR dwData3;
859} INSERTPSUIPAGE_INFO, *PINSERTPSUIPAGE_INFO;
860
861typedef LONG_PTR
862(CALLBACK *PFNCOMPROPSHEET)(
863  HANDLE hComPropSheet,
864  UINT Function,
865  LPARAM lParam1,
866  LPARAM lParam2);
867
868typedef struct _PSPINFO {
869  WORD cbSize;
870  WORD wReserved;
871  HANDLE hComPropSheet;
872  HANDLE hCPSUIPage;
873  PFNCOMPROPSHEET pfnComPropSheet;
874} PSPINFO, *PPSPINFO;
875
876#define PPSPINFO_FROM_WM_INITDIALOG_LPARAM(lParam)  \
877                (PPSPINFO)((LPBYTE)lParam + ((LPPROPSHEETPAGE)lParam)->dwSize)
878
879typedef struct _CPSUIDATABLOCK {
880  DWORD cbData;
881  LPBYTE pbData;
882} CPSUIDATABLOCK, *PCPSUIDATABLOCK;
883
884typedef struct _PROPSHEETUI_INFO {
885  WORD cbSize;
886  WORD Version;
887  WORD Flags;
888  WORD Reason;
889  HANDLE hComPropSheet;
890  PFNCOMPROPSHEET pfnComPropSheet;
891  LPARAM lParamInit;
892  ULONG_PTR UserData;
893  ULONG_PTR Result;
894} PROPSHEETUI_INFO, *PPROPSHEETUI_INFO;
895
896typedef struct _PROPSHEETUI_GETICON_INFO {
897  WORD cbSize;
898  WORD Flags;
899  WORD cxIcon;
900  WORD cyIcon;
901  HICON hIcon;
902} PROPSHEETUI_GETICON_INFO, *PPROPSHEETUI_GETICON_INFO;
903
904typedef LONG
905(FAR *PFNPROPSHEETUI)(
906  PPROPSHEETUI_INFO pPSUIInfo,
907  LPARAM lParam);
908
909typedef struct _PROPSHEETUI_INFO_HEADER {
910  WORD cbSize;
911  WORD Flags;
912  LPTSTR pTitle;
913  HWND hWndParent;
914  HINSTANCE hInst;
915  __C89_NAMELESS union {
916    HICON hIcon;
917    ULONG_PTR IconID;
918  } DUMMYUNIONNAME;
919} PROPSHEETUI_INFO_HEADER, *PPROPSHEETUI_INFO_HEADER;
920
921/* FUNCTIONS */
922
923LONG
924APIENTRY
925CommonPropertySheetUIA(
926  HWND hWndOwner,
927  PFNPROPSHEETUI pfnPropSheetUI,
928  LPARAM lParam,
929  LPDWORD pResult);
930
931LONG
932APIENTRY
933CommonPropertySheetUIW(
934  HWND hWndOwner,
935  PFNPROPSHEETUI pfnPropSheetUI,
936  LPARAM lParam,
937  LPDWORD pResult);
938
939#ifdef UNICODE
940#define CommonPropertySheetUI CommonPropertySheetUIW
941#else
942#define CommonPropertySheetUI CommonPropertySheetUIA
943#endif
944
945ULONG_PTR
946APIENTRY
947GetCPSUIUserData(
948  HWND hDlg);
949
950WINBOOL
951APIENTRY
952SetCPSUIUserData(
953  HWND hDlg,
954  ULONG_PTR CPSUIUserData);
955
956#endif /* (!defined(RC_INVOKED)) */
957
958/* FIXME : These declarations doesn't exist in the official header */
959ULONG_PTR WINAPI GetPSTUIUserData(HWND);
960WINBOOL WINAPI SetPSTUIUserData(HWND, ULONG_PTR);
961
962
963#ifdef __cplusplus
964} /* extern "C" */
965#endif
966
967