Bagikan melalui


Edit Konteks

Aplikasi

Untuk membuat konteks edit, aplikasi memanggil ITfDocumentMgr::CreateContext.

Layanan Teks

Layanan teks sering menggunakan konteks edit yang saat ini aktif. Konteks edit yang saat ini aktif adalah konteks edit di bagian atas tumpukan manajer dokumen aktif. Untuk mendapatkan konteks aktif saat ini, layanan teks memanggil ITfThreadMgr::GetFocus untuk mendapatkan manajer dokumen aktif dan kemudian memanggil ITfDocumentMgr::GetTop untuk mendapatkan konteks edit di bagian atas tumpukan.

Dalam beberapa kasus, layanan teks memerlukan konteks editnya sendiri. Untuk membuat konteks edit, layanan teks memanggil ITfDocumentMgr::CreateContext.

Edit Cookie

Banyak metode, seperti ITfRange::SetText, memerlukan cara untuk mengidentifikasi konteks edit yang memiliki kunci dokumen baca-saja atau baca/tulis. Kunci dokumen diperoleh melalui negosiasi antara manajer TSF dan aplikasi. Layanan teks tidak dapat melakukan negosiasi ini secara langsung. Layanan teks hanya dapat memperoleh kunci dengan meminta sesi edit dengan konteks tertentu dan akses baca-saja atau baca/tulis. Ketika sesi edit diberikan, layanan teks disediakan dengan cookie edit yang mengidentifikasi konteks edit dengan akses yang diminta. Cookie ini kemudian diteruskan ke metode untuk mengidentifikasi konteks edit dengan akses yang tepat.

ITfDocumentMgr::CreateContext juga menyediakan cookie edit ke pembuat konteks. Cookie ini memiliki akses baca-saja dan tidak ada cara untuk mengubah tingkat akses. Sebenarnya, manajer TSF tidak menegosiasikan kunci dokumen untuk cookie edit ini. Cookie ditandai secara internal baca-saja, tetapi dokumen tidak benar-benar dikunci. Misalnya, jika pembuat konteks memanggil ITfContext::GetSelection dengan cookie edit yang dikembalikan oleh ITfDocumentMgr::CreateContext , ini menghasilkan ITextStoreACP aplikasi::GetSelection atau ITextStoreAnchor::GetSelection sedang dipanggil. Sebelum mendapatkan pilihan, aplikasi akan menentukan apakah kunci dokumen ada. Karena tidak ada kunci, aplikasi akan gagal dengan TS_E_NOLOCK. Artinya, jika aplikasi memanggil metode dengan cookie ini yang menghasilkan salah satu metode penyimpanan teks aplikasi yang dipanggil, aplikasi harus menangani kasus ini secara internal karena aplikasi tidak akan benar-benar memiliki kunci dokumen.

Jika pembuat konteks memerlukan cookie edit dengan akses baca/tulis, pembuat konteks harus membuat sesi editnya sendiri.

ITfContext

ITfDocumentMgr::CreateContext

ITfThreadMgr::GetFocus

ITfDocumentMgr::GetTop

ITfRange::SetText

Kunci Dokumen

Edit Sesi

ITfContext::GetSelection

ITextStoreACP::GetSelection

ITextStoreAnchor::GetSelection