RealProxy.GetCOMIUnknown(Boolean) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Fordert einen nicht verwalteten Verweis auf das Objekt an, das von der aktuellen 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 für die Marshalling an einen Remotestandort angefordert wird; false wenn der Objektverweis für die Kommunikation mit nicht verwalteten Objekten im aktuellen Prozess über COM angefordert wird.
Gibt zurück
nativeint
Ein Zeiger auf einen COM-Aufrufbaren Wrapper , wenn der Objektverweis für die Kommunikation mit nicht verwalteten Objekten im aktuellen Prozess über COM oder einem Zeiger auf eine zwischengespeicherte oder neu generierte IUnknown COM-Schnittstelle angefordert wird, wenn der Objektverweis für die Marshalling an einen Remotestandort 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 durch die aktuelle Proxyinstanz dargestellte Objekt zurückgegeben. Wenn eine IUnknown zuvor von der SetCOMIUnknown Methode zwischengespeichert wurde, wird diese Instanz zurückgegeben. Andernfalls wird eine neue Instanz zurückgegeben.
Wenn der Proxy nicht für das Marshallen, 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.