« Access 2013 アドインの作り方 | トップページ | zoom GCE-3 »

2019/07/27

C#で作成したDLLに、呼び出し元オフィスソフトのHwndを渡す

C#でOffice Add-inを作成した時に、VSTOを使うと簡単にエクセルのhWndをフォームの親に設定することができました。

C# で ウィンドウハンドル を 取得する 方法

https://garafu.blogspot.com/2016/08/cs-get-wndhndl.html

 

COM(DLL)として実装したライブラリにhWndを渡す方法に苦労しました。呼び出し側からApplication.Hwndを渡しても上記の方法だとDLL側で受け取れず・・・

それっぽいキーワードで検索するとdllから他のアプリを操作するためにウィンドウハンドルを捕まえる方法がいろいろ見つかるのですが、こんな単純なことが見つからず・・・

結局、どんなキーワードで検索したか忘れましたが、System.Windows.Forms.IWin32Window を継承したクラスを作ると簡単に受け取ることができました。

Creating a IWin32Window from a Win32 Handle

http://ryanfarley.com/blog/archive/2004/03/23/465.aspx

 

« Access 2013 アドインの作り方 | トップページ | zoom GCE-3 »

02 C#」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« Access 2013 アドインの作り方 | トップページ | zoom GCE-3 »

2020年9月
    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      
無料ブログはココログ