Bagikan melalui


IOleObject::Tutup metode (oleidl.h)

Mengubah objek yang disematkan dari yang sedang berjalan ke status dimuat. Memutuskan sambungan objek tertaut dari sumber tautannya.

Sintaks

HRESULT Close(
  [in] DWORD dwSaveOption
);

Parameter

[in] dwSaveOption

Menunjukkan apakah objek akan disimpan sebagai bagian dari transisi ke status dimuat. Nilai yang valid diambil dari enumerasi OLECLOSE.

Catatan Model pengguna OLE 2 merekomendasikan agar aplikasi objek tidak meminta pengguna sebelum menyimpan objek yang ditautkan atau disematkan, termasuk objek yang diaktifkan. Kebijakan ini mewakili perubahan dari model pengguna OLE 1, di mana aplikasi objek selalu meminta pengguna untuk memutuskan apakah akan menyimpan perubahan.
 

Nilai kembali

Metode ini mengembalikan S_OK pada keberhasilan. Kemungkinan nilai pengembalian lainnya termasuk yang berikut ini.

Menampilkan kode Deskripsi
OLE_E_PROMPTSAVECANCELLED
Pengguna diminta untuk menyimpan tetapi memilih tombol Batal dari kotak pesan perintah.

Keterangan

Catatan untuk Penelepon

Aplikasi kontainer memanggil IOleObject::Close saat ingin memindahkan objek dari status berjalan ke status dimuat. Setelah panggilan seperti itu, objek masih muncul dalam kontainernya tetapi tidak terbuka untuk pengeditan. Memanggil IOleObject::Tutup pada objek yang dimuat tetapi tidak berjalan tidak berpengaruh. Menutup objek yang ditautkan hanya berarti memutuskan sambungannya.

Catatan untuk Pelaksana

Setelah menerima panggilan ke IOleObject::Close, objek yang sedang berjalan harus melakukan hal berikut:
  • Jika objek telah diubah sejak terakhir kali dibuka untuk pengeditan, objek harus meminta untuk disimpan, atau tidak, sesuai dengan instruksi yang ditentukan dalam dwSaveOption. Jika opsinya adalah menyimpan objek, maka itu harus memanggil antarmuka IOleClientSite::SaveObject kontainernya.
  • Jika objek memiliki bendera IDataObject::D Advise dengan ADVF_DATAONSTOP, maka objek harus mengirim pemberitahuan IAdviseSink::OnDataChange . Lihat IDataObject::D Advise untuk detailnya.
  • Jika objek saat ini memiliki Clipboard, objek harus mengosongkannya dengan memanggil OleFlushClipboard.
  • Jika objek saat ini terlihat, beri tahu kontainernya dengan memanggil IOleClientSite::OnShowWindow dengan argumen fshow diatur ke FALSE.
  • Kirim pemberitahuan IAdviseSink::OnClose ke sink saran yang sesuai.
  • Akhirnya, potong paksa semua klien jarak jauh dengan memanggil CoDisconnectObject.
Jika aplikasi objek adalah server lokal (EXE daripada DLL), menutup objek juga harus mematikan aplikasi objek kecuali yang terakhir mendukung objek lain yang sedang berjalan atau memiliki alasan lain untuk tetap dalam status berjalan. Alasan tersebut mungkin termasuk keberadaan kunci IClassFactory::LockServer , kontrol pengguna akhir aplikasi, atau adanya dokumen terbuka lainnya yang memerlukan akses ke aplikasi.

Memanggil IOleObject::Tutup pada objek yang ditautkan akan memutuskan sambungannya, tetapi tidak mematikan, aplikasi sumbernya. Aplikasi sumber yang terlihat oleh pengguna ketika objek ditutup tetap terlihat dan berjalan setelah pemutusan dan tidak mengirim pemberitahuan IAdviseSink::OnClose ke kontainer tautan.

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

Lihat juga

CoDisconnectObject

IAdviseSink::Onclose

IClassFactory::LockServer

IDataObject::D Advise

IOleClientSite::OnShowWindow

IOleClientSite::SaveObject

IOleObject

OLECLOSE

OleFlushClipboard