Comparteix a través de


RealProxy.GetCOMIUnknown(Boolean) Método

Definición

Solicita una referencia no administrada al objeto representado por la instancia actual del 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

Parámetros

fIsMarshalled
Boolean

Es true si la referencia al objeto se solicita para calcular las referencias a una ubicación remota; es false si la referencia a objeto se solicita para establecer comunicación con objetos no administrados en el proceso actual mediante COM.

Devoluciones

IntPtr

nativeint

Puntero a un contenedor CCW si se solicita la referencia al objeto para establecer comunicación con objetos no administrados en el proceso actual por medio de COM, o un puntero a una interfaz COM IUnknown en caché o recientemente generado si la referencia a objeto se solicita para calcular las referencias a una ubicación remota.

Atributos

Ejemplos

[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

Comentarios

Si se solicita el proxy para la serialización, se devuelve una IUnknown interfaz para el objeto representado por la instancia de proxy actual. Si el método ha almacenado SetCOMIUnknown previamente en caché una IUnknown instancia, se devuelve esa instancia; de lo contrario, se devuelve una nueva instancia.

Si el proxy no se solicita para la serialización, sino para la comunicación con objetos no administrados en el proceso actual, se devuelve un contenedor llamado COM (CCW), que se puede usar en el proceso actual para la comunicación a través de COM.

Se aplica a