RealProxy.SetCOMIUnknown(IntPtr) Méthode

Définition

Stocke un proxy non managé de l'objet représenté par l'instance actuelle.

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)

Paramètres

i
IntPtr

nativeint

Pointeur vers l'interface IUnknown pour l'objet représenté par l'instance de proxy en cours.

Exemples

[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

Remarques

Lorsqu’un proxy non managé tente de communiquer avec le Common Language Runtime via COM, le runtime résout l’objet distant représenté par le proxy non managé. Si l’objet distant est géré et réside également dans un environnement de langage commun, au lieu de communiquer avec lui via com distribué, l’objet est envoyé au processus actuel.

Si l’objet distant n’est pas dérivé de MarshalByRefObject, il est sérialisé et copié à l’emplacement actuel. S’il est dérivé de MarshalByRefObject, il retourne un proxy transparent, et l’infrastructure de communication à distance met en cache le proxy non managé (l’interface IUnknown ) dans le proxy transparent pour une utilisation ultérieure.

S’applique à