Sdílet prostřednictvím


RealProxy.GetCOMIUnknown(Boolean) Metoda

Definice

Vyžádá si nespravovaný odkaz na objekt reprezentovaný aktuální instancí proxy serveru.

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 pokud je požadován odkaz na objekt pro zařazování do vzdáleného umístění; false pokud je odkaz na objekt požadován pro komunikaci s nespravovanými objekty v aktuálním procesu prostřednictvím modelu COM.

Návraty

IntPtr

nativeint

Ukazatel na obálku COM Callable, pokud je odkaz na objekt požadován pro komunikaci s nespravovanými objekty v aktuálním procesu prostřednictvím modelu COM, nebo ukazatel na rozhraní COM v mezipaměti nebo nově vygenerované IUnknown rozhraní COM, pokud je odkaz na objekt požadován pro zařazování do vzdáleného umístění.

Atributy

Příklady

[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

Poznámky

Pokud je proxy server požadován pro zařazování, vrátí IUnknown se rozhraní pro objekt reprezentovaný aktuální instancí proxy serveru. IUnknown Pokud byla dříve uložena do mezipaměti metodouSetCOMIUnknown, vrátí se tato instance; v opačném případě se vrátí nová instance.

Pokud proxy server není požadován pro zařazování, ale pro komunikaci s nespravovanými objekty v aktuálním procesu, je vrácena obálka COM Callable Wrapper (CCW), která může být použita v aktuálním procesu pro komunikaci prostřednictvím modelu COM.

Platí pro