home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / prsht.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  19.2 KB  |  636 lines

  1.  
  2. /*****************************************************************************\
  3. *                                                                             *
  4. * prsht.h - - Interface for the Windows Property Sheet Pages                  *
  5. *                                                                             *
  6. * Version 1.0                                                                 *
  7. *                                                                             *
  8. * Copyright (c) 1991-1998, Microsoft Corp.      All rights reserved.          *
  9. *                                                                             *
  10. \*****************************************************************************/
  11.  
  12. #ifndef _PRSHT_H_
  13. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  14. #define _PRSHT_H_
  15.  
  16. #ifndef _WINRESRC_
  17. #ifndef _WIN32_IE
  18. #define _WIN32_IE 0x0501
  19. #else
  20. #if (_WIN32_IE < 0x0400) && defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0500)
  21. #error _WIN32_IE setting conflicts with _WIN32_WINNT setting
  22. #endif
  23. #endif
  24. #endif
  25.  
  26. //
  27. // Define API decoration for direct importing of DLL references.
  28. //
  29. #ifndef WINCOMMCTRLAPI
  30. #if !defined(_COMCTL32_) && defined(_WIN32)
  31. #define WINCOMMCTRLAPI DECLSPEC_IMPORT
  32. #else
  33. #define WINCOMMCTRLAPI
  34. #endif
  35. #endif // WINCOMMCTRLAPI
  36.  
  37. #ifndef CCSIZEOF_STRUCT
  38. #define CCSIZEOF_STRUCT(structname, member)  (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
  39. #endif
  40.  
  41. //
  42. // For compilers that don't support nameless unions
  43. //
  44. #ifndef DUMMYUNIONNAME
  45. #ifdef NONAMELESSUNION
  46. #define DUMMYUNIONNAME   u
  47. #define DUMMYUNIONNAME2  u2
  48. #define DUMMYUNIONNAME3  u3
  49. #define DUMMYUNIONNAME4  u4
  50. #define DUMMYUNIONNAME5  u5
  51. #else
  52. #define DUMMYUNIONNAME
  53. #define DUMMYUNIONNAME2
  54. #define DUMMYUNIONNAME3
  55. #define DUMMYUNIONNAME4
  56. #define DUMMYUNIONNAME5
  57. #endif
  58. #endif // DUMMYUNIONNAME
  59.  
  60. #ifdef _WIN64
  61. #include <pshpack8.h>
  62. #else
  63. #include <pshpack4.h>
  64. #endif
  65.  
  66. #ifdef __cplusplus
  67. extern "C" {
  68. #endif
  69.  
  70.  
  71. #ifndef SNDMSG
  72. #ifdef __cplusplus
  73. #ifndef _MAC
  74. #define SNDMSG ::SendMessage
  75. #else
  76. #define SNDMSG ::AfxSendMessage
  77. #endif
  78. #else
  79. #ifndef _MAC
  80. #define SNDMSG SendMessage
  81. #else
  82. #define SNDMSG AfxSendMessage
  83. #endif
  84. #endif
  85. #endif // ifndef SNDMSG
  86.  
  87. #define MAXPROPPAGES            100
  88.  
  89. struct _PSP;
  90. typedef struct _PSP FAR* HPROPSHEETPAGE;
  91.  
  92. #ifndef MIDL_PASS
  93. struct _PROPSHEETPAGEA;
  94. struct _PROPSHEETPAGEW;
  95. #endif
  96.  
  97. typedef UINT (CALLBACK FAR * LPFNPSPCALLBACKA)(HWND hwnd, UINT uMsg, struct _PROPSHEETPAGEA FAR *ppsp);
  98. typedef UINT (CALLBACK FAR * LPFNPSPCALLBACKW)(HWND hwnd, UINT uMsg, struct _PROPSHEETPAGEW FAR *ppsp);
  99.  
  100. #ifdef UNICODE
  101. #define LPFNPSPCALLBACK         LPFNPSPCALLBACKW
  102. #else
  103. #define LPFNPSPCALLBACK         LPFNPSPCALLBACKA
  104. #endif
  105.  
  106. #define PSP_DEFAULT                0x00000000
  107. #define PSP_DLGINDIRECT            0x00000001
  108. #define PSP_USEHICON               0x00000002
  109. #define PSP_USEICONID              0x00000004
  110. #define PSP_USETITLE               0x00000008
  111. #define PSP_RTLREADING             0x00000010
  112.  
  113. #define PSP_HASHELP                0x00000020
  114. #define PSP_USEREFPARENT           0x00000040
  115. #define PSP_USECALLBACK            0x00000080
  116. #define PSP_PREMATURE              0x00000400
  117.  
  118. #if (_WIN32_IE >= 0x0400)
  119. //----- New flags for wizard97 --------------
  120. #define PSP_HIDEHEADER             0x00000800
  121. #define PSP_USEHEADERTITLE         0x00001000
  122. #define PSP_USEHEADERSUBTITLE      0x00002000
  123. //-------------------------------------------
  124. #endif
  125.  
  126.  
  127. #if (_WIN32_IE >= 0x0500)
  128. #define PSPCB_ADDREF            0
  129. #endif
  130. #define PSPCB_RELEASE           1
  131. #define PSPCB_CREATE            2
  132.  
  133. #define PROPSHEETPAGEA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pcRefParent)
  134. #define PROPSHEETPAGEW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pcRefParent)
  135.  
  136. typedef struct _PROPSHEETPAGEA {
  137.         DWORD           dwSize;
  138.         DWORD           dwFlags;
  139.         HINSTANCE       hInstance;
  140.         union {
  141.             LPCSTR          pszTemplate;
  142. #ifdef _WIN32
  143.             LPCDLGTEMPLATE  pResource;
  144. #else
  145.             const VOID FAR *pResource;
  146. #endif
  147.         } DUMMYUNIONNAME;
  148.         union {
  149.             HICON       hIcon;
  150.             LPCSTR      pszIcon;
  151.         } DUMMYUNIONNAME2;
  152.         LPCSTR          pszTitle;
  153.         DLGPROC         pfnDlgProc;
  154.         LPARAM          lParam;
  155.         LPFNPSPCALLBACKA pfnCallback;
  156.         UINT FAR * pcRefParent;
  157.  
  158. #if (_WIN32_IE >= 0x0400)
  159.         LPCSTR pszHeaderTitle;    // this is displayed in the header
  160.         LPCSTR pszHeaderSubTitle; //
  161. #endif
  162. } PROPSHEETPAGEA, FAR *LPPROPSHEETPAGEA;
  163. typedef const PROPSHEETPAGEA FAR *LPCPROPSHEETPAGEA;
  164.  
  165. typedef struct _PROPSHEETPAGEW {
  166.         DWORD           dwSize;
  167.         DWORD           dwFlags;
  168.         HINSTANCE       hInstance;
  169.         union {
  170.             LPCWSTR          pszTemplate;
  171. #ifdef _WIN32
  172.             LPCDLGTEMPLATE  pResource;
  173. #else
  174.             const VOID FAR *pResource;
  175. #endif
  176.         }DUMMYUNIONNAME;
  177.         union {
  178.             HICON       hIcon;
  179.             LPCWSTR      pszIcon;
  180.         }DUMMYUNIONNAME2;
  181.         LPCWSTR          pszTitle;
  182.         DLGPROC         pfnDlgProc;
  183.         LPARAM          lParam;
  184.         LPFNPSPCALLBACKW pfnCallback;
  185.         UINT FAR * pcRefParent;
  186.  
  187. #if (_WIN32_IE >= 0x0400)
  188.         LPCWSTR pszHeaderTitle;    // this is displayed in the header
  189.         LPCWSTR pszHeaderSubTitle; ///
  190. #endif
  191. } PROPSHEETPAGEW, FAR *LPPROPSHEETPAGEW;
  192. typedef const PROPSHEETPAGEW FAR *LPCPROPSHEETPAGEW;
  193.  
  194. #if 0 // IEUNIX reserved.
  195. /* Macros for the missing definitions.  */
  196. /* Not all, because mostly used in C++. */
  197. #if __STDC__ || defined (NONAMELESSUNION)
  198. #   define PSP_pszTemplate(X) ((X).u.pszTemplate)
  199. #else
  200. #   define PSP_pszTemplate(X) ((X).pszTemplate)
  201. #endif
  202. #endif
  203.  
  204. #ifdef UNICODE
  205. #define PROPSHEETPAGE           PROPSHEETPAGEW
  206. #define LPPROPSHEETPAGE         LPPROPSHEETPAGEW
  207. #define LPCPROPSHEETPAGE        LPCPROPSHEETPAGEW
  208. #define PROPSHEETPAGE_V1_SIZE PROPSHEETPAGEW_V1_SIZE
  209. #else
  210. #define PROPSHEETPAGE           PROPSHEETPAGEA
  211. #define LPPROPSHEETPAGE         LPPROPSHEETPAGEA
  212. #define LPCPROPSHEETPAGE        LPCPROPSHEETPAGEA
  213. #define PROPSHEETPAGE_V1_SIZE PROPSHEETPAGEA_V1_SIZE
  214. #endif
  215.  
  216.  
  217. #define PSH_DEFAULT             0x00000000
  218. #define PSH_PROPTITLE           0x00000001
  219. #define PSH_USEHICON            0x00000002
  220. #define PSH_USEICONID           0x00000004
  221. #define PSH_PROPSHEETPAGE       0x00000008
  222. #define PSH_WIZARDHASFINISH     0x00000010
  223. #define PSH_WIZARD              0x00000020
  224. #define PSH_USEPSTARTPAGE       0x00000040
  225. #define PSH_NOAPPLYNOW          0x00000080
  226. #define PSH_USECALLBACK         0x00000100
  227. #define PSH_HASHELP             0x00000200
  228. #define PSH_MODELESS            0x00000400
  229. #define PSH_RTLREADING          0x00000800
  230. #define PSH_WIZARDCONTEXTHELP   0x00001000
  231.  
  232. #if (_WIN32_IE >= 0x0400)
  233. //----- New flags for wizard97 -----------
  234. #if (_WIN32_IE < 0x0500)
  235. #define PSH_WIZARD97            0x00002000
  236. #else
  237. #define PSH_WIZARD97            0x01000000
  238. #endif
  239. // 0x00004000 was not used by any previous release
  240. #define PSH_WATERMARK           0x00008000
  241. #define PSH_USEHBMWATERMARK     0x00010000  // user pass in a hbmWatermark instead of pszbmWatermark
  242. #define PSH_USEHPLWATERMARK     0x00020000  //
  243. #define PSH_STRETCHWATERMARK    0x00040000  // stretchwatermark also applies for the header
  244. #define PSH_HEADER              0x00080000
  245. #define PSH_USEHBMHEADER        0x00100000
  246. #define PSH_USEPAGELANG         0x00200000  // use frame dialog template matched to page
  247. //----------------------------------------
  248. #endif
  249.  
  250. #if (_WIN32_IE >= 0x0500)
  251. //----- New flags for wizard-lite --------
  252. #define PSH_WIZARD_LITE         0x00400000
  253. #define PSH_NOCONTEXTHELP       0x02000000
  254. //----------------------------------------
  255. #endif
  256.  
  257.  
  258. typedef int (CALLBACK *PFNPROPSHEETCALLBACK)(HWND, UINT, LPARAM);
  259.  
  260. #define PROPSHEETHEADERA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA, pfnCallback)
  261. #define PROPSHEETHEADERW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, pfnCallback)
  262.  
  263. typedef struct _PROPSHEETHEADERA {
  264.         DWORD           dwSize;
  265.         DWORD           dwFlags;
  266.         HWND            hwndParent;
  267.         HINSTANCE       hInstance;
  268.         union {
  269.             HICON       hIcon;
  270.             LPCSTR      pszIcon;
  271.         }DUMMYUNIONNAME;
  272.         LPCSTR          pszCaption;
  273.  
  274.         UINT            nPages;
  275.         union {
  276.             UINT        nStartPage;
  277.             LPCSTR      pStartPage;
  278.         }DUMMYUNIONNAME2;
  279.         union {
  280.             LPCPROPSHEETPAGEA ppsp;
  281.             HPROPSHEETPAGE FAR *phpage;
  282.         }DUMMYUNIONNAME3;
  283.         PFNPROPSHEETCALLBACK pfnCallback;
  284.  
  285. #if (_WIN32_IE >= 0x0400)
  286.         union {
  287.             HBITMAP hbmWatermark;
  288.             LPCSTR pszbmWatermark;
  289.         } DUMMYUNIONNAME4;
  290.         HPALETTE hplWatermark;
  291.         union {
  292.             HBITMAP hbmHeader;     // Header  bitmap shares the palette with watermark
  293.             LPCSTR pszbmHeader;
  294.         } DUMMYUNIONNAME5;
  295. #endif
  296. } PROPSHEETHEADERA, FAR *LPPROPSHEETHEADERA;
  297.  
  298. typedef const PROPSHEETHEADERA FAR *LPCPROPSHEETHEADERA;
  299.  
  300. typedef struct _PROPSHEETHEADERW {
  301.         DWORD           dwSize;
  302.         DWORD           dwFlags;
  303.         HWND            hwndParent;
  304.         HINSTANCE       hInstance;
  305.         union {
  306.             HICON       hIcon;
  307.             LPCWSTR     pszIcon;
  308.         }DUMMYUNIONNAME;
  309.         LPCWSTR         pszCaption;
  310.  
  311.  
  312.         UINT            nPages;
  313.         union {
  314.             UINT        nStartPage;
  315.             LPCWSTR     pStartPage;
  316.         }DUMMYUNIONNAME2;
  317.         union {
  318.             LPCPROPSHEETPAGEW ppsp;
  319.             HPROPSHEETPAGE FAR *phpage;
  320.         }DUMMYUNIONNAME3;
  321.         PFNPROPSHEETCALLBACK pfnCallback;
  322.  
  323. #if (_WIN32_IE >= 0x0400)
  324.         union {
  325.             HBITMAP hbmWatermark;
  326.             LPCWSTR pszbmWatermark;
  327.         } DUMMYUNIONNAME4;
  328.         HPALETTE hplWatermark;
  329.         union {
  330.             HBITMAP hbmHeader;
  331.             LPCWSTR pszbmHeader;
  332.         } DUMMYUNIONNAME5;
  333. #endif
  334. } PROPSHEETHEADERW, FAR *LPPROPSHEETHEADERW;
  335. typedef const PROPSHEETHEADERW FAR *LPCPROPSHEETHEADERW;
  336.  
  337. #if 0 //IEUNIX reserved.
  338. /* Macros for the missing definitions.  */
  339. /* Not all, because mostly used in C++. */
  340. #if __STDC__ || defined (NONAMELESSUNION)
  341. #   define PSH_nStartPage(X) ((X).u2.nStartPage)
  342. #   define PSH_ppsp(X)       ((X).u3.ppsp)
  343. #else
  344. #   define PSH_nStartPage(X) ((X).nStartPage)
  345. #   define PSH_ppsp(X)       ((X).ppsp)
  346. #endif
  347. #endif
  348.  
  349. #ifdef UNICODE
  350. #define PROPSHEETHEADER         PROPSHEETHEADERW
  351. #define LPPROPSHEETHEADER       LPPROPSHEETHEADERW
  352. #define LPCPROPSHEETHEADER      LPCPROPSHEETHEADERW
  353. #define PROPSHEETHEADER_V1_SIZE PROPSHEETHEADERW_V1_SIZE
  354. #else
  355. #define PROPSHEETHEADER         PROPSHEETHEADERA
  356. #define LPPROPSHEETHEADER       LPPROPSHEETHEADERA
  357. #define LPCPROPSHEETHEADER      LPCPROPSHEETHEADERA
  358. #define PROPSHEETHEADER_V1_SIZE PROPSHEETHEADERA_V1_SIZE
  359. #endif
  360.  
  361.  
  362. #define PSCB_INITIALIZED  1
  363. #define PSCB_PRECREATE    2
  364.  
  365. WINCOMMCTRLAPI HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(LPCPROPSHEETPAGEA);
  366. WINCOMMCTRLAPI HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW);
  367. WINCOMMCTRLAPI BOOL           WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE);
  368. WINCOMMCTRLAPI INT_PTR        WINAPI PropertySheetA(LPCPROPSHEETHEADERA);
  369. WINCOMMCTRLAPI INT_PTR        WINAPI PropertySheetW(LPCPROPSHEETHEADERW);
  370.  
  371. #ifdef UNICODE
  372. #define CreatePropertySheetPage  CreatePropertySheetPageW
  373. #define PropertySheet            PropertySheetW
  374. #else
  375. #define CreatePropertySheetPage  CreatePropertySheetPageA
  376. #define PropertySheet            PropertySheetA
  377. #endif
  378.  
  379.  
  380.  
  381. typedef BOOL (CALLBACK FAR * LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM);
  382. typedef BOOL (CALLBACK FAR * LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM);
  383.  
  384.  
  385. typedef struct _PSHNOTIFY
  386. {
  387.     NMHDR hdr;
  388.     LPARAM lParam;
  389. } PSHNOTIFY, FAR *LPPSHNOTIFY;
  390.  
  391. #define PSN_FIRST               (0U-200U)
  392. #define PSN_LAST                (0U-299U)
  393.  
  394.  
  395. #define PSN_SETACTIVE           (PSN_FIRST-0)
  396. #define PSN_KILLACTIVE          (PSN_FIRST-1)
  397. // #define PSN_VALIDATE            (PSN_FIRST-1)
  398. #define PSN_APPLY               (PSN_FIRST-2)
  399. #define PSN_RESET               (PSN_FIRST-3)
  400. // #define PSN_CANCEL              (PSN_FIRST-3)
  401. #define PSN_HELP                (PSN_FIRST-5)
  402. #define PSN_WIZBACK             (PSN_FIRST-6)
  403. #define PSN_WIZNEXT             (PSN_FIRST-7)
  404. #define PSN_WIZFINISH           (PSN_FIRST-8)
  405. #define PSN_QUERYCANCEL         (PSN_FIRST-9)
  406. #if (_WIN32_IE >= 0x0400)
  407. #define PSN_GETOBJECT           (PSN_FIRST-10)
  408. #endif // 0x0400
  409. #if (_WIN32_IE >= 0x0500)
  410. #define PSN_TRANSLATEACCELERATOR (PSN_FIRST-12)
  411. #define PSN_QUERYINITIALFOCUS   (PSN_FIRST-13)
  412. #endif // 0x0500
  413.  
  414. #define PSNRET_NOERROR              0
  415. #define PSNRET_INVALID              1
  416. #define PSNRET_INVALID_NOCHANGEPAGE 2
  417. #define PSNRET_MESSAGEHANDLED       3
  418.  
  419. #define PSM_SETCURSEL           (WM_USER + 101)
  420. #define PropSheet_SetCurSel(hDlg, hpage, index) \
  421.         SNDMSG(hDlg, PSM_SETCURSEL, (WPARAM)index, (LPARAM)hpage)
  422.  
  423.  
  424. #define PSM_REMOVEPAGE          (WM_USER + 102)
  425. #define PropSheet_RemovePage(hDlg, index, hpage) \
  426.         SNDMSG(hDlg, PSM_REMOVEPAGE, index, (LPARAM)hpage)
  427.  
  428.  
  429. #define PSM_ADDPAGE             (WM_USER + 103)
  430. #define PropSheet_AddPage(hDlg, hpage) \
  431.         SNDMSG(hDlg, PSM_ADDPAGE, 0, (LPARAM)hpage)
  432.  
  433.  
  434. #define PSM_CHANGED             (WM_USER + 104)
  435. #define PropSheet_Changed(hDlg, hwnd) \
  436.         SNDMSG(hDlg, PSM_CHANGED, (WPARAM)hwnd, 0L)
  437.  
  438.  
  439. #define PSM_RESTARTWINDOWS      (WM_USER + 105)
  440. #define PropSheet_RestartWindows(hDlg) \
  441.         SNDMSG(hDlg, PSM_RESTARTWINDOWS, 0, 0L)
  442.  
  443.  
  444. #define PSM_REBOOTSYSTEM        (WM_USER + 106)
  445. #define PropSheet_RebootSystem(hDlg) \
  446.         SNDMSG(hDlg, PSM_REBOOTSYSTEM, 0, 0L)
  447.  
  448.  
  449. #define PSM_CANCELTOCLOSE       (WM_USER + 107)
  450. #define PropSheet_CancelToClose(hDlg) \
  451.         PostMessage(hDlg, PSM_CANCELTOCLOSE, 0, 0L)
  452.  
  453.  
  454. #define PSM_QUERYSIBLINGS       (WM_USER + 108)
  455. #define PropSheet_QuerySiblings(hDlg, wParam, lParam) \
  456.         SNDMSG(hDlg, PSM_QUERYSIBLINGS, wParam, lParam)
  457.  
  458.  
  459. #define PSM_UNCHANGED           (WM_USER + 109)
  460. #define PropSheet_UnChanged(hDlg, hwnd) \
  461.         SNDMSG(hDlg, PSM_UNCHANGED, (WPARAM)hwnd, 0L)
  462.  
  463.  
  464. #define PSM_APPLY               (WM_USER + 110)
  465. #define PropSheet_Apply(hDlg) \
  466.         SNDMSG(hDlg, PSM_APPLY, 0, 0L)
  467.  
  468.  
  469. #define PSM_SETTITLEA           (WM_USER + 111)
  470. #define PSM_SETTITLEW           (WM_USER + 120)
  471.  
  472.  
  473. #ifdef UNICODE
  474. #define PSM_SETTITLE            PSM_SETTITLEW
  475. #else
  476. #define PSM_SETTITLE            PSM_SETTITLEA
  477. #endif
  478.  
  479. #define PropSheet_SetTitle(hDlg, wStyle, lpszText)\
  480.         SNDMSG(hDlg, PSM_SETTITLE, wStyle, (LPARAM)(LPCTSTR)lpszText)
  481.  
  482.  
  483. #define PSM_SETWIZBUTTONS       (WM_USER + 112)
  484. #define PropSheet_SetWizButtons(hDlg, dwFlags) \
  485.         PostMessage(hDlg, PSM_SETWIZBUTTONS, 0, (LPARAM)dwFlags)
  486.  
  487.  
  488. #define PSWIZB_BACK             0x00000001
  489. #define PSWIZB_NEXT             0x00000002
  490. #define PSWIZB_FINISH           0x00000004
  491. #define PSWIZB_DISABLEDFINISH   0x00000008
  492.  
  493.  
  494. #define PSM_PRESSBUTTON         (WM_USER + 113)
  495. #define PropSheet_PressButton(hDlg, iButton) \
  496.         PostMessage(hDlg, PSM_PRESSBUTTON, (WPARAM)iButton, 0)
  497.  
  498.  
  499. #define PSBTN_BACK              0
  500. #define PSBTN_NEXT              1
  501. #define PSBTN_FINISH            2
  502. #define PSBTN_OK                3
  503. #define PSBTN_APPLYNOW          4
  504. #define PSBTN_CANCEL            5
  505. #define PSBTN_HELP              6
  506. #define PSBTN_MAX               6
  507.  
  508.  
  509.  
  510. #define PSM_SETCURSELID         (WM_USER + 114)
  511. #define PropSheet_SetCurSelByID(hDlg, id) \
  512.         SNDMSG(hDlg, PSM_SETCURSELID, 0, (LPARAM)id)
  513.  
  514.  
  515. #define PSM_SETFINISHTEXTA      (WM_USER + 115)
  516. #define PSM_SETFINISHTEXTW      (WM_USER + 121)
  517.  
  518. #ifdef UNICODE
  519. #define PSM_SETFINISHTEXT       PSM_SETFINISHTEXTW
  520. #else
  521. #define PSM_SETFINISHTEXT       PSM_SETFINISHTEXTA
  522. #endif
  523.  
  524. #define PropSheet_SetFinishText(hDlg, lpszText) \
  525.         SNDMSG(hDlg, PSM_SETFINISHTEXT, 0, (LPARAM)lpszText)
  526.  
  527.  
  528. #define PSM_GETTABCONTROL       (WM_USER + 116)
  529. #define PropSheet_GetTabControl(hDlg) \
  530.         (HWND)SNDMSG(hDlg, PSM_GETTABCONTROL, 0, 0)
  531.  
  532. #define PSM_ISDIALOGMESSAGE     (WM_USER + 117)
  533. #define PropSheet_IsDialogMessage(hDlg, pMsg) \
  534.         (BOOL)SNDMSG(hDlg, PSM_ISDIALOGMESSAGE, 0, (LPARAM)pMsg)
  535.  
  536. #define PSM_GETCURRENTPAGEHWND  (WM_USER + 118)
  537. #define PropSheet_GetCurrentPageHwnd(hDlg) \
  538.         (HWND)SNDMSG(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0L)
  539.  
  540. #define PSM_INSERTPAGE          (WM_USER + 119)
  541. #define PropSheet_InsertPage(hDlg, index, hpage) \
  542.         SNDMSG(hDlg, PSM_INSERTPAGE, (WPARAM)(index), (LPARAM)(hpage))
  543.  
  544.  
  545. #if (_WIN32_IE >= 0x0500)
  546. #define PSM_SETHEADERTITLEA     (WM_USER + 125)
  547. #define PSM_SETHEADERTITLEW     (WM_USER + 126)
  548.  
  549. #ifdef UNICODE
  550. #define PSM_SETHEADERTITLE      PSM_SETHEADERTITLEW
  551. #else
  552. #define PSM_SETHEADERTITLE      PSM_SETHEADERTITLEA
  553. #endif
  554.  
  555. #define PropSheet_SetHeaderTitle(hDlg, index, lpszText) \
  556.         SNDMSG(hDlg, PSM_SETHEADERTITLE, (WPARAM)(index), (LPARAM)(lpszText))
  557.  
  558.  
  559. #define PSM_SETHEADERSUBTITLEA     (WM_USER + 127)
  560. #define PSM_SETHEADERSUBTITLEW     (WM_USER + 128)
  561.  
  562. #ifdef UNICODE
  563. #define PSM_SETHEADERSUBTITLE      PSM_SETHEADERSUBTITLEW
  564. #else
  565. #define PSM_SETHEADERSUBTITLE      PSM_SETHEADERSUBTITLEA
  566. #endif
  567.  
  568. #define PropSheet_SetHeaderSubTitle(hDlg, index, lpszText) \
  569.         SNDMSG(hDlg, PSM_SETHEADERSUBTITLE, (WPARAM)(index), (LPARAM)(lpszText))
  570.  
  571. #define PSM_HWNDTOINDEX            (WM_USER + 129)
  572. #define PropSheet_HwndToIndex(hDlg, hwnd) \
  573.         (int)SNDMSG(hDlg, PSM_HWNDTOINDEX, (WPARAM)(hwnd), 0)
  574.  
  575. #define PSM_INDEXTOHWND            (WM_USER + 130)
  576. #define PropSheet_IndexToHwnd(hDlg, i) \
  577.         (HWND)SNDMSG(hDlg, PSM_INDEXTOHWND, (WPARAM)(i), 0)
  578.  
  579. #define PSM_PAGETOINDEX            (WM_USER + 131)
  580. #define PropSheet_PageToIndex(hDlg, hpage) \
  581.         (int)SNDMSG(hDlg, PSM_PAGETOINDEX, 0, (LPARAM)(hpage))
  582.  
  583. #define PSM_INDEXTOPAGE            (WM_USER + 132)
  584. #define PropSheet_IndexToPage(hDlg, i) \
  585.         (HPROPSHEETPAGE)SNDMSG(hDlg, PSM_INDEXTOPAGE, (WPARAM)(i), 0)
  586.  
  587. #define PSM_IDTOINDEX              (WM_USER + 133)
  588. #define PropSheet_IdToIndex(hDlg, id) \
  589.         (int)SNDMSG(hDlg, PSM_IDTOINDEX, 0, (LPARAM)(id))
  590.  
  591. #define PSM_INDEXTOID              (WM_USER + 134)
  592. #define PropSheet_IndexToId(hDlg, i) \
  593.         SNDMSG(hDlg, PSM_INDEXTOID, (WPARAM)(i), 0)
  594.  
  595. #define PSM_GETRESULT              (WM_USER + 135)
  596. #define PropSheet_GetResult(hDlg) \
  597.         SNDMSG(hDlg, PSM_GETRESULT, 0, 0)
  598.  
  599. #define PSM_RECALCPAGESIZES        (WM_USER + 136)
  600. #define PropSheet_RecalcPageSizes(hDlg) \
  601.         SNDMSG(hDlg, PSM_RECALCPAGESIZES, 0, 0)
  602. #endif // 0x0500
  603.  
  604. #define ID_PSRESTARTWINDOWS     0x2
  605. #define ID_PSREBOOTSYSTEM       (ID_PSRESTARTWINDOWS | 0x1)
  606.  
  607.  
  608. #define WIZ_CXDLG               276
  609. #define WIZ_CYDLG               140
  610.  
  611. #define WIZ_CXBMP               80
  612.  
  613. #define WIZ_BODYX               92
  614. #define WIZ_BODYCX              184
  615.  
  616. #define PROP_SM_CXDLG           212
  617. #define PROP_SM_CYDLG           188
  618.  
  619. #define PROP_MED_CXDLG          227
  620. #define PROP_MED_CYDLG          215
  621.  
  622. #define PROP_LG_CXDLG           252
  623. #define PROP_LG_CYDLG           218
  624.  
  625.  
  626. #ifdef __cplusplus
  627. }
  628. #endif
  629.  
  630. #include <poppack.h>
  631.  
  632.  
  633. #pragma option pop /*P_O_Pop*/
  634. #endif  // _PRSHT_H_
  635.  
  636.