dwrite: Fix invalid read when building zero length text layout (Valgrind).
[wine.git] / include / htmlhelp.h
blob02517656b14700d3086d40d08ae7eb41386db859
1 /*
2 * Copyright 2004 Jacek Caban
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __HTMLHELP_H__
20 #define __HTMLHELP_H__
22 #define HH_DISPLAY_TOPIC 0x00
23 #define HH_HELP_FINDER 0x00
24 #define HH_DISPLAY_TOC 0x01
25 #define HH_DISPLAY_INDEX 0x02
26 #define HH_DISPLAY_SEARCH 0x03
27 #define HH_SET_WIN_TYPE 0x04
28 #define HH_GET_WIN_TYPE 0x05
29 #define HH_GET_WIN_HANDLE 0x06
30 #define HH_ENUM_INFO_TYPE 0x07
31 #define HH_SET_INFO_TYPE 0x08
32 #define HH_SYNC 0x09
33 #define HH_RESERVED1 0x0A
34 #define HH_RESERVED2 0x0B
35 #define HH_RESERVED3 0x0C
36 #define HH_KEYWORD_LOOKUP 0x0D
37 #define HH_DISPLAY_TEXT_POPUP 0x0E
38 #define HH_HELP_CONTEXT 0x0F
39 #define HH_TP_HELP_CONTEXTMENU 0x10
40 #define HH_TP_HELP_WM_HELP 0x11
41 #define HH_CLOSE_ALL 0x12
42 #define HH_ALINK_LOOKUP 0x13
43 #define HH_GET_LAST_ERROR 0x14
44 #define HH_ENUM_CATEGORY 0x15
45 #define HH_ENUM_CATEGORY_IT 0x16
46 #define HH_RESET_IT_FILTER 0x17
47 #define HH_SET_INCLUSIVE_FILTER 0x18
48 #define HH_SET_EXCLUSIVE_FILTER 0x19
49 #define HH_INITIALIZE 0x1C
50 #define HH_UNINITIALIZE 0x1D
51 #define HH_SAFE_DISPLAY_TOPIC 0x20
52 #define HH_PRETRANSLATEMESSAGE 0xFD
53 #define HH_SET_GLOBAL_PROPERTY 0xFC
55 #define HHWIN_PROP_TAB_AUTOHIDESHOW 0x00000001
56 #define HHWIN_PROP_ONTOP 0x00000002
57 #define HHWIN_PROP_NOTITLEBAR 0x00000004
58 #define HHWIN_PROP_NODEF_STYLES 0x00000008
59 #define HHWIN_PROP_NODEF_EXSTYLES 0x00000010
60 #define HHWIN_PROP_TRI_PANE 0x00000020
61 #define HHWIN_PROP_NOTB_TEXT 0x00000040
62 #define HHWIN_PROP_POST_QUIT 0x00000080
63 #define HHWIN_PROP_AUTO_SYNC 0x00000100
64 #define HHWIN_PROP_TRACKING 0x00000200
65 #define HHWIN_PROP_TAB_SEARCH 0x00000400
66 #define HHWIN_PROP_TAB_HISTORY 0x00000800
67 #define HHWIN_PROP_TAB_FAVORITES 0x00001000
68 #define HHWIN_PROP_CHANGE_TITLE 0x00002000
69 #define HHWIN_PROP_NAV_ONLY_WIN 0x00004000
70 #define HHWIN_PROP_NO_TOOLBAR 0x00008000
71 #define HHWIN_PROP_MENU 0x00010000
72 #define HHWIN_PROP_TAB_ADVSEARCH 0x00020000
73 #define HHWIN_PROP_USER_POS 0x00040000
74 #define HHWIN_PROP_TAB_CUSTOM1 0x00080000
75 #define HHWIN_PROP_TAB_CUSTOM2 0x00100000
76 #define HHWIN_PROP_TAB_CUSTOM3 0x00200000
77 #define HHWIN_PROP_TAB_CUSTOM4 0x00400000
78 #define HHWIN_PROP_TAB_CUSTOM5 0x00800000
79 #define HHWIN_PROP_TAB_CUSTOM6 0x01000000
80 #define HHWIN_PROP_TAB_CUSTOM7 0x02000000
81 #define HHWIN_PROP_TAB_CUSTOM8 0x04000000
82 #define HHWIN_PROP_TAB_CUSTOM9 0x08000000
83 #define HHWIN_TB_MARGIN 0x10000000
85 #define HHWIN_PARAM_PROPERTIES 0x00000002
86 #define HHWIN_PARAM_STYLES 0x00000004
87 #define HHWIN_PARAM_EXSTYLES 0x00000008
88 #define HHWIN_PARAM_RECT 0x00000010
89 #define HHWIN_PARAM_NAV_WIDTH 0x00000020
90 #define HHWIN_PARAM_SHOWSTATE 0x00000040
91 #define HHWIN_PARAM_INFOTYPES 0x00000080
92 #define HHWIN_PARAM_TB_FLAGS 0x00000100
93 #define HHWIN_PARAM_EXPANSION 0x00000200
94 #define HHWIN_PARAM_TABPOS 0x00000400
95 #define HHWIN_PARAM_TABORDER 0x00000800
96 #define HHWIN_PARAM_HISTORY_COUNT 0x00001000
97 #define HHWIN_PARAM_CUR_TAB 0x00002000
99 #define HHWIN_BUTTON_EXPAND 0x00000002
100 #define HHWIN_BUTTON_BACK 0x00000004
101 #define HHWIN_BUTTON_FORWARD 0x00000008
102 #define HHWIN_BUTTON_STOP 0x00000010
103 #define HHWIN_BUTTON_REFRESH 0x00000020
104 #define HHWIN_BUTTON_HOME 0x00000040
105 #define HHWIN_BUTTON_BROWSE_FWD 0x00000080
106 #define HHWIN_BUTTON_BROWSE_BCK 0x00000100
107 #define HHWIN_BUTTON_NOTES 0x00000200
108 #define HHWIN_BUTTON_CONTENTS 0x00000400
109 #define HHWIN_BUTTON_SYNC 0x00000800
110 #define HHWIN_BUTTON_OPTIONS 0x00001000
111 #define HHWIN_BUTTON_PRINT 0x00002000
112 #define HHWIN_BUTTON_INDEX 0x00004000
113 #define HHWIN_BUTTON_SEARCH 0x00008000
114 #define HHWIN_BUTTON_HISTORY 0x00010000
115 #define HHWIN_BUTTON_FAVORITES 0x00020000
116 #define HHWIN_BUTTON_JUMP1 0x00040000
117 #define HHWIN_BUTTON_JUMP2 0x00080000
118 #define HHWIN_BUTTON_ZOOM 0x00100000
119 #define HHWIN_BUTTON_TOC_NEXT 0x00200000
120 #define HHWIN_BUTTON_TOC_PREV 0x00400000
122 #define HHWIN_DEF_BUTTONS \
123 (HHWIN_BUTTON_EXPAND | HHWIN_BUTTON_BACK | HHWIN_BUTTON_OPTIONS | HHWIN_BUTTON_PRINT)
125 #define IDTB_EXPAND 200
126 #define IDTB_CONTRACT 201
127 #define IDTB_STOP 202
128 #define IDTB_REFRESH 203
129 #define IDTB_BACK 204
130 #define IDTB_HOME 205
131 #define IDTB_SYNC 206
132 #define IDTB_PRINT 207
133 #define IDTB_OPTIONS 208
134 #define IDTB_FORWARD 209
135 #define IDTB_NOTES 210
136 #define IDTB_BROWSE_FWD 211
137 #define IDTB_BROWSE_BACK 212
138 #define IDTB_CONTENTS 213
139 #define IDTB_INDEX 214
140 #define IDTB_SEARCH 215
141 #define IDTB_HISTORY 216
142 #define IDTB_FAVORITES 217
143 #define IDTB_JUMP1 218
144 #define IDTB_JUMP2 219
145 #define IDTB_CUSTOMIZE 221
146 #define IDTB_ZOOM 222
147 #define IDTB_TOC_NEXT 223
148 #define IDTB_TOC_PREV 224
150 #define HHN_FIRST (0U-860U)
151 #define HHN_LAST (0U-879U)
152 #define HHN_NAVCOMPLETE HHN_FIRST
153 #define HHN_TRACK (HHN_FIRST-1)
154 #define HHN_WINDOW_CREATE (HHN_FIRST-2)
157 #ifdef __cplusplus
158 extern "C" {
159 #endif
161 typedef struct tagHH_NOTIFY {
162 NMHDR hdr;
163 PCSTR pszurl;
164 } HH_NOTIFY;
166 typedef struct tagHH_POPUPA {
167 int cbStruct;
168 HINSTANCE hinst;
169 UINT idString;
170 LPCSTR pszText;
171 POINT pt;
172 COLORREF clrForeground;
173 COLORREF clrBackground;
174 RECT rcMargins;
175 LPCSTR pszFont;
176 } HH_POPUPA;
178 typedef struct tagHH_POPUPW {
179 int cbStruct;
180 HINSTANCE hinst;
181 UINT idString;
182 LPCWSTR pszText;
183 POINT pt;
184 COLORREF clrForeground;
185 COLORREF clrBackground;
186 RECT rcMargins;
187 LPCWSTR pszFont;
188 } HH_POPUPW;
190 DECL_WINELIB_TYPE_AW(HH_POPUP)
192 typedef struct tagHH_ALINKA {
193 int cbStruct;
194 BOOL fReserved;
195 LPCSTR pszKeywords;
196 LPCSTR pszUrl;
197 LPCSTR pszMsgText;
198 LPCSTR pszMsgTitle;
199 LPCSTR pszWindow;
200 BOOL fIndexOnFail;
201 } HH_ALINKA;
203 typedef struct tagHH_ALINKW {
204 int cbStruct;
205 BOOL fReserved;
206 LPCWSTR pszKeywords;
207 LPCWSTR pszUrl;
208 LPCWSTR pszMsgText;
209 LPCWSTR pszMsgTitle;
210 LPCWSTR pszWindow;
211 BOOL fIndexOnFail;
212 } HH_ALINKW;
214 DECL_WINELIB_TYPE_AW(HH_ALINK)
216 enum {
217 HHWIN_NAVTYPE_TOC,
218 HHWIN_NAVTYPE_INDEX,
219 HHWIN_NAVTYPE_SEARCH,
220 HHWIN_NAVTYPE_FAVORITES,
221 HHWIN_NAVTYPE_HISTORY,
222 HHWIN_NAVTYPE_AUTHOR,
223 HHWIN_NAVTYPE_CUSTOM_FIRST = 11
226 enum {
227 IT_INCLUSIVE,
228 IT_EXCLUSIVE,
229 IT_HIDDEN
232 typedef struct tagHH_ENUM_IT {
233 int cbStruct;
234 int iType;
235 LPCSTR pszCatName;
236 LPCSTR pszITName;
237 LPCSTR pszITDescription;
238 } HH_ENUM_IT, *PHH_ENUM_IT;
240 typedef struct tagHH_ENUM_CAT {
241 int cbStruct;
242 LPCSTR pszCatName;
243 LPCSTR pszCatDescription;
244 } HH_ENUM_CAT, *PHH_ENUM_CAT;
246 typedef struct tagHH_SET_INFOTYPE {
247 int cbStruct;
248 LPCSTR pszCatName;
249 LPCSTR pszInfoTypeName;
250 } HH_SET_INFOTYPE;
252 typedef DWORD HH_INFOTYPE, *PHH_INFOTYPE;
254 enum {
255 HHWIN_NAVTAB_TOP,
256 HHWIN_NAVTAB_LEFT,
257 HHWIN_NAVTAB_BOTTOM
260 #define HH_MAX_TABS 19
262 enum {
263 HH_TAB_CONTENTS,
264 HH_TAB_INDEX,
265 HH_TAB_SEARCH,
266 HH_TAB_FAVORITES,
267 HH_TAB_HISTORY,
268 HH_TAB_AUTHOR,
269 HH_TAB_CUSTOM_FIRST = 11,
270 HH_TAB_CUSTOM_LAST = HH_MAX_TABS
273 #define HH_MAX_TABS_CUSTOM (HH_TAB_CUSTOM_LAST-HH_TAB_CUSTOM_FIRST+1)
274 #define HH_FTS_DEFAULT_PROXIMITY -1
276 typedef struct tagHH_FTS_QUERYA {
277 int cbStruct;
278 BOOL fUniCodeStrings;
279 LPCSTR pszSearchQuery;
280 LONG iProximity;
281 BOOL fStemmedSearch;
282 BOOL fTitleOnly;
283 BOOL fExecute;
284 LPCSTR pszWindow;
285 } HH_FTS_QUERYA;
287 typedef struct tagHH_FTS_QUERYW {
288 int cbStruct;
289 BOOL fUniCodeStrings;
290 LPCWSTR pszSearchQuery;
291 LONG iProximity;
292 BOOL fStemmedSearch;
293 BOOL fTitleOnly;
294 BOOL fExecute;
295 LPCWSTR pszWindow;
296 } HH_FTS_QUERYW;
298 DECL_WINELIB_TYPE_AW(HH_FTS_QUERY)
300 typedef struct tagHH_WINTYPEA {
301 int cbStruct;
302 BOOL fUniCodeStrings;
303 LPCSTR pszType;
304 DWORD fsValidMembers;
305 DWORD fsWinProperties;
306 LPCSTR pszCaption;
307 DWORD dwStyles;
308 DWORD dwExStyles;
309 RECT rcWindowPos;
310 int nShowState;
311 HWND hwndHelp;
312 HWND hwndCaller;
313 PHH_INFOTYPE paInfoTypes;
314 HWND hwndToolBar;
315 HWND hwndNavigation;
316 HWND hwndHTML;
317 int iNavWidth;
318 RECT rcHTML;
319 LPCSTR pszToc;
320 LPCSTR pszIndex;
321 LPCSTR pszFile;
322 LPCSTR pszHome;
323 DWORD fsToolBarFlags;
324 BOOL fNotExpanded;
325 int curNavType;
326 int tabpos;
327 int idNotify;
328 BYTE tabOrder[HH_MAX_TABS+1];
329 int cHistory;
330 LPCSTR pszJump1;
331 LPCSTR pszJump2;
332 LPCSTR pszUrlJump1;
333 LPCSTR pszUrlJump2;
334 RECT rcMinSize;
335 int cbInfoTypes;
336 LPCSTR pszCustomTabs;
337 } HH_WINTYPEA, *PHH_WINTYPEA;
339 typedef struct tagHH_WINTYPEW {
340 int cbStruct;
341 BOOL fUniCodeStrings;
342 LPCWSTR pszType;
343 DWORD fsValidMembers;
344 DWORD fsWinProperties;
345 LPCWSTR pszCaption;
346 DWORD dwStyles;
347 DWORD dwExStyles;
348 RECT rcWindowPos;
349 int nShowState;
350 HWND hwndHelp;
351 HWND hwndCaller;
352 PHH_INFOTYPE paInfoTypes;
353 HWND hwndToolBar;
354 HWND hwndNavigation;
355 HWND hwndHTML;
356 int iNavWidth;
357 RECT rcHTML;
358 LPCWSTR pszToc;
359 LPCWSTR pszIndex;
360 LPCWSTR pszFile;
361 LPCWSTR pszHome;
362 DWORD fsToolBarFlags;
363 BOOL fNotExpanded;
364 int curNavType;
365 int tabpos;
366 int idNotify;
367 BYTE tabOrder[HH_MAX_TABS+1];
368 int cHistory;
369 LPCWSTR pszJump1;
370 LPCWSTR pszJump2;
371 LPCWSTR pszUrlJump1;
372 LPCWSTR pszUrlJump2;
373 RECT rcMinSize;
374 int cbInfoTypes;
375 LPCWSTR pszCustomTabs;
376 } HH_WINTYPEW, *PHH_WINTYPEW;
378 DECL_WINELIB_TYPE_AW(HH_WINTYPE)
380 enum {
381 HHACT_TAB_CONTENTS,
382 HHACT_TAB_INDEX,
383 HHACT_TAB_SEARCH,
384 HHACT_TAB_HISTORY,
385 HHACT_TAB_FAVORITES,
386 HHACT_EXPAND,
387 HHACT_CONTRACT,
388 HHACT_BACK,
389 HHACT_FORWARD,
390 HHACT_STOP,
391 HHACT_REFRESH,
392 HHACT_HOME,
393 HHACT_SYNC,
394 HHACT_OPTIONS,
395 HHACT_PRINT,
396 HHACT_HIGHLIGHT,
397 HHACT_CUSTOMIZE,
398 HHACT_JUMP1,
399 HHACT_JUMP2,
400 HHACT_ZOOM,
401 HHACT_TOC_NEXT,
402 HHACT_TOC_PREV,
403 HHACT_NOTES,
404 HHACT_LAST_ENUM
407 typedef struct tagHH_NTRACKA {
408 NMHDR hdr;
409 PCSTR pszCurUrl;
410 int idAction;
411 PHH_WINTYPEA phhWinType;
412 } HH_NTRACKA;
414 typedef struct tagHH_NTRACKW {
415 NMHDR hdr;
416 PCSTR pszCurUrl;
417 int idAction;
418 PHH_WINTYPEW phhWinType;
419 } HH_NTRACKW;
421 DECL_WINELIB_TYPE_AW(HH_NTRACK)
423 HWND WINAPI HtmlHelpA(HWND,LPCSTR,UINT,DWORD_PTR);
424 HWND WINAPI HtmlHelpW(HWND,LPCWSTR,UINT,DWORD_PTR);
425 #define HtmlHelp WINELIB_NAME_AW(HtmlHelp)
427 #define ATOM_HTMLHELP_API_ANSI (LPTSTR)14
428 #define ATOM_HTMLHELP_API_UNICODE (LPTSTR)15
430 typedef enum tagHH_GPROPID {
431 HH_GPROPID_SINGLETHREAD = 1,
432 HH_GPROPID_TOOLBAR_MARGIN = 2,
433 HH_GPROPID_UI_LANGUAGE = 3,
434 HH_GPROPID_CURRENT_SUBSET = 4,
435 HH_GPROPID_CONTENT_LANGUAGE = 5
436 } HH_GPROPID;
438 #ifdef __oaidl_h__
440 typedef struct tagHH_GLOBAL_PROPERTY
442 HH_GPROPID id;
443 VARIANT var;
444 } HH_GLOBAL_PROPERTY ;
446 #endif /* __oaidl_h__ */
448 #ifdef __cplusplus
450 #endif
452 #endif /* __HTMLHELP_H__ */