home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / PRSHT.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  15.7 KB  |  522 lines

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