Delphi で CreateOleObject のイベント処理
Delphi の CreateOleObject で呼び出したオートメーションサーバのイベント処理 タイプライブラリから .pas を生成しろというコメントが散見されるほど、資料が少なく面倒でした.該当する GUID や DispID を調べる必要があります ScriptControl を例に、TScriptControlEventSink クラスを作成して、OnError と OnTimeout イベントを関連付けしています CreateOleObject と TScriptControlEventSink を利用したイベント追加  var     ScriptControl: OleVariant;     ScriptControlEventSink: TScriptControlEventSink; begin     ScriptControl := CreateOleObject('ScriptControl');     try         ScriptControl.Language := 'VBScript';         ScriptControl.Timeout := 2000;         ScriptControl.AllowUI := False;          // Event         ScriptControlEventSink := TScriptControlEventSink.Create(ScriptControl);         try             ScriptControlEventSink.OnError := Form1.OnScriptError;             ScriptControlEventSink.OnTimeout := Form1.OnScriptTimeout;                      // ScriptControl.Run(...);                  finally             ScriptControlEventSink.Free;         end;     finally         ScriptControl := Unassigned;     en...