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#」カテゴリの記事
- C#で作成したDLLに、呼び出し元オフィスソフトのHwndを渡す(2019.07.27)
- C# LINQとラムダ式凄い!(2019.04.06)
- ClickOnceの発行でエラー(2009.05.21)
- C# Flash(2008.08.21)
- 読みたいだけなのに・・・(2008.05.20)
コメント