Freigeben über


RealProxy.SetCOMIUnknown(IntPtr) Methode

Definition

Speichert einen nicht verwalteten Proxy des Objekts, das von der aktuellen 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 des Objekts, das durch die aktuelle 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 Runtime das Remoteobjekt auf, das vom nicht verwalteten Proxy dargestellt wird. Wenn das Remoteobjekt verwaltet wird und sich auch in einer gemeinsamen Sprachumgebung befindet, wird das Objekt an den aktuellen Prozess gesendet, anstatt mit ihm über verteiltes COM zu kommunizieren.

Wenn das Remoteobjekt nicht von MarshalByRefObjectabgeleitet 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 zur zukünftigen Verwendung zwischen.

Gilt für: