Delphi 封装(4)-物理上的封装-物理封装和动态链接
发布时间:2020-12-15 09:54:28 所属栏目:大数据 来源:网络整理
导读:unit DemoSvr_TLB; // ************************************************************************ // // WARNING // ------- // The types declared in this file were generated from data read from a // Type Library. If this type library is explici
unit 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:WINDOWSSYSTEMstdole2.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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |