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 von der aktuellen 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 des Objekts, das durch die aktuelle 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 Runtime das Remoteobjekt auf, das vom nicht verwalteten Proxy dargestellt wird. Wenn das Remoteobjekt verwaltet wird und sich auch in einer gemeinsamen Sprachumgebung befindet, wird das Objekt an den aktuellen Prozess gesendet, anstatt mit ihm über verteiltes COM zu kommunizieren.
Wenn das Remoteobjekt nicht von MarshalByRefObjectabgeleitet 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 zur zukünftigen Verwendung zwischen.