コードがあります:
var
myobject: OleVariant;
begin
myobject := CreateOleObject('SomeNamespace.SomeClass');
end;
このCOMオブジェクトにはイベント(OnClickなど)があります。TLBをインポートせずにこれらのイベントに接続するにはどうすればよいですか?
コードがあります:
var
myobject: OleVariant;
begin
myobject := CreateOleObject('SomeNamespace.SomeClass');
end;
このCOMオブジェクトにはイベント(OnClickなど)があります。TLBをインポートせずにこれらのイベントに接続するにはどうすればよいですか?
COM レイト バインディングを使用しているので、イベントを処理するために多くのコードを記述する必要がありますか。COM を知っていれば、このタスクは難しくありません。基本的に、次の手順に従う必要があります。
TInterfacedObject
その実装
から派生した新しいオブジェクト(クラス)を作成しますIDispatch
Invoke()
新しいクラスの機能を実装するIConnectionpointContainer
) と目的の接続ポイントを照会します。IConnectionPointContainer.FindConnectionPoint
IConnectionPoint.Advise()
、の実装を使用して実行しますIDispatch
これらのリンクでこの実装の例を見つけることができます
COM、遅延バインディング、およびイベントの詳細については、これらのリンクを試してください。