RealProxy.GetCOMIUnknown(Boolean) 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.
Żąda niezarządzanego odwołania do obiektu reprezentowanego przez bieżące wystąpienie serwera proxy.
public:
virtual IntPtr GetCOMIUnknown(bool fIsMarshalled);
public virtual IntPtr GetCOMIUnknown (bool fIsMarshalled);
[System.Security.SecurityCritical]
public virtual IntPtr GetCOMIUnknown (bool fIsMarshalled);
abstract member GetCOMIUnknown : bool -> nativeint
override this.GetCOMIUnknown : bool -> nativeint
[<System.Security.SecurityCritical>]
abstract member GetCOMIUnknown : bool -> nativeint
override this.GetCOMIUnknown : bool -> nativeint
Public Overridable Function GetCOMIUnknown (fIsMarshalled As Boolean) As IntPtr
Parametry
- fIsMarshalled
- Boolean
true
jeśli odwołanie do obiektu jest wymagane do marshalingu do lokalizacji zdalnej; false
jeśli odwołanie do obiektu jest wymagane do komunikacji z obiektami niezarządzanymi w bieżącym procesie za pośrednictwem modelu COM.
Zwraca
nativeint
Wskaźnik do zawijania wywołującego COM , jeśli odwołanie do obiektu jest wymagane do komunikacji z niezarządzanymi obiektami w bieżącym procesie za pośrednictwem MODELU COM, lub wskaźnik do buforowanego lub nowo wygenerowanego IUnknown
interfejsu COM, jeśli odwołanie do obiektu jest wymagane do marshalingu do lokalizacji zdalnej.
- Atrybuty
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
Jeśli serwer proxy jest żądany do marshalingu, IUnknown
zwracany jest interfejs obiektu reprezentowanego przez bieżące wystąpienie serwera proxy.
IUnknown
Jeśli obiekt został wcześniej buforowany przez metodęSetCOMIUnknown, zwracane jest to wystąpienie. W przeciwnym razie zwracane jest nowe wystąpienie.
Jeśli serwer proxy nie jest żądany do marshalingu, ale do komunikacji z obiektami niezarządzanymi w bieżącym procesie, zwracana jest otoka wywołalna MODELU COM (CCW), która może być używana w bieżącym procesie komunikacji za pośrednictwem modelu COM.