RealProxy.SetCOMIUnknown(IntPtr) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.