Delphi 封装(4)-物理上的封装-物理封装和动态链接
2021-07-04 01:09
标签:alt address manual graph gen ssi ssid sse rem Delphi 封装(4)-物理上的封装-物理封装和动态链接 标签:alt address manual graph gen ssi ssid sse rem 原文地址:https://www.cnblogs.com/YiShen/p/9869996.htmlunit DemoSvr_TLB;
// ************************************************************************ //
// WARNING
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// ‘Refresh‘ command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// ************************************************************************ //
// PASTLWTR : 1.2
// File generated on 03-4-9 21:09:18 from Type Library described below.
// ************************************************************************ //
// Type Lib: E:\Delphi面向对象编程思想\示例程序\封装\用COM+封装对象\DemoSvr.tlb (1)
// LIBID: {B96FFC20-65BC-11D7-B847-001060806215}
// LCID: 0
// Helpfile:
// HelpString: DemoSvr Library
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\SYSTEM\stdole2.tlb)
// ************************************************************************ //
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
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
DemoSvrMajorVersion = 1;
DemoSvrMinorVersion = 0;
LIBID_DemoSvr: TGUID = ‘{B96FFC20-65BC-11D7-B847-001060806215}‘;
IID_IDemoComObj: TGUID = ‘{B96FFC21-65BC-11D7-B847-001060806215}‘;
CLASS_DemoComObj: TGUID = ‘{B96FFC23-65BC-11D7-B847-001060806215}‘;
type
// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
IDemoComObj = interface;
// *********************************************************************//
// Declaration of CoClasses defined in Type Library
// (NOTE: Here we map each CoClass to its Default Interface)
// *********************************************************************//
DemoComObj = IDemoComObj;
// *********************************************************************//
// Interface: IDemoComObj
// Flags: (256) OleAutomation
// GUID: {B96FFC21-65BC-11D7-B847-001060806215}
// *********************************************************************//
IDemoComObj = interface(IUnknown)
[‘{B96FFC21-65BC-11D7-B847-001060806215}‘]
procedure Drive; stdcall;
procedure ride; stdcall;
end;
// *********************************************************************//
// The Class CoDemoComObj provides a Create and CreateRemote method to
// create instances of the default interface IDemoComObj exposed by
// the CoClass DemoComObj. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoDemoComObj = class
class function Create: IDemoComObj;
class function CreateRemote(const MachineName: string): IDemoComObj;
end;
implementation
uses ComObj;
class function CoDemoComObj.Create: IDemoComObj;
begin
Result := CreateComObject(CLASS_DemoComObj) as IDemoComObj;
end;
class function CoDemoComObj.CreateRemote(const MachineName: string): IDemoComObj;
begin
Result := CreateRemoteComObject(MachineName, CLASS_DemoComObj) as IDemoComObj;
end;
end.
class function CoDemoComObj.Create: IDemoComObj;
begin
Result := CreateComObject(CLASS_DemoComObj) as IDemoComObj;
end;
function CreateComObject(const ClassID: TGUID): IUnknown;
begin
OleCheck(CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or
CLSCTX_LOCAL_SERVER, IUnknown, Result));
end;
class function CoDemoComObj.CreateRemote(const MachineName: string): IDemoComObj;
begin
Result := CreateRemoteComObject(MachineName, CLASS_DemoComObj) as IDemoComObj;
end;
文章标题:Delphi 封装(4)-物理上的封装-物理封装和动态链接
文章链接:http://soscw.com/essay/101517.html