RealProxy.GetCOMIUnknown(Boolean) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.