RealProxy.GetCOMIUnknown(Boolean) Método

Definición

Solicita una referencia no administrada al objeto representado por la instancia de proxy actual.

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

true si se solicita la referencia de objeto para serializar en una ubicación remota; false si se solicita la referencia de objeto para la comunicación con objetos no administrados en el proceso actual a través de COM.

Devoluciones

IntPtr

nativeint

Puntero a un contenedor invocable COM si se solicita la referencia de objeto para la comunicación con objetos no administrados en el proceso actual a través de COM, o un puntero a una interfaz COM almacenada en caché o recién generada IUnknown si se solicita la referencia del objeto para serializar en 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 serializar, se devuelve una IUnknown interfaz para el objeto representado por la instancia de proxy actual. Si el SetCOMIUnknown método devolvió previamente una IUnknown memoria caché, se devuelve esa instancia; de lo contrario, se devuelve una nueva instancia.

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

Se aplica a