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