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

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

Marshal.GetIUnknownForObject メソッド

マネージ オブジェクトから IUnknown インターフェイス返します

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

Public Shared Function GetIUnknownForObject
 ( _
    o As Object _
) As IntPtr
Dim o As Object
Dim returnValue As IntPtr

returnValue = Marshal.GetIUnknownForObject(o)
public static IntPtr GetIUnknownForObject (
    Object o
)
public:
static IntPtr GetIUnknownForObject (
    Object^ o
)
public static IntPtr GetIUnknownForObject (
    Object o
)
public static function GetIUnknownForObject
 (
    o : Object
) : IntPtr

パラメータ

o

要求される IUnknown インターフェイスを持つオブジェクト

戻り値
o パラメータIUnknown ポインタ

解説解説

マネージ コードでは、IUnknown インターフェイス直接使用することはほとんどありません。ただし、IntPtr 型として、またはカスタム マーシャリングCOM オブジェクトパラメータ公開するメソッド呼び出すときは、GetIUnknownForObject使用します。このメソッドオブジェクト呼び出すと、ポインタ返される前にインターフェイス ポインタ参照カウントインクリメントされますポインタ使用終わったときは、必ず Marshal.Release を使用して参照カウントデクリメントしてください。このメソッドは、Marshal.GetObjectForIUnknown メソッド反対機能提供します

マネージ オブジェクトでこのメソッド使用すると、オブジェクトCOM 呼び出し可能ラッパーへのインターフェイス ポインタ取得できます詳細については、COM 呼び出し可能ラッパートピック参照してください

メモメモ

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

使用例使用例

GetIUnknownForObject メソッド使用してマネージ オブジェクトIUnknown インターフェイス取得する方法次のコード例示します

Imports System.Runtime.InteropServices

Module Program


    Sub Run()

        ' Dim an Integer object
        Dim IntegerObject As Integer
 = 1

        ' Dim a pointer
        Dim pointer As IntPtr

        Console.WriteLine("Calling Marshal.GetIUnknownForObject...")

        ' Get the IUnKnown pointer for the Integer object
        pointer = Marshal.GetIUnknownForObject(IntegerObject)

        Console.WriteLine("Calling Marshal.Release...")

        ' Always call Marshal.Release to decrement the reference count.
        Marshal.Release(pointer)



    End Sub

    Sub Main(ByVal args() As
 String)

        Run()

    End Sub

End Module


using System;
using System.Runtime.InteropServices;

class Program
{

    static void Run()
    {

        // Create an int object
        int obj = 1;

        Console.WriteLine("Calling Marshal.GetIUnknownForObject...");

        // Get the IUnKnown pointer for the Integer object
        IntPtr pointer = Marshal.GetIUnknownForObject(obj);

        Console.WriteLine("Calling Marshal.Release...");

        // Always call Marshal.Release to decrement the reference count.
        Marshal.Release(pointer);
    }

    static void Main(string[]
 args)
    {
        Run();
    }
}
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Marshal クラス
Marshal メンバ
System.Runtime.InteropServices 名前空間
Release
GetObjectForIUnknown


このページでは「.NET Framework クラス ライブラリ リファレンス」からMarshal.GetIUnknownForObject メソッドを検索した結果を表示しています。
Weblioに収録されているすべての辞書からMarshal.GetIUnknownForObject メソッドを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からMarshal.GetIUnknownForObject メソッド を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

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

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

   

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



Marshal.GetIUnknownForObject メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS