Compartilhar via


RealProxy.GetCOMIUnknown(Boolean) Método

Definição

Solicita uma referência não gerenciada para o objeto representado pela instância de proxy atual.

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 se a referência de objeto for solicitada para realização de marshaling em um local remoto; false se a referência de objeto for solicitada para comunicação com objetos não gerenciados no processo atual usando COM.

Retornos

IntPtr

nativeint

Um ponteiro para um COM Callable Wrapper se a referência de objeto for solicitada para comunicação com objetos não gerenciados no processo atual usando COM ou um ponteiro para uma interface COM IUnknown gerada recentemente ou armazenada em cache se a referência de objeto for solicitada para realização de marshaling em um local remoto.

Atributos

Exemplos

[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

Comentários

Se o proxy for solicitado para marshaling, uma IUnknown interface para o objeto representado pela instância de proxy atual será retornada. Se um IUnknown tiver sido armazenado em cache anteriormente pelo SetCOMIUnknown método , essa instância será retornada; caso contrário, uma nova instância será retornada.

Se o proxy for solicitado não para marshaling, mas para comunicação com objetos não gerenciados no processo atual, um CCW (Com Callable Wrapper ), que pode ser usado no processo atual para comunicação por meio de COM, será retornado.

Aplica-se a