Home | History | Annotate | Download | only in include
      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
     24 extern "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 
    700 typedef 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)
    711 typedef 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 
    721 typedef 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 
    733 typedef 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 
    749 typedef 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 
    760 typedef struct _OIEXT {
    761   WORD cbSize;
    762   WORD Flags;
    763   HINSTANCE hInstCaller;
    764   LPTSTR pHelpFile;
    765   ULONG_PTR dwReserved[4];
    766 } OIEXT, *POIEXT;
    767 
    768 typedef 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 
    792 typedef 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 
    808 typedef LONG
    809 (APIENTRY *_CPSUICALLBACK)(
    810   PCPSUICBPARAM pCPSUICBParam);
    811 
    812 #define CPSUICALLBACK        LONG APIENTRY
    813 
    814 typedef 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 
    826 typedef 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 
    845 typedef struct _SETRESULT_INFO {
    846   WORD cbSize;
    847   WORD wReserved;
    848   HANDLE hSetResult;
    849   LRESULT Result;
    850 } SETRESULT_INFO, *PSETRESULT_INFO;
    851 
    852 typedef 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 
    861 typedef LONG_PTR
    862 (CALLBACK *PFNCOMPROPSHEET)(
    863   HANDLE hComPropSheet,
    864   UINT Function,
    865   LPARAM lParam1,
    866   LPARAM lParam2);
    867 
    868 typedef 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 
    879 typedef struct _CPSUIDATABLOCK {
    880   DWORD cbData;
    881   LPBYTE pbData;
    882 } CPSUIDATABLOCK, *PCPSUIDATABLOCK;
    883 
    884 typedef 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 
    896 typedef 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 
    904 typedef LONG
    905 (FAR *PFNPROPSHEETUI)(
    906   PPROPSHEETUI_INFO pPSUIInfo,
    907   LPARAM lParam);
    908 
    909 typedef 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 
    923 LONG
    924 APIENTRY
    925 CommonPropertySheetUIA(
    926   HWND hWndOwner,
    927   PFNPROPSHEETUI pfnPropSheetUI,
    928   LPARAM lParam,
    929   LPDWORD pResult);
    930 
    931 LONG
    932 APIENTRY
    933 CommonPropertySheetUIW(
    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 
    945 ULONG_PTR
    946 APIENTRY
    947 GetCPSUIUserData(
    948   HWND hDlg);
    949 
    950 WINBOOL
    951 APIENTRY
    952 SetCPSUIUserData(
    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 */
    959 ULONG_PTR WINAPI GetPSTUIUserData(HWND);
    960 WINBOOL WINAPI SetPSTUIUserData(HWND, ULONG_PTR);
    961 
    962 
    963 #ifdef __cplusplus
    964 } /* extern "C" */
    965 #endif
    966 
    967