Bagikan melalui


IOleUndoManager::Tutup metode (ocidl.h)

Menutup unit urungkan induk yang ditentukan.

Sintaks

HRESULT Close(
  [in] IOleParentUndoUnit *pPUU,
  [in] BOOL               fCommit
);

Parameter

[in] pPUU

Penunjuk ke antarmuka IOleParentUndoUnit untuk unit induk yang saat ini terbuka untuk ditutup.

[in] fCommit

Menunjukkan apakah akan menyimpan atau membuang unit. Jika TRUE, unit disimpan dalam koleksi. Jika FALSE, unit akan dibuang. Parameter ini digunakan untuk memungkinkan klien membuang unit pembatalan yang sedang dibangun jika terjadi kesalahan atau pembatalan.

Nilai kembali

Metode ini mengembalikan S_OK jika manajer urungkan memiliki unit pembukaan induk terbuka dan berhasil ditutup. Jika manajer urungkan dinonaktifkan, manajer harus segera mengembalikan S_OK dan tidak melakukan hal lain. Nilai pengembalian lain yang mungkin termasuk yang berikut ini.

Menampilkan kode Deskripsi
S_FALSE
Unit pembuka induk tidak memiliki anak terbuka dan berhasil ditutup.
E_INVALIDARG
Jika pPUU tidak cocok dengan unit pembukaan induk yang saat ini terbuka, implementasi metode ini harus mengembalikan E_INVALIDARG tanpa mengubah status internal apa pun kecuali unit induk diblokir.

Keterangan

Metode ini diimplementasikan sama dengan IOleParentUndoUnit::Close. Unit urungkan induk tahu sedang ditutup ketika mengembalikan S_FALSE dari metode ini. Pada saat itu, ia harus menghentikan komunikasi apa pun dengan objek lain yang mungkin memberikan data kepadanya melalui antarmuka privat.

Catatan untuk Penelepon

Pengembalian kesalahan menunjukkan kondisi kesalahan fatal.

Unit induk atau manajer urungkan harus menerima unit batalkan jika fCommitadalah TRUE.

Catatan untuk Pelaksana

Untuk memproses permintaan penutupan, unit pembukaan induk terlebih dahulu memeriksa untuk melihat apakah unit anak memiliki unit anak terbuka. Jika tidak, ia mengembalikan S_FALSE.

Jika unit anak terbuka, unit ini memanggil metode IOleUndoManager::Close pada anak. Jika anak mengembalikan S_FALSE, maka unit urungkan induk memverifikasi bahwa pPUU menunjuk ke unit anak, dan menutup unit urungkan anak tersebut. Jika anak kembali S_OK maka ia menangani penutupan secara internal dan induknya tidak boleh melakukan apa-apa.

Jika unit induk diblokir, unit induk harus memeriksa parameter pPUU untuk menentukan kode pengembalian yang sesuai. Jika pPUU menunjuk ke dirinya sendiri, maka pPUU harus mengembalikan S_FALSE.

Jika tidak, itu harus mengembalikan S_OK; parameter fCommit diabaikan; dan tidak ada tindakan yang diambil.

Jika pPUU tidak cocok dengan unit pembukaan induk yang saat ini terbuka, implementasi metode ini harus mengembalikan E_INVALIDARG tanpa mengubah status internal apa pun. Satu-satunya pengecualian untuk ini adalah jika unit diblokir.

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 ocidl.h

Lihat juga

IOleParentUndoUnit::Close

IOleUndoManager