1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef __HTMLHELP_H__
7 #define __HTMLHELP_H__
8 
9 #include <_mingw_unicode.h>
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #define HH_DISPLAY_TOPIC 0x0000
16 #define HH_HELP_FINDER 0x0000
17 #define HH_DISPLAY_TOC 0x0001
18 #define HH_DISPLAY_INDEX 0x0002
19 #define HH_DISPLAY_SEARCH 0x0003
20 #define HH_SET_WIN_TYPE 0x0004
21 #define HH_GET_WIN_TYPE 0x0005
22 #define HH_GET_WIN_HANDLE 0x0006
23 #define HH_ENUM_INFO_TYPE 0x0007
24 #define HH_SET_INFO_TYPE 0x0008
25 #define HH_SYNC 0x0009
26 #define HH_RESERVED1 0x000A
27 #define HH_RESERVED2 0x000B
28 #define HH_RESERVED3 0x000C
29 #define HH_KEYWORD_LOOKUP 0x000D
30 #define HH_DISPLAY_TEXT_POPUP 0x000E
31 #define HH_HELP_CONTEXT 0x000F
32 #define HH_TP_HELP_CONTEXTMENU 0x0010
33 #define HH_TP_HELP_WM_HELP 0x0011
34 #define HH_CLOSE_ALL 0x0012
35 #define HH_ALINK_LOOKUP 0x0013
36 #define HH_GET_LAST_ERROR 0x0014
37 #define HH_ENUM_CATEGORY 0x0015
38 #define HH_ENUM_CATEGORY_IT 0x0016
39 #define HH_RESET_IT_FILTER 0x0017
40 #define HH_SET_INCLUSIVE_FILTER 0x0018
41 #define HH_SET_EXCLUSIVE_FILTER 0x0019
42 #define HH_INITIALIZE 0x001C
43 #define HH_UNINITIALIZE 0x001D
44 #define HH_SET_QUERYSERVICE 0x001E
45 #define HH_PRETRANSLATEMESSAGE 0x00fd
46 #define HH_SET_GLOBAL_PROPERTY 0x00fc
47 #define HH_SAFE_DISPLAY_TOPIC 0x0020
48 
49 #define HHWIN_PROP_TAB_AUTOHIDESHOW (1 << 0)
50 #define HHWIN_PROP_ONTOP (1 << 1)
51 #define HHWIN_PROP_NOTITLEBAR (1 << 2)
52 #define HHWIN_PROP_NODEF_STYLES (1 << 3)
53 #define HHWIN_PROP_NODEF_EXSTYLES (1 << 4)
54 #define HHWIN_PROP_TRI_PANE (1 << 5)
55 #define HHWIN_PROP_NOTB_TEXT (1 << 6)
56 #define HHWIN_PROP_POST_QUIT (1 << 7)
57 #define HHWIN_PROP_AUTO_SYNC (1 << 8)
58 #define HHWIN_PROP_TRACKING (1 << 9)
59 #define HHWIN_PROP_TAB_SEARCH (1 << 10)
60 #define HHWIN_PROP_TAB_HISTORY (1 << 11)
61 #define HHWIN_PROP_TAB_FAVORITES (1 << 12)
62 #define HHWIN_PROP_CHANGE_TITLE (1 << 13)
63 #define HHWIN_PROP_NAV_ONLY_WIN (1 << 14)
64 #define HHWIN_PROP_NO_TOOLBAR (1 << 15)
65 #define HHWIN_PROP_MENU (1 << 16)
66 #define HHWIN_PROP_TAB_ADVSEARCH (1 << 17)
67 #define HHWIN_PROP_USER_POS (1 << 18)
68 #define HHWIN_PROP_TAB_CUSTOM1 (1 << 19)
69 #define HHWIN_PROP_TAB_CUSTOM2 (1 << 20)
70 #define HHWIN_PROP_TAB_CUSTOM3 (1 << 21)
71 #define HHWIN_PROP_TAB_CUSTOM4 (1 << 22)
72 #define HHWIN_PROP_TAB_CUSTOM5 (1 << 23)
73 #define HHWIN_PROP_TAB_CUSTOM6 (1 << 24)
74 #define HHWIN_PROP_TAB_CUSTOM7 (1 << 25)
75 #define HHWIN_PROP_TAB_CUSTOM8 (1 << 26)
76 #define HHWIN_PROP_TAB_CUSTOM9 (1 << 27)
77 #define HHWIN_TB_MARGIN (1 << 28)
78 
79 #define HHWIN_PARAM_PROPERTIES (1 << 1)
80 #define HHWIN_PARAM_STYLES (1 << 2)
81 #define HHWIN_PARAM_EXSTYLES (1 << 3)
82 #define HHWIN_PARAM_RECT (1 << 4)
83 #define HHWIN_PARAM_NAV_WIDTH (1 << 5)
84 #define HHWIN_PARAM_SHOWSTATE (1 << 6)
85 #define HHWIN_PARAM_INFOTYPES (1 << 7)
86 #define HHWIN_PARAM_TB_FLAGS (1 << 8)
87 #define HHWIN_PARAM_EXPANSION (1 << 9)
88 #define HHWIN_PARAM_TABPOS (1 << 10)
89 #define HHWIN_PARAM_TABORDER (1 << 11)
90 #define HHWIN_PARAM_HISTORY_COUNT (1 << 12)
91 #define HHWIN_PARAM_CUR_TAB (1 << 13)
92 
93 #define HHWIN_BUTTON_EXPAND (1 << 1)
94 #define HHWIN_BUTTON_BACK (1 << 2)
95 #define HHWIN_BUTTON_FORWARD (1 << 3)
96 #define HHWIN_BUTTON_STOP (1 << 4)
97 #define HHWIN_BUTTON_REFRESH (1 << 5)
98 #define HHWIN_BUTTON_HOME (1 << 6)
99 #define HHWIN_BUTTON_BROWSE_FWD (1 << 7)
100 #define HHWIN_BUTTON_BROWSE_BCK (1 << 8)
101 #define HHWIN_BUTTON_NOTES (1 << 9)
102 #define HHWIN_BUTTON_CONTENTS (1 << 10)
103 #define HHWIN_BUTTON_SYNC (1 << 11)
104 #define HHWIN_BUTTON_OPTIONS (1 << 12)
105 #define HHWIN_BUTTON_PRINT (1 << 13)
106 #define HHWIN_BUTTON_INDEX (1 << 14)
107 #define HHWIN_BUTTON_SEARCH (1 << 15)
108 #define HHWIN_BUTTON_HISTORY (1 << 16)
109 #define HHWIN_BUTTON_FAVORITES (1 << 17)
110 #define HHWIN_BUTTON_JUMP1 (1 << 18)
111 #define HHWIN_BUTTON_JUMP2 (1 << 19)
112 #define HHWIN_BUTTON_ZOOM (1 << 20)
113 #define HHWIN_BUTTON_TOC_NEXT (1 << 21)
114 #define HHWIN_BUTTON_TOC_PREV (1 << 22)
115 
116 #define HHWIN_DEF_BUTTONS (HHWIN_BUTTON_EXPAND | HHWIN_BUTTON_BACK | HHWIN_BUTTON_OPTIONS | HHWIN_BUTTON_PRINT)
117 
118 #define IDTB_EXPAND 200
119 #define IDTB_CONTRACT 201
120 #define IDTB_STOP 202
121 #define IDTB_REFRESH 203
122 #define IDTB_BACK 204
123 #define IDTB_HOME 205
124 #define IDTB_SYNC 206
125 #define IDTB_PRINT 207
126 #define IDTB_OPTIONS 208
127 #define IDTB_FORWARD 209
128 #define IDTB_NOTES 210
129 #define IDTB_BROWSE_FWD 211
130 #define IDTB_BROWSE_BACK 212
131 #define IDTB_CONTENTS 213
132 #define IDTB_INDEX 214
133 #define IDTB_SEARCH 215
134 #define IDTB_HISTORY 216
135 #define IDTB_FAVORITES 217
136 #define IDTB_JUMP1 218
137 #define IDTB_JUMP2 219
138 #define IDTB_CUSTOMIZE 221
139 #define IDTB_ZOOM 222
140 #define IDTB_TOC_NEXT 223
141 #define IDTB_TOC_PREV 224
142 
143 #define HHN_FIRST (0U-860U)
144 #define HHN_LAST (0U-879U)
145 
146 #define HHN_NAVCOMPLETE (HHN_FIRST-0)
147 #define HHN_TRACK (HHN_FIRST-1)
148 #define HHN_WINDOW_CREATE (HHN_FIRST-2)
149 
150   typedef struct tagHHN_NOTIFY {
151     NMHDR hdr;
152     PCSTR pszUrl;
153   } HHN_NOTIFY;
154 
155   typedef struct tagHH_POPUP {
156     int cbStruct;
157     HINSTANCE hinst;
158     UINT idString;
159     LPCTSTR pszText;
160     POINT pt;
161     COLORREF clrForeground;
162     COLORREF clrBackground;
163     RECT rcMargins;
164     LPCTSTR pszFont;
165   } HH_POPUP;
166 
167   typedef struct tagHH_AKLINK {
168     int cbStruct;
169     WINBOOL fReserved;
170     LPCTSTR pszKeywords;
171     LPCTSTR pszUrl;
172     LPCTSTR pszMsgText;
173     LPCTSTR pszMsgTitle;
174     LPCTSTR pszWindow;
175     WINBOOL fIndexOnFail;
176   } HH_AKLINK;
177 
178   enum {
179     HHWIN_NAVTYPE_TOC,HHWIN_NAVTYPE_INDEX,HHWIN_NAVTYPE_SEARCH,HHWIN_NAVTYPE_FAVORITES,HHWIN_NAVTYPE_HISTORY,HHWIN_NAVTYPE_AUTHOR,
180     HHWIN_NAVTYPE_CUSTOM_FIRST = 11
181   };
182 
183   enum {
184     IT_INCLUSIVE,IT_EXCLUSIVE,IT_HIDDEN
185   };
186 
187   typedef struct tagHH_ENUM_IT {
188     int cbStruct;
189     int iType;
190     LPCSTR pszCatName;
191     LPCSTR pszITName;
192     LPCSTR pszITDescription;
193   } HH_ENUM_IT,*PHH_ENUM_IT;
194 
195   typedef struct tagHH_ENUM_CAT {
196     int cbStruct;
197     LPCSTR pszCatName;
198     LPCSTR pszCatDescription;
199   } HH_ENUM_CAT,*PHH_ENUM_CAT;
200 
201   typedef struct tagHH_SET_INFOTYPE {
202     int cbStruct;
203     LPCSTR pszCatName;
204     LPCSTR pszInfoTypeName;
205   } HH_SET_INFOTYPE,*PHH_SET_INFOTYPE;
206 
207   typedef DWORD HH_INFOTYPE;
208   typedef HH_INFOTYPE *PHH_INFOTYPE;
209 
210   enum {
211     HHWIN_NAVTAB_TOP,HHWIN_NAVTAB_LEFT,HHWIN_NAVTAB_BOTTOM
212   };
213 
214 #define HH_MAX_TABS 19
215 
216   enum {
217     HH_TAB_CONTENTS,HH_TAB_INDEX,HH_TAB_SEARCH,HH_TAB_FAVORITES,HH_TAB_HISTORY,HH_TAB_AUTHOR,HH_TAB_CUSTOM_FIRST = 11,
218     HH_TAB_CUSTOM_LAST = HH_MAX_TABS
219   };
220 
221 #define HH_MAX_TABS_CUSTOM (HH_TAB_CUSTOM_LAST - HH_TAB_CUSTOM_FIRST + 1)
222 
223 #define HH_FTS_DEFAULT_PROXIMITY (-1)
224 
225   typedef struct tagHH_FTS_QUERY {
226     int cbStruct;
227     WINBOOL fUniCodeStrings;
228     LPCTSTR pszSearchQuery;
229     LONG iProximity;
230     WINBOOL fStemmedSearch;
231     WINBOOL fTitleOnly;
232     WINBOOL fExecute;
233     LPCTSTR pszWindow;
234   } HH_FTS_QUERY;
235 
236   typedef struct tagHH_WINTYPE {
237     int cbStruct;
238     WINBOOL fUniCodeStrings;
239     LPCTSTR pszType;
240     DWORD fsValidMembers;
241     DWORD fsWinProperties;
242     LPCTSTR pszCaption;
243     DWORD dwStyles;
244     DWORD dwExStyles;
245     RECT rcWindowPos;
246     int nShowState;
247     HWND hwndHelp;
248     HWND hwndCaller;
249     HH_INFOTYPE *paInfoTypes;
250     HWND hwndToolBar;
251     HWND hwndNavigation;
252     HWND hwndHTML;
253     int iNavWidth;
254     RECT rcHTML;
255     LPCTSTR pszToc;
256     LPCTSTR pszIndex;
257     LPCTSTR pszFile;
258     LPCTSTR pszHome;
259     DWORD fsToolBarFlags;
260     WINBOOL fNotExpanded;
261     int curNavType;
262     int tabpos;
263     int idNotify;
264     BYTE tabOrder[HH_MAX_TABS + 1];
265     int cHistory;
266     LPCTSTR pszJump1;
267     LPCTSTR pszJump2;
268     LPCTSTR pszUrlJump1;
269     LPCTSTR pszUrlJump2;
270     RECT rcMinSize;
271     int cbInfoTypes;
272     LPCTSTR pszCustomTabs;
273   } HH_WINTYPE,*PHH_WINTYPE;
274 
275   enum {
276     HHACT_TAB_CONTENTS,HHACT_TAB_INDEX,HHACT_TAB_SEARCH,HHACT_TAB_HISTORY,HHACT_TAB_FAVORITES,HHACT_EXPAND,HHACT_CONTRACT,
277     HHACT_BACK,HHACT_FORWARD,HHACT_STOP,HHACT_REFRESH,HHACT_HOME,HHACT_SYNC,HHACT_OPTIONS,HHACT_PRINT,HHACT_HIGHLIGHT,HHACT_CUSTOMIZE,
278     HHACT_JUMP1,HHACT_JUMP2,HHACT_ZOOM,HHACT_TOC_NEXT,HHACT_TOC_PREV,HHACT_NOTES,HHACT_LAST_ENUM
279   };
280 
281   typedef struct tagHHNTRACK {
282     NMHDR hdr;
283     PCSTR pszCurUrl;
284     int idAction;
285     HH_WINTYPE *phhWinType;
286   } HHNTRACK;
287 
288 #define HtmlHelp __MINGW_NAME_AW(HtmlHelp)
289 
290   HWND WINAPI HtmlHelpA(HWND hwndCaller,LPCSTR pszFile,UINT uCommand,DWORD_PTR dwData);
291   HWND WINAPI HtmlHelpW(HWND hwndCaller,LPCWSTR pszFile,UINT uCommand,DWORD_PTR dwData);
292 
293 #define ATOM_HTMLHELP_API_ANSI (LPTSTR)((DWORD)((WORD)(14)))
294 #define ATOM_HTMLHELP_API_UNICODE (LPTSTR)((DWORD)((WORD)(15)))
295 
296   typedef enum tagHH_GPROPID {
297     HH_GPROPID_SINGLETHREAD=1,HH_GPROPID_TOOLBAR_MARGIN=2,HH_GPROPID_UI_LANGUAGE=3,HH_GPROPID_CURRENT_SUBSET=4,HH_GPROPID_CONTENT_LANGUAGE=5
298   } HH_GPROPID;
299 
300 #ifdef __oaidl_h__
301 #pragma pack(push,8)
302 
303   typedef struct tagHH_GLOBAL_PROPERTY {
304     HH_GPROPID id;
305     VARIANT var;
306   } HH_GLOBAL_PROPERTY;
307 
308 #pragma pack(pop)
309 #endif
310 
311 #ifdef __cplusplus
312 }
313 #endif
314 #endif
315