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

Dim pUnk As IntPtr Dim returnValue As Integer returnValue = Marshal.AddRef(pUnk)
戻り値
pUnk パラメータの参照カウントの新しい値。

COM オブジェクトの参照カウントは共通言語ランタイムが自動的に管理するため、このメソッドを直接使用する必要はありません。ただし、カスタム マーシャラをテストするときなど、オブジェクトの有効期間を手動で操作する必要がある場合もあります。このような場合は、AddRef を呼び出した後、Marshal.Release などのメソッドを使用して参照カウントをデクリメントする必要があります。AddRef の戻り値は不安定な場合もあるため、依存しないようにしてください。
IUnknown インターフェイス ポインタを表す IntPtr の値を取得するには、Marshal.GetComInterfaceForObject、Marshal.GetIUnknownForObject、または Marshal.GetIDispatchForObject を呼び出します。また、これらのメソッドおよび AddRef メソッドをマネージ オブジェクトで使用すると、マネージ オブジェクトの COM 呼び出し可能ラッパーによって表される COM インターフェイスを取得できます。このラッパー型の詳細については、「COM 呼び出し可能ラッパー」を参照してください。IUnknown::AddRef の詳細については、MSDN ライブラリを参照してください。
![]() |
---|
このメソッドは SecurityAction.LinkDemand を使用して、信頼関係のないコードからの呼び出しを防ぎます。SecurityPermissionAttribute.UnmanagedCode アクセス許可は、直前の呼び出し元にのみ要求されます。信頼性が一部しか確認されていないコードから呼び出すことができるコードの場合、ユーザー入力を検証せずに Marshal クラスに渡すことは避けてください。LinkDemand メンバの使用に関する重要な制約事項については、「Demand と LinkDemand」を参照してください。 |

- 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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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