Bagikan melalui


Metode IMarshal::D isconnectObject (objidl.h)

Melepaskan semua koneksi ke objek. Server objek memanggil implementasi objek dari metode ini sebelum mematikan.

Sintaks

HRESULT DisconnectObject(
  [in] DWORD dwReserved
);

Parameter

[in] dwReserved

Parameter ini dicadangkan dan harus 0.

Mengembalikan nilai

Jika metode berhasil, nilai yang dikembalikan S_OK. Jika tidak, itu E_FAIL.

Keterangan

Metode ini diimplementasikan pada objek, bukan proksi.

Catatan untuk Penelepon

Kasus biasa di mana metode ini disebut terjadi ketika pengguna akhir menutup paksa server COM yang memiliki satu atau beberapa objek yang berjalan yang mengimplementasikan IMarshal. Sebelum mematikan, server memanggil fungsi CoDisconnectObject untuk merilis koneksi eksternal ke semua objek yang sedang berjalan. Namun, untuk setiap objek yang mengimplementasikan IMarshal, fungsi ini memanggil DisconnectObject sehingga setiap objek yang mengelola marshalingnya sendiri dapat mengambil langkah-langkah untuk memberi tahu proksinya bahwa ia akan dimatikan.

Catatan untuk Pelaksana

Sebagai bagian dari kode matikan normalnya, server harus memanggil CoDisconnectObject, yang pada gilirannya memanggil DisconnectObject, pada setiap objek yang berjalan yang mengimplementasikan IMarshal.

Hasil dari implementasi apa pun dari metode ini harus mengaktifkan proksi untuk menanggapi semua panggilan berikutnya dari kliennya dengan mengembalikan RPC_E_DISCONNECTED atau CO_E_OBJNOTCONNECTED daripada mencoba meneruskan panggilan ke objek asli. Terserah klien untuk menghancurkan proksi.

Jika Anda menerapkan metode ini untuk objek yang tidak dapat diubah, seperti moniker, implementasi Anda tidak perlu melakukan apa pun karena objek tersebut biasanya disalin seluruhnya ke dalam ruang alamat klien. Oleh karena itu, mereka tidak memiliki proksi atau koneksi ke objek asli. Untuk informasi selengkapnya tentang marshaling objek yang tidak dapat diubah, lihat bagian "Kapan Menerapkan" topik IMarshal .

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)

Lihat juga

CoDisconnectObject

IMarshal