Bagikan melalui


IHolder::Tutup metode (comsvcs.h)

Menutup Pemegang.

Sintaks

HRESULT Close();

Mengembalikan nilai

Jika metode ini berhasil, metode ini mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Ini menutup Pemegang Dispenser Sumber Daya, setelah itu Dispenser Sumber Daya mungkin dirilis.

Sebelum ditutup, inventori yang tersisa dihancurkan dengan memanggil kembali ke metode IDispenserDriver::D estroyResource Resource Dispenser .

Urutan berikut menjelaskan cara menutup Dispenser Sumber Daya:

  1. Dapatkan referensi ke Dispenser Sumber Daya (objek yang mengekspos IDispenserDriver).
  2. Panggil metode di Resource Dispenser yang implementasinya memanggil IHolder::Close.
  3. IHolder::Close menghancurkan sisa inventori dengan memanggil kembali ke metode IDispenserDriver::D estroyResource Resource Dispenser .
  4. IHolder::Close memanggil Dispenser Manager untuk menghapus Pemegang ini dari daftar Pemegang. (Jika tidak ada Pemegang yang tersisa, objek Dispenser Manager akan menghapus dirinya sendiri.)
  5. IHolder::Close merilis referensinya ke antarmuka IDispenserDriver Resource Dispenser . Ini adalah alasan Anda memerlukan referensi di langkah 1; jika tidak, Dispenser Sumber Daya akan menghapus dirinya sendiri sebelum langkah-langkah berikutnya dapat diselesaikan.
  6. IHolder::Close kembali ke Resource Dispenser.
  7. Dispenser Sumber Daya memanggil IDispenserDriver::D estroyResource. Pemegang sekarang menghapus dirinya sendiri.
  8. Metode yang disebut di langkah 2 sekarang kembali.
  9. Rilis referensi akhir Anda ke Dispenser Sumber Daya, yang sekarang menghapus dirinya sendiri.
Perhatikan bahwa metode IDispenserManager::RegisterDispenser tidak memanggil AddRef pada objek pDispenserDriver-nya , tetapi IHolder::Close melakukan Rilis di pDispenserDriver. Hal ini dapat menyebabkan objek Resource Dispenser dihancurkan sebelum waktunya. Untuk mencegah penghancuran dini ini, pemanggil IHolder::Close harus memegang referensi ke objek Resource Dispenser seperti yang dijelaskan dalam langkah 1 dan 5.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header comsvcs.h

Lihat juga

IDispenserDriver

IDispenserManager

IHolder