Bagikan melalui


RealProxy.SetCOMIUnknown(IntPtr) Metode

Definisi

Menyimpan proksi objek yang tidak dikelola yang diwakili oleh instans saat ini.

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

Penunjuk ke IUnknown antarmuka untuk objek yang diwakili oleh instans proksi saat ini.

Contoh

[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

Keterangan

Ketika proksi yang tidak dikelola mencoba berkomunikasi dengan runtime bahasa umum melalui COM, runtime menyelesaikan objek jarak jauh yang diwakili oleh proksi yang tidak dikelola. Jika objek jarak jauh dikelola dan juga berada di lingkungan bahasa umum, maka alih-alih berkomunikasi dengannya melalui COM terdistribusi, objek dikirim ke proses saat ini.

Jika objek jarak jauh tidak berasal dari MarshalByRefObject, maka objek tersebut diserialisasikan dan disalin ke lokasi saat ini. Jika berasal dari MarshalByRefObject, maka ia mengembalikan proksi transparan, dan infrastruktur jarak jauh menyimpan proksi yang tidak dikelola ( IUnknown antarmuka) di proksi transparan untuk digunakan di masa mendatang.

Berlaku untuk