library MdComEvents;
uses
ComServ,
ComObj,
MdComEvents_TLB in 'MdComEvents_TLB.pas';
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
type
TMdInform = class (TAutoObject, IMdInform)
protected
procedure Informs(Code: Integer; const Message: WideString);
virtual; safecall; abstract;
end;
begin
TAutoObjectFactory.Create(ComServer, TMdInform, Class_MdInform,
ciMultiInstance, tmApartment);
end.
|
unit MdComEvents_TLB;
interface
uses ActiveX, Classes, Graphics, StdVcl, Variants, Windows;
const
MdComEventsMajorVersion = 1;
MdComEventsMinorVersion = 0;
LIBID_MdComEvents: TGUID = '{F4A80A55-914B-49EF-93B1-B42EE5E37711}';
IID_IMdInform: TGUID = '{202D2CC8-8E6C-4E96-9C14-1FAAE3920ECC}';
CLASS_MdInform: TGUID = '{0C7A44A5-CC67-4B97-9051-BFE92328EB6B}';
type
IMdInform = interface;
IMdInformDisp = dispinterface;
MdInform = IMdInform;
IMdInform = interface(IDispatch)
['{202D2CC8-8E6C-4E96-9C14-1FAAE3920ECC}']
procedure Informs(Code: Integer; const Message: WideString); safecall;
end;
IMdInformDisp = dispinterface
['{202D2CC8-8E6C-4E96-9C14-1FAAE3920ECC}']
procedure Informs(Code: Integer; const Message: WideString); dispid 1;
end;
CoMdInform = class
class function Create: IMdInform;
class function CreateRemote(const MachineName: string): IMdInform;
end;
implementation
uses ComObj;
class function CoMdInform.Create: IMdInform;
begin
Result := CreateComObject(CLASS_MdInform) as IMdInform;
end;
class function CoMdInform.CreateRemote(const MachineName: string): IMdInform;
begin
Result := CreateRemoteComObject(MachineName, CLASS_MdInform) as IMdInform;
end;
end.
|