Index: trunk/ab5.0/abdev/ProjectEditor/Common.h
===================================================================
--- trunk/ab5.0/abdev/ProjectEditor/Common.h	(revision 449)
+++ trunk/ab5.0/abdev/ProjectEditor/Common.h	(revision 450)
@@ -7,5 +7,5 @@
 #include <string.h>
 #include <commctrl.h>
-#include "../htmlhelp.h"
+#include "htmlhelp.h"
 #include <shlobj.h>
 #include <zmouse.h>
Index: trunk/ab5.0/abdev/ProjectEditor/htmlhelp.h
===================================================================
--- trunk/ab5.0/abdev/ProjectEditor/htmlhelp.h	(revision 450)
+++ trunk/ab5.0/abdev/ProjectEditor/htmlhelp.h	(revision 450)
@@ -0,0 +1,426 @@
+/****************************************************************************
+*                                                                           *
+* 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__
