RealProxy.GetCOMIUnknown(Boolean) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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.