RealProxy.SetCOMIUnknown(IntPtr) 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í.
Ukládá nespravovaný proxy objektu, který je reprezentován aktuální instancí.
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
Ukazatel na IUnknown
rozhraní pro objekt, který je reprezentován aktuální instance proxy.
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
Když se nespravovaný proxy pokusí komunikovat s modulem CLR (Common Language Runtime) prostřednictvím modelu COM, modul runtime přeloží vzdálený objekt, který je reprezentován nespravovaným proxy serverem. Pokud je vzdálený objekt spravován a také se nachází ve společném jazykovém prostředí, pak místo komunikace s ním prostřednictvím distribuovaného modelu COM je objekt odeslán do aktuálního procesu.
Pokud vzdálený objekt není odvozen z MarshalByRefObject, je serializován a zkopírován do aktuálního umístění. Pokud je odvozen z MarshalByRefObject, vrátí transparentní proxy server a infrastruktura vzdálené komunikace ukládá nespravovaný proxy server ( IUnknown
rozhraní) do mezipaměti pro budoucí použití.