htmlhelp.h 12.3 KB
Newer Older
Jacek Caban's avatar
Jacek Caban committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/*
 * Copyright 2004 Jacek Caban
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * 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
Jacek Caban's avatar
Jacek Caban committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
 */

#ifndef __HTMLHELP_H__
#define __HTMLHELP_H__

#define HH_DISPLAY_TOPIC        0x00
#define HH_HELP_FINDER          0x00
#define HH_DISPLAY_TOC          0x01
#define HH_DISPLAY_INDEX        0x02
#define HH_DISPLAY_SEARCH       0x03
#define HH_SET_WIN_TYPE         0x04
#define HH_GET_WIN_TYPE         0x05
#define HH_GET_WIN_HANDLE       0x06
#define HH_ENUM_INFO_TYPE       0x07
#define HH_SET_INFO_TYPE        0x08
#define HH_SYNC                 0x09
#define HH_RESERVED1            0x0A
#define HH_RESERVED2            0x0B
#define HH_RESERVED3            0x0C
#define HH_KEYWORD_LOOKUP       0x0D
#define HH_DISPLAY_TEXT_POPUP   0x0E
#define HH_HELP_CONTEXT         0x0F
#define HH_TP_HELP_CONTEXTMENU  0x10
#define HH_TP_HELP_WM_HELP      0x11
#define HH_CLOSE_ALL            0x12
#define HH_ALINK_LOOKUP         0x13
#define HH_GET_LAST_ERROR       0x14
#define HH_ENUM_CATEGORY        0x15
#define HH_ENUM_CATEGORY_IT     0x16
#define HH_RESET_IT_FILTER      0x17
#define HH_SET_INCLUSIVE_FILTER 0x18
#define HH_SET_EXCLUSIVE_FILTER 0x19
#define HH_INITIALIZE           0x1C
#define HH_UNINITIALIZE         0x1D
51
#define HH_SAFE_DISPLAY_TOPIC   0x20
Jacek Caban's avatar
Jacek Caban committed
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422
#define HH_PRETRANSLATEMESSAGE  0xFD
#define HH_SET_GLOBAL_PROPERTY  0xFC

#define HHWIN_PROP_TAB_AUTOHIDESHOW  0x00000001
#define HHWIN_PROP_ONTOP             0x00000002
#define HHWIN_PROP_NOTITLEBAR        0x00000004
#define HHWIN_PROP_NODEF_STYLES      0x00000008
#define HHWIN_PROP_NODEF_EXSTYLES    0x00000010
#define HHWIN_PROP_TRI_PANE          0x00000020
#define HHWIN_PROP_NOTB_TEXT         0x00000040
#define HHWIN_PROP_POST_QUIT         0x00000080
#define HHWIN_PROP_AUTO_SYNC         0x00000100
#define HHWIN_PROP_TRACKING          0x00000200
#define HHWIN_PROP_TAB_SEARCH        0x00000400
#define HHWIN_PROP_TAB_HISTORY       0x00000800
#define HHWIN_PROP_TAB_FAVORITES     0x00001000
#define HHWIN_PROP_CHANGE_TITLE      0x00002000
#define HHWIN_PROP_NAV_ONLY_WIN      0x00004000
#define HHWIN_PROP_NO_TOOLBAR        0x00008000
#define HHWIN_PROP_MENU              0x00010000
#define HHWIN_PROP_TAB_ADVSEARCH     0x00020000
#define HHWIN_PROP_USER_POS          0x00040000
#define HHWIN_PROP_TAB_CUSTOM1       0x00080000
#define HHWIN_PROP_TAB_CUSTOM2       0x00100000
#define HHWIN_PROP_TAB_CUSTOM3       0x00200000
#define HHWIN_PROP_TAB_CUSTOM4       0x00400000
#define HHWIN_PROP_TAB_CUSTOM5       0x00800000
#define HHWIN_PROP_TAB_CUSTOM6       0x01000000
#define HHWIN_PROP_TAB_CUSTOM7       0x02000000
#define HHWIN_PROP_TAB_CUSTOM8       0x04000000
#define HHWIN_PROP_TAB_CUSTOM9       0x08000000
#define HHWIN_TB_MARGIN              0x10000000

#define HHWIN_PARAM_PROPERTIES     0x00000002
#define HHWIN_PARAM_STYLES         0x00000004
#define HHWIN_PARAM_EXSTYLES       0x00000008
#define HHWIN_PARAM_RECT           0x00000010
#define HHWIN_PARAM_NAV_WIDTH      0x00000020
#define HHWIN_PARAM_SHOWSTATE      0x00000040
#define HHWIN_PARAM_INFOTYPES      0x00000080
#define HHWIN_PARAM_TB_FLAGS       0x00000100
#define HHWIN_PARAM_EXPANSION      0x00000200
#define HHWIN_PARAM_TABPOS         0x00000400
#define HHWIN_PARAM_TABORDER       0x00000800
#define HHWIN_PARAM_HISTORY_COUNT  0x00001000
#define HHWIN_PARAM_CUR_TAB        0x00002000

#define HHWIN_BUTTON_EXPAND      0x00000002
#define HHWIN_BUTTON_BACK        0x00000004
#define HHWIN_BUTTON_FORWARD     0x00000008
#define HHWIN_BUTTON_STOP        0x00000010
#define HHWIN_BUTTON_REFRESH     0x00000020
#define HHWIN_BUTTON_HOME        0x00000040
#define HHWIN_BUTTON_BROWSE_FWD  0x00000080
#define HHWIN_BUTTON_BROWSE_BCK  0x00000100
#define HHWIN_BUTTON_NOTES       0x00000200
#define HHWIN_BUTTON_CONTENTS    0x00000400
#define HHWIN_BUTTON_SYNC        0x00000800
#define HHWIN_BUTTON_OPTIONS     0x00001000
#define HHWIN_BUTTON_PRINT       0x00002000
#define HHWIN_BUTTON_INDEX       0x00004000
#define HHWIN_BUTTON_SEARCH      0x00008000
#define HHWIN_BUTTON_HISTORY     0x00010000
#define HHWIN_BUTTON_FAVORITES   0x00020000
#define HHWIN_BUTTON_JUMP1       0x00040000
#define HHWIN_BUTTON_JUMP2       0x00080000
#define HHWIN_BUTTON_ZOOM        0x00100000
#define HHWIN_BUTTON_TOC_NEXT    0x00200000
#define HHWIN_BUTTON_TOC_PREV    0x00400000

#define HHWIN_DEF_BUTTONS  \
    (HHWIN_BUTTON_EXPAND | HHWIN_BUTTON_BACK | HHWIN_BUTTON_OPTIONS | HHWIN_BUTTON_PRINT)

#define IDTB_EXPAND       200
#define IDTB_CONTRACT     201
#define IDTB_STOP         202
#define IDTB_REFRESH      203
#define IDTB_BACK         204
#define IDTB_HOME         205
#define IDTB_SYNC         206
#define IDTB_PRINT        207
#define IDTB_OPTIONS      208
#define IDTB_FORWARD      209
#define IDTB_NOTES        210
#define IDTB_BROWSE_FWD   211
#define IDTB_BROWSE_BACK  212
#define IDTB_CONTENTS     213
#define IDTB_INDEX        214
#define IDTB_SEARCH       215
#define IDTB_HISTORY      216
#define IDTB_FAVORITES    217
#define IDTB_JUMP1        218
#define IDTB_JUMP2        219
#define IDTB_CUSTOMIZE    221
#define IDTB_ZOOM         222
#define IDTB_TOC_NEXT     223
#define IDTB_TOC_PREV     224

#define HHN_FIRST          (0U-860U)
#define HHN_LAST           (0U-879U)
#define HHN_NAVCOMPLETE    HHN_FIRST
#define HHN_TRACK          (HHN_FIRST-1)
#define HHN_WINDOW_CREATE  (HHN_FIRST-2)


#ifdef __cplusplus
extern "C" {
#endif

typedef struct tagHH_NOTIFY {
    NMHDR hdr;
    PCSTR pszurl;
} HH_NOTIFY;

typedef struct tagHH_POPUPA {
    int       cbStruct;
    HINSTANCE hinst;
    UINT      idString;
    LPCSTR    pszText;
    POINT     pt;
    COLORREF  clrForeground;
    COLORREF  clrBackground;
    RECT      rcMargins;
    LPCSTR    pszFont;
} HH_POPUPA;

typedef struct tagHH_POPUPW {
    int       cbStruct;
    HINSTANCE hinst;
    UINT      idString;
    LPCWSTR   pszText;
    POINT     pt;
    COLORREF  clrForeground;
    COLORREF  clrBackground;
    RECT      rcMargins;
    LPCWSTR   pszFont;
} HH_POPUPW;

DECL_WINELIB_TYPE_AW(HH_POPUP)

typedef struct tagHH_ALINKA {
    int    cbStruct;
    BOOL   fReserved;
    LPCSTR pszKeywords;
    LPCSTR pszUrl;
    LPCSTR pszMsgText;
    LPCSTR pszMsgTitle;
    LPCSTR pszWindow;
    BOOL   fIndexOnFail;
} HH_ALINKA;

typedef struct tagHH_ALINKW {
    int     cbStruct;
    BOOL    fReserved;
    LPCWSTR pszKeywords;
    LPCWSTR pszUrl;
    LPCWSTR pszMsgText;
    LPCWSTR pszMsgTitle;
    LPCWSTR pszWindow;
    BOOL    fIndexOnFail;
} HH_ALINKW;

DECL_WINELIB_TYPE_AW(HH_ALINK)

enum {
    HHWIN_NAVTYPE_TOC,
    HHWIN_NAVTYPE_INDEX,
    HHWIN_NAVTYPE_SEARCH,
    HHWIN_NAVTYPE_FAVORITES,
    HHWIN_NAVTYPE_HISTORY,
    HHWIN_NAVTYPE_AUTHOR,
    HHWIN_NAVTYPE_CUSTOM_FIRST = 11
};

enum {
    IT_INCLUSIVE,
    IT_EXCLUSIVE,
    IT_HIDDEN
};

typedef struct tagHH_ENUM_IT {
    int    cbStruct;
    int    iType;
    LPCSTR pszCatName;
    LPCSTR pszITName;
    LPCSTR pszITDescription;
} HH_ENUM_IT, *PHH_ENUM_IT;

typedef struct tagHH_ENUM_CAT {
    int    cbStruct;
    LPCSTR pszCatName;
    LPCSTR pszCatDescription;
} HH_ENUM_CAT, *PHH_ENUM_CAT;

typedef struct tagHH_SET_INFOTYPE {
    int    cbStruct;
    LPCSTR pszCatName;
    LPCSTR pszInfoTypeName;
} HH_SET_INFOTYPE;

typedef DWORD HH_INFOTYPE, *PHH_INFOTYPE;

enum {
    HHWIN_NAVTAB_TOP,
    HHWIN_NAVTAB_LEFT,
    HHWIN_NAVTAB_BOTTOM
};

#define HH_MAX_TABS 19

enum {
    HH_TAB_CONTENTS,
    HH_TAB_INDEX,
    HH_TAB_SEARCH,
    HH_TAB_FAVORITES,
    HH_TAB_HISTORY,
    HH_TAB_AUTHOR,
    HH_TAB_CUSTOM_FIRST = 11,
    HH_TAB_CUSTOM_LAST = HH_MAX_TABS
};

#define HH_MAX_TABS_CUSTOM        (HH_TAB_CUSTOM_LAST-HH_TAB_CUSTOM_FIRST+1)
#define HH_FTS_DEFAULT_PROXIMITY  -1

typedef struct tagHH_FTS_QUERYA {
    int    cbStruct;
    BOOL   fUniCodeStrings;
    LPCSTR pszSearchQuery;
    LONG   iProximity;
    BOOL   fStemmedSearch;
    BOOL   fTitleOnly;
    BOOL   fExecute;
    LPCSTR pszWindow;
} HH_FTS_QUERYA;

typedef struct tagHH_FTS_QUERYW {
    int     cbStruct;
    BOOL    fUniCodeStrings;
    LPCWSTR pszSearchQuery;
    LONG    iProximity;
    BOOL    fStemmedSearch;
    BOOL    fTitleOnly;
    BOOL    fExecute;
    LPCWSTR pszWindow;
} HH_FTS_QUERYW;

DECL_WINELIB_TYPE_AW(HH_FTS_QUERY)

typedef struct tagHH_WINTYPEA {
    int          cbStruct;
    BOOL         fUniCodeStrings;
    LPCSTR       pszType;
    DWORD        fsValidMembers;
    DWORD        fsWinProperties;
    LPCSTR       pszCaption;
    DWORD        dwStyles;
    DWORD        dwExStyles;
    RECT         rcWindowPos;
    int          nShowState;
    HWND         hwndHelp;
    HWND         hwndCaller;
    PHH_INFOTYPE paInfoTypes;
    HWND         hwndToolBar;
    HWND         hwndNavigation;
    HWND         hwndHTML;
    int          iNavWidth;
    RECT         rcHTML;
    LPCSTR       pszToc;
    LPCSTR       pszIndex;
    LPCSTR       pszFile;
    LPCSTR       pszHome;
    DWORD        fsToolBarFlags;
    BOOL         fNotExpanded;
    int          curNavType;
    int          tabpos;
    int          idNotify;
    BYTE         tabOrder[HH_MAX_TABS+1];
    int          cHistory;
    LPCSTR       pszJump1;
    LPCSTR       pszJump2;
    LPCSTR       pszUrlJump1;
    LPCSTR       pszUrlJump2;
    RECT         rcMinSize;
    int          cbInfoTypes;
    LPCSTR       pszCustomTabs;
} HH_WINTYPEA, *PHH_WINTYPEA;

typedef struct tagHH_WINTYPEW {
    int          cbStruct;
    BOOL         fUniCodeStrings;
    LPCWSTR      pszType;
    DWORD        fsValidMembers;
    DWORD        fsWinProperties;
    LPCWSTR      pszCaption;
    DWORD        dwStyles;
    DWORD        dwExStyles;
    RECT         rcWindowPos;
    int          nShowState;
    HWND         hwndHelp;
    HWND         hwndCaller;
    PHH_INFOTYPE paInfoTypes;
    HWND         hwndToolBar;
    HWND         hwndNavigation;
    HWND         hwndHTML;
    int          iNavWidth;
    RECT         rcHTML;
    LPCWSTR      pszToc;
    LPCWSTR      pszIndex;
    LPCWSTR      pszFile;
    LPCWSTR      pszHome;
    DWORD        fsToolBarFlags;
    BOOL         fNotExpanded;
    int          curNavType;
    int          tabpos;
    int          idNotify;
    BYTE         tabOrder[HH_MAX_TABS+1];
    int          cHistory;
    LPCWSTR      pszJump1;
    LPCWSTR      pszJump2;
    LPCWSTR      pszUrlJump1;
    LPCWSTR      pszUrlJump2;
    RECT         rcMinSize;
    int          cbInfoTypes;
    LPCWSTR      pszCustomTabs;
} HH_WINTYPEW, *PHH_WINTYPEW;

DECL_WINELIB_TYPE_AW(HH_WINTYPE)

enum {
    HHACT_TAB_CONTENTS,
    HHACT_TAB_INDEX,
    HHACT_TAB_SEARCH,
    HHACT_TAB_HISTORY,
    HHACT_TAB_FAVORITES,
    HHACT_EXPAND,
    HHACT_CONTRACT,
    HHACT_BACK,
    HHACT_FORWARD,
    HHACT_STOP,
    HHACT_REFRESH,
    HHACT_HOME,
    HHACT_SYNC,
    HHACT_OPTIONS,
    HHACT_PRINT,
    HHACT_HIGHLIGHT,
    HHACT_CUSTOMIZE,
    HHACT_JUMP1,
    HHACT_JUMP2,
    HHACT_ZOOM,
    HHACT_TOC_NEXT,
    HHACT_TOC_PREV,
    HHACT_NOTES,
    HHACT_LAST_ENUM
};

typedef struct tagHH_NTRACKA {
    NMHDR        hdr;
    PCSTR        pszCurUrl;
    int          idAction;
    PHH_WINTYPEA phhWinType;
} HH_NTRACKA;

typedef struct tagHH_NTRACKW {
    NMHDR        hdr;
    PCSTR        pszCurUrl;
    int          idAction;
    PHH_WINTYPEW phhWinType;
} HH_NTRACKW;

DECL_WINELIB_TYPE_AW(HH_NTRACK)

423 424
HWND WINAPI HtmlHelpA(HWND,LPCSTR,UINT,DWORD_PTR);
HWND WINAPI HtmlHelpW(HWND,LPCWSTR,UINT,DWORD_PTR);
Jacek Caban's avatar
Jacek Caban committed
425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452
#define HtmlHelp WINELIB_NAME_AW(HtmlHelp)

#define ATOM_HTMLHELP_API_ANSI    (LPTSTR)14
#define ATOM_HTMLHELP_API_UNICODE (LPTSTR)15

typedef enum tagHH_GPROPID {
    HH_GPROPID_SINGLETHREAD     = 1,
    HH_GPROPID_TOOLBAR_MARGIN   = 2,
    HH_GPROPID_UI_LANGUAGE      = 3,
    HH_GPROPID_CURRENT_SUBSET   = 4,
    HH_GPROPID_CONTENT_LANGUAGE = 5
} HH_GPROPID;

#ifdef __WIDL_OAIDL_H

typedef struct tagHH_GLOBAL_PROPERTY
{
    HH_GPROPID  id;
    VARIANT     var;
} HH_GLOBAL_PROPERTY ;

#endif /* __WIDL_OAIDL_H */

#ifdef __cplusplus
}
#endif

#endif /* __HTMLHELP_H__ */