Bagikan melalui


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
S_OK
Penunjuk antarmuka berhasil disembunyikan.
E_NOINTERFACE
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

CoUnmarshalInterface

IMarshal