FastReport_2022_VCL/Source/frxChm.pas
2024-01-01 16:13:08 +01:00

94 lines
2.0 KiB
ObjectPascal

{******************************************}
{ }
{ FastReport VCL }
{ Chm help viewer }
{ }
{ Copyright (c) 1998-2021 }
{ by Fast Reports Inc. }
{ }
{******************************************}
unit frxChm;
interface
{$I frx.inc}
uses {$IFDEF FPC}LCLType{$ELSE}Windows, Graphics{$ENDIF};
procedure frxDisplayHHTopic(Handle: THandle; const topic: String);
implementation
{$IFDEF FPC}
procedure frxDisplayHHTopic(Handle: THandle; const topic: String);
begin
{$note frxDisplayHHTopic is just dummy proc ...}
end;
{$ELSE}
const
HH_DISPLAY_TOPIC = $0000;
HH_DISPLAY_TOC = $0001;
type
THtmlHelpA = function(hwndCaller: THandle; pszFile: PAnsiChar;
uCommand: Cardinal; dwData: Longint): THandle; stdcall;
{$IFDEF Delphi12}
THtmlHelpW = function(hwndCaller: THandle; pszFile: PWideChar;
uCommand: Cardinal; dwData: Longint): THandle; stdcall;
{$ENDIF}
var
{$IFDEF Delphi12}
HtmlHelpW: THtmlHelpW = nil;
{$ELSE}
HtmlHelpA: THtmlHelpA = nil;
{$ENDIF}
OCXHandle: THandle = 0;
function HtmlHelpInstalled: Boolean;
begin
{$IFDEF Delphi12}
Result := (Assigned(HtmlHelpW));
{$ELSE}
Result := (Assigned(HtmlHelpA));
{$ENDIF}
end;
procedure frxDisplayHHTopic(Handle: THandle; const topic: String);
begin
{$IFDEF Delphi12}
if (Assigned(HtmlHelpW)) then
HtmlHelpW(Handle, PChar(topic), HH_DISPLAY_TOC, 0);
{$ELSE}
if (Assigned(HtmlHelpA)) then
HtmlHelpA(Handle, PChar(topic), HH_DISPLAY_TOC, 0);
{$ENDIF}
end;
initialization
{$IFDEF Delphi12}
HtmlHelpW := nil;
{$ELSE}
HtmlHelpA := nil;
{$ENDIF}
OCXHandle := LoadLibrary('HHCtrl.OCX');
if (OCXHandle <> 0) then
{$IFDEF Delphi12}
HtmlHelpW := GetProcAddress(OCXHandle, 'HtmlHelpW');
{$ELSE}
HtmlHelpA := GetProcAddress(OCXHandle, 'HtmlHelpA');
{$ENDIF}
finalization
if (OCXHandle <> 0) then
FreeLibrary(OCXHandle);
{$ENDIF}
end.