IMarshal::Metode UnmarshalInterface (objidlbase.h)
Membatalkan nama penunjuk antarmuka.
Sintaks
HRESULT UnmarshalInterface(
[in] IStream *pStm,
[in] REFIID riid,
[out] void **ppv
);
Parameter
[in] pStm
Penunjuk ke aliran tempat penunjuk antarmuka tidak akan disembunyikan.
[in] riid
Referensi ke pengidentifikasi antarmuka yang akan dibatalkan napasnya.
[out] ppv
Alamat variabel pointer yang menerima penunjuk antarmuka. Setelah berhasil dikembalikan, *ppv berisi penunjuk antarmuka yang diminta dari antarmuka untuk tidak dirusak.
Nilai kembali
Metode ini dapat mengembalikan nilai pengembalian standar E_FAIL, serta nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Penunjuk antarmuka berhasil disembunyikan. |
|
Antarmuka yang ditentukan tidak didukung. |
Keterangan
Pustaka COM dalam proses di mana unmarshaling akan terjadi memanggil implementasi proksi dari metode ini.
Catatan untuk Penelepon
Anda tidak memanggil metode ini secara langsung. Namun, ada beberapa situasi di mana Anda mungkin menyebutnya secara tidak langsung melalui panggilan ke CoUnmarshalInterface. Misalnya, jika Anda menerapkan stub, implementasi Anda akan memanggil CoUnmarshalInterface ketika stub menerima pointer antarmuka sebagai parameter dalam panggilan metode.Catatan untuk Pelaksana
Implementasi proksi harus membaca data yang ditulis ke aliran oleh implementasi objek asli IMarshal::MarshalInterface dan menggunakan data tersebut untuk menginisialisasi objek proksi yang CLSID-nya dikembalikan oleh panggilan marshaling stub ke implementasi IMarshal::GetUnmarshalClass.Untuk mengembalikan penunjuk antarmuka yang sesuai, implementasi proksi cukup memanggil QueryInterface pada dirinya sendiri, melewati parameter riid dan ppv . Namun, implementasi UnmarshalInterface Anda bebas untuk membuat objek yang berbeda dan, jika perlu, mengembalikan pointer ke dalamnya.
Tepat sebelum keluar, bahkan jika keluar dengan kesalahan, implementasi Anda harus memposisikan ulang penunjuk pencarian di aliran segera setelah byte terakhir data dibaca.
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 | objidlbase.h (termasuk ObjIdl.h) |
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