C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

VSTO アドインでのRelaseComObject

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■90851 / inTopicNo.1)  VSTO アドインでのRelaseComObject
  
□投稿者/ dogatana (3回)-(2019/05/07(Tue) 12:16:31)

分類:[C#] 

こんにちは。

C#でOutlook用のVSTOアドインを作成しようとしています。
外部からOutlookをOLEで呼び出す場合、オブジェクトが不要になった場合
Marshal.ReleaseComObject() を呼び出すと思いますが、VSTOアドインでも
必要でしょうか。

Microsoftのサイトの簡単なサンプルでは呼びしていないようなのですが。


引用返信 編集キー/
■90852 / inTopicNo.2)  Re[1]: VSTO アドインでのRelaseComObject
□投稿者/ ぼーちゃん (7回)-(2019/05/07(Tue) 17:29:27)
何本かOutlookのアドインを作ってきましたが、ReleaseComObjectは不要と思っています。
理屈としては、VSTOアドインは「プライマリ相互運用機能アセンブリ/PIA」なるラッパー経由で
COMオブジェクトをマネージドコード上で取り扱うようになっているから、らしい...
http://blogs.wankuma.com/fnya/archive/2008/01/14/117356.aspx

私の実装では、
var ins = base.Context as Microsoft.Office.Interop.Outlook.Inspector; //VSTOプロジェクトに追加した「リボン(ビジュアルなデザイナ)」のクラス内メソッドに記述

などで取得したインスペクターウインドウのインスタンス ins に対して必要な処理を行い、
最後は特に開放処理などしていない(メソッドの終了に伴い破棄)ですが、
特になにか問題が起きたことはないです。(Microsoft.Office.InteropがPIAがある名前空間ですね)

でもほんとにVSTOって情報が全然無くて困ります。

引用返信 編集キー/
■90853 / inTopicNo.3)  Re[2]: VSTO アドインでのRelaseComObject
□投稿者/ dogatana (5回)-(2019/05/07(Tue) 22:59:20)
No90852 (ぼーちゃん さん) に返信
> 何本かOutlookのアドインを作ってきましたが、ReleaseComObjectは不要と思っています。
> 理屈としては、VSTOアドインは「プライマリ相互運用機能アセンブリ/PIA」なるラッパー経由で
> COMオブジェクトをマネージドコード上で取り扱うようになっているから、らしい...
> http://blogs.wankuma.com/fnya/archive/2008/01/14/117356.aspx

おお、情報ありがとうございます。
特殊な扱いになっているんですね。これは助かります。

> でもほんとにVSTOって情報が全然無くて困ります。

確かに。

ありがとうございました _o_
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ