Marshal.QueryInterface(IntPtr, Guid, IntPtr) 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 penunjuk ke antarmuka tertentu dari objek COM.
public:
static int QueryInterface(IntPtr pUnk, Guid % iid, [Runtime::InteropServices::Out] IntPtr % ppv);
[System.Security.SecurityCritical]
public static int QueryInterface (IntPtr pUnk, ref Guid iid, out IntPtr ppv);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static int QueryInterface (IntPtr pUnk, ref Guid iid, out IntPtr ppv);
public static int QueryInterface (IntPtr pUnk, ref Guid iid, out IntPtr ppv);
public static int QueryInterface (IntPtr pUnk, in Guid iid, out IntPtr ppv);
[<System.Security.SecurityCritical>]
static member QueryInterface : nativeint * Guid * nativeint -> int
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member QueryInterface : nativeint * Guid * nativeint -> int
static member QueryInterface : nativeint * Guid * nativeint -> int
Public Shared Function QueryInterface (pUnk As IntPtr, ByRef iid As Guid, ByRef ppv As IntPtr) As Integer
Parameter
- pUnk
-
IntPtr
nativeint
Antarmuka yang akan dikueri.
- iid
- Guid
Pengidentifikasi antarmuka (IID) dari antarmuka yang diminta.
- ppv
-
IntPtr
nativeint
Ketika metode ini kembali, berisi referensi ke antarmuka yang dikembalikan.
Mengembalikan
HRESULT yang menunjukkan keberhasilan atau kegagalan panggilan.
- Atribut
Keterangan
Metode ini QueryInterface mengekspos metode IUnknown::QueryInterface dari objek COM, yang mencoba mendapatkan penunjuk antarmuka tertentu. Menggunakan QueryInterface
pada objek COM sama dengan melakukan operasi transmisi dalam kode terkelola. Memanggil objek dengan metode ini menyebabkan jumlah referensi bertambah pada penunjuk antarmuka sebelum penunjuk dikembalikan. Selalu gunakan Marshal.Release untuk mengurangi jumlah referensi setelah Anda selesai dengan penunjuk. Untuk mendapatkan IntPtr nilai yang mewakili penunjuk antarmuka IUnknown , Anda dapat memanggil Marshal.GetComInterfaceForObject, , Marshal.GetIUnknownForObjectatau Marshal.GetIDispatchForObject.