Marco Web Center |
Home: Code Repository: Mastering Delphi 5Project PROPCOM
Project StructurePROPCOM.DPRlibrary PropCom; uses ComServ, NumIntf in 'NumIntf.pas', NumServ in 'NumServ.pas', PROPCOM_TLB in 'PROPCOM_TLB.pas'; exports DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer; {$R *.TLB} {$R *.RES} end. NUMINTF.PASunit NumIntf; interface type INumberProp = interface ['{B36C5800-8E59-11D0-98D0-444553540000}'] function GetValue: Integer; stdcall; procedure SetValue (New: Integer); stdcall; procedure Increase; stdcall; property Value: Integer read GetValue write SetValue; end; implementation end. NUMSERV.PASunit NumServ; interface uses Windows, ActiveX, ComObj, NumIntf; type TNumServer = class(TComObject, INumberProp) private fValue: Integer; public function GetValue: Integer; virtual; stdcall; procedure SetValue (New: Integer); virtual; stdcall; procedure Increase; virtual; stdcall; procedure Initialize; override; destructor Destroy; override; end; const Class_NumPropServer: TGUID = '{B165F7A1-DDF9-11D1-B9F1-004845400FAA}'; implementation uses ComServ; { TNumServer } destructor TNumServer.Destroy; begin inherited; MessageBox (0, 'Object Destroyed', 'TDLLNumber', mb_OK); // API call end; function TNumServer.GetValue: Integer; begin Result := fValue; end; procedure TNumServer.Increase; begin Inc (fValue); end; procedure TNumServer.Initialize; begin inherited; fValue := 10; end; procedure TNumServer.SetValue(New: Integer); begin fValue := New; end; initialization TComObjectFactory.Create(ComServer, TNumServer, Class_NumPropServer, 'NumPropServer', 'Num Prop Server (Prop Com)', ciMultiInstance, tmSingle); end. PROPCOM_TLB.PASunit PROPCOM_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 : $Revision: 1.79 $ // File generated on 7/15/99 3:16:52 PM from Type Library described below. // ************************************************************************ // // Type Lib: C:\md5code\Part4\15\PROPCOM\PROPCOM.tlb (1) // IID\LCID: {5B2EF183-3AAE-11D3-B9F1-00000100A27B}\0 // Helpfile: // DepndLst: // (1) v2.0 stdole, (C:\WINDOWS\SYSTEM\STDOLE2.TLB) // (2) v4.0 StdVCL, (C:\WINDOWS\SYSTEM\STDVCL40.DLL) // ************************************************************************ // interface uses Windows, ActiveX, Classes, Graphics, OleServer, OleCtrls, StdVCL; // *********************************************************************// // 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 PROPCOMMajorVersion = 1; PROPCOMMinorVersion = 0; LIBID_PROPCOM: TGUID = '{5B2EF183-3AAE-11D3-B9F1-00000100A27B}'; implementation uses ComObj; end.
|
||
© Copyright Marco Cantù, 1995-2020, All rights reserved |