Freigeben über


RealProxy.GetCOMIUnknown(Boolean) Methode

Definition

Fordert einen nicht verwalteten Verweis auf das Objekt an, das durch die aktuelle Proxyinstanz dargestellt wird.

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

Parameter

fIsMarshalled
Boolean

true, wenn der Objektverweis zum Marshalling zu einem Remotespeicherort angefordert wird; false, wenn der Objektverweis zum Kommunizieren mit nicht verwalteten Objekten im aktuellen Prozess über COM angefordert wird.

Gibt zurück

IntPtr

nativeint

Ein Zeiger auf einen COM Callable Wrapper, wenn der Objektverweis für die Kommunikation mit nicht verwalteten Objekten im aktuellen Prozess über COM angefordert wird, oder ein Zeiger auf eine zwischengespeicherte oder neu generierte IUnknown-COM-Schnittstelle, wenn der Objektverweis zum Marshalling zu einem Remotespeicherort angefordert wird.

Attribute

Beispiele

[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

Hinweise

Wenn der Proxy für das Marshalling angefordert wird, wird eine IUnknown Schnittstelle für das Objekt zurückgegeben, das vom aktuellen Proxy instance dargestellt wird. Wenn ein IUnknown zuvor von der SetCOMIUnknown -Methode zwischengespeichert wurde, wird dieser instance zurückgegeben. Andernfalls wird ein neuer instance zurückgegeben.

Wenn der Proxy nicht für das Marshalling, sondern für die Kommunikation mit nicht verwalteten Objekten im aktuellen Prozess angefordert wird, wird ein COM Callable Wrapper (CCW) zurückgegeben, der im aktuellen Prozess für die Kommunikation über COM verwendet werden kann.

Gilt für: