RealProxy.SetCOMIUnknown(IntPtr) Methode

Definition

Speichert einen nicht verwalteten Proxy des Objekts, das durch die aktuelle Instanz dargestellt wird.

public:
 virtual void SetCOMIUnknown(IntPtr i);
public virtual void SetCOMIUnknown(IntPtr i);
abstract member SetCOMIUnknown : nativeint -> unit
override this.SetCOMIUnknown : nativeint -> unit
Public Overridable Sub SetCOMIUnknown (i As IntPtr)

Parameter

i
IntPtr

nativeint

Ein Zeiger auf die IUnknown Schnittstelle für das Objekt, das von der aktuellen Proxyinstanz dargestellt wird.

Beispiele

[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

Hinweise

Wenn ein nicht verwalteter Proxy versucht, mit der Common Language Runtime über COM zu kommunizieren, löst die Laufzeit das Remoteobjekt auf, das durch den nicht verwalteten Proxy dargestellt wird. Wenn das Remoteobjekt verwaltet wird und sich auch in einer gemeinsamen Sprachumgebung befindet, wird das Objekt anstelle der Kommunikation mit dem Objekt über verteilte COM an den aktuellen Prozess gesendet.

Wenn das Remoteobjekt nicht von MarshalByRefObjectdem abgeleitet wird, wird es serialisiert und an den aktuellen Speicherort kopiert. Wenn sie von MarshalByRefObjectabgeleitet wird, wird ein transparenter Proxy zurückgegeben, und die Remotinginfrastruktur speichert den nicht verwalteten Proxy (die IUnknown Schnittstelle) im transparenten Proxy für die zukünftige Verwendung zwischen.

Gilt für: