Bagikan melalui


Kompartemen

Jenis Kompartemen

Ada beberapa jenis kompartemen yang berbeda. Ada kompartemen global, dan setiap manajer utas, manajer dokumen, dan konteks dapat berisi kompartemen.

Kompartemen global memungkinkan klien berbagi data di seluruh proses. Untuk mendapatkan manajer kompartemen global, hubungi ITfThreadMgr::GetGlobalCompartment.

Manajer utas berisi manajer kompartemen yang berisi kompartemen berdasarkan per utas. Ini memungkinkan data dibagikan dalam utas. Untuk mendapatkan manajer kompartemen manajer utas, panggil ITfThreadMgr::QueryInterface dengan IID_ITfCompartmentMgr.

Setiap manajer dokumen yang dibuat juga berisi manajer kompartemen. Ini memungkinkan data dibagikan dalam manajer dokumen tertentu. Untuk mendapatkan manajer kompartemen manajer dokumen, panggil ITfDocumentMgr::QueryInterface dengan IID_ITfCompartmentMgr.

Setiap konteks yang dibuat juga berisi manajer kompartemen. Ini memungkinkan data dibagikan dalam konteks tertentu. Untuk mendapatkan manajer kompartemen konteks, panggil ITfContext::QueryInterface dengan IID_ITfCompartmentMgr.

Membuat dan Menghapus Kompartemen

Kompartemen dibuat pertama kalinya ITfCompartmentMgr::GetCompartment dipanggil dengan GUID kompartemen. Klien penginstalan harus menetapkan nilai awal kompartemen menggunakan ITfCompartment::SetValue. Hingga nilai ditetapkan, nilai kompartemen kosong. Karena itu, tidak ada cara untuk memverifikasi bahwa kompartemen ada sebelum GetCompartment dipanggil. Untuk menghindari situasi ini, klien penginstalan harus mengatur nilai ke beberapa nilai awal sehingga klien lain dapat menentukan apakah kompartemen sudah ada.

Metode ITfCompartmentMgr::ClearCompartment digunakan untuk menghapus kompartemen. Setiap referensi yang ada ke kompartemen ditandai tidak valid.

Mendapatkan Kompartemen

Menggunakan antarmukaITfCompartmentMgr, klien dapat menghitung kompartemen dengan memanggil ITfCompartmentMgr::EnumCompartments. Metode ini menyediakan objek IEnumGUID yang berisi GUID dari semua kompartemen yang diinstal.

Menggunakan GUID kompartemen , ITfCompartmentMgr::GetCompartment digunakan untuk mendapatkan kompartemen tertentu. Metode ini menyediakan pemanggil dengan objekITfCompartment yang dapat memperoleh dan mengatur data kompartemen.

Menerima Pemberitahuan Perubahan Kompartemen

Ketika nilai kompartemen berubah, manajer TSF memberi tahu sink saran yang diinstal bahwa kompartemen telah berubah. Untuk menginstal sink saran perubahan kompartemen, buat objek yang mengimplementasikan ITfCompartmentEventSink. Kemudian panggil ITfCompartment::QueryInterface dengan IID_ITfSource pada objek kompartemen yang akan dipantau untuk mendapatkan antarmukaITfSource. Sekarang panggil ITfSource::AdviseSink dengan IID_ITfCompartmentEventSink dan pointer ke objek ITfCompartmentEventSink. Ketika nilai kompartemen berubah, ITfCompartmentEventSink::OnChange saran dipanggil dengan GUID kompartemen. Sink saran dapat memanggil ITfCompartment::GetValue untuk mendapatkan nilai baru.

ITfCompartmentMgr

ITfCompartment

ITfCompartmentEventSink

TfClientId

ITfThreadMgr::GetGlobalCompartment

ITfCompartmentMgr::GetCompartment

ITfCompartment::SetValue

ITfCompartmentMgr::ClearCompartment

ITfCompartmentMgr::EnumCompartments

ITfSource

ITfSource::AdviseSink

ITfCompartmentEventSink::OnChange