IE10 で問題なく動作している ActiveX プロジェクトがあります。
コントロールが実行されているタブの MainWindowHandle を取得する必要がある状況が発生しました。
次のコードは、ActiveX コントロールが実行されているタブではなく、IE の MainWindowHandle を返します。
Process.GetCurrentProcess().MainWindowHandle
このコードを実行すると、開いているタブの数に応じて複数のハンドルが返されます。
Process[] IEPROCS = Process.GetProcessesByName("iexplore");
foreach(Process Proc in IEPROCS) {
//output code
Proc.MainWindowHandle.ToString();
}
では、ActiveX が実行されているタブのハンドルを特定するにはどうすればよいでしょうか。
「レガシー」の目的で、.NET V2 でこれを行う必要があるため、WindowsInteroptHelper は問題外です。