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 名前空間