Fungsi CoUnmarshalInterface (combaseapi.h)
Menginisialisasi proksi yang baru dibuat menggunakan data yang ditulis ke dalam aliran oleh panggilan sebelumnya ke fungsi CoMarshalInterface , dan mengembalikan penunjuk antarmuka ke proksi tersebut.
Sintaks
HRESULT CoUnmarshalInterface(
[in] LPSTREAM pStm,
[in] REFIID riid,
[out] LPVOID *ppv
);
Parameter
[in] pStm
Penunjuk ke aliran tempat antarmuka akan dilepaskan.
[in] riid
Referensi ke pengidentifikasi antarmuka yang akan dilepaskan namanya. Untuk IID_NULL, antarmuka yang dikembalikan adalah antarmuka yang ditentukan oleh aliran, objref.iid.
[out] ppv
Alamat variabel pointer yang menerima pointer antarmuka yang diminta dalam riid. Setelah berhasil kembali, *ppv berisi penunjuk antarmuka yang diminta untuk antarmuka yang tidak dinamai.
Nilai kembali
Fungsi ini dapat mengembalikan nilai pengembalian standar E_FAIL, kesalahan yang dikembalikan oleh CoCreateInstance, dan nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Penunjuk antarmuka berhasil disembunyikan. |
|
pStm adalah penunjuk yang tidak valid. |
|
Fungsi CoInitialize atau OleInitialize tidak dipanggil pada utas saat ini sebelum fungsi ini dipanggil. |
|
Aplikasi objek telah terputus dari sistem jarak jauh (misalnya, sebagai akibat dari panggilan ke fungsi CoDisconnectObject ). |
|
Terjadi kesalahan saat membaca database pendaftaran. |
|
QueryInterface akhir fungsi ini untuk antarmuka yang diminta dikembalikan E_NOINTERFACE. |
Keterangan
Catatan Keamanan: Memanggil metode ini dengan data yang tidak tepercaya adalah risiko keamanan. Panggil metode ini hanya dengan data tepercaya.
- Membaca dari aliran CLSID yang akan digunakan untuk membuat instans proksi.
- Mendapatkan penunjuk IMarshal ke proksi yang melakukan unmarshaling. Jika objek menggunakan implementasi marshaling default COM, pointer yang diperoleh adalah ke instans objek proksi generik. Jika marshaling terjadi di antara dua utas dalam proses yang sama, penunjuk adalah untuk instans marshaler utas gratis dalam proses. Jika objek menyediakan kode marshaling sendiri, CoUnmarshalInterface memanggil fungsi CoCreateInstance , meneruskan CLSID yang dibacanya dari aliran marshaling. CoCreateInstance membuat instans proksi objek dan mengembalikan penunjuk antarmuka IMarshal ke proksi.
- Menggunakan penunjuk antarmuka IMarshal mana pun yang telah diperolehnya, fungsi kemudian memanggil IMarshal::UnmarshalInterface dan, jika sesuai, IMarshal::ReleaseMarshalData.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows 2000 Server [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | combaseapi.h (termasuk Objbase.h) |
Pustaka | Ole32.lib |
DLL | Ole32.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk