/**************************************************************************** * * * HtmlHelp.h * * * * Copyright (c) 1996-1997, Microsoft Corp. All rights reserved. * * * ****************************************************************************/ #if _MSC_VER > 1000 #pragma once #endif #ifndef __HTMLHELP_H__ #define __HTMLHELP_H__ #ifdef __cplusplus extern "C" { #endif // __cplusplus // Defines for Win64 #ifndef _WIN64 #define DWORD_PTR DWORD #endif // Commands to pass to HtmlHelp() #define HH_DISPLAY_TOPIC 0x0000 #define HH_HELP_FINDER 0x0000 // WinHelp equivalent #define HH_DISPLAY_TOC 0x0001 #define HH_DISPLAY_INDEX 0x0002 #define HH_DISPLAY_SEARCH 0x0003 #define HH_SET_WIN_TYPE 0x0004 #define HH_GET_WIN_TYPE 0x0005 #define HH_GET_WIN_HANDLE 0x0006 #define HH_ENUM_INFO_TYPE 0x0007 // Get Info type name, call repeatedly to enumerate, -1 at end #define HH_SET_INFO_TYPE 0x0008 // Add Info type to filter. #define HH_SYNC 0x0009 #define HH_RESERVED1 0x000A #define HH_RESERVED2 0x000B #define HH_RESERVED3 0x000C #define HH_KEYWORD_LOOKUP 0x000D #define HH_DISPLAY_TEXT_POPUP 0x000E // display string resource id or text in a popup window #define HH_HELP_CONTEXT 0x000F // display mapped numeric value in dwData #define HH_TP_HELP_CONTEXTMENU 0x0010 // text popup help, same as WinHelp HELP_CONTEXTMENU #define HH_TP_HELP_WM_HELP 0x0011 // text popup help, same as WinHelp HELP_WM_HELP #define HH_CLOSE_ALL 0x0012 // close all windows opened directly or indirectly by the caller #define HH_ALINK_LOOKUP 0x0013 // ALink version of HH_KEYWORD_LOOKUP #define HH_GET_LAST_ERROR 0x0014 // not currently implemented // See HHERROR.h #define HH_ENUM_CATEGORY 0x0015 // Get category name, call repeatedly to enumerate, -1 at end #define HH_ENUM_CATEGORY_IT 0x0016 // Get category info type members, call repeatedly to enumerate, -1 at end #define HH_RESET_IT_FILTER 0x0017 // Clear the info type filter of all info types. #define HH_SET_INCLUSIVE_FILTER 0x0018 // set inclusive filtering method for untyped topics to be included in display #define HH_SET_EXCLUSIVE_FILTER 0x0019 // set exclusive filtering method for untyped topics to be excluded from display #define HH_INITIALIZE 0x001C // Initializes the help system. #define HH_UNINITIALIZE 0x001D // Uninitializes the help system. #define HH_PRETRANSLATEMESSAGE 0x00fd // Pumps messages. (NULL, NULL, MSG*). #define HH_SET_GLOBAL_PROPERTY 0x00fc // Set a global property. (NULL, NULL, HH_GPROP) #define HHWIN_PROP_TAB_AUTOHIDESHOW (1 << 0) // Automatically hide/show tri-pane window #define HHWIN_PROP_ONTOP (1 << 1) // Top-most window #define HHWIN_PROP_NOTITLEBAR (1 << 2) // no title bar #define HHWIN_PROP_NODEF_STYLES (1 << 3) // no default window styles (only HH_WINTYPE.dwStyles) #define HHWIN_PROP_NODEF_EXSTYLES (1 << 4) // no default extended window styles (only HH_WINTYPE.dwExStyles) #define HHWIN_PROP_TRI_PANE (1 << 5) // use a tri-pane window #define HHWIN_PROP_NOTB_TEXT (1 << 6) // no text on toolbar buttons #define HHWIN_PROP_POST_QUIT (1 << 7) // post WM_QUIT message when window closes #define HHWIN_PROP_AUTO_SYNC (1 << 8) // automatically ssync contents and index #define HHWIN_PROP_TRACKING (1 << 9) // send tracking notification messages #define HHWIN_PROP_TAB_SEARCH (1 << 10) // include search tab in navigation pane #define HHWIN_PROP_TAB_HISTORY (1 << 11) // include history tab in navigation pane #define HHWIN_PROP_TAB_FAVORITES (1 << 12) // include favorites tab in navigation pane #define HHWIN_PROP_CHANGE_TITLE (1 << 13) // Put current HTML title in title bar #define HHWIN_PROP_NAV_ONLY_WIN (1 << 14) // Only display the navigation window #define HHWIN_PROP_NO_TOOLBAR (1 << 15) // Don't display a toolbar #define HHWIN_PROP_MENU (1 << 16) // Menu #define HHWIN_PROP_TAB_ADVSEARCH (1 << 17) // Advanced FTS UI. #define HHWIN_PROP_USER_POS (1 << 18) // After initial creation, user controls window size/position #define HHWIN_PROP_TAB_CUSTOM1 (1 << 19) // Use custom tab #1 #define HHWIN_PROP_TAB_CUSTOM2 (1 << 20) // Use custom tab #2 #define HHWIN_PROP_TAB_CUSTOM3 (1 << 21) // Use custom tab #3 #define HHWIN_PROP_TAB_CUSTOM4 (1 << 22) // Use custom tab #4 #define HHWIN_PROP_TAB_CUSTOM5 (1 << 23) // Use custom tab #5 #define HHWIN_PROP_TAB_CUSTOM6 (1 << 24) // Use custom tab #6 #define HHWIN_PROP_TAB_CUSTOM7 (1 << 25) // Use custom tab #7 #define HHWIN_PROP_TAB_CUSTOM8 (1 << 26) // Use custom tab #8 #define HHWIN_PROP_TAB_CUSTOM9 (1 << 27) // Use custom tab #9 #define HHWIN_TB_MARGIN (1 << 28) // the window type has a margin #define HHWIN_PARAM_PROPERTIES (1 << 1) // valid fsWinProperties #define HHWIN_PARAM_STYLES (1 << 2) // valid dwStyles #define HHWIN_PARAM_EXSTYLES (1 << 3) // valid dwExStyles #define HHWIN_PARAM_RECT (1 << 4) // valid rcWindowPos #define HHWIN_PARAM_NAV_WIDTH (1 << 5) // valid iNavWidth #define HHWIN_PARAM_SHOWSTATE (1 << 6) // valid nShowState #define HHWIN_PARAM_INFOTYPES (1 << 7) // valid apInfoTypes #define HHWIN_PARAM_TB_FLAGS (1 << 8) // valid fsToolBarFlags #define HHWIN_PARAM_EXPANSION (1 << 9) // valid fNotExpanded #define HHWIN_PARAM_TABPOS (1 << 10) // valid tabpos #define HHWIN_PARAM_TABORDER (1 << 11) // valid taborder #define HHWIN_PARAM_HISTORY_COUNT (1 << 12) // valid cHistory #define HHWIN_PARAM_CUR_TAB (1 << 13) // valid curNavType #define HHWIN_BUTTON_EXPAND (1 << 1) // Expand/contract button #define HHWIN_BUTTON_BACK (1 << 2) // Back button #define HHWIN_BUTTON_FORWARD (1 << 3) // Forward button #define HHWIN_BUTTON_STOP (1 << 4) // Stop button #define HHWIN_BUTTON_REFRESH (1 << 5) // Refresh button #define HHWIN_BUTTON_HOME (1 << 6) // Home button #define HHWIN_BUTTON_BROWSE_FWD (1 << 7) // not implemented #define HHWIN_BUTTON_BROWSE_BCK (1 << 8) // not implemented #define HHWIN_BUTTON_NOTES (1 << 9) // not implemented #define HHWIN_BUTTON_CONTENTS (1 << 10) // not implemented #define HHWIN_BUTTON_SYNC (1 << 11) // Sync button #define HHWIN_BUTTON_OPTIONS (1 << 12) // Options button #define HHWIN_BUTTON_PRINT (1 << 13) // Print button #define HHWIN_BUTTON_INDEX (1 << 14) // not implemented #define HHWIN_BUTTON_SEARCH (1 << 15) // not implemented #define HHWIN_BUTTON_HISTORY (1 << 16) // not implemented #define HHWIN_BUTTON_FAVORITES (1 << 17) // not implemented #define HHWIN_BUTTON_JUMP1 (1 << 18) #define HHWIN_BUTTON_JUMP2 (1 << 19) #define HHWIN_BUTTON_ZOOM (1 << 20) #define HHWIN_BUTTON_TOC_NEXT (1 << 21) #define HHWIN_BUTTON_TOC_PREV (1 << 22) #define HHWIN_DEF_BUTTONS \ (HHWIN_BUTTON_EXPAND | \ HHWIN_BUTTON_BACK | \ HHWIN_BUTTON_OPTIONS | \ HHWIN_BUTTON_PRINT) // Button IDs #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 // not implemented #define IDTB_BROWSE_FWD 211 #define IDTB_BROWSE_BACK 212 #define IDTB_CONTENTS 213 // not implemented #define IDTB_INDEX 214 // not implemented #define IDTB_SEARCH 215 // not implemented #define IDTB_HISTORY 216 // not implemented #define IDTB_FAVORITES 217 // not implemented #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 // Notification codes #define HHN_FIRST (0U-860U) #define HHN_LAST (0U-879U) #define HHN_NAVCOMPLETE (HHN_FIRST-0) #define HHN_TRACK (HHN_FIRST-1) #define HHN_WINDOW_CREATE (HHN_FIRST-2) typedef struct tagHHN_NOTIFY { NMHDR hdr; PCSTR pszUrl; // Multi-byte, null-terminated string } HHN_NOTIFY; typedef struct tagHH_POPUP { int cbStruct; // sizeof this structure HINSTANCE hinst; // instance handle for string resource UINT idString; // string resource id, or text id if pszFile is specified in HtmlHelp call LPCTSTR pszText; // used if idString is zero POINT pt; // top center of popup window COLORREF clrForeground; // use -1 for default COLORREF clrBackground; // use -1 for default RECT rcMargins; // amount of space between edges of window and text, -1 for each member to ignore LPCTSTR pszFont; // facename, point size, char set, BOLD ITALIC UNDERLINE } HH_POPUP; typedef struct tagHH_AKLINK { int cbStruct; // sizeof this structure BOOL fReserved; // must be FALSE (really!) LPCTSTR pszKeywords; // semi-colon separated keywords LPCTSTR pszUrl; // URL to jump to if no keywords found (may be NULL) LPCTSTR pszMsgText; // Message text to display in MessageBox if pszUrl is NULL and no keyword match LPCTSTR pszMsgTitle; // Message text to display in MessageBox if pszUrl is NULL and no keyword match LPCTSTR pszWindow; // Window to display URL in BOOL fIndexOnFail; // Displays index if keyword lookup fails. } HH_AKLINK; enum { HHWIN_NAVTYPE_TOC, HHWIN_NAVTYPE_INDEX, HHWIN_NAVTYPE_SEARCH, HHWIN_NAVTYPE_FAVORITES, HHWIN_NAVTYPE_HISTORY, // not implemented HHWIN_NAVTYPE_AUTHOR, HHWIN_NAVTYPE_CUSTOM_FIRST = 11 }; enum { IT_INCLUSIVE, IT_EXCLUSIVE, IT_HIDDEN, }; typedef struct tagHH_ENUM_IT { int cbStruct; // size of this structure int iType; // the type of the information type ie. Inclusive, Exclusive, or Hidden LPCSTR pszCatName; // Set to the name of the Category to enumerate the info types in a category; else NULL LPCSTR pszITName; // volitile pointer to the name of the infotype. Allocated by call. Caller responsible for freeing LPCSTR pszITDescription; // volitile pointer to the description of the infotype. } HH_ENUM_IT, *PHH_ENUM_IT; typedef struct tagHH_ENUM_CAT { int cbStruct; // size of this structure LPCSTR pszCatName; // volitile pointer to the category name LPCSTR pszCatDescription; // volitile pointer to the category description } HH_ENUM_CAT, *PHH_ENUM_CAT; typedef struct tagHH_SET_INFOTYPE { int cbStruct; // the size of this structure LPCSTR pszCatName; // the name of the category, if any, the InfoType is a member of. LPCSTR pszInfoTypeName; // the name of the info type to add to the filter } HH_SET_INFOTYPE, *PHH_SET_INFOTYPE; typedef DWORD HH_INFOTYPE; typedef HH_INFOTYPE* PHH_INFOTYPE; enum { HHWIN_NAVTAB_TOP, HHWIN_NAVTAB_LEFT, HHWIN_NAVTAB_BOTTOM, }; #define HH_MAX_TABS 19 // maximum number of tabs 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) // HH_DISPLAY_SEARCH Command Related Structures and Constants #define HH_FTS_DEFAULT_PROXIMITY (-1) typedef struct tagHH_FTS_QUERY { int cbStruct; // Sizeof structure in bytes. BOOL fUniCodeStrings; // TRUE if all strings are unicode. LPCTSTR pszSearchQuery; // String containing the search query. LONG iProximity; // Word proximity. BOOL fStemmedSearch; // TRUE for StemmedSearch only. BOOL fTitleOnly; // TRUE for Title search only. BOOL fExecute; // TRUE to initiate the search. LPCTSTR pszWindow; // Window to display in } HH_FTS_QUERY; // HH_WINTYPE Structure typedef struct tagHH_WINTYPE { int cbStruct; // IN: size of this structure including all Information Types BOOL fUniCodeStrings; // IN/OUT: TRUE if all strings are in UNICODE LPCTSTR pszType; // IN/OUT: Name of a type of window DWORD fsValidMembers; // IN: Bit flag of valid members (HHWIN_PARAM_) DWORD fsWinProperties; // IN/OUT: Properties/attributes of the window (HHWIN_) LPCTSTR pszCaption; // IN/OUT: Window title DWORD dwStyles; // IN/OUT: Window styles DWORD dwExStyles; // IN/OUT: Extended Window styles RECT rcWindowPos; // IN: Starting position, OUT: current position int nShowState; // IN: show state (e.g., SW_SHOW) HWND hwndHelp; // OUT: window handle HWND hwndCaller; // OUT: who called this window HH_INFOTYPE* paInfoTypes; // IN: Pointer to an array of Information Types // The following members are only valid if HHWIN_PROP_TRI_PANE is set HWND hwndToolBar; // OUT: toolbar window in tri-pane window HWND hwndNavigation; // OUT: navigation window in tri-pane window HWND hwndHTML; // OUT: window displaying HTML in tri-pane window int iNavWidth; // IN/OUT: width of navigation window RECT rcHTML; // OUT: HTML window coordinates LPCTSTR pszToc; // IN: Location of the table of contents file LPCTSTR pszIndex; // IN: Location of the index file LPCTSTR pszFile; // IN: Default location of the html file LPCTSTR pszHome; // IN/OUT: html file to display when Home button is clicked DWORD fsToolBarFlags; // IN: flags controling the appearance of the toolbar BOOL fNotExpanded; // IN: TRUE/FALSE to contract or expand, OUT: current state int curNavType; // IN/OUT: UI to display in the navigational pane int tabpos; // IN/OUT: HHWIN_NAVTAB_TOP, HHWIN_NAVTAB_LEFT, or HHWIN_NAVTAB_BOTTOM int idNotify; // IN: ID to use for WM_NOTIFY messages BYTE tabOrder[HH_MAX_TABS + 1]; // IN/OUT: tab order: Contents, Index, Search, History, Favorites, Reserved 1-5, Custom tabs int cHistory; // IN/OUT: number of history items to keep (default is 30) LPCTSTR pszJump1; // Text for HHWIN_BUTTON_JUMP1 LPCTSTR pszJump2; // Text for HHWIN_BUTTON_JUMP2 LPCTSTR pszUrlJump1; // URL for HHWIN_BUTTON_JUMP1 LPCTSTR pszUrlJump2; // URL for HHWIN_BUTTON_JUMP2 RECT rcMinSize; // Minimum size for window (ignored in version 1) int cbInfoTypes; // size of paInfoTypes; LPCTSTR pszCustomTabs; // multiple zero-terminated strings } HH_WINTYPE, *PHH_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 tagHHNTRACK { NMHDR hdr; PCSTR pszCurUrl; // Multi-byte, null-terminated string int idAction; // HHACT_ value HH_WINTYPE* phhWinType; // Current window type structure } HHNTRACK; HWND WINAPI HtmlHelpA( HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData ); HWND WINAPI HtmlHelpW( HWND hwndCaller, LPCWSTR pszFile, UINT uCommand, DWORD_PTR dwData ); #ifdef UNICODE #define HtmlHelp HtmlHelpW #else #define HtmlHelp HtmlHelpA #endif // !UNICODE // Use the following for GetProcAddress to load from hhctrl.ocx #define ATOM_HTMLHELP_API_ANSI (LPTSTR)((DWORD)((WORD)(14))) #define ATOM_HTMLHELP_API_UNICODE (LPTSTR)((DWORD)((WORD)(15))) /////////////////////////////////////////////////////////////////////////////// // // Global Control Properties. // typedef enum tagHH_GPROPID { HH_GPROPID_SINGLETHREAD=1, // VARIANT_BOOL: True for single thread HH_GPROPID_TOOLBAR_MARGIN=2, // long: Provides a left/right margin around the toolbar. HH_GPROPID_UI_LANGUAGE=3, // long: LangId of the UI. HH_GPROPID_CURRENT_SUBSET=4, // BSTR: Current subset. HH_GPROPID_CONTENT_LANGUAGE=5 // long: LandId for desired content. } HH_GPROPID; /////////////////////////////////////////////////////////////////////////////// // // Global Property structure // #ifdef __oaidl_h__ #pragma pack(push, 8) typedef struct tagHH_GLOBAL_PROPERTY { HH_GPROPID id; VARIANT var; } HH_GLOBAL_PROPERTY ; #pragma pack(pop) #endif #ifdef __cplusplus } #endif // __cplusplus #endif // __HTMLHELP_H__