RealProxy.SetCOMIUnknown(IntPtr) 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.
Speichert einen nicht verwalteten Proxy des Objekts, das durch die aktuelle Instanz dargestellt wird.
public:
virtual void SetCOMIUnknown(IntPtr i);
public virtual void SetCOMIUnknown(IntPtr i);
abstract member SetCOMIUnknown : nativeint -> unit
override this.SetCOMIUnknown : nativeint -> unit
Public Overridable Sub SetCOMIUnknown (i As IntPtr)
Parameter
- i
-
IntPtr
nativeint
Ein Zeiger auf die IUnknown Schnittstelle für das Objekt, das von der aktuellen Proxyinstanz dargestellt wird.
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 ein nicht verwalteter Proxy versucht, mit der Common Language Runtime über COM zu kommunizieren, löst die Laufzeit das Remoteobjekt auf, das durch den nicht verwalteten Proxy dargestellt wird. Wenn das Remoteobjekt verwaltet wird und sich auch in einer gemeinsamen Sprachumgebung befindet, wird das Objekt anstelle der Kommunikation mit dem Objekt über verteilte COM an den aktuellen Prozess gesendet.
Wenn das Remoteobjekt nicht von MarshalByRefObjectdem abgeleitet wird, wird es serialisiert und an den aktuellen Speicherort kopiert. Wenn sie von MarshalByRefObjectabgeleitet wird, wird ein transparenter Proxy zurückgegeben, und die Remotinginfrastruktur speichert den nicht verwalteten Proxy (die IUnknown Schnittstelle) im transparenten Proxy für die zukünftige Verwendung zwischen.