我怎么找不到HTMLHELP函数,在哪个类下,USES ? 怎么说[Fatal Error] Unit1.pas(7): File not found: 'IeConst.dcu' 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (************************************************************************** HtmlHelp.pas 版本:1999年3月13日,version 1.0 使用HTML 帮助的Delphi声明文件 声明: 0.本程序完全免费,在Delphi 4.0 C/S下通过,代码同样适用于Delphi3 所有内容均来自Microsoft公司提供的HTML Help Workshop 软件包。 本文件转换自该软件包的HTMLHelp.H文件,并加入针对Delphi的修改 1.本文件只能用于非盈利性质的自由开发。不能使用于商业应用。 对于违反该条件带来的法律纠纷,不符任何责任。 2.本程序不对任何由此开发的应用程序的安全性做出保证。这是程序开发者的责任。 3.本程序在传播中不得删除原作者的声明,但可以修改,修改者必须注明身份,写明 修改内容,并通知本人。 4.进一步的HTML Help的使用,HTML Help Workshop下载,请参考微软网站 http://www.microsoft.com/workshop/author/htmlhelp/ 或者HTML Help Workshop的联机帮助 5.这个文件及例程是我在工余研究了两天才搞定的,作为中国的程序员,望大家 齐心协力,共同进步。 作者: 陈刚(calf is my nickname) email: [email protected], [email protected] Micorsoft 公司的HTML Help的版权声明: Copyright (c) 1999-1997, Microsoft Corp. All rights reserved.***************************************************************************)unit HTMLHelp_Decl;interfaceuses Windows;const // Commands to pass to HtmlHelp() HH_DISPLAY_TOPIC = $0000; HH_HELP_FINDER = $0000; // WinHelp equivalent HH_DISPLAY_TOC = $0001; // not currently implemented HH_DISPLAY_INDEX = $0002; // not currently implemented HH_DISPLAY_SEARCH = $0003; // not currently implemented HH_SET_WIN_TYPE = $0004; HH_GET_WIN_TYPE = $0005; HH_GET_WIN_HANDLE = $0006; HH_ENUM_INFO_TYPE = $0007; // Get Info type name, call repeatedly to enumerate, -1 at end HH_SET_INFO_TYPE = $0008; // Add Info type to filter. HH_SYNC = $0009; HH_RESERVED1 = $000A; HH_RESERVED2 = $000B; HH_RESERVED3 = $000C; HH_KEYWORD_LOOKUP = $000D; HH_DISPLAY_TEXT_POPUP = $000E; // display string resource id or text in a popup window HH_HELP_CONTEXT = $000F; // display mapped numeric value in dwData HH_TP_HELP_CONTEXTMENU = $0010; // text popup help, same as WinHelp HELP_CONTEXTMENU HH_TP_HELP_WM_HELP = $0011; // text popup help, same as WinHelp HELP_WM_HELP HH_CLOSE_ALL = $0012; // close all windows opened directly or indirectly by the caller HH_ALINK_LOOKUP = $0013; // ALink version of HH_KEYWORD_LOOKUP HH_GET_LAST_ERROR = $0014; // not currently implemented // See HHERROR.h HH_ENUM_CATEGORY = $0015; // Get category name, call repeatedly to enumerate, -1 at end HH_ENUM_CATEGORY_IT = $0016; // Get category info type members, call repeatedly to enumerate, -1 at end HH_RESET_IT_FILTER = $0017; // Clear the info type filter of all info types. HH_SET_INCLUSIVE_FILTER = $0018; // set inclusive filtering method for untyped topics to be included in display HH_SET_EXCLUSIVE_FILTER = $0019; // set exclusive filtering method for untyped topics to be excluded from display HH_INITIALIZE = $001C; // Initializes the help system. HH_UNINITIALIZE = $001D; // Uninitializes the help system. HH_PRETRANSLATEMESSAGE = $00FD; // Pumps messages. (NULL, NULL, MSG*). HH_SET_GLOBAL_PROPERTY = $00FC; // Set a global property. (NULL, NULL, HH_GPROP) HHWIN_PROP_TAB_AUTOHIDESHOW = (1 shl 0); // Automatically hide/show tri-pane window HHWIN_PROP_ONTOP = (1 shl 1); // Top-most window HHWIN_PROP_NOTITLEBAR = (1 shl 2); // no title bar HHWIN_PROP_NODEF_STYLES = (1 shl 3); // no default window styles (only HH_WINTYPE.dwStyles) HHWIN_PROP_NODEF_EXSTYLES = (1 shl 4); // no default extended window styles (only HH_WINTYPE.dwExStyles) HHWIN_PROP_TRI_PANE = (1 shl 5); // use a tri-pane window HHWIN_PROP_NOTB_TEXT = (1 shl 6); // no text on toolbar buttons HHWIN_PROP_POST_QUIT = (1 shl 7); // post WM_QUIT message when window closes HHWIN_PROP_AUTO_SYNC = (1 shl 8); // automatically ssync contents and index HHWIN_PROP_TRACKING = (1 shl 9); // send tracking notification messages HHWIN_PROP_TAB_SEARCH = (1 shl 10); // include search tab in navigation pane HHWIN_PROP_TAB_HISTORY = (1 shl 11); // include history tab in navigation pane HHWIN_PROP_TAB_FAVORITES = (1 shl 12); // include favorites tab in navigation pane HHWIN_PROP_CHANGE_TITLE = (1 shl 13); // Put current HTML title in title bar HHWIN_PROP_NAV_ONLY_WIN = (1 shl 14); // Only display the navigation window HHWIN_PROP_NO_TOOLBAR = (1 shl 15); // Don't display a toolbar HHWIN_PROP_MENU = (1 shl 16); // Menu HHWIN_PROP_TAB_ADVSEARCH = (1 shl 17); // Advanced FTS UI. HHWIN_PROP_USER_POS = (1 shl 18); // After initial creation, user controls window size/position HHWIN_PROP_TAB_CUSTOM1 = (1 shl 19); // Use custom tab #1 HHWIN_PROP_TAB_CUSTOM2 = (1 shl 20); // Use custom tab #2 HHWIN_PROP_TAB_CUSTOM3 = (1 shl 21); // Use custom tab #3 HHWIN_PROP_TAB_CUSTOM4 = (1 shl 22); // Use custom tab #4 HHWIN_PROP_TAB_CUSTOM5 = (1 shl 23); // Use custom tab #5 HHWIN_PROP_TAB_CUSTOM6 = (1 shl 24); // Use custom tab #6 HHWIN_PROP_TAB_CUSTOM7 = (1 shl 25); // Use custom tab #7 HHWIN_PROP_TAB_CUSTOM8 = (1 shl 26); // Use custom tab #8 HHWIN_PROP_TAB_CUSTOM9 = (1 shl 27); // Use custom tab #9 HHWIN_TB_MARGIN = (1 shl 28); // the window type has a margin HHWIN_PARAM_PROPERTIES = (1 shl 1); // valid fsWinProperties HHWIN_PARAM_STYLES = (1 shl 2); // valid dwStyles HHWIN_PARAM_EXSTYLES = (1 shl 3); // valid dwExStyles HHWIN_PARAM_RECT = (1 shl 4); // valid rcWindowPos HHWIN_PARAM_NAV_WIDTH = (1 shl 5); // valid iNavWidth HHWIN_PARAM_SHOWSTATE = (1 shl 6); // valid nShowState HHWIN_PARAM_INFOTYPES = (1 shl 7); // valid apInfoTypes HHWIN_PARAM_TB_FLAGS = (1 shl 8); // valid fsToolBarFlags HHWIN_PARAM_EXPANSION = (1 shl 9); // valid fNotExpanded HHWIN_PARAM_TABPOS = (1 shl 10); // valid tabpos HHWIN_PARAM_TABORDER = (1 shl 11); // valid taborder HHWIN_PARAM_HISTORY_COUNT = (1 shl 12); // valid cHistory HHWIN_PARAM_CUR_TAB = (1 shl 13); // valid curNavType HHWIN_BUTTON_EXPAND = (1 shl 1); // Expand/contract button HHWIN_BUTTON_BACK = (1 shl 2); // Back button HHWIN_BUTTON_FORWARD = (1 shl 3); // Forward button HHWIN_BUTTON_STOP = (1 shl 4); // Stop button HHWIN_BUTTON_REFRESH = (1 shl 5); // Refresh button HHWIN_BUTTON_HOME = (1 shl 6); // Home button HHWIN_BUTTON_BROWSE_FWD = (1 shl 7); // not implemented HHWIN_BUTTON_BROWSE_BCK = (1 shl 8); // not implemented HHWIN_BUTTON_NOTES = (1 shl 9); // not implemented HHWIN_BUTTON_CONTENTS = (1 shl 10); // not implemented HHWIN_BUTTON_SYNC = (1 shl 11); // Sync button HHWIN_BUTTON_OPTIONS = (1 shl 12); // Options button HHWIN_BUTTON_PRINT = (1 shl 13); // Print button HHWIN_BUTTON_INDEX = (1 shl 14); // not implemented HHWIN_BUTTON_SEARCH = (1 shl 15); // not implemented HHWIN_BUTTON_HISTORY = (1 shl 16); // not implemented HHWIN_BUTTON_FAVORITES = (1 shl 17); // not implemented HHWIN_BUTTON_JUMP1 = (1 shl 18); HHWIN_BUTTON_JUMP2 = (1 shl 19); HHWIN_BUTTON_ZOOM = (1 shl 20); HHWIN_BUTTON_TOC_NEXT = (1 shl 21); HHWIN_BUTTON_TOC_PREV = (1 shl 22); HHWIN_DEF_BUTTONS = (HHWIN_BUTTON_EXPAND or HHWIN_BUTTON_BACK or HHWIN_BUTTON_OPTIONS or HHWIN_BUTTON_PRINT);// Button IDs IDTB_EXPAND = 200; IDTB_CONTRACT = 201; IDTB_STOP = 202; IDTB_REFRESH = 203; IDTB_BACK = 204; IDTB_HOME = 205; IDTB_SYNC = 206; IDTB_PRINT = 207; IDTB_OPTIONS = 208; IDTB_FORWARD = 209; IDTB_NOTES = 210; // not implemented IDTB_BROWSE_FWD = 211; IDTB_BROWSE_BACK = 212; IDTB_CONTENTS = 213; // not implemented IDTB_INDEX = 214; // not implemented IDTB_SEARCH = 215; // not implemented IDTB_HISTORY = 216; // not implemented IDTB_FAVORITES = 217; // not implemented IDTB_JUMP1 = 218; IDTB_JUMP2 = 219; IDTB_CUSTOMIZE = 221; IDTB_ZOOM = 222; IDTB_TOC_NEXT = 223; IDTB_TOC_PREV = 224;// Notification codes HHN_FIRST = (0 - 860); HHN_LAST = (0 - 879); HHN_NAVCOMPLETE = (HHN_FIRST - 0); HHN_TRACK = (HHN_FIRST - 1); HHN_WINDOW_CREATE = (HHN_FIRST - 2);type tagHHN_NOTIFY = record hdr: NMHDR; pszUrl: PChar; // Multi-byte, null-terminated string end; HHN_NOTIFY = tagHHN_NOTIFY; tagHH_POPUP = record cbStruct: integer; // sizeof this structure hinst: longint; // instance handle for string resource idString: UINT; // string resource id, or text id if pszFile is specified in HtmlHelp call pszText: LPCTSTR; // used if idString is zero pt: TPOINT; // top center of popup window clrForeground: COLORREF; // use -1 for default clrBackground: COLORREF; // use -1 for default rcMargins: TRECT; // amount of space between edges of window and text, -1 for each member to ignore pszFont: LPCTSTR; // facename, point size, char set, BOLD ITALIC UNDERLINE end; HH_POPUP = tagHH_POPUP; tagHH_AKLINK = record cbStruct: integer; // sizeof this structure fReserved: BOOL; // must be FALSE (really!) pszKeywords: LPCTSTR; // semi-colon separated keywords pszUrl: LPCTSTR; // URL to jump to if no keywords found (may be NULL) pszMsgText: LPCTSTR; // Message text to display in MessageBox if pszUrl is NULL and no keyword match pszMsgTitle: LPCTSTR; // Message text to display in MessageBox if pszUrl is NULL and no keyword match pszWindow: LPCTSTR; // Window to display URL in fIndexOnFail: BOOL; // Displays index if keyword lookup fails. end; HH_AKLINK = tagHH_AKLINK;const HHWIN_NAVTYPE_TOC = 0; HHWIN_NAVTYPE_INDEX = 1; HHWIN_NAVTYPE_SEARCH = 2; HHWIN_NAVTYPE_FAVORITES = 3; HHWIN_NAVTYPE_HISTORY = 4; // not implemented HHWIN_NAVTYPE_AUTHOR = 5; HHWIN_NAVTYPE_CUSTOM_FIRST = 11; IT_INCLUSIVE = 0; IT_EXCLUSIVE = 1; IT_HIDDEN = 2;type tagHH_ENUM_IT = record cbStruct: integer; // size of this structure iType: integer; // the type of the information type ie. Inclusive, Exclusive, or Hidden pszCatName: LPCSTR; // Set to the name of the Category to enumerate the info types in a category; else NULL pszITName: LPCSTR; // volitile pointer to the name of the infotype. Allocated by call. Caller responsible for freeing pszITDescription: LPCSTR; // volitile pointer to the description of the infotype. end; HH_ENUM_IT = tagHH_ENUM_IT; PHH_ENUM_IT = ^tagHH_ENUM_IT; tagHH_ENUM_CAT = record cbStruct: integer; // size of this structure pszCatName: LPCSTR; // volitile pointer to the category name pszCatDescription: LPCSTR; // volitile pointer to the category description end; HH_ENUM_CAT = tagHH_ENUM_CAT; PHH_ENUM_CAT = ^tagHH_ENUM_CAT; tagHH_SET_INFOTYPE = record cbStruct: integer; // the size of this structure pszCatName: LPCSTR; // the name of the category, if any, the InfoType is a member of. pszInfoTypeName: LPCSTR; // the name of the info type to add to the filter end; HH_SET_INFOTYPE = tagHH_SET_INFOTYPE; PHH_SET_INFOTYPE = ^tagHH_SET_INFOTYPE; HH_INFOTYPE = DWORD; PHH_INFOTYPE = ^HH_INFOTYPE;const HHWIN_NAVTAB_TOP = 0; HHWIN_NAVTAB_LEFT = 1; HHWIN_NAVTAB_BOTTOM = 2; HH_MAX_TABS = 19; // maximum number of tabs HH_TAB_CONTENTS = 0; HH_TAB_INDEX = 1; HH_TAB_SEARCH = 2; HH_TAB_FAVORITES = 3; HH_TAB_HISTORY = 4; HH_TAB_AUTHOR = 5; HH_TAB_CUSTOM_FIRST = 11; HH_TAB_CUSTOM_LAST = HH_MAX_TABS; HH_MAX_TABS_CUSTOM = HH_TAB_CUSTOM_LAST - HH_TAB_CUSTOM_FIRST + 1; // HH_DISPLAY_SEARCH Command Related Structures and Constants HH_FTS_DEFAULT_PROXIMITY = -1;type tagHH_FTS_QUERY = record cbStruct: integer; // Sizeof structure in bytes. fUniCodeStrings: BOOL; // TRUE if all strings are unicode. pszSearchQuery: LPCTSTR; // String containing the search query. iProximity: LongInt; // Word proximity. fStemmedSearch: BOOL; // TRUE for StemmedSearch only. fTitleOnly: BOOL; // TRUE for Title search only. fExecute: BOOL; // TRUE to initiate the search. pszWindow: LPCTSTR; // Window to display in end; HH_FTS_QUERY = tagHH_FTS_QUERY;// HH_WINTYPE Structure tagHH_WINTYPE = record cbStruct: integer; // IN: size of this structure including all Information Types fUniCodeStrings: BOOL; // IN/OUT: TRUE if all strings are in UNICODE pszType: LPCTSTR; // IN/OUT: Name of a type of window fsValidMembers: DWORD; // IN: Bit flag of valid members (HHWIN_PARAM_) fsWinProperties: DWORD; // IN/OUT: Properties/attributes of the window (HHWIN_) pszCaption: LPCTSTR; // IN/OUT: Window title dwStyles: DWORD; // IN/OUT: Window styles dwExStyles: DWORD; // IN/OUT: Extended Window styles rcWindowPos: TRECT; // IN: Starting position, OUT: current position nShowState: integer; // IN: show state (e.g., SW_SHOW) hwndHelp: HWND; // OUT: window handle hwndCaller: HWND; // OUT: who called this window paInfoTypes: ^HH_INFOTYPE; // IN: Pointer to an array of Information Types // The following members are only valid if HHWIN_PROP_TRI_PANE is set hwndToolBar: HWND; // OUT: toolbar window in tri-pane window hwndNavigation: HWND; // OUT: navigation window in tri-pane window hwndHTML: HWND; // OUT: window displaying HTML in tri-pane window iNavWidth: integer; // IN/OUT: width of navigation window rcHTML: TRECT; // OUT: HTML window coordinates pszToc: LPCTSTR; // IN: Location of the table of contents file pszIndex: LPCTSTR; // IN: Location of the index file pszFile: LPCTSTR; // IN: Default location of the html file pszHome: LPCTSTR; // IN/OUT: html file to display when Home button is clicked fsToolBarFlags: DWORD; // IN: flags controling the appearance of the toolbar fNotExpanded: BOOL; // IN: TRUE/FALSE to contract or expand, OUT: current state curNavType: integer; // IN/OUT: UI to display in the navigational pane tabpos: integer; // IN/OUT: HHWIN_NAVTAB_TOP, HHWIN_NAVTAB_LEFT, or HHWIN_NAVTAB_BOTTOM idNotify: integer; // IN: ID to use for WM_NOTIFY messages tabOrder: array[0..HH_MAX_TABS] of BYTE; // IN/OUT: tab order: Contents, Index, Search, History, Favorites, Reserved 1-5, Custom tabs cHistory: integer; // IN/OUT: number of history items to keep (default is 30) pszJump1: LPCTSTR; // Text for HHWIN_BUTTON_JUMP1 pszJump2: LPCTSTR; // Text for HHWIN_BUTTON_JUMP2 pszUrlJump1: LPCTSTR; // URL for HHWIN_BUTTON_JUMP1 pszUrlJump2: LPCTSTR; // URL for HHWIN_BUTTON_JUMP2 rcMinSize: TRECT; // Minimum size for window (ignored in version 1) cbInfoTypes: integer; // size of paInfoTypes: pszCustomTabs: LPCTSTR; // multiple zero-terminated strings end; HH_WINTYPE = tagHH_WINTYPE; PHH_WINTYPE = ^tagHH_WINTYPE; THHACT = ( 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 ); tagHHNTRACK = record hdr: NMHDR; pszCurUrl: PChar; // Multi-byte, null-terminated string idAction: integer; // HHACT_ value phhWinType: ^HH_WINTYPE; // Current window type structure end; HHNTRACK = tagHHNTRACK;/////////////////////////////////////////////////////////////////////////////////// Global Control Properties.//// tagHH_GPROPID = (const 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 = tagHH_GPROPID;type HH_GPROPID = integer;/////////////////////////////////////////////////////////////////////////////////// Global Property structure// tagHH_GLOBAL_PROPERTY = record id: HH_GPROPID; vari: Variant; end; HH_GLOBAL_PROPERTY = tagHH_GLOBAL_PROPERTY; DWORD_PTR = ^DWORD;(********************** Declarations (newly added by Chen Gang) ***********************)function HtmlHelp(hwndCaller: HWND; strFile: string; uCommand: UINT; dwData: DWORD_PTR): HWND;procedure CloseHtmlHelpSystem;(********************** Declarations finished(newly added by Chen Gang) ***********************)implementationuses SysUtils;const HHControlInstance : THandle = 0; dwCookie : DWORD = 0;var HtmlHelpA : function(hwndCaller: HWND; pszFile: PChar; uCommand: UINT; dwData: DWORD_PTR): HWND; stdcall;(* function implementatoins *)function HtmlHelp(hwndCaller: HWND; strFile: string; uCommand: UINT; dwData: DWORD_PTR): HWND;var OcxFileName : string; p : PChar;begin if HHControlInstance = 0 then begin OcxFileName := StringOfChar(' ', 256); p := PChar(OcxFilename); GetSystemDirectory(p, 255); StrCat(p, '\HHCTRL.OCX'); HHControlInstance := LoadLibrary(P); if HHControlInstance = 0 then raise exception.Create('HHCtrl.OCX not installed!'#13' HTMLHELP cannot displayed!'); @HtmlHelpA := GetProcAddress(HHControlInstance, 'HtmlHelpA'); if @HtmlHelpA = nil then raise exception.Create('Function HTMLHELP cannot loaded!'); HtmlHelpA(0, nil, HH_INITIALIZE, (@dwCookie)); end; Result := HtmlHelpA(hwndCaller, PChar(strFile), uCommand, dwData);end;procedure CloseHtmlHelpSystem;begin if HHControlInstance <> 0 then begin HtmlHelpA(0, nil, HH_UNINITIALIZE, DWORD_PTR(dwCookie)); FreeLibrary(HHControlInstance); end;end;end. ieconst.pas的全部代码:(******************************* * IECONST 1.00 (July 27, 2000)* *******************************)unit IeConst;interfaceuses ShlObj, Activex, Windows;const IID_IDocHostUIHandler: TGUID = '{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}'; IID_IDocHostUIHandler2: TGUID = '{3050f6d0-98b5-11cf-bb82-00aa00bdce0b}'; IID_IDocHostShowUI: TGUID = '{c4d244b0-d43e-11cf-893b-00aa00bdce1a}'; GUID_TriEditCommandGroup: TGUID = '{2582F1C0-084E-11d1-9A0E-006097C9B344}'; CMDSETID_Forms3: TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}'; IID_IQueryInfo: TGUID = (D1: $00021500; D2: $0000; D3: $0000; D4: ($C0, $00, $00, $00, $00, $00, $00, $46)); MSOCMDF_SUPPORTED = OLECMDF_SUPPORTED; MSOCMDF_ENABLED = OLECMDF_ENABLED; MSOCMDEXECOPT_PROMPTUSER = OLECMDEXECOPT_PROMPTUSER; MSOCMDEXECOPT_DONTPROMPTUSER = OLECMDEXECOPT_DONTPROMPTUSER; InchToMetric = 25.4; NO_COMMAND = 0; VIEW_COMMAND = 1; EXPLORE_COMMAND = 2; FIND_COMMAND = 3; ISDigit = ['0'..'9', '-', '+']; CONTEXT_MENU_DEFAULT = 0; CONTEXT_MENU_IMAGE = 1; CONTEXT_MENU_CONTROL = 2; CONTEXT_MENU_TABLE = 3;// in browse mode CONTEXT_MENU_TEXTSELECT = 4; CONTEXT_MENU_ANCHOR = 5; CONTEXT_MENU_UNKNOWN = 6;// These 2 are mapped to IMAGE for the public") CONTEXT_MENU_IMGDYNSRC = 7; CONTEXT_MENU_IMGART = 8; CONTEXT_MENU_DEBUG = 9; CONTEXT_MENU_VSCROLL = 10; CONTEXT_MENU_HSCROLL = 11; DISPID_AMBIENT_DLCONTROL = (-5512); DISPID_AMBIENT_USERAGENT = (-5513); HTMLID_FIND = 1; HTMLID_VIEWSOURCE = 2; HTMLID_OPTIONS = 3; DOCHOSTUITYPE_BROWSE = 0; DOCHOSTUITYPE_AUTHOR = 1; DOCHOSTUIDBLCLK_DEFAULT = 0; DOCHOSTUIDBLCLK_SHOWPROPERTIES = 1; DOCHOSTUIDBLCLK_SHOWCODE = 2; DOCHOSTUIFLAG_DIALOG = $0001; DOCHOSTUIFLAG_DISABLE_HELP_MENU = $0002; DOCHOSTUIFLAG_NO3DBORDER = $0004; DOCHOSTUIFLAG_SCROLL_NO = $0008; DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = $0010; DOCHOSTUIFLAG_OPENNEWWIN = $0020; DOCHOSTUIFLAG_DISABLE_OFFSCREEN = $0040; DOCHOSTUIFLAG_FLAT_SCROLLBAR = $0080; DOCHOSTUIFLAG_DIV_BLOCKDEFAULT = $0100; DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = $0200; DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY = $0400; DOCHOSTUIFLAG_CODEPAGELINKEDFONTS = $0800; DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = $1000; DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = $2000; DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = $4000; DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION = $10000; DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION = $20000; IDM_UNKNOWN = 0; IDM_ALIGNBOTTOM = 1; IDM_ALIGNHORIZONTALCENTERS = 2; IDM_ALIGNLEFT = 3; IDM_ALIGNRIGHT = 4; IDM_ALIGNTOGRID = 5; IDM_ALIGNTOP = 6; IDM_ALIGNVERTICALCENTERS = 7; IDM_ARRANGEBOTTOM = 8; IDM_ARRANGERIGHT = 9; IDM_BRINGFORWARD = 10; IDM_BRINGTOFRONT = 11; IDM_CENTERHORIZONTALLY = 12; IDM_CENTERVERTICALLY = 13; IDM_CODE = 14; IDM_DELETE = 17; IDM_FONTNAME = 18; IDM_FONTSIZE = 19; IDM_GROUP = 20; IDM_HORIZSPACECONCATENATE = 21; IDM_HORIZSPACEDECREASE = 22; IDM_HORIZSPACEINCREASE = 23; IDM_HORIZSPACEMAKEEQUAL = 24; IDM_INSERTOBJECT = 25; IDM_MULTILEVELREDO = 30; IDM_SENDBACKWARD = 32; IDM_SENDTOBACK = 33; IDM_SHOWTABLE = 34; IDM_SIZETOCONTROL = 35; IDM_SIZETOCONTROLHEIGHT = 36; IDM_SIZETOCONTROLWIDTH = 37; IDM_SIZETOFIT = 38; IDM_SIZETOGRID = 39; IDM_SNAPTOGRID = 40; IDM_TABORDER = 41; IDM_TOOLBOX = 42; IDM_MULTILEVELUNDO = 44; IDM_UNGROUP = 45; IDM_VERTSPACECONCATENATE = 46; IDM_VERTSPACEDECREASE = 47; IDM_VERTSPACEINCREASE = 48; IDM_VERTSPACEMAKEEQUAL = 49; IDM_JUSTIFYFULL = 50; IDM_BACKCOLOR = 51; IDM_BOLD = 52; IDM_BORDERCOLOR = 53; IDM_FLAT = 54; IDM_FORECOLOR = 55; IDM_ITALIC = 56; IDM_JUSTIFYCENTER = 57; IDM_JUSTIFYGENERAL = 58; IDM_JUSTIFYLEFT = 59; IDM_JUSTIFYRIGHT = 60; IDM_RAISED = 61; IDM_SUNKEN = 62; IDM_UNDERLINE = 63; IDM_CHISELED = 64; IDM_ETCHED = 65; IDM_SHADOWED = 66; IDM_FIND = 67; IDM_SHOWGRID = 69; IDM_OBJECTVERBLIST0 = 72; IDM_OBJECTVERBLIST1 = 73; IDM_OBJECTVERBLIST2 = 74; IDM_OBJECTVERBLIST3 = 75; IDM_OBJECTVERBLIST4 = 76; IDM_OBJECTVERBLIST5 = 77; IDM_OBJECTVERBLIST6 = 78; IDM_OBJECTVERBLIST7 = 79; IDM_OBJECTVERBLIST8 = 80; IDM_OBJECTVERBLIST9 = 81; IDM_CONVERTOBJECT = 82; IDM_CUSTOMCONTROL = 83; IDM_CUSTOMIZEITEM = 84; IDM_RENAME = 85; IDM_IMPORT = 86; IDM_NEWPAGE = 87; IDM_MOVE = 88; IDM_CANCEL = 89; IDM_FONT = 90; IDM_STRIKETHROUGH = 91; IDM_DELETEWORD = 92; IDM_FOLLOW_ANCHOR = 2008; IDM_INSINPUTIMAGE = 2114; IDM_INSINPUTBUTTON = 2115; IDM_INSINPUTRESET = 2116; IDM_INSINPUTSUBMIT = 2117; IDM_INSINPUTUPLOAD = 2118; IDM_INSFIELDSET = 2119; IDM_PASTEINSERT = 2120; IDM_REPLACE = 2121; IDM_EDITSOURCE = 2122; IDM_BOOKMARK = 2123; IDM_HYPERLINK = 2124; IDM_UNLINK = 2125; IDM_BROWSEMODE = 2126; IDM_EDITMODE = 2127; IDM_UNBOOKMARK = 2128; IDM_TOOLBARS = 2130; IDM_STATUSBAR = 2131; IDM_FORMATMARK = 2132; IDM_TEXTONLY = 2133; IDM_OPTIONS = 2135; IDM_FOLLOWLINKC = 2136; IDM_FOLLOWLINKN = 2137; IDM_VIEWSOURCE = 2139; IDM_ZOOMPOPUP = 2140; // IDM_BASELINEFONT1, IDM_BASELINEFONT2, IDM_BASELINEFONT3, IDM_BASELINEFONT4, // and IDM_BASELINEFONT5 should be consecutive integers; // IDM_BASELINEFONT1 = 2141; IDM_BASELINEFONT2 = 2142; IDM_BASELINEFONT3 = 2143; IDM_BASELINEFONT4 = 2144; IDM_BASELINEFONT5 = 2145; IDM_HORIZONTALLINE = 2150; IDM_LINEBREAKNORMAL = 2151; IDM_LINEBREAKLEFT = 2152; IDM_LINEBREAKRIGHT = 2153; IDM_LINEBREAKBOTH = 2154; IDM_NONBREAK = 2155; IDM_SPECIALCHAR = 2156; IDM_HTMLSOURCE = 2157; IDM_IFRAME = 2158; IDM_HTMLCONTAIN = 2159; IDM_TEXTBOX = 2161; IDM_TEXTAREA = 2162; IDM_CHECKBOX = 2163; IDM_RADIOBUTTON = 2164; IDM_DROPDOWNBOX = 2165; IDM_LISTBOX = 2166; IDM_BUTTON = 2167; IDM_IMAGE = 2168; IDM_OBJECT = 2169; IDM_1D = 2170; IDM_IMAGEMAP = 2171; IDM_FILE = 2172; IDM_COMMENT = 2173; IDM_SCRIPT = 2174; IDM_JAVAAPPLET = 2175; IDM_PLUGIN = 2176; IDM_PAGEBREAK = 2177; IDM_PARAGRAPH = 2180; IDM_FORM = 2181; IDM_MARQUEE = 2182; IDM_LIST = 2183; IDM_ORDERLIST = 2184; IDM_UNORDERLIST = 2185; IDM_INDENT = 2186; IDM_OUTDENT = 2187; IDM_PREFORMATTED = 2188; IDM_ADDRESS = 2189; IDM_BLINK = 2190; IDM_DIV = 2191; IDM_TABLEINSERT = 2200; IDM_RCINSERT = 2201; IDM_CELLINSERT = 2202; IDM_CAPTIONINSERT = 2203; IDM_CELLMERGE = 2204; IDM_CELLSPLIT = 2205; IDM_CELLSELECT = 2206; IDM_ROWSELECT = 2207; IDM_COLUMNSELECT = 2208; IDM_TABLESELECT = 2209; IDM_TABLEPROPERTIES = 2210; IDM_CELLPROPERTIES = 2211; IDM_ROWINSERT = 2212; IDM_COLUMNINSERT = 2213; IDM_HELP_CONTENT = 2220; IDM_HELP_ABOUT = 2221; IDM_HELP_README = 2222; IDM_REMOVEFORMAT = 2230; IDM_PAGEINFO = 2231; IDM_TELETYPE = 2232; IDM_GETBLOCKFMTS = 2233; IDM_BLOCKFMT = 2234; IDM_SHOWHIDE_CODE = 2235; IDM_TABLE = 2236; IDM_COPYFORMAT = 2237; IDM_PASTEFORMAT = 2238; IDM_GOTO = 2239; IDM_CHANGEFONT = 2240; IDM_CHANGEFONTSIZE = 2241; IDM_INCFONTSIZE = 2242; IDM_DECFONTSIZE = 2243; IDM_INCFONTSIZE1PT = 2244; IDM_DECFONTSIZE1PT = 2245; IDM_CHANGECASE = 2246; IDM_SUBSCRIPT = 2247; IDM_SUPERSCRIPT = 2248; IDM_SHOWSPECIALCHAR = 2249; IDM_CENTERALIGNPARA = 2250; IDM_LEFTALIGNPARA = 2251; IDM_RIGHTALIGNPARA = 2252; IDM_REMOVEPARAFORMAT = 2253; IDM_APPLYNORMAL = 2254; IDM_APPLYHEADING1 = 2255; IDM_APPLYHEADING2 = 2256; IDM_APPLYHEADING3 = 2257; IDM_DOCPROPERTIES = 2260; IDM_ADDFAVORITES = 2261; IDM_COPYSHORTCUT = 2262; IDM_SAVEBACKGROUND = 2263; IDM_SETWALLPAPER = 2264; IDM_COPYBACKGROUND = 2265; IDM_CREATESHORTCUT = 2266; IDM_PAGE = 2267; IDM_SAVETARGET = 2268; IDM_SHOWPICTURE = 2269; IDM_SAVEPICTURE = 2270; IDM_DYNSRCPLAY = 2271; IDM_DYNSRCSTOP = 2272; IDM_PRINTTARGET = 2273; IDM_IMGARTPLAY = 2274; IDM_IMGARTSTOP = 2275; IDM_IMGARTREWIND = 2276; IDM_PRINTQUERYJOBSPENDING = 2277; IDM_CONTEXTMENU = 2280; IDM_GOBACKWARD = 2282; IDM_GOFORWARD = 2283; IDM_PRESTOP = 2284; IDM_CREATELINK = 2290; IDM_COPYCONTENT = 2291; IDM_LANGUAGE = 2292; IDM_REFRESH = 2300; IDM_STOPDOWNLOAD = 2301; IDM_ENABLE_INTERACTION = 2302; IDM_LAUNCHDEBUGGER = 2310; IDM_BREAKATNEXT = 2311; IDM_INSINPUTHIDDEN = 2312; IDM_INSINPUTPASSWORD = 2313; IDM_OVERWRITE = 2314; IDM_PARSECOMPLETE = 2315; IDM_HTMLEDITMODE = 2316; IDM_REGISTRYREFRESH = 2317; IDM_COMPOSESETTINGS = 2318; IDM_SHOWALLTAGS = 2320; IDM_SHOWALIGNEDSITETAGS = 2321; IDM_SHOWSCRIPTTAGS = 2322; IDM_SHOWSTYLETAGS = 2323; IDM_SHOWCOMMENTTAGS = 2324; IDM_SHOWAREATAGS = 2325; IDM_SHOWUNKNOWNTAGS = 2326; IDM_SHOWMISCTAGS = 2327; IDM_SHOWZEROBORDERATDESIGNTIME = 2328; IDM_AUTODETECT = 2329; IDM_SCRIPTDEBUGGER = 2330; IDM_GETBYTESDOWNLOADED = 2331; IDM_NOACTIVATENORMALOLECONTROLS = 2332; IDM_NOACTIVATEDESIGNTIMECONTROLS = 2333; IDM_NOACTIVATEJAVAAPPLETS = 2334; IDM_SHOWWBRTAGS = 2340; IDM_PERSISTSTREAMSYNC = 2341; IDM_SETDIRTY = 2342; IDM_MIMECSET__FIRST__ = 3609; IDM_MIMECSET__LAST__ = 3640; IDM_MENUEXT_FIRST__ = 3700; IDM_MENUEXT_LAST__ = 3732; IDM_MENUEXT_COUNT = 3733; ID_EDITMODE = 32801; IDM_OPEN = 2000; IDM_NEW = 2001; IDM_SAVE = 70; IDM_SAVEAS = 71; IDM_SAVECOPYAS = 2002; IDM_PRINTPREVIEW = 2003; IDM_PRINT = 27; IDM_PAGESETUP = 2004; IDM_SPELL = 2005; IDM_PASTESPECIAL = 2006; IDM_CLEARSELECTION = 2007; IDM_PROPERTIES = 28; IDM_REDO = 29; IDM_UNDO = 43; IDM_SELECTALL = 31; IDM_ZOOMPERCENT = 50; IDM_GETZOOM = 68; IDM_STOP = 2138; IDM_COPY = 15; IDM_CUT = 16; IDM_PASTE = 26; IDM_TRIED_IS_1D_ELEMENT = 0; //[out,VT_BOOL] IDM_TRIED_IS_2D_ELEMENT = 1; //[out,VT_BOOL] IDM_TRIED_NUDGE_ELEMENT = 2; //[in,VT_BYREF VARIANT.byref=LPPOINT] IDM_TRIED_SET_ALIGNMENT = 3; //[in,VT_BYREF VARIANT.byref=LPPOINT] IDM_TRIED_MAKE_ABSOLUTE = 4; IDM_TRIED_LOCK_ELEMENT = 5; IDM_TRIED_SEND_TO_BACK = 6; IDM_TRIED_SEND_TO_FRONT = 7; IDM_TRIED_SEND_BACKWARD = 8; IDM_TRIED_SEND_FORWARD = 9; IDM_TRIED_SEND_BEHIND_1D = 10; IDM_TRIED_SEND_FRONT_1D = 11; IDM_TRIED_CONSTRAIN = 12; //[in,VT_BOOL] IDM_TRIED_SET_2D_DROP_MODE = 13; //[in,VT_BOOL] IDM_TRIED_INSERTROW = 14; IDM_TRIED_INSERTCOL = 15; IDM_TRIED_DELETEROWS = 16; IDM_TRIED_DELETECOLS = 17; IDM_TRIED_MERGECELLS = 18; IDM_TRIED_SPLITCELL = 19; IDM_TRIED_INSERTCELL = 20; IDM_TRIED_DELETECELLS = 21; IDM_TRIED_INSERTTABLE = 22; //[in, VT_ARRAY]//WARNING WARNING WARNING!!! Don't forget to modify IDM_TRIED_LAST_CID//when you add new Command IDs IDM_TRIED_LAST_CID = IDM_TRIED_INSERTTABLE; CLSID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';type PDOCHOSTUIINFO = ^TDOCHOSTUIINFO; TDOCHOSTUIINFO = record cbSize: ULONG; dwFlags: DWORD; dwDoubleClick: DWORD; chHostCss: POLESTR; chHostNS: POLESTR; end; IDocHostShowUI = interface(IUnknown) ['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}'] function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR; dwType: longint; lpstrHelpFile: POLESTR; dwHelpContext: longint; var plResult: LRESULT): HRESULT; stdcall; function ShowHelp(hwnd: THandle; pszHelpFile: POLESTR; uCommand: integer; dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall; end; // IDocHostShowUI IDocHostUIHandler = interface(IUnknown) ['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}'] function ShowContextMenu(const dwID: DWORD; const ppt: PPOINT; const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT; stdcall; function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall; function ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject; const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame; const pDoc: IOleInPlaceUIWindow): HRESULT; stdcall; function HideUI: HRESULT; stdcall; function UpdateUI: HRESULT; stdcall; function EnableModeless(const fEnable: BOOL): HRESULT; stdcall; function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall; function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall; function ResizeBorder(const prcBorder: PRECT; const pUIWindow: IOleInPlaceUIWindow; const fRameWindow: BOOL): HRESULT; stdcall; function TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT; stdcall; function GetOptionKeyPath(var pchKey: POLESTR; const dw: DWORD): HRESULT; stdcall; function GetDropTarget(const pDropTarget: IDropTarget; out ppDropTarget: IDropTarget): HRESULT; stdcall; function GetExternal(out ppDispatch: IDispatch): HRESULT; stdcall; function TranslateUrl(const dwTranslate: DWORD; const pchURLIn: POLESTR; var ppchURLOut: POLESTR): HRESULT; stdcall; function FilterDataObject(const pDO: IDataObject; out ppDORet: IDataObject): HRESULT; stdcall; end; // IDocHostUIHandler IDocHostUIHandler2 = interface(IUnknown) ['{3050f6d0-98b5-11cf-bb82-00aa00bdce0b}'] function GetOverrideKeyPath(pchKey: POLESTR; dw: DWORD): HRESULT; stdcall; end;const IID_IUniformResourceLocatorA: TGUID = ( D1:$FBF23B80; D2:$E3F0; D3:$101B; D4:($84,$88,$00,$AA,$00,$3E,$56,$F8)); IID_IUniformResourceLocatorW: TGUID = ( D1:$CABB0DA0; D2:$DA57; D3:$11CF; D4:($99,$74,$00,$20,$AF,$D7,$97,$62));{$IFDEF UNICODE} IID_IUniformResourceLocator: TGUID = ( D1:$CABB0DA0; D2:$DA57; D3:$11CF; D4:($99,$74,$00,$20,$AF,$D7,$97,$62));{$ELSE} IID_IUniformResourceLocator : TGUID = ( D1:$FBF23B80; D2:$E3F0; D3:$101B; D4:($84,$88,$00,$AA,$00,$3E,$56,$F8));{$ENDIF}constCLSID_InternetShortCut : TGUID = ( d1:$FBF23B40; D2:$E3F0; D3:$101B; D4:($84,$88,$00,$AA,$00,$3E,$56,$F8)); SID_IUniformResourceLocatorA = '{FBF23B80-E3F0-101B-8488-00AA003E56F8}'; SID_IUniformResourceLocatorW = '{CABB0DA0-DA57-11CF-9974-0020AFD79762}';{$IFDEF UNICODE} SID_IUniformResourceLocator = SID_IUniformResourceLocatorW;{$ELSE} SID_IUniformResourceLocator = SID_IUniformResourceLocatorA;{$ENDIF} IURL_SETURL_FL_GUESS_PROTOCOL = $0001; // Guess protocol if missing IURL_SETURL_FL_USE_DEFAULT_PROTOCOL = $0002; // Use default protocol if missing IURL_INVOKECOMMAND_FL_ALLOW_UI = $0001; IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB = $0002; // Ignore pcszVerb IURL_INVOKECOMMAND_FL_DDEWAIT = $0004; // pass DDEWAIT to ShellExec TRANSLATEURL_FL_GUESS_PROTOCOL = $0001; // Guess protocol if missing TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL = $0002; // Use default protocol if missing URLASSOCDLG_FL_USE_DEFAULT_NAME = $0001; URLASSOCDLG_FL_REGISTER_ASSOC = $0002; MIMEASSOCDLG_FL_REGISTER_ASSOC = $0001;typePUrlInvokeCommandInfoA = ^TUrlInvokeCommandInfoA;TUrlInvokeCommandInfoA = record dwcbSize : DWORD; // Size of structure dwFlags : DWORD; // Bit field of IURL_INVOKECOMMAND_FLAGS hwndParent : HWND; // Parent window. Valid only if IURL_INVOKECOMMAND_FL_ALLOW_UI is set. pcszVerb : LPCSTR; // Verb to invoke. Ignored if IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB is set.end;PUrlInvokeCommandInfoW = ^TUrlInvokeCommandInfoW;TUrlInvokeCommandInfoW = record dwcbSize : DWORD; // Size of structure dwFlags : DWORD; // Bit field of IURL_INVOKECOMMAND_FLAGS hwndParent : HWND; // Parent window. Valid only if IURL_INVOKECOMMAND_FL_ALLOW_UI is set. pcszVerb : LPCWSTR; // Verb to invoke. Ignored if IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB is set.end;{$IFDEF UNICODE}PURLInvokeCommandInfo = ^TUrlInvokeCommandInfoW;TUrlInvokeCommandInfo = TUrlInvokeCOmmandInfoW;{$ELSE}PURLInvokeCommandInfo = ^TUrlInvokeCommandInfoA;TUrlInvokeCommandInfo = TUrlInvokeCOmmandInfoA;{$ENDIF} IUniformResourceLocatorA = interface(IUnknown) [SID_IUniformResourceLocatorA] function SetURL(pcszURL : LpcStr; dwInFlags: DWORD): HRESULT; stdcall; function GetURL(ppszURL : LpStr): HRESULT; stdcall; function InvokeCommand(purlici : PURLINVOKECOMMANDINFOA): HRESULT; stdcall; end; IUniformResourceLocatorW = interface(IUnknown) [SID_IUniformResourceLocatorW] function SetURL(pcszURL : LpcWStr; dwInFlags: DWORD): HRESULT; stdcall; function GetURL(ppszURL : LpWStr): HRESULT; stdcall; function InvokeCommand(purlici : PURLINVOKECOMMANDINFOW): HRESULT; stdcall; end;{$IFDEF UNICODE} IUniformResourceLocator = IUniformResourceLocatorW;{$ELSE} IUniformResourceLocator = IUniformResourceLocatorA;{$ENDIF}function TranslateURLA(pcszURL : LPCSTR; dwInFlags : DWORD; ppszTranslatedURL : LPSTR) : HRESULT; stdcall;function TranslateURLW(pcszURL : LPCWSTR; dwInFlags : DWORD; ppszTranslatedURL : LPWSTR) : HRESULT; stdcall;{$IFDEF UNICODE}function TranslateURL(pcszURL : LPCWSTR; dwInFlags : DWORD; ppszTranslatedURL : LPWSTR) : HRESULT; stdcall;{$ELSE}function TranslateURL(pcszURL : LPCSTR; dwInFlags : DWORD; ppszTranslatedURL : LPSTR) : HRESULT; stdcall;{$ENDIF}function URLAssociationDialogA(hwndParent : HWND; dwInFlags : DWORD; pcszFile : LPCSTR; pcszURL : LPCSTR; pszAppBuf : LPSTR; ucAppBufLen : UINT) : HRESULT; stdcall;function URLAssociationDialogW(hwndParent : HWND; dwInFlags : DWORD; pcszFile : LPCWSTR; pcszURL : LPCWSTR; pszAppBuf : LPWSTR; ucAppBufLen : UINT) : HRESULT; stdcall;{$IFDEF UNICODE}function URLAssociationDialog(hwndParent : HWND; dwInFlags : DWORD; pcszFile : LPCWSTR; pcszURL : LPCWSTR; pszAppBuf : LPWSTR; ucAppBufLen : UINT) : HRESULT; stdcall;{$ELSE}function URLAssociationDialog(hwndParent : HWND; dwInFlags : DWORD; pcszFile : LPCSTR; pcszURL : LPCSTR; pszAppBuf : LPSTR; ucAppBufLen : UINT) : HRESULT; stdcall;{$ENDIF}function MIMEAssociationDialogA(hwndParent : HWND; dwInFlags : DWORD; pcszFile : LPCSTR; pcszMIMEContentType : LPCSTR; pszAppBuf : LPSTR; ucAppBufLen : UINT) : HRESULT; stdcall;function MIMEAssociationDialogW(hwndParent : HWND; dwInFlags : DWORD; pcszFile : LPCWSTR; pcszMIMEContentType : LPCWSTR; pszAppBuf : LPWSTR; ucAppBufLen : UINT) : HRESULT; stdcall;{$IFDEF UNICODE}function MIMEAssociationDialog(hwndParent : HWND; dwInFlags : DWORD; pcszFile : LPCWSTR; pcszMIMEContentType : LPCWSTR; pszAppBuf : LPWSTR; ucAppBufLen : UINT) : HRESULT; stdcall;{$ELSE}function MIMEAssociationDialog(hwndParent : HWND; dwInFlags : DWORD; pcszFile : LPCSTR; pcszMIMEContentType : LPCSTR; pszAppBuf : LPSTR; ucAppBufLen : UINT) : HRESULT; stdcall;{$ENDIF}function InetIsOffline(dwFlags: DWORD): BOOL; stdcall;{$IFDEF VER120}const IID_IInternetSession: TGUID = '{79eac9e7-baf9-11ce-8c82-00aa004ba90b}'; IID_IInternetSecurityMgrSite: TGUID = '{79eac9ed-baf9-11ce-8c82-00aa004ba90b}'; IID_IInternetSecurityManager: TGUID = '{79eac9ee-baf9-11ce-8c82-00aa004ba90b}'; IID_IInternetHostSecurityManager: TGUID = '{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}'; SID_IInternetSecurityManager: TGUID = '{79eac9ee-baf9-11ce-8c82-00aa004ba90b}'; SID_IInternetHostSecurityManager: TGUID = '{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}'; IID_IInternetZoneManager: TGUID = '{79eac9ef-baf9-11ce-8c82-00aa004ba90b}';type TUrlZoneReg = ULONG; PBindInfo = ^TBindInfo; _tagBINDINFO = packed record cbSize: ULONG; szExtraInfo: LPWSTR; stgmedData: TStgMedium; grfBindInfoF: DWORD; dwBindVerb: DWORD; szCustomVerb: LPWSTR; cbstgmedData: DWORD; dwOptions: DWORD; dwOptionsFlags: DWORD; dwCodePage: DWORD; securityAttributes: TSecurityAttributes; iid: TGUID; pUnk: IUnknown; dwReserved: DWORD; end; TBindInfo = _tagBINDINFO; BINDINFO = _tagBINDINFO;{$NODEFINE POLEStrArray} POLEStrArray = ^TOLESTRArray;{$NODEFINE TOLEStrArray} TOLEStrArray = array[0..MaxLongint div SizeOf(POLEStr) - 1] of POLEStr;{$EXTERNALSYM IInternetBindInfo} IInternetBindInfo = interface ['{79eac9e1-baf9-11ce-8c82-00aa004ba90b}'] function GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult; stdcall; function GetBindString(ulStringType: ULONG; wzStr: POLEStrArray; cEl: ULONG; var cElFetched: ULONG): HResult; stdcall; end; PProtocolData = ^TProtocolData;{$EXTERNALSYM _tagPROTOCOLDATA} _tagPROTOCOLDATA = packed record grfFlags: DWORD; dwState: DWORD; pData: Pointer; cbData: ULONG; end; TProtocolData = _tagPROTOCOLDATA;{$EXTERNALSYM _tagPROTOCOLDATA} PROTOCOLDATA = _tagPROTOCOLDATA;{$EXTERNALSYM IInternetProtocolSink} IInternetProtocolSink = interface; // forward{$EXTERNALSYM IInternetProtocolRoot} IInternetProtocolRoot = interface ['{79eac9e3-baf9-11ce-8c82-00aa004ba90b}'] function Start(szUrl: LPCWSTR; OIProtSink: IInternetProtocolSink; OIBindInfo: IInternetBindInfo; grfPI, dwReserved: DWORD): HResult; stdcall; function Continue(const ProtocolData: TProtocolData): HResult; stdcall; function Abort(hrReason: HResult; dwOptions: DWORD): HResult; stdcall; function Terminate(dwOptions: DWORD): HResult; stdcall; function Suspend: HResult; stdcall; function Resume: HResult; stdcall; end;{$EXTERNALSYM IInternetProtocol} IInternetProtocol = interface(IInternetProtocolRoot) ['{79eac9e4-baf9-11ce-8c82-00aa004ba90b}'] function Read(pv: Pointer; cb: ULONG; out cbRead: ULONG): HResult; stdcall; function Seek(dlibMove: LARGE_INTEGER; dwOrigin: DWORD; out libNewPosition: ULARGE_INTEGER): HResult; stdcall; function LockRequest(dwOptions: DWORD): HResult; stdcall; function UnlockRequest: HResult; stdcall; end;{$EXTERNALSYM IInternetProtocolSink} IInternetProtocolSink = interface ['{79eac9e5-baf9-11ce-8c82-00aa004ba90b}'] function Switch(const ProtocolData: TProtocolData): HResult; stdcall; function ReportProgress(ulStatusCode: ULONG; szStatusText: LPCWSTR): HResult; stdcall; function ReportData(grfBSCF: DWORD; ulProgress, ulProgressMax: ULONG): HResult; stdcall; function ReportResult(hrResult: HResult; dwError: DWORD; szResult: LPCWSTR): HResult; stdcall; end;{$NODEFINE TLPCWSTRArray} TLPCWSTRArray = array[0..MaxLongInt div SizeOf(LPCWSTR) - 1] of LPCWSTR;{$NODEFINE PLPCWSTRArray} PLPCWSTRArray = ^TLPCWSTRArray;{$EXTERNALSYM IInternetSession} IInternetSession = interface ['{79eac9e7-baf9-11ce-8c82-00aa004ba90b}'] function RegisterNameSpace(CF: IClassFactory; const clsid: TCLSID; pwzProtocol: LPCWSTR; cPatterns: ULONG; const pwzPatterns: PLPCWSTRArray; dwReserved: DWORD): HResult; stdcall; function UnregisterNameSpace(CF: IClassFactory; pszProtocol: LPCWSTR): HResult; stdcall; function RegisterMimeFilter(CF: IClassFactory; const rclsid: TCLSID; pwzType: LPCWSTR): HResult; stdcall; function UnregisterMimeFilter(CF: IClassFactory; pwzType: LPCWSTR): HResult; stdcall; function CreateBinding(BC: IBindCtx; szUrl: LPCWSTR; UnkOuter: IUnknown; out Unk: IUnknown; out OINetProt: IInternetProtocol; dwOption: DWORD): HResult; stdcall; function SetSessionOption(dwOption: DWORD; pBuffer: Pointer; dwBufferLength: DWORD; dwReserved: DWORD): HResult; stdcall; function GetSessionOption(dwOption: DWORD; pBuffer: Pointer; var dwBufferLength: DWORD; dwReserved: DWORD): HResult; stdcall; end; // IInternetSession{$EXTERNALSYM CoInternetGetSession}function CoInternetGetSession(dwSessionMode: DWORD; var pIInternetSession: IInternetSession; dwReserved: DWORD): HResult; stdcall;type{$EXTERNALSYM IInternetSecurityMgrSite} IInternetSecurityMgrSite = interface ['{79eac9ed-baf9-11ce-8c82-00aa004ba90b}'] function GetWindow(out hwnd: HWnd): HResult; stdcall; function EnableModeless(fEnable: BOOL): HResult; stdcall; end;const{$EXTERNALSYM MAX_SIZE_SECURITY_ID} MAX_SIZE_SECURITY_ID = 512; // bytes; // MapUrlToZone returns the zone index given a URL{$EXTERNALSYM PUAF_DEFAULT} PUAF_DEFAULT = $00000000;{$EXTERNALSYM PUAF_NOUI} PUAF_NOUI = $00000001;{$EXTERNALSYM PUAF_ISFILE} PUAF_ISFILE = $00000002;{$EXTERNALSYM PUAF_WARN_IF_DENIED} PUAF_WARN_IF_DENIED = $00000004;{$EXTERNALSYM PUAF_FORCEUI_FOREGROUND} PUAF_FORCEUI_FOREGROUND = $00000008;{$EXTERNALSYM PUAF_CHECK_TIFS} PUAF_CHECK_TIFS = $00000010;// This is the wrapper function that most clients will use.// It figures out the current Policy for the passed in Action,// and puts up UI if the current Policy indicates that the user// should be queried. It returns back the Policy which the caller// will use to determine if the action should be allowed// This is the wrapper function to conveniently read a custom policy.// SetZoneMapping// lpszPattern: string denoting a URL pattern// Examples of valid patterns:// *://*.msn.com// http://*.sony.co.jp// *://et.msn.com// ftp://157.54.23.41/// https://localsvr// file:\localsvr\share// *://157.54.100-200.*// Examples of invalid patterns:// http://*.lcs.mit.edu// ftp://*// dwFlags: SZM_FLAGS values{$EXTERNALSYM SZM_CREATE} SZM_CREATE = $00000000;{$EXTERNALSYM SZM_DELETE} SZM_DELETE = $00000001;type{$EXTERNALSYM IInternetSecurityManager} IInternetSecurityManager = interface ['{79eac9ee-baf9-11ce-8c82-00aa004ba90b}'] function SetSecuritySite(Site: IInternetSecurityMgrSite): HResult; stdcall; function GetSecuritySite(out Site: IInternetSecurityMgrSite): HResult; stdcall; function MapUrlToZone(pwszUrl: LPCWSTR; out dwZone: DWORD; dwFlags: DWORD): HResult; stdcall; function GetSecurityId(pwszUrl: LPCWSTR; pbSecurityId: Pointer; var cbSecurityId: DWORD; dwReserved: DWORD): HResult; stdcall; function ProcessUrlAction(pwszUrl: LPCWSTR; dwAction: DWORD; pPolicy: Pointer; cbPolicy: DWORD; pContext: Pointer; cbContext: DWORD; dwFlags, dwReserved: DWORD): HResult; stdcall; function QueryCustomPolicy(pwszUrl: LPCWSTR; const guidKey: TGUID; out pPolicy: Pointer; out cbPolicy: DWORD; pContext: Pointer; cbContext: DWORD; dwReserved: DWORD): HResult; stdcall; function SetZoneMapping(dwZone: DWORD; lpszPattern: LPCWSTR; dwFlags: DWORD): HResult; stdcall; function GetZoneMappings(dwZone: DWORD; out enumString: IEnumString; dwFlags: DWORD): HResult; stdcall; end;{$EXTERNALSYM IInternetHostSecurityManager} IInternetHostSecurityManager = interface ['{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}'] function GetSecurityId(pbSecurityId: Pointer; var cbSecurityId: DWORD; dwReserved: DWORD): HResult; stdcall; function ProcessUrlAction(dwAction: DWORD; pPolicy: Pointer; cbPolicy: DWORD; pContext: Pointer; cbContext, dwFlags, dwReserved: DWORD): HResult; stdcall; function QueryCustomPolicy(const guidKey: TGUID; out pPolicy: Pointer; out cbPolicy: DWORD; pContext: Pointer; cbContext, dwReserved: DWORD): HResult; stdcall; end;const{$EXTERNALSYM URLACTION_MIN} URLACTION_MIN = $00001000;{$EXTERNALSYM URLACTION_DOWNLOAD_MIN} URLACTION_DOWNLOAD_MIN = $00001000;{$EXTERNALSYM URLACTION_DOWNLOAD_SIGNED_ACTIVEX} URLACTION_DOWNLOAD_SIGNED_ACTIVEX = $00001001;{$EXTERNALSYM URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX} URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX = $00001004;{$EXTERNALSYM URLACTION_DOWNLOAD_CURR_MAX} URLACTION_DOWNLOAD_CURR_MAX = $00001004;{$EXTERNALSYM URLACTION_DOWNLOAD_MAX} URLACTION_DOWNLOAD_MAX = $000011FF;{$EXTERNALSYM URLACTION_ACTIVEX_MIN} URLACTION_ACTIVEX_MIN = $00001200;{$EXTERNALSYM URLACTION_ACTIVEX_RUN} URLACTION_ACTIVEX_RUN = $00001200;{$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY} URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY = $00001201; // aggregate next four{$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY} URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY = $00001202; //{$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY} URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY = $00001203; //{$EXTERNALSYM URLACTION_SCRIPT_OVERRIDE_SAFETY} URLACTION_SCRIPT_OVERRIDE_SAFETY = $00001401; //{$EXTERNALSYM URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY} URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY = $00001204; //{$EXTERNALSYM URLACTION_ACTIVEX_TREATASUNTRUSTED} URLACTION_ACTIVEX_TREATASUNTRUSTED = $00001205;{$EXTERNALSYM URLACTION_ACTIVEX_CURR_MAX} URLACTION_ACTIVEX_CURR_MAX = $00001205;{$EXTERNALSYM URLACTION_ACTIVEX_MAX} URLACTION_ACTIVEX_MAX = $000013FF;{$EXTERNALSYM URLACTION_SCRIPT_MIN} URLACTION_SCRIPT_MIN = $00001400;{$EXTERNALSYM URLACTION_SCRIPT_RUN} URLACTION_SCRIPT_RUN = $00001400;{$EXTERNALSYM URLACTION_SCRIPT_JAVA_USE} URLACTION_SCRIPT_JAVA_USE = $00001402;{$EXTERNALSYM URLACTION_SCRIPT_SAFE_ACTIVEX} URLACTION_SCRIPT_SAFE_ACTIVEX = $00001405;{$EXTERNALSYM URLACTION_SCRIPT_CURR_MAX} URLACTION_SCRIPT_CURR_MAX = $00001405;{$EXTERNALSYM URLACTION_SCRIPT_MAX} URLACTION_SCRIPT_MAX = $000015FF;{$EXTERNALSYM URLACTION_HTML_MIN} URLACTION_HTML_MIN = $00001600;{$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS} URLACTION_HTML_SUBMIT_FORMS = $00001601; // aggregate next two{$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS_FROM} URLACTION_HTML_SUBMIT_FORMS_FROM = $00001602; //{$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS_TO} URLACTION_HTML_SUBMIT_FORMS_TO = $00001603; //{$EXTERNALSYM URLACTION_HTML_FONT_DOWNLOAD} URLACTION_HTML_FONT_DOWNLOAD = $00001604;{$EXTERNALSYM URLACTION_HTML_JAVA_RUN} URLACTION_HTML_JAVA_RUN = $00001605; // derive from Java custom policy;{$EXTERNALSYM URLACTION_HTML_CURR_MAX} URLACTION_HTML_CURR_MAX = $00001605;{$EXTERNALSYM URLACTION_HTML_MAX} URLACTION_HTML_MAX = $000017FF;{$EXTERNALSYM URLACTION_SHELL_MIN} URLACTION_SHELL_MIN = $00001800;{$EXTERNALSYM URLACTION_SHELL_INSTALL_DTITEMS} URLACTION_SHELL_INSTALL_DTITEMS = $00001800;{$EXTERNALSYM URLACTION_SHELL_MOVE_OR_COPY} URLACTION_SHELL_MOVE_OR_COPY = $00001802;{$EXTERNALSYM URLACTION_SHELL_FILE_DOWNLOAD} URLACTION_SHELL_FILE_DOWNLOAD = $00001803;{$EXTERNALSYM URLACTION_SHELL_VERB} URLACTION_SHELL_VERB = $00001804;{$EXTERNALSYM URLACTION_SHELL_WEBVIEW_VERB} URLACTION_SHELL_WEBVIEW_VERB = $00001805;{$EXTERNALSYM URLACTION_SHELL_CURR_MAX} URLACTION_SHELL_CURR_MAX = $00001805;{$EXTERNALSYM URLACTION_SHELL_MAX} URLACTION_SHELL_MAX = $000019FF;{$EXTERNALSYM URLACTION_NETWORK_MIN} URLACTION_NETWORK_MIN = $00001A00;{$EXTERNALSYM URLACTION_CREDENTIALS_USE} URLACTION_CREDENTIALS_USE = $00001A00;{$EXTERNALSYM URLPOLICY_CREDENTIALS_SILENT_LOGON_OK} URLPOLICY_CREDENTIALS_SILENT_LOGON_OK = $00000000;{$EXTERNALSYM URLPOLICY_CREDENTIALS_MUST_PROMPT_USER} URLPOLICY_CREDENTIALS_MUST_PROMPT_USER = $00010000;{$EXTERNALSYM URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT} URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT = $00020000;{$EXTERNALSYM URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY} URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY = $00030000;{$EXTERNALSYM URLACTION_AUTHENTICATE_CLIENT} URLACTION_AUTHENTICATE_CLIENT = $00001A01;{$EXTERNALSYM URLPOLICY_AUTHENTICATE_CLEARTEXT_OK} URLPOLICY_AUTHENTICATE_CLEARTEXT_OK = $00000000;{$EXTERNALSYM URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE} URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE = $00010000;{$EXTERNALSYM URLPOLICY_AUTHENTICATE_MUTUAL_ONLY} URLPOLICY_AUTHENTICATE_MUTUAL_ONLY = $00030000;{$EXTERNALSYM URLACTION_NETWORK_CURR_MAX} URLACTION_NETWORK_CURR_MAX = $00001A01;{$EXTERNALSYM URLACTION_NETWORK_MAX} URLACTION_NETWORK_MAX = $00001BFF;{$EXTERNALSYM URLACTION_JAVA_MIN} URLACTION_JAVA_MIN = $00001C00;{$EXTERNALSYM URLACTION_JAVA_PERMISSIONS} URLACTION_JAVA_PERMISSIONS = $00001C00;{$EXTERNALSYM URLPOLICY_JAVA_PROHIBIT} URLPOLICY_JAVA_PROHIBIT = $00000000;{$EXTERNALSYM URLPOLICY_JAVA_HIGH} URLPOLICY_JAVA_HIGH = $00010000;{$EXTERNALSYM URLPOLICY_JAVA_MEDIUM} URLPOLICY_JAVA_MEDIUM = $00020000;{$EXTERNALSYM URLPOLICY_JAVA_LOW} URLPOLICY_JAVA_LOW = $00030000;{$EXTERNALSYM URLPOLICY_JAVA_CUSTOM} URLPOLICY_JAVA_CUSTOM = $00800000;{$EXTERNALSYM URLACTION_JAVA_CURR_MAX} URLACTION_JAVA_CURR_MAX = $00001C00;{$EXTERNALSYM URLACTION_JAVA_MAX} URLACTION_JAVA_MAX = $00001CFF;// The following Infodelivery actions should have no default policies// in the registry. They assume that no default policy means fall// back to the global restriction. If an admin sets a policy per// zone, then it overrides the global restriction.{$EXTERNALSYM URLACTION_INFODELIVERY_MIN} URLACTION_INFODELIVERY_MIN = $00001D00;{$EXTERNALSYM URLACTION_INFODELIVERY_NO_ADDING_CHANNELS} URLACTION_INFODELIVERY_NO_ADDING_CHANNELS = $00001D00;{$EXTERNALSYM URLACTION_INFODELIVERY_NO_EDITING_CHANNELS} URLACTION_INFODELIVERY_NO_EDITING_CHANNELS = $00001D01;{$EXTERNALSYM URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS} URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS = $00001D02;{$EXTERNALSYM URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS} URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS = $00001D03;{$EXTERNALSYM URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS} URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS = $00001D04;{$EXTERNALSYM URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS} URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS = $00001D05;{$EXTERNALSYM URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING} URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING = $00001D06;{$EXTERNALSYM URLACTION_INFODELIVERY_CURR_MAX} URLACTION_INFODELIVERY_CURR_MAX = $00001D06;{$EXTERNALSYM URLACTION_INFODELIVERY_MAX} URLACTION_INFODELIVERY_MAX = $00001DFF;{$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_MIN} URLACTION_CHANNEL_SOFTDIST_MIN = $00001E00;{$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_PERMISSIONS} URLACTION_CHANNEL_SOFTDIST_PERMISSIONS = $00001E05;{$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT} URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT = $00010000;{$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_PRECACHE} URLPOLICY_CHANNEL_SOFTDIST_PRECACHE = $00020000;{$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL} URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL = $00030000;{$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_MAX} URLACTION_CHANNEL_SOFTDIST_MAX = $00001EFF;// For each action specified above the system maintains// a set of policies for the action.// The only policies supported currently are permissions (i.e. is something allowed)// and logging status.// IMPORTANT: If you are defining your own policies don't overload the meaning of the// loword of the policy. You can use the hiword to store any policy bits which are only// meaningful to your action.// For an example of how to do this look at the URLPOLICY_JAVA above// Permissions{$EXTERNALSYM URLPOLICY_ALLOW} URLPOLICY_ALLOW = $00;{$EXTERNALSYM URLPOLICY_QUERY} URLPOLICY_QUERY = $01;{$EXTERNALSYM URLPOLICY_DISALLOW} URLPOLICY_DISALLOW = $03;// Notifications are not done when user already queried.{$EXTERNALSYM URLPOLICY_NOTIFY_ON_ALLOW} URLPOLICY_NOTIFY_ON_ALLOW = $10;{$EXTERNALSYM URLPOLICY_NOTIFY_ON_DISALLOW} URLPOLICY_NOTIFY_ON_DISALLOW = $20;// Logging is done regardless of whether user was queried.{$EXTERNALSYM URLPOLICY_LOG_ON_ALLOW} URLPOLICY_LOG_ON_ALLOW = $40;{$EXTERNALSYM URLPOLICY_LOG_ON_DISALLOW} URLPOLICY_LOG_ON_DISALLOW = $80;{$EXTERNALSYM URLPOLICY_MASK_PERMISSIONS} URLPOLICY_MASK_PERMISSIONS = $0F;// The ordinal #'s that define the predefined zones internet explorer knows about.// When we support user-defined zones their zone numbers should be between// URLZONE_USER_MIN and URLZONE_USER_MAXconst{$EXTERNALSYM URLZONE_PREDEFINED_MIN} URLZONE_PREDEFINED_MIN = 0;{$EXTERNALSYM URLZONE_LOCAL_MACHINE} URLZONE_LOCAL_MACHINE = 0;{$EXTERNALSYM URLZONE_INTRANET} URLZONE_INTRANET = URLZONE_LOCAL_MACHINE + 1;{$EXTERNALSYM URLZONE_TRUSTED} URLZONE_TRUSTED = URLZONE_INTRANET + 1;{$EXTERNALSYM URLZONE_INTERNET} URLZONE_INTERNET = URLZONE_TRUSTED + 1;{$EXTERNALSYM URLZONE_UNTRUSTED} URLZONE_UNTRUSTED = URLZONE_INTERNET + 1;{$EXTERNALSYM URLZONE_PREDEFINED_MAX} URLZONE_PREDEFINED_MAX = 999;{$EXTERNALSYM URLZONE_USER_MIN} URLZONE_USER_MIN = 1000;{$EXTERNALSYM URLZONE_USER_MAX} URLZONE_USER_MAX = 10000;{$EXTERNALSYM URLTEMPLATE_CUSTOM} URLTEMPLATE_CUSTOM = $00000000;{$EXTERNALSYM URLTEMPLATE_PREDEFINED_MIN} URLTEMPLATE_PREDEFINED_MIN = $00010000;{$EXTERNALSYM URLTEMPLATE_LOW} URLTEMPLATE_LOW = $00010000;{$EXTERNALSYM URLTEMPLATE_MEDIUM} URLTEMPLATE_MEDIUM = $00011000;{$EXTERNALSYM URLTEMPLATE_HIGH} URLTEMPLATE_HIGH = $00012000;{$EXTERNALSYM URLTEMPLATE_PREDEFINED_MAX} URLTEMPLATE_PREDEFINED_MAX = $00020000;{$EXTERNALSYM MAX_ZONE_PATH} MAX_ZONE_PATH = 260;{$EXTERNALSYM MAX_ZONE_DESCRIPTION} MAX_ZONE_DESCRIPTION = 200;{$EXTERNALSYM ZAFLAGS_CUSTOM_EDIT} ZAFLAGS_CUSTOM_EDIT = $00000001;{$EXTERNALSYM ZAFLAGS_ADD_SITES} ZAFLAGS_ADD_SITES = $00000002;{$EXTERNALSYM ZAFLAGS_REQUIRE_VERIFICATION} ZAFLAGS_REQUIRE_VERIFICATION = $00000004;{$EXTERNALSYM ZAFLAGS_INCLUDE_PROXY_OVERRIDE} ZAFLAGS_INCLUDE_PROXY_OVERRIDE = $00000008;{$EXTERNALSYM ZAFLAGS_INCLUDE_INTRANET_SITES} ZAFLAGS_INCLUDE_INTRANET_SITES = $00000010;{$EXTERNALSYM ZAFLAGS_NO_UI} ZAFLAGS_NO_UI = $00000020;{$EXTERNALSYM ZAFLAGS_SUPPORTS_VERIFICATION} ZAFLAGS_SUPPORTS_VERIFICATION = $00000040;{$EXTERNALSYM ZAFLAGS_UNC_AS_INTRANET} ZAFLAGS_UNC_AS_INTRANET = $00000080;type PZoneAttributes = ^TZoneAttributes;{$EXTERNALSYM _ZONEATTRIBUTES} _ZONEATTRIBUTES = packed record cbSize: ULONG; szDisplayName: array[0..260 - 1] of WideChar; szDescription: array[0..200 - 1] of WideChar; szIconPath: array[0..260 - 1] of WideChar; dwTemplateMinLevel: DWORD; dwTemplateRecommended: DWORD; dwTemplateCurrentLevel: DWORD; dwFlags: DWORD; end; TZoneAttributes = _ZONEATTRIBUTES;{$EXTERNALSYM ZONEATTRIBUTES} ZONEATTRIBUTES = _ZONEATTRIBUTES;// Gets the zone attributes (information in registry other than actual security// policies associated with the zone). Zone attributes are fixed as:// Sets the zone attributes (information in registry other than actual security// policies associated with the zone). Zone attributes as above.// Returns S_OK or ??? if failed to write the zone attributes.{ Registry Flags When reading, default behavior is: If HKLM allows override and HKCU value exists Then use HKCU value Else use HKLM value When writing, default behavior is same as HKCU If HKLM allows override Then Write to HKCU Else Fail}const{$EXTERNALSYM URLZONEREG_DEFAULT} URLZONEREG_DEFAULT = 0;{$EXTERNALSYM URLZONEREG_HKLM} URLZONEREG_HKLM = URLZONEREG_DEFAULT + 1;{$EXTERNALSYM URLZONEREG_HKCU} URLZONEREG_HKCU = URLZONEREG_HKLM + 1;// Gets a named custom policy associated with a zone;// e.g. the Java VM settings can be defined with a unique key such as 'Java'.// Custom policy support is intended to allow extensibility from the predefined// set of policies that IE4 has built in.//// pwszKey is the string name designating the custom policy. Components are// responsible for having unique names.// ppPolicy is the callee allocated buffer for the policy byte blob; caller is// responsible for freeing this buffer eventually.// pcbPolicy is the size of the byte blob returned.// dwRegFlags determines how registry is accessed (see above).// Returns S_OK if key is found and buffer allocated; ??? if key is not found (no buffer alloced).// Sets a named custom policy associated with a zone;// e.g. the Java VM settings can be defined with a unique key such as 'Java'.// Custom policy support is intended to allow extensibility from the predefined// set of policies that IE4 has built in.//// pwszKey is the string name designating the custom policy. Components are// responsible for having unique names.// ppPolicy is the caller allocated buffer for the policy byte blob.// pcbPolicy is the size of the byte blob to be set.// dwRegFlags determines if HTCU or HKLM is set.// Returns S_OK or ??? if failed to write the zone custom policy.// Gets action policy associated with a zone, the builtin, fixed-length policies info.// dwAction is the action code for the action as defined above.// pPolicy is the caller allocated buffer for the policy data.// cbPolicy is the size of the caller allocated buffer.// dwRegFlags determines how registry is accessed (see above).// Returns S_OK if action is valid; ??? if action is not valid.type{$EXTERNALSYM IInternetZoneManager} IInternetZoneManager = interface ['{79eac9ef-baf9-11ce-8c82-00aa004ba90b}'] // Gets the zone attributes (information in registry other than actual security // policies associated with the zone). Zone attributes are fixed as: function GetZoneAttributes(dwZone: DWORD; var ZoneAttributes: TZoneAttributes): HResult; stdcall; // Sets the zone attributes (information in registry other than actual security // policies associated with the zone). Zone attributes as above. // Returns S_OK or ??? if failed to write the zone attributes. function SetZoneAttributes(dwZone: DWORD; const ZoneAttributes: TZoneAttributes): HResult; stdcall; function GetZoneCustomPolicy(dwZone: DWORD; const guidKey: TGUID; out pPolicy: Pointer; out cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall; function SetZoneCustomPolicy(dwZone: DWORD; const guidKey: TGUID; pPolicy: Pointer; cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall; function GetZoneActionPolicy(dwZone, dwAction: DWORD; pPolicy: Pointer; cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall; function SetZoneActionPolicy(dwZone, dwAction: DWORD; pPolicy: Pointer; cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall; function PromptAction(dwAction: DWORD; hwndParent: HWnd; pwszUrl, pwszText: LPCWSTR; dwPromptFlags: DWORD): HResult; stdcall; function LogAction(dwAction: DWORD; pwszUrl, pwszText: LPCWSTR; dwLogFlags: DWORD): HResult; stdcall; function CreateZoneEnumerator(out dwEnum, dwCount: DWORD; dwFlags: DWORD): HResult; stdcall; function GetZoneAt(dwEnum, dwIndex: DWORD; out dwZone: DWORD): HResult; stdcall; function DestroyZoneEnumerator(dwEnum: DWORD): HResult; stdcall; function CopyTemplatePoliciesToZone(dwTemplate, dwZone, dwReserved: DWORD): HResult; stdcall; end;// Creates the security manager object. The first argument is the Service provider// to allow for delegation{$EXTERNALSYM CoInternetCreateSecurityManager}function CoInternetCreateSecurityManager(SP: IServiceProvider; var SM: IInternetSecurityManager; dwReserved: DWORD): HResult; stdcall;{$EXTERNALSYM CoInternetCreateZoneManager}function CoInternetCreateZoneManager(SP: IServiceProvider; var ZM: IInternetZoneManager; dwReserved: DWORD): HResult; stdcall;{$ENDIF}function SHLockShared(Handle: THandle; DWord: DWORD): Pointer; stdcall;function SHUnlockShared(Pnt: Pointer): BOOL; stdcall;function SHFreeShared(Handle: THandle; DWord: DWORD): Pointer; stdcall;function Free(Pidl: PItemIDList): BOOL; stdcall;function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: Integer; dwData: DWORD): HWND; stdcall;implementationconsturldll = 'url.dll';function InetIsOffline; external urldll name 'InetIsOffline';function MIMEAssociationDialogW; external urldll name 'MIMEAssociationDialogW';function MIMEAssociationDialogA; external urldll name 'MIMEAssociationDialogA';{$IFDEF UNICODE}function MIMEAssociationDialog; external urldll name 'MIMEAssociationDialogW';{$ELSE}function MIMEAssociationDialog; external urldll name 'MIMEAssociationDialogA';{$ENDIF}function URLAssociationDialogW; external urldll name 'URLAssociationDialogW';function URLAssociationDialogA; external urldll name 'URLAssociationDialogA';{$IFDEF UNICODE}function URLAssociationDialog; external urldll name 'URLAssociationDialogW';{$ELSE}function URLAssociationDialog; external urldll name 'URLAssociationDialogA';{$ENDIF}function TranslateURLA; external urldll name 'TranslateURLA';function TranslateURLW; external urldll name 'TranslateURLW';{$IFDEF UNICODE}function TranslateURL; external urldll name 'TranslateURLW';{$ELSE}function TranslateURL; external urldll name 'TranslateURLA';{$ENDIF}{$IFDEF VER120}const UrlMonLib = 'URLMON.DLL';function CoInternetGetSession; external UrlMonLib name 'CoInternetGetSession';function CoInternetCreateSecurityManager; external UrlMonLib name 'CoInternetCreateSecurityManager';function CoInternetCreateZoneManager; external UrlMonLib name 'CoInternetCreateZoneManager';{$ENDIF}function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: Integer; dwData: DWORD): HWND; stdcall; external 'hhctrl.ocx' name 'HtmlHelpA';function SHLockShared; external 'shell32.dll' index 521;function SHUnlockShared; external 'shell32.dll' index 522;function SHFreeShared; external 'shell32.dll' index 523;function Free; external 'comctl32.dll' index 73;end. 我的这个文件是在 source\Internet 目录下的。 已知屏幕上的三个点(三角形的三个坐标点):求角平分线上的点的坐标 如何保证操作数据库的完整性? 急急!!怎么通过网关发短信啊?谁有接口或源码帮忙发我一份啊 求助!连结sql server时出现错误!!! Frame如何实现代码重用? 为接口类扩充事件,遇到的问题?? 工具栏和菜单回自动隐藏 如何使用TValueListEditor的OnValidate事件? 请来看看 请问有没有更好的方法自杀? 欢迎到我的主页http://www.tommstudio.com看看。 兄弟们,救救我吧,我非得吧硬盘里得程序给弄出来!
版本:1999年3月13日,version 1.0 使用HTML 帮助的Delphi声明文件 声明:
0.本程序完全免费,在Delphi 4.0 C/S下通过,代码同样适用于Delphi3
所有内容均来自Microsoft公司提供的HTML Help Workshop 软件包。
本文件转换自该软件包的HTMLHelp.H文件,并加入针对Delphi的修改 1.本文件只能用于非盈利性质的自由开发。不能使用于商业应用。
对于违反该条件带来的法律纠纷,不符任何责任。 2.本程序不对任何由此开发的应用程序的安全性做出保证。这是程序开发者的责任。 3.本程序在传播中不得删除原作者的声明,但可以修改,修改者必须注明身份,写明
修改内容,并通知本人。 4.进一步的HTML Help的使用,HTML Help Workshop下载,请参考微软网站
http://www.microsoft.com/workshop/author/htmlhelp/
或者HTML Help Workshop的联机帮助 5.这个文件及例程是我在工余研究了两天才搞定的,作为中国的程序员,望大家
齐心协力,共同进步。 作者: 陈刚(calf is my nickname)
email: [email protected], [email protected] Micorsoft 公司的HTML Help的版权声明:
Copyright (c) 1999-1997, Microsoft Corp. All rights reserved.
***************************************************************************)unit HTMLHelp_Decl;interfaceuses Windows;const
// Commands to pass to HtmlHelp()
HH_DISPLAY_TOPIC = $0000;
HH_HELP_FINDER = $0000; // WinHelp equivalent
HH_DISPLAY_TOC = $0001; // not currently implemented
HH_DISPLAY_INDEX = $0002; // not currently implemented
HH_DISPLAY_SEARCH = $0003; // not currently implemented
HH_SET_WIN_TYPE = $0004;
HH_GET_WIN_TYPE = $0005;
HH_GET_WIN_HANDLE = $0006;
HH_ENUM_INFO_TYPE = $0007; // Get Info type name, call repeatedly to enumerate, -1 at end
HH_SET_INFO_TYPE = $0008; // Add Info type to filter.
HH_SYNC = $0009;
HH_RESERVED1 = $000A;
HH_RESERVED2 = $000B;
HH_RESERVED3 = $000C;
HH_KEYWORD_LOOKUP = $000D;
HH_DISPLAY_TEXT_POPUP = $000E; // display string resource id or text in a popup window
HH_HELP_CONTEXT = $000F; // display mapped numeric value in dwData
HH_TP_HELP_CONTEXTMENU = $0010; // text popup help, same as WinHelp HELP_CONTEXTMENU
HH_TP_HELP_WM_HELP = $0011; // text popup help, same as WinHelp HELP_WM_HELP
HH_CLOSE_ALL = $0012; // close all windows opened directly or indirectly by the caller
HH_ALINK_LOOKUP = $0013; // ALink version of HH_KEYWORD_LOOKUP
HH_GET_LAST_ERROR = $0014; // not currently implemented // See HHERROR.h
HH_ENUM_CATEGORY = $0015; // Get category name, call repeatedly to enumerate, -1 at end
HH_ENUM_CATEGORY_IT = $0016; // Get category info type members, call repeatedly to enumerate, -1 at end
HH_RESET_IT_FILTER = $0017; // Clear the info type filter of all info types.
HH_SET_INCLUSIVE_FILTER = $0018; // set inclusive filtering method for untyped topics to be included in display
HH_SET_EXCLUSIVE_FILTER = $0019; // set exclusive filtering method for untyped topics to be excluded from display
HH_INITIALIZE = $001C; // Initializes the help system.
HH_UNINITIALIZE = $001D; // Uninitializes the help system.
HH_PRETRANSLATEMESSAGE = $00FD; // Pumps messages. (NULL, NULL, MSG*).
HH_SET_GLOBAL_PROPERTY = $00FC; // Set a global property. (NULL, NULL, HH_GPROP) HHWIN_PROP_TAB_AUTOHIDESHOW = (1 shl 0); // Automatically hide/show tri-pane window
HHWIN_PROP_ONTOP = (1 shl 1); // Top-most window
HHWIN_PROP_NOTITLEBAR = (1 shl 2); // no title bar
HHWIN_PROP_NODEF_STYLES = (1 shl 3); // no default window styles (only HH_WINTYPE.dwStyles)
HHWIN_PROP_NODEF_EXSTYLES = (1 shl 4); // no default extended window styles (only HH_WINTYPE.dwExStyles)
HHWIN_PROP_TRI_PANE = (1 shl 5); // use a tri-pane window
HHWIN_PROP_NOTB_TEXT = (1 shl 6); // no text on toolbar buttons
HHWIN_PROP_POST_QUIT = (1 shl 7); // post WM_QUIT message when window closes
HHWIN_PROP_AUTO_SYNC = (1 shl 8); // automatically ssync contents and index
HHWIN_PROP_TRACKING = (1 shl 9); // send tracking notification messages
HHWIN_PROP_TAB_SEARCH = (1 shl 10); // include search tab in navigation pane
HHWIN_PROP_TAB_HISTORY = (1 shl 11); // include history tab in navigation pane
HHWIN_PROP_TAB_FAVORITES = (1 shl 12); // include favorites tab in navigation pane
HHWIN_PROP_CHANGE_TITLE = (1 shl 13); // Put current HTML title in title bar
HHWIN_PROP_NAV_ONLY_WIN = (1 shl 14); // Only display the navigation window
HHWIN_PROP_NO_TOOLBAR = (1 shl 15); // Don't display a toolbar
HHWIN_PROP_MENU = (1 shl 16); // Menu
HHWIN_PROP_TAB_ADVSEARCH = (1 shl 17); // Advanced FTS UI.
HHWIN_PROP_USER_POS = (1 shl 18); // After initial creation, user controls window size/position
HHWIN_PROP_TAB_CUSTOM1 = (1 shl 19); // Use custom tab #1
HHWIN_PROP_TAB_CUSTOM2 = (1 shl 20); // Use custom tab #2
HHWIN_PROP_TAB_CUSTOM3 = (1 shl 21); // Use custom tab #3
HHWIN_PROP_TAB_CUSTOM4 = (1 shl 22); // Use custom tab #4
HHWIN_PROP_TAB_CUSTOM5 = (1 shl 23); // Use custom tab #5
HHWIN_PROP_TAB_CUSTOM6 = (1 shl 24); // Use custom tab #6
HHWIN_PROP_TAB_CUSTOM7 = (1 shl 25); // Use custom tab #7
HHWIN_PROP_TAB_CUSTOM8 = (1 shl 26); // Use custom tab #8
HHWIN_PROP_TAB_CUSTOM9 = (1 shl 27); // Use custom tab #9
HHWIN_TB_MARGIN = (1 shl 28); // the window type has a margin HHWIN_PARAM_PROPERTIES = (1 shl 1); // valid fsWinProperties
HHWIN_PARAM_STYLES = (1 shl 2); // valid dwStyles
HHWIN_PARAM_EXSTYLES = (1 shl 3); // valid dwExStyles
HHWIN_PARAM_RECT = (1 shl 4); // valid rcWindowPos
HHWIN_PARAM_NAV_WIDTH = (1 shl 5); // valid iNavWidth
HHWIN_PARAM_SHOWSTATE = (1 shl 6); // valid nShowState
HHWIN_PARAM_INFOTYPES = (1 shl 7); // valid apInfoTypes
HHWIN_PARAM_TB_FLAGS = (1 shl 8); // valid fsToolBarFlags
HHWIN_PARAM_EXPANSION = (1 shl 9); // valid fNotExpanded
HHWIN_PARAM_TABPOS = (1 shl 10); // valid tabpos
HHWIN_PARAM_TABORDER = (1 shl 11); // valid taborder
HHWIN_PARAM_HISTORY_COUNT = (1 shl 12); // valid cHistory
HHWIN_PARAM_CUR_TAB = (1 shl 13); // valid curNavType HHWIN_BUTTON_EXPAND = (1 shl 1); // Expand/contract button
HHWIN_BUTTON_BACK = (1 shl 2); // Back button
HHWIN_BUTTON_FORWARD = (1 shl 3); // Forward button
HHWIN_BUTTON_STOP = (1 shl 4); // Stop button
HHWIN_BUTTON_REFRESH = (1 shl 5); // Refresh button
HHWIN_BUTTON_HOME = (1 shl 6); // Home button
HHWIN_BUTTON_BROWSE_FWD = (1 shl 7); // not implemented
HHWIN_BUTTON_BROWSE_BCK = (1 shl 8); // not implemented
HHWIN_BUTTON_NOTES = (1 shl 9); // not implemented
HHWIN_BUTTON_CONTENTS = (1 shl 10); // not implemented
HHWIN_BUTTON_SYNC = (1 shl 11); // Sync button
HHWIN_BUTTON_OPTIONS = (1 shl 12); // Options button
HHWIN_BUTTON_PRINT = (1 shl 13); // Print button
HHWIN_BUTTON_INDEX = (1 shl 14); // not implemented
HHWIN_BUTTON_SEARCH = (1 shl 15); // not implemented
HHWIN_BUTTON_HISTORY = (1 shl 16); // not implemented
HHWIN_BUTTON_FAVORITES = (1 shl 17); // not implemented
HHWIN_BUTTON_JUMP1 = (1 shl 18);
HHWIN_BUTTON_JUMP2 = (1 shl 19);
HHWIN_BUTTON_ZOOM = (1 shl 20);
HHWIN_BUTTON_TOC_NEXT = (1 shl 21);
HHWIN_BUTTON_TOC_PREV = (1 shl 22); HHWIN_DEF_BUTTONS = (HHWIN_BUTTON_EXPAND or
HHWIN_BUTTON_BACK or
HHWIN_BUTTON_OPTIONS or
HHWIN_BUTTON_PRINT);// Button IDs
IDTB_EXPAND = 200;
IDTB_CONTRACT = 201;
IDTB_STOP = 202;
IDTB_REFRESH = 203;
IDTB_BACK = 204;
IDTB_HOME = 205;
IDTB_SYNC = 206;
IDTB_PRINT = 207;
IDTB_OPTIONS = 208;
IDTB_FORWARD = 209;
IDTB_NOTES = 210; // not implemented
IDTB_BROWSE_FWD = 211;
IDTB_BROWSE_BACK = 212;
IDTB_CONTENTS = 213; // not implemented
IDTB_INDEX = 214; // not implemented
IDTB_SEARCH = 215; // not implemented
IDTB_HISTORY = 216; // not implemented
IDTB_FAVORITES = 217; // not implemented
IDTB_JUMP1 = 218;
IDTB_JUMP2 = 219;
IDTB_CUSTOMIZE = 221;
IDTB_ZOOM = 222;
IDTB_TOC_NEXT = 223;
IDTB_TOC_PREV = 224;// Notification codes
HHN_FIRST = (0 - 860);
HHN_LAST = (0 - 879); HHN_NAVCOMPLETE = (HHN_FIRST - 0);
HHN_TRACK = (HHN_FIRST - 1);
HHN_WINDOW_CREATE = (HHN_FIRST - 2);type
tagHHN_NOTIFY = record
hdr: NMHDR;
pszUrl: PChar; // Multi-byte, null-terminated string
end;
HHN_NOTIFY = tagHHN_NOTIFY; tagHH_POPUP = record
cbStruct: integer; // sizeof this structure
hinst: longint; // instance handle for string resource
idString: UINT; // string resource id, or text id if pszFile is specified in HtmlHelp call
pszText: LPCTSTR; // used if idString is zero
pt: TPOINT; // top center of popup window
clrForeground: COLORREF; // use -1 for default
clrBackground: COLORREF; // use -1 for default
rcMargins: TRECT; // amount of space between edges of window and text, -1 for each member to ignore
pszFont: LPCTSTR; // facename, point size, char set, BOLD ITALIC UNDERLINE
end; HH_POPUP = tagHH_POPUP; tagHH_AKLINK = record
cbStruct: integer; // sizeof this structure
fReserved: BOOL; // must be FALSE (really!)
pszKeywords: LPCTSTR; // semi-colon separated keywords
pszUrl: LPCTSTR; // URL to jump to if no keywords found (may be NULL)
pszMsgText: LPCTSTR; // Message text to display in MessageBox if pszUrl is NULL and no keyword match
pszMsgTitle: LPCTSTR; // Message text to display in MessageBox if pszUrl is NULL and no keyword match
pszWindow: LPCTSTR; // Window to display URL in
fIndexOnFail: BOOL; // Displays index if keyword lookup fails.
end;
HH_AKLINK = tagHH_AKLINK;const
HHWIN_NAVTYPE_TOC = 0;
HHWIN_NAVTYPE_INDEX = 1;
HHWIN_NAVTYPE_SEARCH = 2;
HHWIN_NAVTYPE_FAVORITES = 3;
HHWIN_NAVTYPE_HISTORY = 4; // not implemented
HHWIN_NAVTYPE_AUTHOR = 5;
HHWIN_NAVTYPE_CUSTOM_FIRST = 11; IT_INCLUSIVE = 0;
IT_EXCLUSIVE = 1;
IT_HIDDEN = 2;type
tagHH_ENUM_IT = record
cbStruct: integer; // size of this structure
iType: integer; // the type of the information type ie. Inclusive, Exclusive, or Hidden
pszCatName: LPCSTR; // Set to the name of the Category to enumerate the info types in a category; else NULL
pszITName: LPCSTR; // volitile pointer to the name of the infotype. Allocated by call. Caller responsible for freeing
pszITDescription: LPCSTR; // volitile pointer to the description of the infotype.
end; HH_ENUM_IT = tagHH_ENUM_IT;
PHH_ENUM_IT = ^tagHH_ENUM_IT; tagHH_ENUM_CAT = record
cbStruct: integer; // size of this structure
pszCatName: LPCSTR; // volitile pointer to the category name
pszCatDescription: LPCSTR; // volitile pointer to the category description
end; HH_ENUM_CAT = tagHH_ENUM_CAT;
PHH_ENUM_CAT = ^tagHH_ENUM_CAT; tagHH_SET_INFOTYPE = record
cbStruct: integer; // the size of this structure
pszCatName: LPCSTR; // the name of the category, if any, the InfoType is a member of.
pszInfoTypeName: LPCSTR; // the name of the info type to add to the filter
end; HH_SET_INFOTYPE = tagHH_SET_INFOTYPE;
PHH_SET_INFOTYPE = ^tagHH_SET_INFOTYPE; HH_INFOTYPE = DWORD;
PHH_INFOTYPE = ^HH_INFOTYPE;const
HHWIN_NAVTAB_TOP = 0;
HHWIN_NAVTAB_LEFT = 1;
HHWIN_NAVTAB_BOTTOM = 2;
HH_MAX_TABS = 19; // maximum number of tabs
HH_TAB_CONTENTS = 0;
HH_TAB_INDEX = 1;
HH_TAB_SEARCH = 2;
HH_TAB_FAVORITES = 3;
HH_TAB_HISTORY = 4;
HH_TAB_AUTHOR = 5;
HH_TAB_CUSTOM_FIRST = 11;
HH_TAB_CUSTOM_LAST = HH_MAX_TABS;
HH_MAX_TABS_CUSTOM = HH_TAB_CUSTOM_LAST - HH_TAB_CUSTOM_FIRST + 1;
// HH_DISPLAY_SEARCH Command Related Structures and Constants
HH_FTS_DEFAULT_PROXIMITY = -1;type
tagHH_FTS_QUERY = record
cbStruct: integer; // Sizeof structure in bytes.
fUniCodeStrings: BOOL; // TRUE if all strings are unicode.
pszSearchQuery: LPCTSTR; // String containing the search query.
iProximity: LongInt; // Word proximity.
fStemmedSearch: BOOL; // TRUE for StemmedSearch only.
fTitleOnly: BOOL; // TRUE for Title search only.
fExecute: BOOL; // TRUE to initiate the search.
pszWindow: LPCTSTR; // Window to display in
end;
HH_FTS_QUERY = tagHH_FTS_QUERY;// HH_WINTYPE Structure tagHH_WINTYPE = record
cbStruct: integer; // IN: size of this structure including all Information Types
fUniCodeStrings: BOOL; // IN/OUT: TRUE if all strings are in UNICODE
pszType: LPCTSTR; // IN/OUT: Name of a type of window
fsValidMembers: DWORD; // IN: Bit flag of valid members (HHWIN_PARAM_)
fsWinProperties: DWORD; // IN/OUT: Properties/attributes of the window (HHWIN_) pszCaption: LPCTSTR; // IN/OUT: Window title
dwStyles: DWORD; // IN/OUT: Window styles
dwExStyles: DWORD; // IN/OUT: Extended Window styles
rcWindowPos: TRECT; // IN: Starting position, OUT: current position
nShowState: integer; // IN: show state (e.g., SW_SHOW)
hwndHelp: HWND; // OUT: window handle
hwndCaller: HWND; // OUT: who called this window
paInfoTypes: ^HH_INFOTYPE; // IN: Pointer to an array of Information Types // The following members are only valid if HHWIN_PROP_TRI_PANE is set
hwndToolBar: HWND; // OUT: toolbar window in tri-pane window
hwndNavigation: HWND; // OUT: navigation window in tri-pane window
hwndHTML: HWND; // OUT: window displaying HTML in tri-pane window
iNavWidth: integer; // IN/OUT: width of navigation window
rcHTML: TRECT; // OUT: HTML window coordinates pszToc: LPCTSTR; // IN: Location of the table of contents file
pszIndex: LPCTSTR; // IN: Location of the index file
pszFile: LPCTSTR; // IN: Default location of the html file
pszHome: LPCTSTR; // IN/OUT: html file to display when Home button is clicked
fsToolBarFlags: DWORD; // IN: flags controling the appearance of the toolbar
fNotExpanded: BOOL; // IN: TRUE/FALSE to contract or expand, OUT: current state
curNavType: integer; // IN/OUT: UI to display in the navigational pane
tabpos: integer; // IN/OUT: HHWIN_NAVTAB_TOP, HHWIN_NAVTAB_LEFT, or HHWIN_NAVTAB_BOTTOM
idNotify: integer; // IN: ID to use for WM_NOTIFY messages
tabOrder: array[0..HH_MAX_TABS] of BYTE; // IN/OUT: tab order: Contents, Index, Search, History, Favorites, Reserved 1-5, Custom tabs
cHistory: integer; // IN/OUT: number of history items to keep (default is 30)
pszJump1: LPCTSTR; // Text for HHWIN_BUTTON_JUMP1
pszJump2: LPCTSTR; // Text for HHWIN_BUTTON_JUMP2
pszUrlJump1: LPCTSTR; // URL for HHWIN_BUTTON_JUMP1
pszUrlJump2: LPCTSTR; // URL for HHWIN_BUTTON_JUMP2
rcMinSize: TRECT; // Minimum size for window (ignored in version 1)
cbInfoTypes: integer; // size of paInfoTypes:
pszCustomTabs: LPCTSTR; // multiple zero-terminated strings
end;
HH_WINTYPE = tagHH_WINTYPE;
PHH_WINTYPE = ^tagHH_WINTYPE; THHACT = (
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
); tagHHNTRACK = record
hdr: NMHDR;
pszCurUrl: PChar; // Multi-byte, null-terminated string
idAction: integer; // HHACT_ value
phhWinType: ^HH_WINTYPE; // Current window type structure
end;
HHNTRACK = tagHHNTRACK;///////////////////////////////////////////////////////////////////////////////
//
// Global Control Properties.
//
// tagHH_GPROPID = (
const
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 = tagHH_GPROPID;
type
HH_GPROPID = integer;
///////////////////////////////////////////////////////////////////////////////
//
// Global Property structure
//
tagHH_GLOBAL_PROPERTY = record
id: HH_GPROPID;
vari: Variant;
end; HH_GLOBAL_PROPERTY = tagHH_GLOBAL_PROPERTY; DWORD_PTR = ^DWORD;(********************** Declarations (newly added by Chen Gang) ***********************)
function HtmlHelp(hwndCaller: HWND; strFile: string; uCommand: UINT; dwData: DWORD_PTR): HWND;
procedure CloseHtmlHelpSystem;
(********************** Declarations finished(newly added by Chen Gang) ***********************)implementationuses
SysUtils;
const
HHControlInstance : THandle = 0;
dwCookie : DWORD = 0;
var
HtmlHelpA : function(hwndCaller: HWND; pszFile: PChar; uCommand: UINT; dwData: DWORD_PTR): HWND; stdcall;(* function implementatoins *)function HtmlHelp(hwndCaller: HWND; strFile: string; uCommand: UINT; dwData: DWORD_PTR): HWND;
var
OcxFileName : string;
p : PChar;
begin
if HHControlInstance = 0 then
begin
OcxFileName := StringOfChar(' ', 256);
p := PChar(OcxFilename);
GetSystemDirectory(p, 255);
StrCat(p, '\HHCTRL.OCX');
HHControlInstance := LoadLibrary(P);
if HHControlInstance = 0 then
raise exception.Create('HHCtrl.OCX not installed!'#13' HTMLHELP cannot displayed!');
@HtmlHelpA := GetProcAddress(HHControlInstance, 'HtmlHelpA');
if @HtmlHelpA = nil then
raise exception.Create('Function HTMLHELP cannot loaded!');
HtmlHelpA(0, nil, HH_INITIALIZE, (@dwCookie));
end;
Result := HtmlHelpA(hwndCaller, PChar(strFile), uCommand, dwData);
end;procedure CloseHtmlHelpSystem;
begin
if HHControlInstance <> 0 then
begin
HtmlHelpA(0, nil, HH_UNINITIALIZE, DWORD_PTR(dwCookie));
FreeLibrary(HHControlInstance);
end;
end;end.
* IECONST 1.00 (July 27, 2000)*
*******************************)unit IeConst;interfaceuses ShlObj, Activex, Windows;
const IID_IDocHostUIHandler: TGUID = '{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}';
IID_IDocHostUIHandler2: TGUID = '{3050f6d0-98b5-11cf-bb82-00aa00bdce0b}';
IID_IDocHostShowUI: TGUID = '{c4d244b0-d43e-11cf-893b-00aa00bdce1a}';
GUID_TriEditCommandGroup: TGUID = '{2582F1C0-084E-11d1-9A0E-006097C9B344}';
CMDSETID_Forms3: TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}'; IID_IQueryInfo: TGUID = (D1: $00021500; D2: $0000; D3: $0000; D4: ($C0, $00, $00, $00, $00, $00, $00, $46)); MSOCMDF_SUPPORTED = OLECMDF_SUPPORTED;
MSOCMDF_ENABLED = OLECMDF_ENABLED; MSOCMDEXECOPT_PROMPTUSER = OLECMDEXECOPT_PROMPTUSER;
MSOCMDEXECOPT_DONTPROMPTUSER = OLECMDEXECOPT_DONTPROMPTUSER; InchToMetric = 25.4; NO_COMMAND = 0;
VIEW_COMMAND = 1;
EXPLORE_COMMAND = 2;
FIND_COMMAND = 3; ISDigit = ['0'..'9', '-', '+']; CONTEXT_MENU_DEFAULT = 0;
CONTEXT_MENU_IMAGE = 1;
CONTEXT_MENU_CONTROL = 2;
CONTEXT_MENU_TABLE = 3;
// in browse mode
CONTEXT_MENU_TEXTSELECT = 4;
CONTEXT_MENU_ANCHOR = 5;
CONTEXT_MENU_UNKNOWN = 6;
// These 2 are mapped to IMAGE for the public")
CONTEXT_MENU_IMGDYNSRC = 7;
CONTEXT_MENU_IMGART = 8;
CONTEXT_MENU_DEBUG = 9;
CONTEXT_MENU_VSCROLL = 10;
CONTEXT_MENU_HSCROLL = 11; DISPID_AMBIENT_DLCONTROL = (-5512);
DISPID_AMBIENT_USERAGENT = (-5513); HTMLID_FIND = 1;
HTMLID_VIEWSOURCE = 2;
HTMLID_OPTIONS = 3; DOCHOSTUITYPE_BROWSE = 0;
DOCHOSTUITYPE_AUTHOR = 1; DOCHOSTUIDBLCLK_DEFAULT = 0;
DOCHOSTUIDBLCLK_SHOWPROPERTIES = 1;
DOCHOSTUIDBLCLK_SHOWCODE = 2; DOCHOSTUIFLAG_DIALOG = $0001;
DOCHOSTUIFLAG_DISABLE_HELP_MENU = $0002;
DOCHOSTUIFLAG_NO3DBORDER = $0004;
DOCHOSTUIFLAG_SCROLL_NO = $0008;
DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = $0010;
DOCHOSTUIFLAG_OPENNEWWIN = $0020;
DOCHOSTUIFLAG_DISABLE_OFFSCREEN = $0040;
DOCHOSTUIFLAG_FLAT_SCROLLBAR = $0080;
DOCHOSTUIFLAG_DIV_BLOCKDEFAULT = $0100;
DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = $0200;
DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY = $0400;
DOCHOSTUIFLAG_CODEPAGELINKEDFONTS = $0800;
DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = $1000;
DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = $2000;
DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = $4000;
DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION = $10000;
DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION = $20000; IDM_UNKNOWN = 0;
IDM_ALIGNBOTTOM = 1;
IDM_ALIGNHORIZONTALCENTERS = 2;
IDM_ALIGNLEFT = 3;
IDM_ALIGNRIGHT = 4;
IDM_ALIGNTOGRID = 5;
IDM_ALIGNTOP = 6;
IDM_ALIGNVERTICALCENTERS = 7;
IDM_ARRANGEBOTTOM = 8;
IDM_ARRANGERIGHT = 9;
IDM_BRINGFORWARD = 10;
IDM_BRINGTOFRONT = 11;
IDM_CENTERHORIZONTALLY = 12;
IDM_CENTERVERTICALLY = 13;
IDM_CODE = 14;
IDM_DELETE = 17;
IDM_FONTNAME = 18;
IDM_FONTSIZE = 19;
IDM_GROUP = 20;
IDM_HORIZSPACECONCATENATE = 21;
IDM_HORIZSPACEDECREASE = 22;
IDM_HORIZSPACEINCREASE = 23;
IDM_HORIZSPACEMAKEEQUAL = 24;
IDM_INSERTOBJECT = 25;
IDM_MULTILEVELREDO = 30;
IDM_SENDBACKWARD = 32;
IDM_SENDTOBACK = 33;
IDM_SHOWTABLE = 34;
IDM_SIZETOCONTROL = 35;
IDM_SIZETOCONTROLHEIGHT = 36;
IDM_SIZETOCONTROLWIDTH = 37;
IDM_SIZETOFIT = 38;
IDM_SIZETOGRID = 39;
IDM_SNAPTOGRID = 40;
IDM_TABORDER = 41;
IDM_TOOLBOX = 42;
IDM_MULTILEVELUNDO = 44;
IDM_UNGROUP = 45;
IDM_VERTSPACECONCATENATE = 46;
IDM_VERTSPACEDECREASE = 47;
IDM_VERTSPACEINCREASE = 48;
IDM_VERTSPACEMAKEEQUAL = 49;
IDM_JUSTIFYFULL = 50;
IDM_BACKCOLOR = 51;
IDM_BOLD = 52;
IDM_BORDERCOLOR = 53;
IDM_FLAT = 54;
IDM_FORECOLOR = 55;
IDM_ITALIC = 56;
IDM_JUSTIFYCENTER = 57;
IDM_JUSTIFYGENERAL = 58;
IDM_JUSTIFYLEFT = 59;
IDM_JUSTIFYRIGHT = 60;
IDM_RAISED = 61;
IDM_SUNKEN = 62;
IDM_UNDERLINE = 63;
IDM_CHISELED = 64;
IDM_ETCHED = 65;
IDM_SHADOWED = 66;
IDM_FIND = 67;
IDM_SHOWGRID = 69;
IDM_OBJECTVERBLIST0 = 72;
IDM_OBJECTVERBLIST1 = 73;
IDM_OBJECTVERBLIST2 = 74;
IDM_OBJECTVERBLIST3 = 75;
IDM_OBJECTVERBLIST4 = 76;
IDM_OBJECTVERBLIST5 = 77;
IDM_OBJECTVERBLIST6 = 78;
IDM_OBJECTVERBLIST7 = 79;
IDM_OBJECTVERBLIST8 = 80;
IDM_OBJECTVERBLIST9 = 81;
IDM_CONVERTOBJECT = 82;
IDM_CUSTOMCONTROL = 83;
IDM_CUSTOMIZEITEM = 84;
IDM_RENAME = 85;
IDM_IMPORT = 86;
IDM_NEWPAGE = 87;
IDM_MOVE = 88;
IDM_CANCEL = 89;
IDM_FONT = 90;
IDM_STRIKETHROUGH = 91;
IDM_DELETEWORD = 92; IDM_FOLLOW_ANCHOR = 2008; IDM_INSINPUTIMAGE = 2114;
IDM_INSINPUTBUTTON = 2115;
IDM_INSINPUTRESET = 2116;
IDM_INSINPUTSUBMIT = 2117;
IDM_INSINPUTUPLOAD = 2118;
IDM_INSFIELDSET = 2119; IDM_PASTEINSERT = 2120;
IDM_REPLACE = 2121;
IDM_EDITSOURCE = 2122;
IDM_BOOKMARK = 2123;
IDM_HYPERLINK = 2124;
IDM_UNLINK = 2125;
IDM_BROWSEMODE = 2126;
IDM_EDITMODE = 2127;
IDM_UNBOOKMARK = 2128; IDM_TOOLBARS = 2130;
IDM_STATUSBAR = 2131;
IDM_FORMATMARK = 2132;
IDM_TEXTONLY = 2133;
IDM_OPTIONS = 2135;
IDM_FOLLOWLINKC = 2136;
IDM_FOLLOWLINKN = 2137;
IDM_VIEWSOURCE = 2139;
IDM_ZOOMPOPUP = 2140; // IDM_BASELINEFONT1, IDM_BASELINEFONT2, IDM_BASELINEFONT3, IDM_BASELINEFONT4,
// and IDM_BASELINEFONT5 should be consecutive integers;
//
IDM_BASELINEFONT1 = 2141;
IDM_BASELINEFONT2 = 2142;
IDM_BASELINEFONT3 = 2143;
IDM_BASELINEFONT4 = 2144;
IDM_BASELINEFONT5 = 2145; IDM_HORIZONTALLINE = 2150;
IDM_LINEBREAKNORMAL = 2151;
IDM_LINEBREAKLEFT = 2152;
IDM_LINEBREAKRIGHT = 2153;
IDM_LINEBREAKBOTH = 2154;
IDM_NONBREAK = 2155;
IDM_SPECIALCHAR = 2156;
IDM_HTMLSOURCE = 2157;
IDM_IFRAME = 2158;
IDM_HTMLCONTAIN = 2159;
IDM_TEXTBOX = 2161;
IDM_TEXTAREA = 2162;
IDM_CHECKBOX = 2163;
IDM_RADIOBUTTON = 2164;
IDM_DROPDOWNBOX = 2165;
IDM_LISTBOX = 2166;
IDM_BUTTON = 2167;
IDM_IMAGE = 2168;
IDM_OBJECT = 2169;
IDM_1D = 2170;
IDM_IMAGEMAP = 2171;
IDM_FILE = 2172;
IDM_COMMENT = 2173;
IDM_SCRIPT = 2174;
IDM_JAVAAPPLET = 2175;
IDM_PLUGIN = 2176;
IDM_PAGEBREAK = 2177; IDM_PARAGRAPH = 2180;
IDM_FORM = 2181;
IDM_MARQUEE = 2182;
IDM_LIST = 2183;
IDM_ORDERLIST = 2184;
IDM_UNORDERLIST = 2185;
IDM_INDENT = 2186;
IDM_OUTDENT = 2187;
IDM_PREFORMATTED = 2188;
IDM_ADDRESS = 2189;
IDM_BLINK = 2190;
IDM_DIV = 2191; IDM_TABLEINSERT = 2200;
IDM_RCINSERT = 2201;
IDM_CELLINSERT = 2202;
IDM_CAPTIONINSERT = 2203;
IDM_CELLMERGE = 2204;
IDM_CELLSPLIT = 2205;
IDM_CELLSELECT = 2206;
IDM_ROWSELECT = 2207;
IDM_COLUMNSELECT = 2208;
IDM_TABLESELECT = 2209;
IDM_TABLEPROPERTIES = 2210;
IDM_CELLPROPERTIES = 2211;
IDM_ROWINSERT = 2212;
IDM_COLUMNINSERT = 2213; IDM_HELP_CONTENT = 2220;
IDM_HELP_ABOUT = 2221;
IDM_HELP_README = 2222; IDM_REMOVEFORMAT = 2230;
IDM_PAGEINFO = 2231;
IDM_TELETYPE = 2232;
IDM_GETBLOCKFMTS = 2233;
IDM_BLOCKFMT = 2234;
IDM_SHOWHIDE_CODE = 2235;
IDM_TABLE = 2236; IDM_COPYFORMAT = 2237;
IDM_PASTEFORMAT = 2238;
IDM_GOTO = 2239; IDM_CHANGEFONT = 2240;
IDM_CHANGEFONTSIZE = 2241;
IDM_INCFONTSIZE = 2242;
IDM_DECFONTSIZE = 2243;
IDM_INCFONTSIZE1PT = 2244;
IDM_DECFONTSIZE1PT = 2245;
IDM_CHANGECASE = 2246;
IDM_SUBSCRIPT = 2247;
IDM_SUPERSCRIPT = 2248;
IDM_SHOWSPECIALCHAR = 2249; IDM_CENTERALIGNPARA = 2250;
IDM_LEFTALIGNPARA = 2251;
IDM_RIGHTALIGNPARA = 2252;
IDM_REMOVEPARAFORMAT = 2253;
IDM_APPLYNORMAL = 2254;
IDM_APPLYHEADING1 = 2255;
IDM_APPLYHEADING2 = 2256;
IDM_APPLYHEADING3 = 2257; IDM_DOCPROPERTIES = 2260;
IDM_ADDFAVORITES = 2261;
IDM_COPYSHORTCUT = 2262;
IDM_SAVEBACKGROUND = 2263;
IDM_SETWALLPAPER = 2264;
IDM_COPYBACKGROUND = 2265;
IDM_CREATESHORTCUT = 2266;
IDM_PAGE = 2267;
IDM_SAVETARGET = 2268;
IDM_SHOWPICTURE = 2269;
IDM_SAVEPICTURE = 2270;
IDM_DYNSRCPLAY = 2271;
IDM_DYNSRCSTOP = 2272;
IDM_PRINTTARGET = 2273;
IDM_IMGARTPLAY = 2274;
IDM_IMGARTSTOP = 2275;
IDM_IMGARTREWIND = 2276;
IDM_PRINTQUERYJOBSPENDING = 2277; IDM_CONTEXTMENU = 2280;
IDM_GOBACKWARD = 2282;
IDM_GOFORWARD = 2283;
IDM_PRESTOP = 2284; IDM_CREATELINK = 2290;
IDM_COPYCONTENT = 2291; IDM_LANGUAGE = 2292; IDM_REFRESH = 2300;
IDM_STOPDOWNLOAD = 2301; IDM_ENABLE_INTERACTION = 2302; IDM_LAUNCHDEBUGGER = 2310;
IDM_BREAKATNEXT = 2311; IDM_INSINPUTHIDDEN = 2312;
IDM_INSINPUTPASSWORD = 2313; IDM_OVERWRITE = 2314; IDM_PARSECOMPLETE = 2315; IDM_HTMLEDITMODE = 2316; IDM_REGISTRYREFRESH = 2317;
IDM_COMPOSESETTINGS = 2318; IDM_SHOWALLTAGS = 2320;
IDM_SHOWALIGNEDSITETAGS = 2321;
IDM_SHOWSCRIPTTAGS = 2322;
IDM_SHOWSTYLETAGS = 2323;
IDM_SHOWCOMMENTTAGS = 2324;
IDM_SHOWAREATAGS = 2325;
IDM_SHOWUNKNOWNTAGS = 2326;
IDM_SHOWMISCTAGS = 2327;
IDM_SHOWZEROBORDERATDESIGNTIME = 2328; IDM_AUTODETECT = 2329; IDM_SCRIPTDEBUGGER = 2330; IDM_GETBYTESDOWNLOADED = 2331; IDM_NOACTIVATENORMALOLECONTROLS = 2332;
IDM_NOACTIVATEDESIGNTIMECONTROLS = 2333;
IDM_NOACTIVATEJAVAAPPLETS = 2334; IDM_SHOWWBRTAGS = 2340; IDM_PERSISTSTREAMSYNC = 2341;
IDM_SETDIRTY = 2342;
IDM_MIMECSET__FIRST__ = 3609;
IDM_MIMECSET__LAST__ = 3640; IDM_MENUEXT_FIRST__ = 3700;
IDM_MENUEXT_LAST__ = 3732;
IDM_MENUEXT_COUNT = 3733; ID_EDITMODE = 32801; IDM_OPEN = 2000;
IDM_NEW = 2001;
IDM_SAVE = 70;
IDM_SAVEAS = 71;
IDM_SAVECOPYAS = 2002;
IDM_PRINTPREVIEW = 2003;
IDM_PRINT = 27;
IDM_PAGESETUP = 2004;
IDM_SPELL = 2005;
IDM_PASTESPECIAL = 2006;
IDM_CLEARSELECTION = 2007;
IDM_PROPERTIES = 28;
IDM_REDO = 29;
IDM_UNDO = 43;
IDM_SELECTALL = 31;
IDM_ZOOMPERCENT = 50;
IDM_GETZOOM = 68;
IDM_STOP = 2138;
IDM_COPY = 15;
IDM_CUT = 16;
IDM_PASTE = 26; IDM_TRIED_IS_1D_ELEMENT = 0; //[out,VT_BOOL]
IDM_TRIED_IS_2D_ELEMENT = 1; //[out,VT_BOOL]
IDM_TRIED_NUDGE_ELEMENT = 2; //[in,VT_BYREF VARIANT.byref=LPPOINT]
IDM_TRIED_SET_ALIGNMENT = 3; //[in,VT_BYREF VARIANT.byref=LPPOINT]
IDM_TRIED_MAKE_ABSOLUTE = 4;
IDM_TRIED_LOCK_ELEMENT = 5;
IDM_TRIED_SEND_TO_BACK = 6;
IDM_TRIED_SEND_TO_FRONT = 7;
IDM_TRIED_SEND_BACKWARD = 8;
IDM_TRIED_SEND_FORWARD = 9;
IDM_TRIED_SEND_BEHIND_1D = 10;
IDM_TRIED_SEND_FRONT_1D = 11;
IDM_TRIED_CONSTRAIN = 12; //[in,VT_BOOL]
IDM_TRIED_SET_2D_DROP_MODE = 13; //[in,VT_BOOL]
IDM_TRIED_INSERTROW = 14;
IDM_TRIED_INSERTCOL = 15;
IDM_TRIED_DELETEROWS = 16;
IDM_TRIED_DELETECOLS = 17;
IDM_TRIED_MERGECELLS = 18;
IDM_TRIED_SPLITCELL = 19;
IDM_TRIED_INSERTCELL = 20;
IDM_TRIED_DELETECELLS = 21;
IDM_TRIED_INSERTTABLE = 22; //[in, VT_ARRAY]//WARNING WARNING WARNING!!! Don't forget to modify IDM_TRIED_LAST_CID
//when you add new Command IDs IDM_TRIED_LAST_CID = IDM_TRIED_INSERTTABLE;
CLSID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';type PDOCHOSTUIINFO = ^TDOCHOSTUIINFO;
TDOCHOSTUIINFO = record
cbSize: ULONG;
dwFlags: DWORD;
dwDoubleClick: DWORD;
chHostCss: POLESTR;
chHostNS: POLESTR;
end;
IDocHostShowUI = interface(IUnknown)
['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;
dwType: longint; lpstrHelpFile: POLESTR; dwHelpContext: longint;
var plResult: LRESULT): HRESULT; stdcall;
function ShowHelp(hwnd: THandle; pszHelpFile: POLESTR; uCommand: integer;
dwData: longint; ptMouse: TPoint;
var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
end; // IDocHostShowUI
IDocHostUIHandler = interface(IUnknown)
['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}']
function ShowContextMenu(const dwID: DWORD; const ppt: PPOINT;
const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT; stdcall;
function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
function ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject;
const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
const pDoc: IOleInPlaceUIWindow): HRESULT; stdcall;
function HideUI: HRESULT; stdcall;
function UpdateUI: HRESULT; stdcall;
function EnableModeless(const fEnable: BOOL): HRESULT; stdcall;
function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
function ResizeBorder(const prcBorder: PRECT;
const pUIWindow: IOleInPlaceUIWindow;
const fRameWindow: BOOL): HRESULT; stdcall;
function TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID;
const nCmdID: DWORD): HRESULT; stdcall;
function GetOptionKeyPath(var pchKey: POLESTR; const dw: DWORD): HRESULT; stdcall;
function GetDropTarget(const pDropTarget: IDropTarget;
out ppDropTarget: IDropTarget): HRESULT; stdcall;
function GetExternal(out ppDispatch: IDispatch): HRESULT; stdcall;
function TranslateUrl(const dwTranslate: DWORD; const pchURLIn: POLESTR;
var ppchURLOut: POLESTR): HRESULT; stdcall;
function FilterDataObject(const pDO: IDataObject;
out ppDORet: IDataObject): HRESULT; stdcall;
end; // IDocHostUIHandler
IDocHostUIHandler2 = interface(IUnknown)
['{3050f6d0-98b5-11cf-bb82-00aa00bdce0b}']
function GetOverrideKeyPath(pchKey: POLESTR; dw: DWORD): HRESULT; stdcall;
end;const
IID_IUniformResourceLocatorA: TGUID = (
D1:$FBF23B80; D2:$E3F0; D3:$101B; D4:($84,$88,$00,$AA,$00,$3E,$56,$F8)); IID_IUniformResourceLocatorW: TGUID = (
D1:$CABB0DA0; D2:$DA57; D3:$11CF; D4:($99,$74,$00,$20,$AF,$D7,$97,$62));
{$IFDEF UNICODE}
IID_IUniformResourceLocator: TGUID = (
D1:$CABB0DA0; D2:$DA57; D3:$11CF; D4:($99,$74,$00,$20,$AF,$D7,$97,$62));
{$ELSE}
IID_IUniformResourceLocator : TGUID = (
D1:$FBF23B80; D2:$E3F0; D3:$101B; D4:($84,$88,$00,$AA,$00,$3E,$56,$F8));
{$ENDIF}
const
CLSID_InternetShortCut : TGUID = (
d1:$FBF23B40; D2:$E3F0; D3:$101B; D4:($84,$88,$00,$AA,$00,$3E,$56,$F8)); SID_IUniformResourceLocatorA = '{FBF23B80-E3F0-101B-8488-00AA003E56F8}';
SID_IUniformResourceLocatorW = '{CABB0DA0-DA57-11CF-9974-0020AFD79762}';
{$IFDEF UNICODE}
SID_IUniformResourceLocator = SID_IUniformResourceLocatorW;
{$ELSE}
SID_IUniformResourceLocator = SID_IUniformResourceLocatorA;
{$ENDIF} IURL_SETURL_FL_GUESS_PROTOCOL = $0001; // Guess protocol if missing
IURL_SETURL_FL_USE_DEFAULT_PROTOCOL = $0002; // Use default protocol if missing IURL_INVOKECOMMAND_FL_ALLOW_UI = $0001;
IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB = $0002; // Ignore pcszVerb
IURL_INVOKECOMMAND_FL_DDEWAIT = $0004; // pass DDEWAIT to ShellExec TRANSLATEURL_FL_GUESS_PROTOCOL = $0001; // Guess protocol if missing
TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL = $0002; // Use default protocol if missing URLASSOCDLG_FL_USE_DEFAULT_NAME = $0001;
URLASSOCDLG_FL_REGISTER_ASSOC = $0002; MIMEASSOCDLG_FL_REGISTER_ASSOC = $0001;typePUrlInvokeCommandInfoA = ^TUrlInvokeCommandInfoA;TUrlInvokeCommandInfoA = record
dwcbSize : DWORD; // Size of structure
dwFlags : DWORD; // Bit field of IURL_INVOKECOMMAND_FLAGS
hwndParent : HWND; // Parent window. Valid only if IURL_INVOKECOMMAND_FL_ALLOW_UI is set.
pcszVerb : LPCSTR; // Verb to invoke. Ignored if IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB is set.
end;PUrlInvokeCommandInfoW = ^TUrlInvokeCommandInfoW;
TUrlInvokeCommandInfoW = record
dwcbSize : DWORD; // Size of structure
dwFlags : DWORD; // Bit field of IURL_INVOKECOMMAND_FLAGS
hwndParent : HWND; // Parent window. Valid only if IURL_INVOKECOMMAND_FL_ALLOW_UI is set.
pcszVerb : LPCWSTR; // Verb to invoke. Ignored if IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB is set.
end;{$IFDEF UNICODE}
PURLInvokeCommandInfo = ^TUrlInvokeCommandInfoW;
TUrlInvokeCommandInfo = TUrlInvokeCOmmandInfoW;
{$ELSE}
PURLInvokeCommandInfo = ^TUrlInvokeCommandInfoA;
TUrlInvokeCommandInfo = TUrlInvokeCOmmandInfoA;
{$ENDIF}
IUniformResourceLocatorA = interface(IUnknown)
[SID_IUniformResourceLocatorA]
function SetURL(pcszURL : LpcStr; dwInFlags: DWORD): HRESULT; stdcall;
function GetURL(ppszURL : LpStr): HRESULT; stdcall;
function InvokeCommand(purlici : PURLINVOKECOMMANDINFOA): HRESULT; stdcall; end; IUniformResourceLocatorW = interface(IUnknown)
[SID_IUniformResourceLocatorW]
function SetURL(pcszURL : LpcWStr; dwInFlags: DWORD): HRESULT; stdcall;
function GetURL(ppszURL : LpWStr): HRESULT; stdcall;
function InvokeCommand(purlici : PURLINVOKECOMMANDINFOW): HRESULT; stdcall;
end;
{$IFDEF UNICODE}
IUniformResourceLocator = IUniformResourceLocatorW;
{$ELSE}
IUniformResourceLocator = IUniformResourceLocatorA;
{$ENDIF}function TranslateURLA(pcszURL : LPCSTR;
dwInFlags : DWORD;
ppszTranslatedURL : LPSTR) : HRESULT; stdcall;
function TranslateURLW(pcszURL : LPCWSTR;
dwInFlags : DWORD;
ppszTranslatedURL : LPWSTR) : HRESULT; stdcall;{$IFDEF UNICODE}
function TranslateURL(pcszURL : LPCWSTR;
dwInFlags : DWORD;
ppszTranslatedURL : LPWSTR) : HRESULT; stdcall;
{$ELSE}
function TranslateURL(pcszURL : LPCSTR;
dwInFlags : DWORD;
ppszTranslatedURL : LPSTR) : HRESULT; stdcall;
{$ENDIF}
function URLAssociationDialogA(hwndParent : HWND;
dwInFlags : DWORD;
pcszFile : LPCSTR;
pcszURL : LPCSTR;
pszAppBuf : LPSTR;
ucAppBufLen : UINT) : HRESULT; stdcall;function URLAssociationDialogW(hwndParent : HWND;
dwInFlags : DWORD;
pcszFile : LPCWSTR;
pcszURL : LPCWSTR;
pszAppBuf : LPWSTR;
ucAppBufLen : UINT) : HRESULT; stdcall;{$IFDEF UNICODE}
function URLAssociationDialog(hwndParent : HWND;
dwInFlags : DWORD;
pcszFile : LPCWSTR;
pcszURL : LPCWSTR;
pszAppBuf : LPWSTR;
ucAppBufLen : UINT) : HRESULT; stdcall;
{$ELSE}
function URLAssociationDialog(hwndParent : HWND;
dwInFlags : DWORD;
pcszFile : LPCSTR;
pcszURL : LPCSTR;
pszAppBuf : LPSTR;
ucAppBufLen : UINT) : HRESULT; stdcall;
{$ENDIF}function MIMEAssociationDialogA(hwndParent : HWND;
dwInFlags : DWORD;
pcszFile : LPCSTR;
pcszMIMEContentType : LPCSTR;
pszAppBuf : LPSTR;
ucAppBufLen : UINT) : HRESULT; stdcall;
function MIMEAssociationDialogW(hwndParent : HWND;
dwInFlags : DWORD;
pcszFile : LPCWSTR;
pcszMIMEContentType : LPCWSTR;
pszAppBuf : LPWSTR;
ucAppBufLen : UINT) : HRESULT; stdcall;{$IFDEF UNICODE}
function MIMEAssociationDialog(hwndParent : HWND;
dwInFlags : DWORD;
pcszFile : LPCWSTR;
pcszMIMEContentType : LPCWSTR;
pszAppBuf : LPWSTR;
ucAppBufLen : UINT) : HRESULT; stdcall;
{$ELSE}
function MIMEAssociationDialog(hwndParent : HWND;
dwInFlags : DWORD;
pcszFile : LPCSTR;
pcszMIMEContentType : LPCSTR;
pszAppBuf : LPSTR;
ucAppBufLen : UINT) : HRESULT; stdcall;
{$ENDIF}function InetIsOffline(dwFlags: DWORD): BOOL; stdcall;
{$IFDEF VER120}const
IID_IInternetSession: TGUID = '{79eac9e7-baf9-11ce-8c82-00aa004ba90b}';
IID_IInternetSecurityMgrSite: TGUID = '{79eac9ed-baf9-11ce-8c82-00aa004ba90b}';
IID_IInternetSecurityManager: TGUID = '{79eac9ee-baf9-11ce-8c82-00aa004ba90b}';
IID_IInternetHostSecurityManager: TGUID = '{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}';
SID_IInternetSecurityManager: TGUID = '{79eac9ee-baf9-11ce-8c82-00aa004ba90b}';
SID_IInternetHostSecurityManager: TGUID = '{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}';
IID_IInternetZoneManager: TGUID = '{79eac9ef-baf9-11ce-8c82-00aa004ba90b}';
type
TUrlZoneReg = ULONG; PBindInfo = ^TBindInfo;
_tagBINDINFO = packed record
cbSize: ULONG;
szExtraInfo: LPWSTR;
stgmedData: TStgMedium;
grfBindInfoF: DWORD;
dwBindVerb: DWORD;
szCustomVerb: LPWSTR;
cbstgmedData: DWORD;
dwOptions: DWORD;
dwOptionsFlags: DWORD;
dwCodePage: DWORD;
securityAttributes: TSecurityAttributes;
iid: TGUID;
pUnk: IUnknown;
dwReserved: DWORD;
end;
TBindInfo = _tagBINDINFO;
BINDINFO = _tagBINDINFO;
{$NODEFINE POLEStrArray}
POLEStrArray = ^TOLESTRArray;
{$NODEFINE TOLEStrArray}
TOLEStrArray = array[0..MaxLongint div SizeOf(POLEStr) - 1] of POLEStr;{$EXTERNALSYM IInternetBindInfo}
IInternetBindInfo = interface
['{79eac9e1-baf9-11ce-8c82-00aa004ba90b}']
function GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult; stdcall;
function GetBindString(ulStringType: ULONG; wzStr: POLEStrArray; cEl: ULONG;
var cElFetched: ULONG): HResult; stdcall;
end; PProtocolData = ^TProtocolData;
{$EXTERNALSYM _tagPROTOCOLDATA}
_tagPROTOCOLDATA = packed record
grfFlags: DWORD;
dwState: DWORD;
pData: Pointer;
cbData: ULONG;
end;
TProtocolData = _tagPROTOCOLDATA;
{$EXTERNALSYM _tagPROTOCOLDATA}
PROTOCOLDATA = _tagPROTOCOLDATA;{$EXTERNALSYM IInternetProtocolSink}
IInternetProtocolSink = interface; // forward{$EXTERNALSYM IInternetProtocolRoot}
IInternetProtocolRoot = interface
['{79eac9e3-baf9-11ce-8c82-00aa004ba90b}']
function Start(szUrl: LPCWSTR; OIProtSink: IInternetProtocolSink;
OIBindInfo: IInternetBindInfo; grfPI, dwReserved: DWORD): HResult; stdcall;
function Continue(const ProtocolData: TProtocolData): HResult; stdcall;
function Abort(hrReason: HResult; dwOptions: DWORD): HResult; stdcall;
function Terminate(dwOptions: DWORD): HResult; stdcall;
function Suspend: HResult; stdcall;
function Resume: HResult; stdcall;
end;{$EXTERNALSYM IInternetProtocol}
IInternetProtocol = interface(IInternetProtocolRoot)
['{79eac9e4-baf9-11ce-8c82-00aa004ba90b}']
function Read(pv: Pointer; cb: ULONG; out cbRead: ULONG): HResult; stdcall;
function Seek(dlibMove: LARGE_INTEGER; dwOrigin: DWORD; out libNewPosition: ULARGE_INTEGER): HResult; stdcall;
function LockRequest(dwOptions: DWORD): HResult; stdcall;
function UnlockRequest: HResult; stdcall;
end;{$EXTERNALSYM IInternetProtocolSink}
IInternetProtocolSink = interface
['{79eac9e5-baf9-11ce-8c82-00aa004ba90b}']
function Switch(const ProtocolData: TProtocolData): HResult; stdcall;
function ReportProgress(ulStatusCode: ULONG; szStatusText: LPCWSTR): HResult; stdcall;
function ReportData(grfBSCF: DWORD; ulProgress, ulProgressMax: ULONG): HResult; stdcall;
function ReportResult(hrResult: HResult; dwError: DWORD; szResult: LPCWSTR): HResult; stdcall;
end;{$NODEFINE TLPCWSTRArray}
TLPCWSTRArray = array[0..MaxLongInt div SizeOf(LPCWSTR) - 1] of LPCWSTR;
{$NODEFINE PLPCWSTRArray}
PLPCWSTRArray = ^TLPCWSTRArray;{$EXTERNALSYM IInternetSession}
IInternetSession = interface
['{79eac9e7-baf9-11ce-8c82-00aa004ba90b}']
function RegisterNameSpace(CF: IClassFactory; const clsid: TCLSID; pwzProtocol: LPCWSTR;
cPatterns: ULONG; const pwzPatterns: PLPCWSTRArray; dwReserved: DWORD): HResult; stdcall;
function UnregisterNameSpace(CF: IClassFactory; pszProtocol: LPCWSTR): HResult; stdcall;
function RegisterMimeFilter(CF: IClassFactory; const rclsid: TCLSID;
pwzType: LPCWSTR): HResult; stdcall;
function UnregisterMimeFilter(CF: IClassFactory; pwzType: LPCWSTR): HResult; stdcall;
function CreateBinding(BC: IBindCtx; szUrl: LPCWSTR; UnkOuter: IUnknown; out Unk: IUnknown;
out OINetProt: IInternetProtocol; dwOption: DWORD): HResult; stdcall;
function SetSessionOption(dwOption: DWORD; pBuffer: Pointer; dwBufferLength: DWORD;
dwReserved: DWORD): HResult; stdcall;
function GetSessionOption(dwOption: DWORD; pBuffer: Pointer; var dwBufferLength: DWORD;
dwReserved: DWORD): HResult; stdcall;
end; // IInternetSession{$EXTERNALSYM CoInternetGetSession}
function CoInternetGetSession(dwSessionMode: DWORD; var pIInternetSession: IInternetSession;
dwReserved: DWORD): HResult; stdcall;type
{$EXTERNALSYM IInternetSecurityMgrSite}
IInternetSecurityMgrSite = interface
['{79eac9ed-baf9-11ce-8c82-00aa004ba90b}']
function GetWindow(out hwnd: HWnd): HResult; stdcall;
function EnableModeless(fEnable: BOOL): HResult; stdcall;
end;const
{$EXTERNALSYM MAX_SIZE_SECURITY_ID}
MAX_SIZE_SECURITY_ID = 512; // bytes; // MapUrlToZone returns the zone index given a URL
{$EXTERNALSYM PUAF_DEFAULT}
PUAF_DEFAULT = $00000000;
{$EXTERNALSYM PUAF_NOUI}
PUAF_NOUI = $00000001;
{$EXTERNALSYM PUAF_ISFILE}
PUAF_ISFILE = $00000002;
{$EXTERNALSYM PUAF_WARN_IF_DENIED}
PUAF_WARN_IF_DENIED = $00000004;
{$EXTERNALSYM PUAF_FORCEUI_FOREGROUND}
PUAF_FORCEUI_FOREGROUND = $00000008;
{$EXTERNALSYM PUAF_CHECK_TIFS}
PUAF_CHECK_TIFS = $00000010;// This is the wrapper function that most clients will use.
// It figures out the current Policy for the passed in Action,
// and puts up UI if the current Policy indicates that the user
// should be queried. It returns back the Policy which the caller
// will use to determine if the action should be allowed
// This is the wrapper function to conveniently read a custom policy.// SetZoneMapping
// lpszPattern: string denoting a URL pattern
// Examples of valid patterns:
// *://*.msn.com
// http://*.sony.co.jp
// *://et.msn.com
// ftp://157.54.23.41/
// https://localsvr
// file:\localsvr\share
// *://157.54.100-200.*
// Examples of invalid patterns:
// http://*.lcs.mit.edu
// ftp://*
// dwFlags: SZM_FLAGS values{$EXTERNALSYM SZM_CREATE}
SZM_CREATE = $00000000;
{$EXTERNALSYM SZM_DELETE}
SZM_DELETE = $00000001;type
{$EXTERNALSYM IInternetSecurityManager}
IInternetSecurityManager = interface
['{79eac9ee-baf9-11ce-8c82-00aa004ba90b}']
function SetSecuritySite(Site: IInternetSecurityMgrSite): HResult; stdcall;
function GetSecuritySite(out Site: IInternetSecurityMgrSite): HResult; stdcall;
function MapUrlToZone(pwszUrl: LPCWSTR; out dwZone: DWORD;
dwFlags: DWORD): HResult; stdcall;
function GetSecurityId(pwszUrl: LPCWSTR; pbSecurityId: Pointer;
var cbSecurityId: DWORD; dwReserved: DWORD): HResult; stdcall;
function ProcessUrlAction(pwszUrl: LPCWSTR; dwAction: DWORD;
pPolicy: Pointer; cbPolicy: DWORD; pContext: Pointer; cbContext: DWORD;
dwFlags, dwReserved: DWORD): HResult; stdcall;
function QueryCustomPolicy(pwszUrl: LPCWSTR; const guidKey: TGUID;
out pPolicy: Pointer; out cbPolicy: DWORD; pContext: Pointer; cbContext: DWORD;
dwReserved: DWORD): HResult; stdcall;
function SetZoneMapping(dwZone: DWORD; lpszPattern: LPCWSTR;
dwFlags: DWORD): HResult; stdcall;
function GetZoneMappings(dwZone: DWORD; out enumString: IEnumString;
dwFlags: DWORD): HResult; stdcall;
end;{$EXTERNALSYM IInternetHostSecurityManager}
IInternetHostSecurityManager = interface
['{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}']
function GetSecurityId(pbSecurityId: Pointer; var cbSecurityId: DWORD;
dwReserved: DWORD): HResult; stdcall;
function ProcessUrlAction(dwAction: DWORD; pPolicy: Pointer; cbPolicy: DWORD;
pContext: Pointer; cbContext, dwFlags, dwReserved: DWORD): HResult; stdcall;
function QueryCustomPolicy(const guidKey: TGUID; out pPolicy: Pointer; out cbPolicy: DWORD;
pContext: Pointer; cbContext, dwReserved: DWORD): HResult; stdcall;
end;const
{$EXTERNALSYM URLACTION_MIN}
URLACTION_MIN = $00001000;{$EXTERNALSYM URLACTION_DOWNLOAD_MIN}
URLACTION_DOWNLOAD_MIN = $00001000;
{$EXTERNALSYM URLACTION_DOWNLOAD_SIGNED_ACTIVEX}
URLACTION_DOWNLOAD_SIGNED_ACTIVEX = $00001001;
{$EXTERNALSYM URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX}
URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX = $00001004;
{$EXTERNALSYM URLACTION_DOWNLOAD_CURR_MAX}
URLACTION_DOWNLOAD_CURR_MAX = $00001004;
{$EXTERNALSYM URLACTION_DOWNLOAD_MAX}
URLACTION_DOWNLOAD_MAX = $000011FF;{$EXTERNALSYM URLACTION_ACTIVEX_MIN}
URLACTION_ACTIVEX_MIN = $00001200;
{$EXTERNALSYM URLACTION_ACTIVEX_RUN}
URLACTION_ACTIVEX_RUN = $00001200;
{$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY}
URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY = $00001201; // aggregate next four
{$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY}
URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY = $00001202; //
{$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY}
URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY = $00001203; //
{$EXTERNALSYM URLACTION_SCRIPT_OVERRIDE_SAFETY}
URLACTION_SCRIPT_OVERRIDE_SAFETY = $00001401; //
{$EXTERNALSYM URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY}
URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY = $00001204; //
{$EXTERNALSYM URLACTION_ACTIVEX_TREATASUNTRUSTED}
URLACTION_ACTIVEX_TREATASUNTRUSTED = $00001205;
{$EXTERNALSYM URLACTION_ACTIVEX_CURR_MAX}
URLACTION_ACTIVEX_CURR_MAX = $00001205;
{$EXTERNALSYM URLACTION_ACTIVEX_MAX}
URLACTION_ACTIVEX_MAX = $000013FF;{$EXTERNALSYM URLACTION_SCRIPT_MIN}
URLACTION_SCRIPT_MIN = $00001400;
{$EXTERNALSYM URLACTION_SCRIPT_RUN}
URLACTION_SCRIPT_RUN = $00001400;
{$EXTERNALSYM URLACTION_SCRIPT_JAVA_USE}
URLACTION_SCRIPT_JAVA_USE = $00001402;
{$EXTERNALSYM URLACTION_SCRIPT_SAFE_ACTIVEX}
URLACTION_SCRIPT_SAFE_ACTIVEX = $00001405;
{$EXTERNALSYM URLACTION_SCRIPT_CURR_MAX}
URLACTION_SCRIPT_CURR_MAX = $00001405;
{$EXTERNALSYM URLACTION_SCRIPT_MAX}
URLACTION_SCRIPT_MAX = $000015FF;{$EXTERNALSYM URLACTION_HTML_MIN}
URLACTION_HTML_MIN = $00001600;
{$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS}
URLACTION_HTML_SUBMIT_FORMS = $00001601; // aggregate next two
{$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS_FROM}
URLACTION_HTML_SUBMIT_FORMS_FROM = $00001602; //
{$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS_TO}
URLACTION_HTML_SUBMIT_FORMS_TO = $00001603; //
{$EXTERNALSYM URLACTION_HTML_FONT_DOWNLOAD}
URLACTION_HTML_FONT_DOWNLOAD = $00001604;
{$EXTERNALSYM URLACTION_HTML_JAVA_RUN}
URLACTION_HTML_JAVA_RUN = $00001605; // derive from Java custom policy;
{$EXTERNALSYM URLACTION_HTML_CURR_MAX}
URLACTION_HTML_CURR_MAX = $00001605;
{$EXTERNALSYM URLACTION_HTML_MAX}
URLACTION_HTML_MAX = $000017FF;{$EXTERNALSYM URLACTION_SHELL_MIN}
URLACTION_SHELL_MIN = $00001800;
{$EXTERNALSYM URLACTION_SHELL_INSTALL_DTITEMS}
URLACTION_SHELL_INSTALL_DTITEMS = $00001800;
{$EXTERNALSYM URLACTION_SHELL_MOVE_OR_COPY}
URLACTION_SHELL_MOVE_OR_COPY = $00001802;
{$EXTERNALSYM URLACTION_SHELL_FILE_DOWNLOAD}
URLACTION_SHELL_FILE_DOWNLOAD = $00001803;
{$EXTERNALSYM URLACTION_SHELL_VERB}
URLACTION_SHELL_VERB = $00001804;
{$EXTERNALSYM URLACTION_SHELL_WEBVIEW_VERB}
URLACTION_SHELL_WEBVIEW_VERB = $00001805;
{$EXTERNALSYM URLACTION_SHELL_CURR_MAX}
URLACTION_SHELL_CURR_MAX = $00001805;
{$EXTERNALSYM URLACTION_SHELL_MAX}
URLACTION_SHELL_MAX = $000019FF;{$EXTERNALSYM URLACTION_NETWORK_MIN}
URLACTION_NETWORK_MIN = $00001A00;{$EXTERNALSYM URLACTION_CREDENTIALS_USE}
URLACTION_CREDENTIALS_USE = $00001A00;
{$EXTERNALSYM URLPOLICY_CREDENTIALS_SILENT_LOGON_OK}
URLPOLICY_CREDENTIALS_SILENT_LOGON_OK = $00000000;
{$EXTERNALSYM URLPOLICY_CREDENTIALS_MUST_PROMPT_USER}
URLPOLICY_CREDENTIALS_MUST_PROMPT_USER = $00010000;
{$EXTERNALSYM URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT}
URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT = $00020000;
{$EXTERNALSYM URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY}
URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY = $00030000;{$EXTERNALSYM URLACTION_AUTHENTICATE_CLIENT}
URLACTION_AUTHENTICATE_CLIENT = $00001A01;
{$EXTERNALSYM URLPOLICY_AUTHENTICATE_CLEARTEXT_OK}
URLPOLICY_AUTHENTICATE_CLEARTEXT_OK = $00000000;
{$EXTERNALSYM URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE}
URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE = $00010000;
{$EXTERNALSYM URLPOLICY_AUTHENTICATE_MUTUAL_ONLY}
URLPOLICY_AUTHENTICATE_MUTUAL_ONLY = $00030000;{$EXTERNALSYM URLACTION_NETWORK_CURR_MAX}
URLACTION_NETWORK_CURR_MAX = $00001A01;
{$EXTERNALSYM URLACTION_NETWORK_MAX}
URLACTION_NETWORK_MAX = $00001BFF;{$EXTERNALSYM URLACTION_JAVA_MIN}
URLACTION_JAVA_MIN = $00001C00;
{$EXTERNALSYM URLACTION_JAVA_PERMISSIONS}
URLACTION_JAVA_PERMISSIONS = $00001C00;
{$EXTERNALSYM URLPOLICY_JAVA_PROHIBIT}
URLPOLICY_JAVA_PROHIBIT = $00000000;
{$EXTERNALSYM URLPOLICY_JAVA_HIGH}
URLPOLICY_JAVA_HIGH = $00010000;
{$EXTERNALSYM URLPOLICY_JAVA_MEDIUM}
URLPOLICY_JAVA_MEDIUM = $00020000;
{$EXTERNALSYM URLPOLICY_JAVA_LOW}
URLPOLICY_JAVA_LOW = $00030000;
{$EXTERNALSYM URLPOLICY_JAVA_CUSTOM}
URLPOLICY_JAVA_CUSTOM = $00800000;
{$EXTERNALSYM URLACTION_JAVA_CURR_MAX}
URLACTION_JAVA_CURR_MAX = $00001C00;
{$EXTERNALSYM URLACTION_JAVA_MAX}
URLACTION_JAVA_MAX = $00001CFF;// The following Infodelivery actions should have no default policies
// in the registry. They assume that no default policy means fall
// back to the global restriction. If an admin sets a policy per
// zone, then it overrides the global restriction.{$EXTERNALSYM URLACTION_INFODELIVERY_MIN}
URLACTION_INFODELIVERY_MIN = $00001D00;
{$EXTERNALSYM URLACTION_INFODELIVERY_NO_ADDING_CHANNELS}
URLACTION_INFODELIVERY_NO_ADDING_CHANNELS = $00001D00;
{$EXTERNALSYM URLACTION_INFODELIVERY_NO_EDITING_CHANNELS}
URLACTION_INFODELIVERY_NO_EDITING_CHANNELS = $00001D01;
{$EXTERNALSYM URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS}
URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS = $00001D02;
{$EXTERNALSYM URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS}
URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS = $00001D03;
{$EXTERNALSYM URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS}
URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS = $00001D04;
{$EXTERNALSYM URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS}
URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS = $00001D05;
{$EXTERNALSYM URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING}
URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING = $00001D06;
{$EXTERNALSYM URLACTION_INFODELIVERY_CURR_MAX}
URLACTION_INFODELIVERY_CURR_MAX = $00001D06;
{$EXTERNALSYM URLACTION_INFODELIVERY_MAX}
URLACTION_INFODELIVERY_MAX = $00001DFF;
{$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_MIN}
URLACTION_CHANNEL_SOFTDIST_MIN = $00001E00;
{$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_PERMISSIONS}
URLACTION_CHANNEL_SOFTDIST_PERMISSIONS = $00001E05;
{$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT}
URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT = $00010000;
{$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_PRECACHE}
URLPOLICY_CHANNEL_SOFTDIST_PRECACHE = $00020000;
{$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL}
URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL = $00030000;
{$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_MAX}
URLACTION_CHANNEL_SOFTDIST_MAX = $00001EFF;// For each action specified above the system maintains
// a set of policies for the action.
// The only policies supported currently are permissions (i.e. is something allowed)
// and logging status.
// IMPORTANT: If you are defining your own policies don't overload the meaning of the
// loword of the policy. You can use the hiword to store any policy bits which are only
// meaningful to your action.
// For an example of how to do this look at the URLPOLICY_JAVA above// Permissions
{$EXTERNALSYM URLPOLICY_ALLOW}
URLPOLICY_ALLOW = $00;
{$EXTERNALSYM URLPOLICY_QUERY}
URLPOLICY_QUERY = $01;
{$EXTERNALSYM URLPOLICY_DISALLOW}
URLPOLICY_DISALLOW = $03;// Notifications are not done when user already queried.
{$EXTERNALSYM URLPOLICY_NOTIFY_ON_ALLOW}
URLPOLICY_NOTIFY_ON_ALLOW = $10;
{$EXTERNALSYM URLPOLICY_NOTIFY_ON_DISALLOW}
URLPOLICY_NOTIFY_ON_DISALLOW = $20;// Logging is done regardless of whether user was queried.
{$EXTERNALSYM URLPOLICY_LOG_ON_ALLOW}
URLPOLICY_LOG_ON_ALLOW = $40;
{$EXTERNALSYM URLPOLICY_LOG_ON_DISALLOW}
URLPOLICY_LOG_ON_DISALLOW = $80;{$EXTERNALSYM URLPOLICY_MASK_PERMISSIONS}
URLPOLICY_MASK_PERMISSIONS = $0F;
// The ordinal #'s that define the predefined zones internet explorer knows about.
// When we support user-defined zones their zone numbers should be between
// URLZONE_USER_MIN and URLZONE_USER_MAXconst
{$EXTERNALSYM URLZONE_PREDEFINED_MIN}
URLZONE_PREDEFINED_MIN = 0;
{$EXTERNALSYM URLZONE_LOCAL_MACHINE}
URLZONE_LOCAL_MACHINE = 0;
{$EXTERNALSYM URLZONE_INTRANET}
URLZONE_INTRANET = URLZONE_LOCAL_MACHINE + 1;
{$EXTERNALSYM URLZONE_TRUSTED}
URLZONE_TRUSTED = URLZONE_INTRANET + 1;
{$EXTERNALSYM URLZONE_INTERNET}
URLZONE_INTERNET = URLZONE_TRUSTED + 1;
{$EXTERNALSYM URLZONE_UNTRUSTED}
URLZONE_UNTRUSTED = URLZONE_INTERNET + 1;
{$EXTERNALSYM URLZONE_PREDEFINED_MAX}
URLZONE_PREDEFINED_MAX = 999;
{$EXTERNALSYM URLZONE_USER_MIN}
URLZONE_USER_MIN = 1000;
{$EXTERNALSYM URLZONE_USER_MAX}
URLZONE_USER_MAX = 10000;{$EXTERNALSYM URLTEMPLATE_CUSTOM}
URLTEMPLATE_CUSTOM = $00000000;
{$EXTERNALSYM URLTEMPLATE_PREDEFINED_MIN}
URLTEMPLATE_PREDEFINED_MIN = $00010000;
{$EXTERNALSYM URLTEMPLATE_LOW}
URLTEMPLATE_LOW = $00010000;
{$EXTERNALSYM URLTEMPLATE_MEDIUM}
URLTEMPLATE_MEDIUM = $00011000;
{$EXTERNALSYM URLTEMPLATE_HIGH}
URLTEMPLATE_HIGH = $00012000;
{$EXTERNALSYM URLTEMPLATE_PREDEFINED_MAX}
URLTEMPLATE_PREDEFINED_MAX = $00020000;{$EXTERNALSYM MAX_ZONE_PATH}
MAX_ZONE_PATH = 260;
{$EXTERNALSYM MAX_ZONE_DESCRIPTION}
MAX_ZONE_DESCRIPTION = 200;{$EXTERNALSYM ZAFLAGS_CUSTOM_EDIT}
ZAFLAGS_CUSTOM_EDIT = $00000001;
{$EXTERNALSYM ZAFLAGS_ADD_SITES}
ZAFLAGS_ADD_SITES = $00000002;
{$EXTERNALSYM ZAFLAGS_REQUIRE_VERIFICATION}
ZAFLAGS_REQUIRE_VERIFICATION = $00000004;
{$EXTERNALSYM ZAFLAGS_INCLUDE_PROXY_OVERRIDE}
ZAFLAGS_INCLUDE_PROXY_OVERRIDE = $00000008;
{$EXTERNALSYM ZAFLAGS_INCLUDE_INTRANET_SITES}
ZAFLAGS_INCLUDE_INTRANET_SITES = $00000010;
{$EXTERNALSYM ZAFLAGS_NO_UI}
ZAFLAGS_NO_UI = $00000020;
{$EXTERNALSYM ZAFLAGS_SUPPORTS_VERIFICATION}
ZAFLAGS_SUPPORTS_VERIFICATION = $00000040;
{$EXTERNALSYM ZAFLAGS_UNC_AS_INTRANET}
ZAFLAGS_UNC_AS_INTRANET = $00000080;type
PZoneAttributes = ^TZoneAttributes;
{$EXTERNALSYM _ZONEATTRIBUTES}
_ZONEATTRIBUTES = packed record
cbSize: ULONG;
szDisplayName: array[0..260 - 1] of WideChar;
szDescription: array[0..200 - 1] of WideChar;
szIconPath: array[0..260 - 1] of WideChar;
dwTemplateMinLevel: DWORD;
dwTemplateRecommended: DWORD;
dwTemplateCurrentLevel: DWORD;
dwFlags: DWORD;
end;
TZoneAttributes = _ZONEATTRIBUTES;
{$EXTERNALSYM ZONEATTRIBUTES}
ZONEATTRIBUTES = _ZONEATTRIBUTES;// Gets the zone attributes (information in registry other than actual security
// policies associated with the zone). Zone attributes are fixed as:
// Sets the zone attributes (information in registry other than actual security
// policies associated with the zone). Zone attributes as above.
// Returns S_OK or ??? if failed to write the zone attributes.
{ Registry Flags When reading, default behavior is:
If HKLM allows override and HKCU value exists
Then use HKCU value
Else use HKLM value
When writing, default behavior is same as HKCU
If HKLM allows override
Then Write to HKCU
Else Fail
}const
{$EXTERNALSYM URLZONEREG_DEFAULT}
URLZONEREG_DEFAULT = 0;
{$EXTERNALSYM URLZONEREG_HKLM}
URLZONEREG_HKLM = URLZONEREG_DEFAULT + 1;
{$EXTERNALSYM URLZONEREG_HKCU}
URLZONEREG_HKCU = URLZONEREG_HKLM + 1;// Gets a named custom policy associated with a zone;
// e.g. the Java VM settings can be defined with a unique key such as 'Java'.
// Custom policy support is intended to allow extensibility from the predefined
// set of policies that IE4 has built in.
//
// pwszKey is the string name designating the custom policy. Components are
// responsible for having unique names.
// ppPolicy is the callee allocated buffer for the policy byte blob; caller is
// responsible for freeing this buffer eventually.
// pcbPolicy is the size of the byte blob returned.
// dwRegFlags determines how registry is accessed (see above).
// Returns S_OK if key is found and buffer allocated; ??? if key is not found (no buffer alloced).
// Sets a named custom policy associated with a zone;
// e.g. the Java VM settings can be defined with a unique key such as 'Java'.
// Custom policy support is intended to allow extensibility from the predefined
// set of policies that IE4 has built in.
//
// pwszKey is the string name designating the custom policy. Components are
// responsible for having unique names.
// ppPolicy is the caller allocated buffer for the policy byte blob.
// pcbPolicy is the size of the byte blob to be set.
// dwRegFlags determines if HTCU or HKLM is set.
// Returns S_OK or ??? if failed to write the zone custom policy.
// Gets action policy associated with a zone, the builtin, fixed-length policies info.// dwAction is the action code for the action as defined above.
// pPolicy is the caller allocated buffer for the policy data.
// cbPolicy is the size of the caller allocated buffer.
// dwRegFlags determines how registry is accessed (see above).
// Returns S_OK if action is valid; ??? if action is not valid.type
{$EXTERNALSYM IInternetZoneManager}
IInternetZoneManager = interface
['{79eac9ef-baf9-11ce-8c82-00aa004ba90b}'] // Gets the zone attributes (information in registry other than actual security
// policies associated with the zone). Zone attributes are fixed as:
function GetZoneAttributes(dwZone: DWORD;
var ZoneAttributes: TZoneAttributes): HResult; stdcall; // Sets the zone attributes (information in registry other than actual security
// policies associated with the zone). Zone attributes as above.
// Returns S_OK or ??? if failed to write the zone attributes.
function SetZoneAttributes(dwZone: DWORD;
const ZoneAttributes: TZoneAttributes): HResult; stdcall;
function GetZoneCustomPolicy(dwZone: DWORD; const guidKey: TGUID; out pPolicy: Pointer;
out cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
function SetZoneCustomPolicy(dwZone: DWORD; const guidKey: TGUID; pPolicy: Pointer;
cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
function GetZoneActionPolicy(dwZone, dwAction: DWORD; pPolicy: Pointer;
cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
function SetZoneActionPolicy(dwZone, dwAction: DWORD; pPolicy: Pointer;
cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
function PromptAction(dwAction: DWORD; hwndParent: HWnd; pwszUrl, pwszText: LPCWSTR;
dwPromptFlags: DWORD): HResult; stdcall;
function LogAction(dwAction: DWORD; pwszUrl, pwszText: LPCWSTR;
dwLogFlags: DWORD): HResult; stdcall;
function CreateZoneEnumerator(out dwEnum, dwCount: DWORD;
dwFlags: DWORD): HResult; stdcall;
function GetZoneAt(dwEnum, dwIndex: DWORD; out dwZone: DWORD): HResult; stdcall;
function DestroyZoneEnumerator(dwEnum: DWORD): HResult; stdcall;
function CopyTemplatePoliciesToZone(dwTemplate, dwZone, dwReserved: DWORD): HResult; stdcall;
end;// Creates the security manager object. The first argument is the Service provider
// to allow for delegation
{$EXTERNALSYM CoInternetCreateSecurityManager}
function CoInternetCreateSecurityManager(SP: IServiceProvider; var SM: IInternetSecurityManager;
dwReserved: DWORD): HResult; stdcall;
{$EXTERNALSYM CoInternetCreateZoneManager}
function CoInternetCreateZoneManager(SP: IServiceProvider; var ZM: IInternetZoneManager;
dwReserved: DWORD): HResult; stdcall;{$ENDIF}function SHLockShared(Handle: THandle; DWord: DWORD): Pointer; stdcall;
function SHUnlockShared(Pnt: Pointer): BOOL; stdcall;
function SHFreeShared(Handle: THandle; DWord: DWORD): Pointer; stdcall;
function Free(Pidl: PItemIDList): BOOL; stdcall;
function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: Integer;
dwData: DWORD): HWND; stdcall;
implementationconst
urldll = 'url.dll';function InetIsOffline; external urldll name 'InetIsOffline';function MIMEAssociationDialogW; external urldll name 'MIMEAssociationDialogW';
function MIMEAssociationDialogA; external urldll name 'MIMEAssociationDialogA';
{$IFDEF UNICODE}
function MIMEAssociationDialog; external urldll name 'MIMEAssociationDialogW';
{$ELSE}
function MIMEAssociationDialog; external urldll name 'MIMEAssociationDialogA';
{$ENDIF}function URLAssociationDialogW; external urldll name 'URLAssociationDialogW';
function URLAssociationDialogA; external urldll name 'URLAssociationDialogA';
{$IFDEF UNICODE}
function URLAssociationDialog; external urldll name 'URLAssociationDialogW';
{$ELSE}
function URLAssociationDialog; external urldll name 'URLAssociationDialogA';
{$ENDIF}function TranslateURLA; external urldll name 'TranslateURLA';
function TranslateURLW; external urldll name 'TranslateURLW';
{$IFDEF UNICODE}
function TranslateURL; external urldll name 'TranslateURLW';
{$ELSE}
function TranslateURL; external urldll name 'TranslateURLA';
{$ENDIF}{$IFDEF VER120}
const
UrlMonLib = 'URLMON.DLL';
function CoInternetGetSession; external UrlMonLib name 'CoInternetGetSession';
function CoInternetCreateSecurityManager; external UrlMonLib name 'CoInternetCreateSecurityManager';
function CoInternetCreateZoneManager; external UrlMonLib name 'CoInternetCreateZoneManager';
{$ENDIF}function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: Integer;
dwData: DWORD): HWND; stdcall; external 'hhctrl.ocx' name 'HtmlHelpA';
function SHLockShared; external 'shell32.dll' index 521;
function SHUnlockShared; external 'shell32.dll' index 522;
function SHFreeShared; external 'shell32.dll' index 523;
function Free; external 'comctl32.dll' index 73;
end.