RealProxy.GetCOMIUnknown メソッド

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

Public Overridable Function GetCOMIUnknown( _
   ByVal fIsMarshalled As Boolean _) As IntPtr
[C#]
public virtual IntPtr GetCOMIUnknown(boolfIsMarshalled);
[C++]
public: virtual IntPtr GetCOMIUnknown(boolfIsMarshalled);
[JScript]
public function GetCOMIUnknown(
   fIsMarshalled : Boolean) : IntPtr;

パラメータ

  • fIsMarshalled
    リモートの場所へのマーシャリングにオブジェクト参照が要求される場合は true 。現在のプロセス内のアンマネージ オブジェクトとの COM を経由した通信にオブジェクト参照が要求される場合は false

戻り値

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

解説

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

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

使用例

 
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

[C#] 
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;
}

[C++] 
public:
   IntPtr SupportsInterface(Guid* /*myGuid*/)
   {
      Console::WriteLine(S"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;
   }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

RealProxy クラス | RealProxy メンバ | System.Runtime.Remoting.Proxies 名前空間