5,388
社区成员
发帖
与我相关
我的任务
分享
interface
uses Windows, ActiveX, Classes, Graphics, StdVCL, Variants;
// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:
// Type Libraries : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
// *********************************************************************//
const
// TypeLibrary Major and minor versions
MaxPackMajorVersion = 1;
MaxPackMinorVersion = 0;
LIBID_MaxPack: TGUID = '{517F7078-5E73-4E5A-B8A2-8F0FF14EF21B}';
IID_IMyExternal: TGUID = '{4F995D09-CF9E-4042-993E-C71A8AED661E}';
type
// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
IMyExternal = interface;
IMyExternalDisp = dispinterface;
// *********************************************************************//
// Interface: IMyExternal
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {4F995D09-CF9E-4042-993E-C71A8AED661E}
// *********************************************************************//
IMyExternal = interface(IDispatch)
['{4F995D09-CF9E-4042-993E-C71A8AED661E}']
function gockpack: WideString; safecall;
function vcldestr(const pbstr: WideString; const tpstr: WideString): WideString; safecall;
end;
// *********************************************************************//
// DispIntf: IMyExternalDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {4F995D09-CF9E-4042-993E-C71A8AED661E}
// *********************************************************************//
IMyExternalDisp = dispinterface
['{4F995D09-CF9E-4042-993E-C71A8AED661E}']
function gockpack: WideString; dispid 201;
function vcldestr(const pbstr: WideString; const tpstr: WideString): WideString; dispid 202;
end;
implementation
uses ComObj;
end.
unit UMyExternal;
interface
uses
windows,Classes, ComObj, MaxPack_TLB,funs,EncdDecd;
type
TMyExternal = class(TAutoIntfObject, IMyExternal, IDispatch)
private
// fData: TStringList; // info from data file
protected
{ IMyExternal methods }
public
function gockpack: WideString; safecall;
constructor Create;
destructor Destroy; override;
end;
implementation
uses
SysUtils, ActiveX, StdActns;
{ TMyExternal }
constructor TMyExternal.Create;
var
TypeLib: ITypeLib; // type library information
begin
inherited Create(TypeLib, IMyExternal);
end;
destructor TMyExternal.Destroy;
begin
//fData.Free;
inherited;
end;
function TMyExternal.gockpack: WideString;
begin
result :='test';
end;
end.