说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在Delphi中怎样调用chm帮助文件,感谢各位大侠!90分送上

编辑:说三道四文库 发布时间:2017-11-19 06:40
HTML文档下载 WORD文档下载 PDF文档下载
请写详细点,90分送上。
uses ShellApi;

ShellExecute(0, 'Open', Pchar('c:\yours.chm'), nil, nil, SW_SHOWNORMAL);
我有一个例程,如果你需要的话可以给你发过去。你的email是?
shellexecute(handle,'open','c:\windows\desktop\aa.chm','','',sW_show);
我从C++中改编的一个单元,包含了Html Help的常见函数和命令定义。


unit MyHTMLHelp;

interface

uses
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;

const
// Use the following for GetProcAddress to load from hhctrl.ocx
   ATOM_HTMLHELP_API_ANSI   =  PChar(DWORD(WORD(14)));
   ATOM_HTMLHELP_API_UNICODE = PChar(DWORD(WORD(15)));

///////////////////////////////////////////////////////////////////////////////
//
// 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;


THTMLHelpA = function (hwndCaller: HWND; pszFile: LPCSTR;
uCommand:DWORD; dwData: DWORD): HWND; stdcall;
THtmlHelpW = function (hwndCaller: HWND; pszFile: PWideChar;
uCommand:DWORD; dwData: DWORD): HWND; stdcall;
{$IFDEF UNICODE}
THTMLHelp = THTMLHelpW;
{$ELSE}
THTMLHelp = THTMLHelpA;
{$ENDIF}

function HTMLHelpA(hwndCaller: HWND; pszFile: LPCSTR;
uCommand: DWORD; dwData: DWORD): HWND; stdcall;
function HtmlHelpW(hwndCaller: HWND; pszFile: PWideChar;
uCommand: DWORD; dwData: DWORD): HWND; stdcall;
{$IFDEF UNICODE}
function HtmlHelp(hwndCaller: HWND; pszFile: PWideChar;
uCommand: DWORD; dwData: DWORD): HWND; stdcall;
{$ELSE}
function HTMLHelp(hwndCaller: HWND; pszFile: LPCSTR;
uCommand: DWORD; dwData: DWORD): HWND; stdcall;
{$ENDIF}

function HTMLHelpOK: Boolean;

implementation

var
hHHCtrlLib: THandle;
pHTMLHelpA: THTMLHelpA;
pHTMLHelpW: THTMLHelpW;
pHTMLHelp : THTMLHelp;

function HTMLHelpOK: Boolean;
begin
Result := hHHCtrlLib <> 0;
end;

function HTMLHelpA(hwndCaller:HWND; pszFile: LPCSTR;
uCommand:DWORD; dwData: DWORD):HWND;
begin
if Assigned(pHTMLHelpA) then
Result := pHTMLHelpA(hwndCaller, pszFile, uCommand, dwData)
else
Result := 0;
end;

function HtmlHelpW(hwndCaller : HWND; pszFile: PWideChar;
uCommand: DWORD; dwData : DWORD) : HWND;
begin
if Assigned(pHTMLHelpW) then
Result := pHTMLHelpW(hwndCaller, pszFile, uCommand, dwData)
else
Result := 0;
end;

{$IFDEF UNICODE}
function HtmlHelp(hwndCaller : HWND; pszFile: PWideChar;
uCommand: DWORD; dwData : DWORD) : HWND;
{$ELSE}
function HTMLHelp(hwndCaller:HWND; pszFile: LPCSTR;
uCommand:DWORD; dwData: DWORD):HWND;
{$ENDIF}
begin
if Assigned(pHTMLHelp) then
Result := pHTMLHelp(hwndCaller, pszFile, uCommand, dwData)
else
Result := 0;
end;

initialization
begin
hHHCtrlLib := LoadLibrary('HHCtrl.ocx');
if HTMLHelpOK then begin
pHTMLHelpA := GetProcAddress(hHHCtrlLib, 'HtmlHelpA');
pHTMLHelpW := GetProcAddress(hHHCtrlLib, 'HtmlHelpW');
{$IFDEF UNICODE}
pHtmlHelp := pHTMLHelpW;
{$ELSE}
pHtmlHelp := pHTMLHelpA;
{$ENDIF}
end;
end;

finalization
begin
 if HTMLHelpOK then FreeLibrary(hHHCtrlLib);
end;

end.
 
恐怖而又冗长!
To Wingsun:
    可以发一份给我吗?我的地址是:mrxiong@21cn.com ,多谢了!
防止数据泄露:BYOD下的管理员5大妙招 咕咚副总裁司建铭谈移动时代的“软硬整合” 未来的物联网结点:可穿戴设备 应用开发的4个技巧,让程序能真正为用户使用 Google早期的10个API:它们现在在哪? 为啥微软开发产品总是慢半拍? Visual Studio 2013 Preview新功能预览 “中国手机游戏四月流水榜”出炉 超半数基于Cocos2d-x引擎 为移动而设计之信息架构篇 难逃厄运:Zynga将关闭Draw Something母公司OMGPOP 直接拿来用!最火的iOS开源项目(一) 是时候抛弃Eclipse转向IntelliJ了 Arrow:轻量级的Python时间日期库 编程语言API,你最青睐哪一款? 推动新输入方式发展:英特尔为感知计算设1亿美元基金 AWS到底有多大?目前看来有158000台服务器 C语言实现树的动态查找 第五届中国云计算大会于北京隆重举行 改变企业移动化:新Google地图API支持用户定制 诺基亚旗舰手机EOS真机图曝光 配备“巨型”摄像头 走进豆瓣:豆瓣的技术架构与团队文化分享 加速Web开发的10款HTML5工具 微软式微?AMD、英特尔等开始疏远Windows 语音技术现状:四千万突破语音产业的技术壁垒? 万维网联盟W3C推荐Web性能API 微软郑子颖:Windows Azure如何支持开源系统和软件? EMC 叶成辉:软件定义数据中心实现统一、开放的管理 百度云主任架构师 侯震宇:云终端开启数字生活 中国工程院院士 倪光南:中国云计算在全世界份额远超3% 信息图:未来的企业移动培训应用与技术 “2013年度中国优秀开源项目征集”活动最后三天 在另一个类中,怎样给Radio或Combobox赋值 ~~~~向各位高人请教三层线程模型,分可以另开贴加。 new出来的idicmpclient的onreply事件怎么响应? 那位大虾帮我看一下这断代码(JSP高分请教) 帮帮忙啦,哪位同志用过mscomm控件做点对点拨号通讯的 AspRunner是个不错的辅助编写ASP页面的工具,请问哪里有破解下载的啊?谢谢了! 在vc#中如何删除目录下的所有文件? 急 关于分级菜单 求救,如何在注册表中得到一个硬件设备(如猫)的驱动文件名称? 一个难题,希望高手能解决,急切等待! 关于网络状况测试的问题 新手上路,问一个很初级的问题,呵呵。。。 请问如何实现在同一个窗口中的自动跳转? 为什么不能调用类? 关于SQL语句求助 如何在asp和asp.net里面共享信息 溢出错误,麻烦来看看! 知道汉字的国标(gb?)码值,如何显示汉子,急求救!!!! 在SQL2000怎样建立全文索 Cannot start SQL Server Agent 能用case when 举一个例子吗?如果工资>1000 职务='处长',如果工资<1000 职务='科员' 如何将从xml文件中读取的文本在网页上保持格式的显示? sql语句求助!1 有宁波考高程的吗?有参加班的吗? 水晶报表问题???高手请进!!!!!! 使用openquery建立视图。急!急!急!急!急!急! 小问提 交个朋友 Blob类型的字段为什么不能做为Lookup或Calculated字段 有谁知道Any to Icon 的 注册码 怎么实现不同文件中的变量互访? ICS 的FTP控件问题:怎样建目录,我这样做不出错,但是就是建不出来: 数据库出错 怎样将weblogic7和MS sql 2000连接起来? sql语句求助! 关于文件关联的问题,不是那么简单的哦.!!!!!! 一个MM每天回家后做的事 [贴图] 我需要得到记录集中的一条记录 关于MODEN的问题 如何编写Delphi的DLL为C++Buider调用? 我将数据库连接作为一个bean封装,怎么样在sevlet中引用它? 源文件,修改?? 我该怎么做? IIS为什么不能解析中文? Exchange怪问题,求救求救...... 请问VB写的ActiveX DLL,其中的函数如何声明为导出函数?在线等待!! 寻求组件上传多图片源代码 很菜的问题!各位帮帮忙啊!在线等。。 请推荐一本软件工程的书。 我的计算机一接通电源就开机,在98系统中关机显示屏熄灭后风扇仍然旋转,不知是什么原因? 如何在某个页面实现自动跳转??? 怎样的柳枝 1.一条路的长度一定,已经修好的部分和剩下的部分( ).A.成正比例B.成反比例C.不成比例 柳枝像什么? 一条路的长度一定已经修好的部分与剩下的部分().a成正比例 b成反比例c不成比例. 细细的柳枝像什么 为什么同卵双胞胎会分裂成两个 怎么?利用涨潮和落潮换水 Do you need us to quote this?这句英文对吗 能不能给我一份高一生物的知识框架图 课改后的 我有急用 你们觉得天上星星多少颗其中那个代表你自己 天上最亮的星星代表什么? 中国保姆在美国年薪10万美元 保险假阿拉法特死因有新说 排除钋中毒BBC名主播再添性侵罪名 下月受审【新加坡供需两方面给房市降温 房价调控沙特惊人外交之举引争议美国情报机构被曝监听至少35名国际政新加坡房价调控缘何显成效中国周边外交换挡升级外国人如何申请中国绿卡伦敦金属交易所基本金属期货价格24日南宁官方回应“警察枪击抗拆村民” 称斯诺登档案:世界最大泄密事件内幕揭秘青少年留学生成心理问题高发人群20世纪 滑向极端深渊的时代北极急流变脸微语录生命本色:诉说与聆听技术如何实现进化和创新令人失望的民主陷阱我们怎样读书孔子传过度的技术与艺术的困惑
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘