1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| unit Unit2;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
ComObj, ActiveX, AxCtrls, Classes, PessaiAutomationDansExe_TLB, StdVcl;
type
TEssai = class(TAutoObject, IConnectionPointContainer, IEssai)
private
{ Déclarations privées }
FConnectionPoints: TConnectionPoints;
FConnectionPoint: TConnectionPoint;
FEvents: IEssaiEvents;
{ Remarque : FEvents gère un collecteur d'événement *unique*. Pour accéder à plusieurs collecteurs
d'événements, utilisez FConnectionPoint.SinkList et parcourez la liste de collecteurs. }
public
procedure Initialize; override;
protected
{ Déclarations protégées }
property ConnectionPoints: TConnectionPoints read FConnectionPoints
implements IConnectionPointContainer;
procedure EventSinkChanged(const EventSink: IUnknown); override;
end;
implementation
uses ComServ;
procedure TEssai.EventSinkChanged(const EventSink: IUnknown);
begin
FEvents := EventSink as IEssaiEvents;
end;
procedure TEssai.Initialize;
begin
inherited Initialize;
FConnectionPoints := TConnectionPoints.Create(Self);
if AutoFactory.EventTypeInfo <> nil then
FConnectionPoint := FConnectionPoints.CreateConnectionPoint(
AutoFactory.EventIID, ckSingle, EventConnect)
else FConnectionPoint := nil;
end;
initialization
TAutoObjectFactory.Create(ComServer, TEssai, Class_Essai,
ciMultiInstance, tmApartment);
end. |
Partager