home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / prsht.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-09  |  15.9 KB  |  533 lines

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