IMarshal::Metode UnmarshalInterface (objidl.h)
Batalkan nama penunjuk antarmuka.
Sintaks
HRESULT UnmarshalInterface(
[in] IStream *pStm,
[in] REFIID riid,
[out] void **ppv
);
Parameter
[in] pStm
Penunjuk ke aliran tempat penunjuk antarmuka akan dilepaskan naskahnya.
[in] riid
Referensi ke pengidentifikasi antarmuka yang akan dilepaskan namanya.
[out] ppv
Alamat variabel pointer yang menerima penunjuk antarmuka. Setelah berhasil dikembalikan, *ppv berisi penunjuk antarmuka yang diminta dari antarmuka untuk dilepaskan namanya.
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 adalah 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 lonjakan, 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 objek asli IMarshal::GetUnmarshalClass.Untuk mengembalikan penunjuk antarmuka yang sesuai, implementasi proksi cukup memanggil QueryInterface dengan sendirinya, melewati parameter riid dan ppv . Namun, implementasi UnmarshalInterface Anda bebas untuk membuat objek yang berbeda dan, jika perlu, mengembalikan penunjuk ke objek tersebut.
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 | objidl.h (termasuk ObjIdl.h) |