Freigeben über


RealProxy.GetCOMIUnknown-Methode

Fordert einen nicht verwalteten Verweis auf das Objekt an, das von der aktuellen Proxyinstanz dargestellt wird.

Namespace: System.Runtime.Remoting.Proxies
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Overridable Function GetCOMIUnknown ( _
    fIsMarshalled As Boolean _
) As IntPtr
'Usage
Dim instance As RealProxy
Dim fIsMarshalled As Boolean
Dim returnValue As IntPtr

returnValue = instance.GetCOMIUnknown(fIsMarshalled)
public virtual IntPtr GetCOMIUnknown (
    bool fIsMarshalled
)
public:
virtual IntPtr GetCOMIUnknown (
    bool fIsMarshalled
)
public IntPtr GetCOMIUnknown (
    boolean fIsMarshalled
)
public function GetCOMIUnknown (
    fIsMarshalled : boolean
) : IntPtr

Parameter

  • fIsMarshalled
    true, wenn der Objektverweis zum Marshallen zu einem Remotespeicherplatz angefordert wird. false, wenn der Objektverweis zum Kommunizieren mit nicht verwalteten Objekten im aktuellen Prozess über COM angefordert wird.

Rückgabewert

Ein Zeiger auf einen COM Callable Wrapper (CCW), wenn der Objektverweis zum Kommunizieren mit nicht verwalteten Objekten im aktuellen Prozess über COM angefordert wird, oder ein Zeiger auf eine zwischengespeicherte oder neu generierte IUnknown-COM-Schnittstelle, wenn der Objektverweis zum Marshallen zu einem Remotespeicherort angefordert wird.

Hinweise

Wenn der Proxy zum Marshallen angefordert wird, wird eine IUnknown-Schnittstelle für das Objekt zurückgegeben, das durch die aktuelle Proxyinstanz dargestellt wird. Wenn IUnknown zuvor durch die SetCOMIUnknown-Methode zwischengespeichert wurde, wird diese Instanz, andernfalls eine neue Instanz zurückgegeben.

Wenn der Proxy nicht zum Marshallen, sondern zum Kommunizieren mit nicht verwalteten Objekten im aktuellen Prozess angefordert wurde, wird ein CWW (COM Callable Wrapper (CCW)) zurückgegeben, der im aktuellen Prozess für die Kommunikation über COM verwendet werden kann.

Beispiel

<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
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.Infrastructure)]
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;
}

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

RealProxy-Klasse
RealProxy-Member
System.Runtime.Remoting.Proxies-Namespace