Udostępnij za pośrednictwem


RealProxy.SetCOMIUnknown(IntPtr) Metoda

Definicja

Przechowuje niezarządzany serwer proxy obiektu reprezentowanego przez bieżące wystąpienie.

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)

Parametry

i
IntPtr

nativeint

Wskaźnik do interfejsu IUnknown obiektu reprezentowanego przez bieżące wystąpienie serwera proxy.

Przykłady

[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

Uwagi

Gdy niezarządzany serwer proxy próbuje komunikować się ze środowiskiem uruchomieniowym języka wspólnego za pośrednictwem modelu COM, środowisko uruchomieniowe rozpoznaje obiekt zdalny reprezentowany przez niezarządzany serwer proxy. Jeśli obiekt zdalny jest zarządzany, a także znajduje się w środowisku języka wspólnego, zamiast komunikować się z nim za pośrednictwem rozproszonego modelu COM, obiekt jest wysyłany do bieżącego procesu.

Jeśli obiekt zdalny nie pochodzi z MarshalByRefObjectklasy , jest serializowany i kopiowany do bieżącej lokalizacji. Jeśli pochodzi z MarshalByRefObjectmetody , zwraca przezroczysty serwer proxy, a infrastruktura komunikacji wirtualnej buforuje niezarządzany serwer proxy ( IUnknown interfejs) w przezroczystym serwerze proxy do użycia w przyszłości.

Dotyczy