msxml3: Return E_INVALIDARG when value is NULL.
[wine] / include / htmlhelp.h
1 /*
2  * Copyright 2004 Jacek Caban
3  *
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.
8  *
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.
13  *
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
17  */
18
19 #ifndef __HTMLHELP_H__
20 #define __HTMLHELP_H__
21
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
54
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
84
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
98
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
121
122 #define HHWIN_DEF_BUTTONS  \
123     (HHWIN_BUTTON_EXPAND | HHWIN_BUTTON_BACK | HHWIN_BUTTON_OPTIONS | HHWIN_BUTTON_PRINT)
124
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
149
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)
155
156
157 #ifdef __cplusplus
158 extern "C" {
159 #endif
160
161 typedef struct tagHH_NOTIFY {
162     NMHDR hdr;
163     PCSTR pszurl;
164 } HH_NOTIFY;
165
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;
177
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;
189
190 DECL_WINELIB_TYPE_AW(HH_POPUP)
191
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;
202
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;
213
214 DECL_WINELIB_TYPE_AW(HH_ALINK)
215
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
224 };
225
226 enum {
227     IT_INCLUSIVE,
228     IT_EXCLUSIVE,
229     IT_HIDDEN
230 };
231
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;
239
240 typedef struct tagHH_ENUM_CAT {
241     int    cbStruct;
242     LPCSTR pszCatName;
243     LPCSTR pszCatDescription;
244 } HH_ENUM_CAT, *PHH_ENUM_CAT;
245
246 typedef struct tagHH_SET_INFOTYPE {
247     int    cbStruct;
248     LPCSTR pszCatName;
249     LPCSTR pszInfoTypeName;
250 } HH_SET_INFOTYPE;
251
252 typedef DWORD HH_INFOTYPE, *PHH_INFOTYPE;
253
254 enum {
255     HHWIN_NAVTAB_TOP,
256     HHWIN_NAVTAB_LEFT,
257     HHWIN_NAVTAB_BOTTOM
258 };
259
260 #define HH_MAX_TABS 19
261
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
271 };
272
273 #define HH_MAX_TABS_CUSTOM        (HH_TAB_CUSTOM_LAST-HH_TAB_CUSTOM_FIRST+1)
274 #define HH_FTS_DEFAULT_PROXIMITY  -1
275
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;
286
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;
297
298 DECL_WINELIB_TYPE_AW(HH_FTS_QUERY)
299
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;
338
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;
377
378 DECL_WINELIB_TYPE_AW(HH_WINTYPE)
379
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
405 };
406
407 typedef struct tagHH_NTRACKA {
408     NMHDR        hdr;
409     PCSTR        pszCurUrl;
410     int          idAction;
411     PHH_WINTYPEA phhWinType;
412 } HH_NTRACKA;
413
414 typedef struct tagHH_NTRACKW {
415     NMHDR        hdr;
416     PCSTR        pszCurUrl;
417     int          idAction;
418     PHH_WINTYPEW phhWinType;
419 } HH_NTRACKW;
420
421 DECL_WINELIB_TYPE_AW(HH_NTRACK)
422
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)
426
427 #define ATOM_HTMLHELP_API_ANSI    (LPTSTR)14
428 #define ATOM_HTMLHELP_API_UNICODE (LPTSTR)15
429
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;
437
438 #ifdef __WIDL_OAIDL_H
439
440 typedef struct tagHH_GLOBAL_PROPERTY
441 {
442     HH_GPROPID  id;
443     VARIANT     var;
444 } HH_GLOBAL_PROPERTY ;
445
446 #endif /* __WIDL_OAIDL_H */
447
448 #ifdef __cplusplus
449 }
450 #endif
451
452 #endif /* __HTMLHELP_H__ */