Marshal.ReleaseComObject メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Marshal.ReleaseComObject メソッドの意味・解説 

Marshal.ReleaseComObject メソッド

提供されたランタイム呼び出し可能ラッパーの参照カウントをデクリメントします。

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Shared Function ReleaseComObject
 ( _
    o As Object _
) As Integer
Dim o As Object
Dim returnValue As Integer

returnValue = Marshal.ReleaseComObject(o)
public static int ReleaseComObject
 (
    Object o
)
public:
static int ReleaseComObject (
    Object^ o
)
public static int ReleaseComObject
 (
    Object o
)
public static function ReleaseComObject
 (
    o : Object
) : int

パラメータ

o

解放する COM オブジェクト。

戻り値
o に関連付けられているランタイム呼び出し可能ラッパーの参照カウントの新しい値。この値は通常 0 となります。ランタイム呼び出し可能ラッパーは、ラップされた COM オブジェクトへの参照を、それを呼び出しているマネージ クライアントの数に関係なく、1 つしか保持しないためです。

例外例外
例外の種類条件

ArgumentException

o が有効な COM オブジェクトではありません。

または

o が null 参照 (Visual Basic では Nothing) です。

解説解説

COM インターフェイス ポインタは、共通言語ランタイムを入力するたびに、ランタイム呼び出し可能ラッパーにラップされます。このラッパーの機能の詳細については、「ランタイム呼び出し可能ラッパー」を参照してください。

このメソッドは、マネージ コードで使用する COM オブジェクトの有効期間を明示的に制御するために使用します。リソースへの参照を保持している、基になる COM オブジェクトを適切なタイミングで解放する必要がある場合、またはオブジェクトを特定の順序で解放する必要がある場合は、このメソッドを使用します。

ランタイム呼び出し可能ラッパーは、COM インターフェイス ポインタが割り当てられるたびにインクリメントされる参照カウントを保持しています。ReleaseComObject メソッドは、ランタイム呼び出し可能ラッパーの参照カウントをデクリメントします。参照カウントがゼロに到達すると、ランタイムはアンマネージ COM オブジェクトのすべての参照を解放し、この後でオブジェクトを使用しようとすると System.NullReferenceException をスローします。同じ COM インターフェイスがアンマネージ コードからマネージ コードに複数回渡された場合、ラッパーの参照カウントは毎回インクリメントされ、ReleaseComObject を呼び出すと、残りの参照の数が返されます。

メモメモ

ランタイム呼び出し可能ラッパーと元の COM オブジェクトが確実に解放されるようにするには、ループを作成し、返される参照カウントが 0 になるまで、ループの中でこのメソッドを呼び出します。

メモメモ

このメソッドは SecurityAction.LinkDemand を使用して、信頼関係のないコードからの呼び出しを防ぎます。SecurityPermissionAttribute.UnmanagedCode アクセス許可は、直前の呼び出し元にのみ要求されます。信頼性が一部しか確認されていないコードから呼び出すことができるコードの場合、ユーザー入力を検証せずに Marshal クラスに渡すことは避けてください。LinkDemand メンバの使用に関する重要な制約事項については、「Demand と LinkDemand」を参照してください。

.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Marshal クラス
Marshal メンバ
System.Runtime.InteropServices 名前空間
FinalReleaseComObject
NullReferenceException



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「Marshal.ReleaseComObject メソッド」の関連用語

Marshal.ReleaseComObject メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Marshal.ReleaseComObject メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS