RealProxy.GetCOMIUnknown(Boolean) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Meminta referensi tidak terkelola ke objek yang diwakili oleh instans proksi saat ini.
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
jika referensi objek diminta untuk marshaling ke lokasi jarak jauh; false
jika referensi objek diminta untuk komunikasi dengan objek yang tidak dikelola dalam proses saat ini melalui COM.
Mengembalikan
nativeint
Penunjuk ke COM Callable Wrapper jika referensi objek diminta untuk komunikasi dengan objek yang tidak dikelola dalam proses saat ini melalui COM, atau penunjuk ke antarmuka COM yang di-cache atau baru dibuat IUnknown
jika referensi objek diminta untuk marshaling ke lokasi jarak jauh.
- Atribut
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
Jika proksi diminta untuk marshaling, maka antarmuka untuk objek yang IUnknown
diwakili oleh instans proksi saat ini dikembalikan.
IUnknown
Jika sebelumnya di-cache oleh SetCOMIUnknown metode , maka instans tersebut dikembalikan; jika tidak, instans baru dikembalikan.
Jika proksi diminta bukan untuk marshaling tetapi untuk komunikasi dengan objek yang tidak dikelola dalam proses saat ini, maka COM Callable Wrapper (CCW), yang dapat digunakan dalam proses saat ini untuk komunikasi melalui COM, dikembalikan.