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

  1. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  2. /****************************************************************************
  3. *                                                                           *
  4. * HtmlHelp.h                                                                *
  5. *                                                                           *
  6. * Copyright (c) 1996-1997, Microsoft Corp. All rights reserved.             *
  7. *                                                                           *
  8. ****************************************************************************/
  9.  
  10. #if _MSC_VER > 1000
  11. #pragma once
  12. #endif
  13.  
  14. #ifndef __HTMLHELP_H__
  15. #define __HTMLHELP_H__
  16.  
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif  // __cplusplus
  20.  
  21. // Defines for Win64
  22. #ifndef _WIN64
  23. #define DWORD_PTR DWORD
  24. #endif
  25.  
  26. // Commands to pass to HtmlHelp()
  27.  
  28. #define HH_DISPLAY_TOPIC        0x0000
  29. #define HH_HELP_FINDER          0x0000  // WinHelp equivalent
  30. #define HH_DISPLAY_TOC          0x0001  
  31. #define HH_DISPLAY_INDEX        0x0002  
  32. #define HH_DISPLAY_SEARCH       0x0003  
  33. #define HH_SET_WIN_TYPE         0x0004
  34. #define HH_GET_WIN_TYPE         0x0005
  35. #define HH_GET_WIN_HANDLE       0x0006
  36. #define HH_ENUM_INFO_TYPE       0x0007  // Get Info type name, call repeatedly to enumerate, -1 at end
  37. #define HH_SET_INFO_TYPE        0x0008  // Add Info type to filter.
  38. #define HH_SYNC                 0x0009
  39. #define HH_RESERVED1            0x000A
  40. #define HH_RESERVED2            0x000B
  41. #define HH_RESERVED3            0x000C
  42. #define HH_KEYWORD_LOOKUP       0x000D
  43. #define HH_DISPLAY_TEXT_POPUP   0x000E  // display string resource id or text in a popup window
  44. #define HH_HELP_CONTEXT         0x000F  // display mapped numeric value in dwData
  45. #define HH_TP_HELP_CONTEXTMENU  0x0010  // text popup help, same as WinHelp HELP_CONTEXTMENU
  46. #define HH_TP_HELP_WM_HELP      0x0011  // text popup help, same as WinHelp HELP_WM_HELP
  47. #define HH_CLOSE_ALL            0x0012  // close all windows opened directly or indirectly by the caller
  48. #define HH_ALINK_LOOKUP         0x0013  // ALink version of HH_KEYWORD_LOOKUP
  49. #define HH_GET_LAST_ERROR       0x0014  // not currently implemented // See HHERROR.h
  50. #define HH_ENUM_CATEGORY        0x0015    // Get category name, call repeatedly to enumerate, -1 at end
  51. #define HH_ENUM_CATEGORY_IT     0x0016  // Get category info type members, call repeatedly to enumerate, -1 at end
  52. #define HH_RESET_IT_FILTER      0x0017  // Clear the info type filter of all info types.
  53. #define HH_SET_INCLUSIVE_FILTER 0x0018  // set inclusive filtering method for untyped topics to be included in display
  54. #define HH_SET_EXCLUSIVE_FILTER 0x0019  // set exclusive filtering method for untyped topics to be excluded from display
  55. #define HH_INITIALIZE            0x001C  // Initializes the help system.
  56. #define HH_UNINITIALIZE          0x001D  // Uninitializes the help system.
  57. #define HH_PRETRANSLATEMESSAGE  0x00fd  // Pumps messages. (NULL, NULL, MSG*). 
  58. #define HH_SET_GLOBAL_PROPERTY  0x00fc  // Set a global property. (NULL, NULL, HH_GPROP)
  59.  
  60. #define HHWIN_PROP_TAB_AUTOHIDESHOW (1 << 0)    // Automatically hide/show tri-pane window
  61. #define HHWIN_PROP_ONTOP            (1 << 1)    // Top-most window
  62. #define HHWIN_PROP_NOTITLEBAR       (1 << 2)    // no title bar
  63. #define HHWIN_PROP_NODEF_STYLES     (1 << 3)    // no default window styles (only HH_WINTYPE.dwStyles)
  64. #define HHWIN_PROP_NODEF_EXSTYLES   (1 << 4)    // no default extended window styles (only HH_WINTYPE.dwExStyles)
  65. #define HHWIN_PROP_TRI_PANE         (1 << 5)    // use a tri-pane window
  66. #define HHWIN_PROP_NOTB_TEXT        (1 << 6)    // no text on toolbar buttons
  67. #define HHWIN_PROP_POST_QUIT        (1 << 7)    // post WM_QUIT message when window closes
  68. #define HHWIN_PROP_AUTO_SYNC        (1 << 8)    // automatically ssync contents and index
  69. #define HHWIN_PROP_TRACKING         (1 << 9)    // send tracking notification messages
  70. #define HHWIN_PROP_TAB_SEARCH       (1 << 10)   // include search tab in navigation pane
  71. #define HHWIN_PROP_TAB_HISTORY      (1 << 11)   // include history tab in navigation pane
  72. #define HHWIN_PROP_TAB_FAVORITES    (1 << 12)   // include favorites tab in navigation pane
  73. #define HHWIN_PROP_CHANGE_TITLE     (1 << 13)   // Put current HTML title in title bar
  74. #define HHWIN_PROP_NAV_ONLY_WIN     (1 << 14)   // Only display the navigation window
  75. #define HHWIN_PROP_NO_TOOLBAR       (1 << 15)   // Don't display a toolbar
  76. #define HHWIN_PROP_MENU             (1 << 16)   // Menu
  77. #define HHWIN_PROP_TAB_ADVSEARCH    (1 << 17)   // Advanced FTS UI.
  78. #define HHWIN_PROP_USER_POS         (1 << 18)   // After initial creation, user controls window size/position
  79. #define HHWIN_PROP_TAB_CUSTOM1      (1 << 19)   // Use custom tab #1
  80. #define HHWIN_PROP_TAB_CUSTOM2      (1 << 20)   // Use custom tab #2
  81. #define HHWIN_PROP_TAB_CUSTOM3      (1 << 21)   // Use custom tab #3
  82. #define HHWIN_PROP_TAB_CUSTOM4      (1 << 22)   // Use custom tab #4
  83. #define HHWIN_PROP_TAB_CUSTOM5      (1 << 23)   // Use custom tab #5
  84. #define HHWIN_PROP_TAB_CUSTOM6      (1 << 24)   // Use custom tab #6
  85. #define HHWIN_PROP_TAB_CUSTOM7      (1 << 25)   // Use custom tab #7
  86. #define HHWIN_PROP_TAB_CUSTOM8      (1 << 26)   // Use custom tab #8
  87. #define HHWIN_PROP_TAB_CUSTOM9      (1 << 27)   // Use custom tab #9
  88. #define HHWIN_TB_MARGIN             (1 << 28)   // the window type has a margin
  89.  
  90. #define HHWIN_PARAM_PROPERTIES      (1 << 1)    // valid fsWinProperties
  91. #define HHWIN_PARAM_STYLES          (1 << 2)    // valid dwStyles
  92. #define HHWIN_PARAM_EXSTYLES        (1 << 3)    // valid dwExStyles
  93. #define HHWIN_PARAM_RECT            (1 << 4)    // valid rcWindowPos
  94. #define HHWIN_PARAM_NAV_WIDTH       (1 << 5)    // valid iNavWidth
  95. #define HHWIN_PARAM_SHOWSTATE       (1 << 6)    // valid nShowState
  96. #define HHWIN_PARAM_INFOTYPES       (1 << 7)    // valid apInfoTypes
  97. #define HHWIN_PARAM_TB_FLAGS        (1 << 8)    // valid fsToolBarFlags
  98. #define HHWIN_PARAM_EXPANSION       (1 << 9)    // valid fNotExpanded
  99. #define HHWIN_PARAM_TABPOS          (1 << 10)   // valid tabpos
  100. #define HHWIN_PARAM_TABORDER        (1 << 11)   // valid taborder
  101. #define HHWIN_PARAM_HISTORY_COUNT   (1 << 12)   // valid cHistory
  102. #define HHWIN_PARAM_CUR_TAB         (1 << 13)   // valid curNavType
  103.  
  104. #define HHWIN_BUTTON_EXPAND         (1 << 1)    // Expand/contract button
  105. #define HHWIN_BUTTON_BACK           (1 << 2)    // Back button
  106. #define HHWIN_BUTTON_FORWARD        (1 << 3)    // Forward button
  107. #define HHWIN_BUTTON_STOP           (1 << 4)    // Stop button
  108. #define HHWIN_BUTTON_REFRESH        (1 << 5)    // Refresh button
  109. #define HHWIN_BUTTON_HOME           (1 << 6)    // Home button
  110. #define HHWIN_BUTTON_BROWSE_FWD     (1 << 7)    // not implemented
  111. #define HHWIN_BUTTON_BROWSE_BCK     (1 << 8)    // not implemented
  112. #define HHWIN_BUTTON_NOTES          (1 << 9)    // not implemented
  113. #define HHWIN_BUTTON_CONTENTS       (1 << 10)   // not implemented
  114. #define HHWIN_BUTTON_SYNC           (1 << 11)   // Sync button
  115. #define HHWIN_BUTTON_OPTIONS        (1 << 12)   // Options button
  116. #define HHWIN_BUTTON_PRINT          (1 << 13)   // Print button
  117. #define HHWIN_BUTTON_INDEX          (1 << 14)   // not implemented
  118. #define HHWIN_BUTTON_SEARCH         (1 << 15)   // not implemented
  119. #define HHWIN_BUTTON_HISTORY        (1 << 16)   // not implemented
  120. #define HHWIN_BUTTON_FAVORITES      (1 << 17)   // not implemented
  121. #define HHWIN_BUTTON_JUMP1          (1 << 18)
  122. #define HHWIN_BUTTON_JUMP2          (1 << 19)
  123. #define HHWIN_BUTTON_ZOOM           (1 << 20)
  124. #define HHWIN_BUTTON_TOC_NEXT       (1 << 21)
  125. #define HHWIN_BUTTON_TOC_PREV       (1 << 22)
  126.  
  127. #define HHWIN_DEF_BUTTONS           \
  128.             (HHWIN_BUTTON_EXPAND |  \
  129.              HHWIN_BUTTON_BACK |    \
  130.              HHWIN_BUTTON_OPTIONS | \
  131.              HHWIN_BUTTON_PRINT)
  132.  
  133. // Button IDs
  134.  
  135. #define IDTB_EXPAND             200
  136. #define IDTB_CONTRACT           201
  137. #define IDTB_STOP               202
  138. #define IDTB_REFRESH            203
  139. #define IDTB_BACK               204
  140. #define IDTB_HOME               205
  141. #define IDTB_SYNC               206
  142. #define IDTB_PRINT              207
  143. #define IDTB_OPTIONS            208
  144. #define IDTB_FORWARD            209
  145. #define IDTB_NOTES              210 // not implemented
  146. #define IDTB_BROWSE_FWD         211
  147. #define IDTB_BROWSE_BACK        212
  148. #define IDTB_CONTENTS           213 // not implemented
  149. #define IDTB_INDEX              214 // not implemented
  150. #define IDTB_SEARCH             215 // not implemented
  151. #define IDTB_HISTORY            216 // not implemented
  152. #define IDTB_FAVORITES          217 // not implemented
  153. #define IDTB_JUMP1              218
  154. #define IDTB_JUMP2              219
  155. #define IDTB_CUSTOMIZE          221
  156. #define IDTB_ZOOM               222
  157. #define IDTB_TOC_NEXT           223
  158. #define IDTB_TOC_PREV           224
  159.  
  160. // Notification codes
  161.  
  162. #define HHN_FIRST       (0U-860U)
  163. #define HHN_LAST        (0U-879U)
  164.  
  165. #define HHN_NAVCOMPLETE   (HHN_FIRST-0)
  166. #define HHN_TRACK         (HHN_FIRST-1)
  167. #define HHN_WINDOW_CREATE (HHN_FIRST-2)
  168.  
  169. typedef struct tagHHN_NOTIFY
  170. {
  171.     NMHDR   hdr;
  172.     PCSTR   pszUrl; // Multi-byte, null-terminated string
  173. } HHN_NOTIFY;
  174.  
  175. typedef struct tagHH_POPUP
  176. {
  177.     int       cbStruct;      // sizeof this structure
  178.     HINSTANCE hinst;         // instance handle for string resource
  179.     UINT      idString;      // string resource id, or text id if pszFile is specified in HtmlHelp call
  180.     LPCTSTR   pszText;       // used if idString is zero
  181.     POINT     pt;            // top center of popup window
  182.     COLORREF  clrForeground; // use -1 for default
  183.     COLORREF  clrBackground; // use -1 for default
  184.     RECT      rcMargins;     // amount of space between edges of window and text, -1 for each member to ignore
  185.     LPCTSTR   pszFont;       // facename, point size, char set, BOLD ITALIC UNDERLINE
  186. } HH_POPUP;
  187.  
  188. typedef struct tagHH_AKLINK
  189. {
  190.     int       cbStruct;     // sizeof this structure
  191.     BOOL      fReserved;    // must be FALSE (really!)
  192.     LPCTSTR   pszKeywords;  // semi-colon separated keywords
  193.     LPCTSTR   pszUrl;       // URL to jump to if no keywords found (may be NULL)
  194.     LPCTSTR   pszMsgText;   // Message text to display in MessageBox if pszUrl is NULL and no keyword match
  195.     LPCTSTR   pszMsgTitle;  // Message text to display in MessageBox if pszUrl is NULL and no keyword match
  196.     LPCTSTR   pszWindow;    // Window to display URL in
  197.     BOOL      fIndexOnFail; // Displays index if keyword lookup fails.
  198. } HH_AKLINK;
  199.  
  200. enum {
  201.     HHWIN_NAVTYPE_TOC,
  202.     HHWIN_NAVTYPE_INDEX,
  203.     HHWIN_NAVTYPE_SEARCH,
  204.     HHWIN_NAVTYPE_FAVORITES,
  205.     HHWIN_NAVTYPE_HISTORY,   // not implemented
  206.     HHWIN_NAVTYPE_AUTHOR,
  207.     HHWIN_NAVTYPE_CUSTOM_FIRST = 11
  208. };
  209.  
  210. enum {
  211.     IT_INCLUSIVE,
  212.     IT_EXCLUSIVE,
  213.     IT_HIDDEN,
  214. };
  215.  
  216. typedef struct tagHH_ENUM_IT
  217. {
  218.     int       cbStruct;          // size of this structure
  219.     int       iType;             // the type of the information type ie. Inclusive, Exclusive, or Hidden
  220.     LPCSTR    pszCatName;        // Set to the name of the Category to enumerate the info types in a category; else NULL
  221.     LPCSTR    pszITName;         // volitile pointer to the name of the infotype. Allocated by call. Caller responsible for freeing
  222.     LPCSTR    pszITDescription;  // volitile pointer to the description of the infotype.
  223. } HH_ENUM_IT, *PHH_ENUM_IT;
  224.  
  225. typedef struct tagHH_ENUM_CAT
  226. {
  227.     int       cbStruct;          // size of this structure
  228.     LPCSTR    pszCatName;        // volitile pointer to the category name
  229.     LPCSTR    pszCatDescription; // volitile pointer to the category description
  230. } HH_ENUM_CAT, *PHH_ENUM_CAT;
  231.  
  232. typedef struct tagHH_SET_INFOTYPE
  233. {
  234.     int       cbStruct;          // the size of this structure
  235.     LPCSTR    pszCatName;        // the name of the category, if any, the InfoType is a member of.
  236.     LPCSTR    pszInfoTypeName;   // the name of the info type to add to the filter
  237. } HH_SET_INFOTYPE, *PHH_SET_INFOTYPE;
  238.  
  239. typedef DWORD HH_INFOTYPE;
  240. typedef HH_INFOTYPE* PHH_INFOTYPE;
  241.  
  242. enum {
  243.     HHWIN_NAVTAB_TOP,
  244.     HHWIN_NAVTAB_LEFT,
  245.     HHWIN_NAVTAB_BOTTOM,
  246. };
  247.  
  248. #define HH_MAX_TABS 19  // maximum number of tabs
  249.  
  250. enum {
  251.     HH_TAB_CONTENTS,
  252.     HH_TAB_INDEX,
  253.     HH_TAB_SEARCH,
  254.     HH_TAB_FAVORITES,
  255.     HH_TAB_HISTORY,
  256.     HH_TAB_AUTHOR,
  257.  
  258.     HH_TAB_CUSTOM_FIRST = 11,
  259.     HH_TAB_CUSTOM_LAST = HH_MAX_TABS
  260. };
  261.  
  262. #define HH_MAX_TABS_CUSTOM (HH_TAB_CUSTOM_LAST - HH_TAB_CUSTOM_FIRST + 1)
  263.  
  264. // HH_DISPLAY_SEARCH Command Related Structures and Constants
  265.  
  266. #define HH_FTS_DEFAULT_PROXIMITY (-1)
  267.  
  268. typedef struct tagHH_FTS_QUERY
  269. {
  270.     int cbStruct;            // Sizeof structure in bytes.
  271.     BOOL fUniCodeStrings;    // TRUE if all strings are unicode.
  272.     LPCTSTR pszSearchQuery;  // String containing the search query.
  273.     LONG iProximity;         // Word proximity.
  274.     BOOL fStemmedSearch;     // TRUE for StemmedSearch only.
  275.     BOOL fTitleOnly;         // TRUE for Title search only.
  276.     BOOL fExecute;           // TRUE to initiate the search.
  277.     LPCTSTR pszWindow;       // Window to display in
  278. } HH_FTS_QUERY;
  279.  
  280. // HH_WINTYPE Structure
  281.  
  282. typedef struct tagHH_WINTYPE {
  283.     int     cbStruct;        // IN: size of this structure including all Information Types
  284.     BOOL    fUniCodeStrings; // IN/OUT: TRUE if all strings are in UNICODE
  285.     LPCTSTR pszType;         // IN/OUT: Name of a type of window
  286.     DWORD   fsValidMembers;  // IN: Bit flag of valid members (HHWIN_PARAM_)
  287.     DWORD   fsWinProperties; // IN/OUT: Properties/attributes of the window (HHWIN_)
  288.  
  289.     LPCTSTR pszCaption;      // IN/OUT: Window title
  290.     DWORD   dwStyles;        // IN/OUT: Window styles
  291.     DWORD   dwExStyles;      // IN/OUT: Extended Window styles
  292.     RECT    rcWindowPos;     // IN: Starting position, OUT: current position
  293.     int     nShowState;      // IN: show state (e.g., SW_SHOW)
  294.  
  295.     HWND  hwndHelp;          // OUT: window handle
  296.     HWND  hwndCaller;        // OUT: who called this window
  297.  
  298.     HH_INFOTYPE* paInfoTypes;  // IN: Pointer to an array of Information Types
  299.  
  300.     // The following members are only valid if HHWIN_PROP_TRI_PANE is set
  301.  
  302.     HWND  hwndToolBar;      // OUT: toolbar window in tri-pane window
  303.     HWND  hwndNavigation;   // OUT: navigation window in tri-pane window
  304.     HWND  hwndHTML;         // OUT: window displaying HTML in tri-pane window
  305.     int   iNavWidth;        // IN/OUT: width of navigation window
  306.     RECT  rcHTML;           // OUT: HTML window coordinates
  307.  
  308.     LPCTSTR pszToc;         // IN: Location of the table of contents file
  309.     LPCTSTR pszIndex;       // IN: Location of the index file
  310.     LPCTSTR pszFile;        // IN: Default location of the html file
  311.     LPCTSTR pszHome;        // IN/OUT: html file to display when Home button is clicked
  312.     DWORD   fsToolBarFlags; // IN: flags controling the appearance of the toolbar
  313.     BOOL    fNotExpanded;   // IN: TRUE/FALSE to contract or expand, OUT: current state
  314.     int     curNavType;     // IN/OUT: UI to display in the navigational pane
  315.     int     tabpos;         // IN/OUT: HHWIN_NAVTAB_TOP, HHWIN_NAVTAB_LEFT, or HHWIN_NAVTAB_BOTTOM
  316.     int     idNotify;       // IN: ID to use for WM_NOTIFY messages
  317.     BYTE    tabOrder[HH_MAX_TABS + 1];    // IN/OUT: tab order: Contents, Index, Search, History, Favorites, Reserved 1-5, Custom tabs
  318.     int     cHistory;       // IN/OUT: number of history items to keep (default is 30)
  319.     LPCTSTR pszJump1;       // Text for HHWIN_BUTTON_JUMP1
  320.     LPCTSTR pszJump2;       // Text for HHWIN_BUTTON_JUMP2
  321.     LPCTSTR pszUrlJump1;    // URL for HHWIN_BUTTON_JUMP1
  322.     LPCTSTR pszUrlJump2;    // URL for HHWIN_BUTTON_JUMP2
  323.     RECT    rcMinSize;      // Minimum size for window (ignored in version 1)
  324.     int     cbInfoTypes;    // size of paInfoTypes;
  325.     LPCTSTR pszCustomTabs;  // multiple zero-terminated strings
  326. } HH_WINTYPE, *PHH_WINTYPE;
  327.  
  328. enum {
  329.     HHACT_TAB_CONTENTS,
  330.     HHACT_TAB_INDEX,
  331.     HHACT_TAB_SEARCH,
  332.     HHACT_TAB_HISTORY,
  333.     HHACT_TAB_FAVORITES,
  334.  
  335.     HHACT_EXPAND,
  336.     HHACT_CONTRACT,
  337.     HHACT_BACK,
  338.     HHACT_FORWARD,
  339.     HHACT_STOP,
  340.     HHACT_REFRESH,
  341.     HHACT_HOME,
  342.     HHACT_SYNC,
  343.     HHACT_OPTIONS,
  344.     HHACT_PRINT,
  345.     HHACT_HIGHLIGHT,
  346.     HHACT_CUSTOMIZE,
  347.     HHACT_JUMP1,
  348.     HHACT_JUMP2,
  349.     HHACT_ZOOM,
  350.     HHACT_TOC_NEXT,
  351.     HHACT_TOC_PREV,
  352.     HHACT_NOTES,
  353.  
  354.     HHACT_LAST_ENUM,
  355. };
  356.  
  357. typedef struct tagHHNTRACK
  358. {
  359.     NMHDR   hdr;
  360.     PCSTR   pszCurUrl;      // Multi-byte, null-terminated string
  361.     int     idAction;       // HHACT_ value
  362.     HH_WINTYPE* phhWinType; // Current window type structure
  363. } HHNTRACK;
  364.  
  365. HWND
  366. WINAPI
  367. HtmlHelpA(
  368.     HWND hwndCaller,
  369.     LPCSTR pszFile,
  370.     UINT uCommand,
  371.     DWORD_PTR dwData
  372.     );
  373.  
  374. HWND
  375. WINAPI
  376. HtmlHelpW(
  377.     HWND hwndCaller,
  378.     LPCWSTR pszFile,
  379.     UINT uCommand,
  380.     DWORD_PTR dwData
  381.     );
  382. #ifdef UNICODE
  383. #define HtmlHelp  HtmlHelpW
  384. #else
  385. #define HtmlHelp  HtmlHelpA
  386. #endif // !UNICODE
  387.  
  388. // Use the following for GetProcAddress to load from hhctrl.ocx
  389.  
  390. #define ATOM_HTMLHELP_API_ANSI    (LPTSTR)((DWORD)((WORD)(14)))
  391. #define ATOM_HTMLHELP_API_UNICODE (LPTSTR)((DWORD)((WORD)(15)))
  392.  
  393. ///////////////////////////////////////////////////////////////////////////////
  394. //
  395. // Global Control Properties. 
  396. //
  397. typedef enum tagHH_GPROPID
  398. {
  399.     HH_GPROPID_SINGLETHREAD=1,      // VARIANT_BOOL: True for single thread
  400.     HH_GPROPID_TOOLBAR_MARGIN=2,    // long: Provides a left/right margin around the toolbar.
  401.     HH_GPROPID_UI_LANGUAGE=3,       // long: LangId of the UI.
  402.     HH_GPROPID_CURRENT_SUBSET=4,    // BSTR: Current subset.
  403.     HH_GPROPID_CONTENT_LANGUAGE=5   // long: LandId for desired content.
  404. } HH_GPROPID;
  405.  
  406. ///////////////////////////////////////////////////////////////////////////////
  407. //
  408. // Global Property structure
  409. //
  410. #ifdef __oaidl_h__
  411.  
  412. #pragma pack(push, 8)
  413.  
  414. typedef struct tagHH_GLOBAL_PROPERTY
  415. {
  416.     HH_GPROPID  id;
  417.     VARIANT     var;
  418. } HH_GLOBAL_PROPERTY ;
  419.  
  420. #pragma pack(pop)
  421. #endif
  422.  
  423. #ifdef __cplusplus
  424. }
  425. #endif // __cplusplus
  426.  
  427. #endif // __HTMLHELP_H__
  428. #pragma option pop /*P_O_Pop*/
  429.