RealProxy.GetCOMIUnknown(Boolean) メソッド

定義

現在のプロキシ インスタンスによって表されるオブジェクトへのアンマネージ参照を要求します。

public:
 virtual IntPtr GetCOMIUnknown(bool fIsMarshalled);
public virtual IntPtr GetCOMIUnknown(bool fIsMarshalled);
[System.Security.SecurityCritical]
public virtual IntPtr GetCOMIUnknown(bool fIsMarshalled);
abstract member GetCOMIUnknown : bool -> nativeint
override this.GetCOMIUnknown : bool -> nativeint
[<System.Security.SecurityCritical>]
abstract member GetCOMIUnknown : bool -> nativeint
override this.GetCOMIUnknown : bool -> nativeint
Public Overridable Function GetCOMIUnknown (fIsMarshalled As Boolean) As IntPtr

パラメーター

fIsMarshalled
Boolean

trueリモートの場所へのマーシャリングのためにオブジェクト参照が要求された場合。、COM を介して現在のプロセス内のアンマネージ オブジェクトとの通信に対してオブジェクト参照が要求される場合に使用します。

返品

IntPtr

nativeint

COM を介して現在のプロセス内のアンマネージ オブジェクトとの通信のためにオブジェクト参照が要求された場合は COM 呼び出し可能ラッパー へのポインター。オブジェクト参照がリモートの場所へのマーシャリングを要求された場合は、COM インターフェイス IUnknown キャッシュまたは新しく生成されたポインター。

属性

[SecurityPermission(SecurityAction::LinkDemand, Flags = SecurityPermissionFlag::Infrastructure)]
IntPtr SupportsInterface( Guid * /*myGuid*/ )
{
   Console::WriteLine( "SupportsInterface method called" );
   
   // Object reference is requested for communication with unmanaged objects
   // in the current process through COM.
   IntPtr myIntPtr = this->GetCOMIUnknown( false );
   
   // Stores an unmanaged proxy of the object.
   this->SetCOMIUnknown( myIntPtr );
   
   // return COM Runtime Wrapper pointer.
   return myIntPtr;
}
public override IntPtr SupportsInterface(ref Guid myGuid)
{
    Console.WriteLine("SupportsInterface method called");
    // Object reference is requested for communication with unmanaged objects
    // in the current process through COM.
    IntPtr myIntPtr = this.GetCOMIUnknown(false);
    // Stores an unmanaged proxy of the object.
    this.SetCOMIUnknown(myIntPtr);
    // return COM Runtime Wrapper pointer.
    return myIntPtr;
}
<SecurityPermission(SecurityAction.LinkDemand, Flags := SecurityPermissionFlag.Infrastructure)> _
Public Overrides Function SupportsInterface(ByRef myGuid As Guid) As IntPtr
   Console.WriteLine("SupportsInterface method called")
   ' Object reference is requested for communication with unmanaged objects
   ' in the current process through COM.
   Dim myIntPtr As IntPtr = Me.GetCOMIUnknown(False)
   ' Stores an unmanaged proxy of the object.
   Me.SetCOMIUnknown(myIntPtr)
   ' return COM Runtime Wrapper pointer.
   Return myIntPtr
End Function 'SupportsInterface

注釈

プロキシがマーシャリングを要求された場合は、現在のプロキシ インスタンスによって表されるオブジェクトの IUnknown インターフェイスが返されます。 IUnknownが以前に SetCOMIUnknown メソッドによってキャッシュされた場合、そのインスタンスが返されます。それ以外の場合は、新しいインスタンスが返されます。

プロキシがマーシャリングではなく、現在のプロセス内のアンマネージ オブジェクトとの通信のために要求された場合は、COM を介した通信のために現在のプロセスで使用できる COM 呼び出し可能ラッパー (CCW) が返されます。

適用対象