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

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

Marshal.GetComInterfaceForObject メソッド

オブジェクトの指定したインターフェイスを表すインターフェイス ポインタを返します。

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

Public Shared Function GetComInterfaceForObject
 ( _
    o As Object, _
    T As Type _
) As IntPtr
Dim o As Object
Dim T As Type
Dim returnValue As IntPtr

returnValue = Marshal.GetComInterfaceForObject(o, T)
public static IntPtr GetComInterfaceForObject
 (
    Object o,
    Type T
)
public:
static IntPtr GetComInterfaceForObject (
    Object^ o, 
    Type^ T
)
public static IntPtr GetComInterfaceForObject
 (
    Object o, 
    Type T
)
public static function GetComInterfaceForObject
 (
    o : Object, 
    T : Type
) : IntPtr

パラメータ

o

インターフェイスを提供するオブジェクト。

T

要求されるインターフェイスの Type。

戻り値
オブジェクトのインターフェイスを表すインターフェイス ポインタ。

例外例外
例外の種類条件

ArgumentException

T パラメータがインターフェイスではありません。

または

型が COM から参照できません。

または

T パラメータがジェネリック型です。

InvalidCastException

o パラメータが要求されたインターフェイスをサポートしていません。

ArgumentNullException

o パラメータが null 参照 (Visual Basic では Nothing) です。

または

T パラメータが null 参照 (Visual Basic では Nothing) です。

解説解説

このメソッドは、指定したオブジェクトに対して要求したインターフェイスを表すインターフェイス ポインタを返します。このメソッドは、インターフェイス ポインタを渡す必要があるアンマネージ メソッドがある場合に特に役立ちます。このメソッドでオブジェクトを呼び出すと、ポインタが返される前に、インターフェイス ポインタで参照カウントがインクリメントされます。ポインタの使用が終わったときは、必ず Marshal.Release を使用して参照カウントをデクリメントしてください。生の COM インターフェイス ポインタを使用するときは、COM が定める規則に従ってください。

IntPtr 型として、またはカスタム マーシャリングで COM オブジェクトのパラメータを公開するメソッドを呼び出すときは、GetComInterfaceForObject を使用できます。一般的ではありませんが、オブジェクトの COM 呼び出し可能ラッパーへのポインタを取得するためにマネージ オブジェクトでこのメソッドを使用することもできます。たとえば、COM にエクスポートされたマネージ オブジェクトで GetComInterfaceForObject を使用すると、System.Runtime.InteropServices.UCOMIConnectionPointContainer のインターフェイス ポインタを取得できます。クラス ポインタでは、2 番目のパラメータ (t) に渡すための対応する型がないため、クラス インターフェイスへのポインタを取得することはできません。この場合は、代わりに、Marshal.GetIDispatchForObject を使用して COM 呼び出し可能ラッパーの既定のインターフェイスのメンバを呼び出します。これは通常、オートディスパッチ クラス インターフェイスです。

ランタイム呼び出し可能ラッパーおよび COM 呼び出し可能ラッパーの詳細については、「COM ラッパー」を参照してください。クラス インターフェイスの追加情報については、「クラス インターフェイスの概要」を参照してください。

メモメモ

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

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



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

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

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

   

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



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

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

©2026 GRAS Group, Inc.RSS