Marshal.ReleaseComObject メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

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


COM インターフェイス ポインタは、共通言語ランタイムを入力するたびに、ランタイム呼び出し可能ラッパーにラップされます。このラッパーの機能の詳細については、「ランタイム呼び出し可能ラッパー」を参照してください。
このメソッドは、マネージ コードで使用する COM オブジェクトの有効期間を明示的に制御するために使用します。リソースへの参照を保持している、基になる COM オブジェクトを適切なタイミングで解放する必要がある場合、またはオブジェクトを特定の順序で解放する必要がある場合は、このメソッドを使用します。
ランタイム呼び出し可能ラッパーは、COM インターフェイス ポインタが割り当てられるたびにインクリメントされる参照カウントを保持しています。ReleaseComObject メソッドは、ランタイム呼び出し可能ラッパーの参照カウントをデクリメントします。参照カウントがゼロに到達すると、ランタイムはアンマネージ COM オブジェクトのすべての参照を解放し、この後でオブジェクトを使用しようとすると System.NullReferenceException をスローします。同じ COM インターフェイスがアンマネージ コードからマネージ コードに複数回渡された場合、ラッパーの参照カウントは毎回インクリメントされ、ReleaseComObject を呼び出すと、残りの参照の数が返されます。
![]() |
---|
ランタイム呼び出し可能ラッパーと元の COM オブジェクトが確実に解放されるようにするには、ループを作成し、返される参照カウントが 0 になるまで、ループの中でこのメソッドを呼び出します。 |

- SecurityPermission (アンマネージ コードを呼び出すために必要なアクセス許可)。 UnmanagedCode (関連する列挙体)。LinkDemand (セキュリティ アクション)。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からMarshal.ReleaseComObject メソッドを検索する場合は、下記のリンクをクリックしてください。

- Marshal.ReleaseComObject メソッドのページへのリンク