Unicode fixes.
[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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  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_PRETRANSLATEMESSAGE  0xFD
52 #define HH_SET_GLOBAL_PROPERTY  0xFC
53
54 #define HHWIN_PROP_TAB_AUTOHIDESHOW  0x00000001
55 #define HHWIN_PROP_ONTOP             0x00000002
56 #define HHWIN_PROP_NOTITLEBAR        0x00000004
57 #define HHWIN_PROP_NODEF_STYLES      0x00000008
58 #define HHWIN_PROP_NODEF_EXSTYLES    0x00000010
59 #define HHWIN_PROP_TRI_PANE          0x00000020
60 #define HHWIN_PROP_NOTB_TEXT         0x00000040
61 #define HHWIN_PROP_POST_QUIT         0x00000080
62 #define HHWIN_PROP_AUTO_SYNC         0x00000100
63 #define HHWIN_PROP_TRACKING          0x00000200
64 #define HHWIN_PROP_TAB_SEARCH        0x00000400
65 #define HHWIN_PROP_TAB_HISTORY       0x00000800
66 #define HHWIN_PROP_TAB_FAVORITES     0x00001000
67 #define HHWIN_PROP_CHANGE_TITLE      0x00002000
68 #define HHWIN_PROP_NAV_ONLY_WIN      0x00004000
69 #define HHWIN_PROP_NO_TOOLBAR        0x00008000
70 #define HHWIN_PROP_MENU              0x00010000
71 #define HHWIN_PROP_TAB_ADVSEARCH     0x00020000
72 #define HHWIN_PROP_USER_POS          0x00040000
73 #define HHWIN_PROP_TAB_CUSTOM1       0x00080000
74 #define HHWIN_PROP_TAB_CUSTOM2       0x00100000
75 #define HHWIN_PROP_TAB_CUSTOM3       0x00200000
76 #define HHWIN_PROP_TAB_CUSTOM4       0x00400000
77 #define HHWIN_PROP_TAB_CUSTOM5       0x00800000
78 #define HHWIN_PROP_TAB_CUSTOM6       0x01000000
79 #define HHWIN_PROP_TAB_CUSTOM7       0x02000000
80 #define HHWIN_PROP_TAB_CUSTOM8       0x04000000
81 #define HHWIN_PROP_TAB_CUSTOM9       0x08000000
82 #define HHWIN_TB_MARGIN              0x10000000
83
84 #define HHWIN_PARAM_PROPERTIES     0x00000002
85 #define HHWIN_PARAM_STYLES         0x00000004
86 #define HHWIN_PARAM_EXSTYLES       0x00000008
87 #define HHWIN_PARAM_RECT           0x00000010
88 #define HHWIN_PARAM_NAV_WIDTH      0x00000020
89 #define HHWIN_PARAM_SHOWSTATE      0x00000040
90 #define HHWIN_PARAM_INFOTYPES      0x00000080
91 #define HHWIN_PARAM_TB_FLAGS       0x00000100
92 #define HHWIN_PARAM_EXPANSION      0x00000200
93 #define HHWIN_PARAM_TABPOS         0x00000400
94 #define HHWIN_PARAM_TABORDER       0x00000800
95 #define HHWIN_PARAM_HISTORY_COUNT  0x00001000
96 #define HHWIN_PARAM_CUR_TAB        0x00002000
97
98 #define HHWIN_BUTTON_EXPAND      0x00000002
99 #define HHWIN_BUTTON_BACK        0x00000004
100 #define HHWIN_BUTTON_FORWARD     0x00000008
101 #define HHWIN_BUTTON_STOP        0x00000010
102 #define HHWIN_BUTTON_REFRESH     0x00000020
103 #define HHWIN_BUTTON_HOME        0x00000040
104 #define HHWIN_BUTTON_BROWSE_FWD  0x00000080
105 #define HHWIN_BUTTON_BROWSE_BCK  0x00000100
106 #define HHWIN_BUTTON_NOTES       0x00000200
107 #define HHWIN_BUTTON_CONTENTS    0x00000400
108 #define HHWIN_BUTTON_SYNC        0x00000800
109 #define HHWIN_BUTTON_OPTIONS     0x00001000
110 #define HHWIN_BUTTON_PRINT       0x00002000
111 #define HHWIN_BUTTON_INDEX       0x00004000
112 #define HHWIN_BUTTON_SEARCH      0x00008000
113 #define HHWIN_BUTTON_HISTORY     0x00010000
114 #define HHWIN_BUTTON_FAVORITES   0x00020000
115 #define HHWIN_BUTTON_JUMP1       0x00040000
116 #define HHWIN_BUTTON_JUMP2       0x00080000
117 #define HHWIN_BUTTON_ZOOM        0x00100000
118 #define HHWIN_BUTTON_TOC_NEXT    0x00200000
119 #define HHWIN_BUTTON_TOC_PREV    0x00400000
120
121 #define HHWIN_DEF_BUTTONS  \
122     (HHWIN_BUTTON_EXPAND | HHWIN_BUTTON_BACK | HHWIN_BUTTON_OPTIONS | HHWIN_BUTTON_PRINT)
123
124 #define IDTB_EXPAND       200
125 #define IDTB_CONTRACT     201
126 #define IDTB_STOP         202
127 #define IDTB_REFRESH      203
128 #define IDTB_BACK         204
129 #define IDTB_HOME         205
130 #define IDTB_SYNC         206
131 #define IDTB_PRINT        207
132 #define IDTB_OPTIONS      208
133 #define IDTB_FORWARD      209
134 #define IDTB_NOTES        210
135 #define IDTB_BROWSE_FWD   211
136 #define IDTB_BROWSE_BACK  212
137 #define IDTB_CONTENTS     213
138 #define IDTB_INDEX        214
139 #define IDTB_SEARCH       215
140 #define IDTB_HISTORY      216
141 #define IDTB_FAVORITES    217
142 #define IDTB_JUMP1        218
143 #define IDTB_JUMP2        219
144 #define IDTB_CUSTOMIZE    221
145 #define IDTB_ZOOM         222
146 #define IDTB_TOC_NEXT     223
147 #define IDTB_TOC_PREV     224
148
149 #define HHN_FIRST          (0U-860U)
150 #define HHN_LAST           (0U-879U)
151 #define HHN_NAVCOMPLETE    HHN_FIRST
152 #define HHN_TRACK          (HHN_FIRST-1)
153 #define HHN_WINDOW_CREATE  (HHN_FIRST-2)
154
155
156 #ifdef __cplusplus
157 extern "C" {
158 #endif
159
160 typedef struct tagHH_NOTIFY {
161     NMHDR hdr;
162     PCSTR pszurl;
163 } HH_NOTIFY;
164
165 typedef struct tagHH_POPUPA {
166     int       cbStruct;
167     HINSTANCE hinst;
168     UINT      idString;
169     LPCSTR    pszText;
170     POINT     pt;
171     COLORREF  clrForeground;
172     COLORREF  clrBackground;
173     RECT      rcMargins;
174     LPCSTR    pszFont;
175 } HH_POPUPA;
176
177 typedef struct tagHH_POPUPW {
178     int       cbStruct;
179     HINSTANCE hinst;
180     UINT      idString;
181     LPCWSTR   pszText;
182     POINT     pt;
183     COLORREF  clrForeground;
184     COLORREF  clrBackground;
185     RECT      rcMargins;
186     LPCWSTR   pszFont;
187 } HH_POPUPW;
188
189 DECL_WINELIB_TYPE_AW(HH_POPUP)
190
191 typedef struct tagHH_ALINKA {
192     int    cbStruct;
193     BOOL   fReserved;
194     LPCSTR pszKeywords;
195     LPCSTR pszUrl;
196     LPCSTR pszMsgText;
197     LPCSTR pszMsgTitle;
198     LPCSTR pszWindow;
199     BOOL   fIndexOnFail;
200 } HH_ALINKA;
201
202 typedef struct tagHH_ALINKW {
203     int     cbStruct;
204     BOOL    fReserved;
205     LPCWSTR pszKeywords;
206     LPCWSTR pszUrl;
207     LPCWSTR pszMsgText;
208     LPCWSTR pszMsgTitle;
209     LPCWSTR pszWindow;
210     BOOL    fIndexOnFail;
211 } HH_ALINKW;
212
213 DECL_WINELIB_TYPE_AW(HH_ALINK)
214
215 enum {
216     HHWIN_NAVTYPE_TOC,
217     HHWIN_NAVTYPE_INDEX,
218     HHWIN_NAVTYPE_SEARCH,
219     HHWIN_NAVTYPE_FAVORITES,
220     HHWIN_NAVTYPE_HISTORY,
221     HHWIN_NAVTYPE_AUTHOR,
222     HHWIN_NAVTYPE_CUSTOM_FIRST = 11
223 };
224
225 enum {
226     IT_INCLUSIVE,
227     IT_EXCLUSIVE,
228     IT_HIDDEN
229 };
230
231 typedef struct tagHH_ENUM_IT {
232     int    cbStruct;
233     int    iType;
234     LPCSTR pszCatName;
235     LPCSTR pszITName;
236     LPCSTR pszITDescription;
237 } HH_ENUM_IT, *PHH_ENUM_IT;
238
239 typedef struct tagHH_ENUM_CAT {
240     int    cbStruct;
241     LPCSTR pszCatName;
242     LPCSTR pszCatDescription;
243 } HH_ENUM_CAT, *PHH_ENUM_CAT;
244
245 typedef struct tagHH_SET_INFOTYPE {
246     int    cbStruct;
247     LPCSTR pszCatName;
248     LPCSTR pszInfoTypeName;
249 } HH_SET_INFOTYPE;
250
251 typedef DWORD HH_INFOTYPE, *PHH_INFOTYPE;
252
253 enum {
254     HHWIN_NAVTAB_TOP,
255     HHWIN_NAVTAB_LEFT,
256     HHWIN_NAVTAB_BOTTOM
257 };
258
259 #define HH_MAX_TABS 19
260
261 enum {
262     HH_TAB_CONTENTS,
263     HH_TAB_INDEX,
264     HH_TAB_SEARCH,
265     HH_TAB_FAVORITES,
266     HH_TAB_HISTORY,
267     HH_TAB_AUTHOR,
268     HH_TAB_CUSTOM_FIRST = 11,
269     HH_TAB_CUSTOM_LAST = HH_MAX_TABS
270 };
271
272 #define HH_MAX_TABS_CUSTOM        (HH_TAB_CUSTOM_LAST-HH_TAB_CUSTOM_FIRST+1)
273 #define HH_FTS_DEFAULT_PROXIMITY  -1
274
275 typedef struct tagHH_FTS_QUERYA {
276     int    cbStruct;
277     BOOL   fUniCodeStrings;
278     LPCSTR pszSearchQuery;
279     LONG   iProximity;
280     BOOL   fStemmedSearch;
281     BOOL   fTitleOnly;
282     BOOL   fExecute;
283     LPCSTR pszWindow;
284 } HH_FTS_QUERYA;
285
286 typedef struct tagHH_FTS_QUERYW {
287     int     cbStruct;
288     BOOL    fUniCodeStrings;
289     LPCWSTR pszSearchQuery;
290     LONG    iProximity;
291     BOOL    fStemmedSearch;
292     BOOL    fTitleOnly;
293     BOOL    fExecute;
294     LPCWSTR pszWindow;
295 } HH_FTS_QUERYW;
296
297 DECL_WINELIB_TYPE_AW(HH_FTS_QUERY)
298
299 typedef struct tagHH_WINTYPEA {
300     int          cbStruct;
301     BOOL         fUniCodeStrings;
302     LPCSTR       pszType;
303     DWORD        fsValidMembers;
304     DWORD        fsWinProperties;
305     LPCSTR       pszCaption;
306     DWORD        dwStyles;
307     DWORD        dwExStyles;
308     RECT         rcWindowPos;
309     int          nShowState;
310     HWND         hwndHelp;
311     HWND         hwndCaller;
312     PHH_INFOTYPE paInfoTypes;
313     HWND         hwndToolBar;
314     HWND         hwndNavigation;
315     HWND         hwndHTML;
316     int          iNavWidth;
317     RECT         rcHTML;
318     LPCSTR       pszToc;
319     LPCSTR       pszIndex;
320     LPCSTR       pszFile;
321     LPCSTR       pszHome;
322     DWORD        fsToolBarFlags;
323     BOOL         fNotExpanded;
324     int          curNavType;
325     int          tabpos;
326     int          idNotify;
327     BYTE         tabOrder[HH_MAX_TABS+1];
328     int          cHistory;
329     LPCSTR       pszJump1;
330     LPCSTR       pszJump2;
331     LPCSTR       pszUrlJump1;
332     LPCSTR       pszUrlJump2;
333     RECT         rcMinSize;
334     int          cbInfoTypes;
335     LPCSTR       pszCustomTabs;
336 } HH_WINTYPEA, *PHH_WINTYPEA;
337
338 typedef struct tagHH_WINTYPEW {
339     int          cbStruct;
340     BOOL         fUniCodeStrings;
341     LPCWSTR      pszType;
342     DWORD        fsValidMembers;
343     DWORD        fsWinProperties;
344     LPCWSTR      pszCaption;
345     DWORD        dwStyles;
346     DWORD        dwExStyles;
347     RECT         rcWindowPos;
348     int          nShowState;
349     HWND         hwndHelp;
350     HWND         hwndCaller;
351     PHH_INFOTYPE paInfoTypes;
352     HWND         hwndToolBar;
353     HWND         hwndNavigation;
354     HWND         hwndHTML;
355     int          iNavWidth;
356     RECT         rcHTML;
357     LPCWSTR      pszToc;
358     LPCWSTR      pszIndex;
359     LPCWSTR      pszFile;
360     LPCWSTR      pszHome;
361     DWORD        fsToolBarFlags;
362     BOOL         fNotExpanded;
363     int          curNavType;
364     int          tabpos;
365     int          idNotify;
366     BYTE         tabOrder[HH_MAX_TABS+1];
367     int          cHistory;
368     LPCWSTR      pszJump1;
369     LPCWSTR      pszJump2;
370     LPCWSTR      pszUrlJump1;
371     LPCWSTR      pszUrlJump2;
372     RECT         rcMinSize;
373     int          cbInfoTypes;
374     LPCWSTR      pszCustomTabs;
375 } HH_WINTYPEW, *PHH_WINTYPEW;
376
377 DECL_WINELIB_TYPE_AW(HH_WINTYPE)
378
379 enum {
380     HHACT_TAB_CONTENTS,
381     HHACT_TAB_INDEX,
382     HHACT_TAB_SEARCH,
383     HHACT_TAB_HISTORY,
384     HHACT_TAB_FAVORITES,
385     HHACT_EXPAND,
386     HHACT_CONTRACT,
387     HHACT_BACK,
388     HHACT_FORWARD,
389     HHACT_STOP,
390     HHACT_REFRESH,
391     HHACT_HOME,
392     HHACT_SYNC,
393     HHACT_OPTIONS,
394     HHACT_PRINT,
395     HHACT_HIGHLIGHT,
396     HHACT_CUSTOMIZE,
397     HHACT_JUMP1,
398     HHACT_JUMP2,
399     HHACT_ZOOM,
400     HHACT_TOC_NEXT,
401     HHACT_TOC_PREV,
402     HHACT_NOTES,
403     HHACT_LAST_ENUM
404 };
405
406 typedef struct tagHH_NTRACKA {
407     NMHDR        hdr;
408     PCSTR        pszCurUrl;
409     int          idAction;
410     PHH_WINTYPEA phhWinType;
411 } HH_NTRACKA;
412
413 typedef struct tagHH_NTRACKW {
414     NMHDR        hdr;
415     PCSTR        pszCurUrl;
416     int          idAction;
417     PHH_WINTYPEW phhWinType;
418 } HH_NTRACKW;
419
420 DECL_WINELIB_TYPE_AW(HH_NTRACK)
421
422 HWND WINAPI HtmlHelpA(HWND,LPCSTR,UINT,DWORD);
423 HWND WINAPI HtmlHelpW(HWND,LPCWSTR,UINT,DWORD);
424 #define HtmlHelp WINELIB_NAME_AW(HtmlHelp)
425
426 #define ATOM_HTMLHELP_API_ANSI    (LPTSTR)14
427 #define ATOM_HTMLHELP_API_UNICODE (LPTSTR)15
428
429 typedef enum tagHH_GPROPID {
430     HH_GPROPID_SINGLETHREAD     = 1,
431     HH_GPROPID_TOOLBAR_MARGIN   = 2,
432     HH_GPROPID_UI_LANGUAGE      = 3,
433     HH_GPROPID_CURRENT_SUBSET   = 4,
434     HH_GPROPID_CONTENT_LANGUAGE = 5
435 } HH_GPROPID;
436
437 #ifdef __WIDL_OAIDL_H
438
439 typedef struct tagHH_GLOBAL_PROPERTY
440 {
441     HH_GPROPID  id;
442     VARIANT     var;
443 } HH_GLOBAL_PROPERTY ;
444
445 #endif /* __WIDL_OAIDL_H */
446
447 #ifdef __cplusplus
448 }
449 #endif
450
451 #endif /* __HTMLHELP_H__ */