Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Speichert einen nicht verwalteten Proxy des Objekts, das von der aktuellen Instanz dargestellt wird.
Namespace: System.Runtime.Remoting.Proxies
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Overridable Sub SetCOMIUnknown ( _
i As IntPtr _
)
'Usage
Dim instance As RealProxy
Dim i As IntPtr
instance.SetCOMIUnknown(i)
public virtual void SetCOMIUnknown (
IntPtr i
)
public:
virtual void SetCOMIUnknown (
IntPtr i
)
public void SetCOMIUnknown (
IntPtr i
)
public function SetCOMIUnknown (
i : IntPtr
)
Parameter
- i
Ein Zeiger auf die IUnknown-Schnittstelle des Objekts, das durch die aktuelle Proxyinstanz dargestellt wird.
Hinweise
Wenn ein nicht verwalteter Proxy mit der Common Language Runtime über COM zu kommunizieren versucht, löst die Laufzeit das vom nicht verwalteten Proxy dargestellte Remoteobjekt auf. Wenn das Remoteobjekt verwaltet ist und sich ebenfalls in einer Umgebung mit Common Language Runtime befindet, wird es an den aktuellen Prozess gesendet, und mit ihm wird nicht über Distributed COM kommuniziert.
Wenn das Remoteobjekt nicht von MarshalByRefObject abgeleitet ist, wird es serialisiert und an den aktuellen Speicherort kopiert. Wenn es von MarshalByRefObject abgeleitet ist, gibt es einen transparenten Proxy zurück, und der nicht verwaltete Proxy (die IUnknown-Schnittstelle) wird von der Remoteinfrastruktur im transparenten Proxy für eine spätere Verwendung zwischengespeichert.
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