Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulama
Düzenleme bağlamı oluşturmak için bir uygulama ITfDocumentMgr::CreateContext çağırır.
Metin Hizmetleri
Metin hizmeti genellikle etkin olan düzenleme bağlamını kullanır. Şu anda etkin olan düzenleme bağlamı, etkin belge yöneticisi yığınının üst kısmındaki düzenleme bağlamıdır. Şu anda etkin olan bağlamı elde etmek için, metin hizmeti etkin belge yöneticisini almak için ITfThreadMgr::GetFocus çağırır ve ardından ITfDocumentMgr::GetTop çağırarak yığının en üstündeki düzenleme bağlamını alır.
Bazı durumlarda, metin hizmeti kendi düzenleme bağlamını gerektirir. Düzenleme bağlamı oluşturmak için, metin hizmeti ITfDocumentMgr::CreateContext çağırır.
Tanımlama Bilgilerini Düzenle
ITfRange::SetTextgibi birçok yöntem, salt okunur veya okuma/yazmabelge kilidi olan bir düzenleme bağlamını tanımlamak için bir yol gerektirir. Belge kilidi, TSF yöneticisi ile uygulama arasındaki bir anlaşma aracılığıyla elde edilir. Metin hizmeti bu anlaşma işlemini doğrudan gerçekleştiremez. Metin hizmeti yalnızca belirli bir bağlam ve salt okunur veya okuma/yazma erişimine sahip düzenleme oturumu isteyerek kilit alabilir. Düzenleme oturumu verildiğinde, metin hizmetine istenen erişimle düzenleme bağlamını tanımlayan bir düzenleme tanımlama bilgisi sağlanır. Daha sonra bu tanımlama bilgisi, düzenleme bağlamını uygun erişimle tanımlamak için yöntemine geçirilir.
ITfDocumentMgr::CreateContext bağlam oluşturucusunun düzenleme tanımlama bilgisini de sağlar. Bu tanımlama bilgisinin salt okunur erişimi vardır ve erişim düzeyini değiştirmenin hiçbir yolu yoktur. Aslında, TSF yöneticisi bu düzenleme tanımlama bilgisi için bir belge kilidi anlaşması yapmaz. Tanımlama bilgisi dahili olarak salt okunur olarak işaretlenir, ancak belge aslında kilitli değildir. Örneğin, bağlam oluşturucu ITfContext::GetSelectionITfDocumentMgr::CreateContext tarafından döndürülen düzenleme tanımlama bilgisiyle çağırırsa, bu, uygulamanın ITextStoreACP::GetSelection veya ITextStoreAnchor::GetSelection çağrılır. Seçimi almadan önce, uygulama bir belge kilidi olup olmadığını belirler. Kilit olmadığından uygulama TS_E_NOLOCK ile başarısız olur. Başka bir ifadeyle, bir uygulama bu tanımlama bilgisi ile uygulamanın metin deposu yöntemlerinden birinin çağrılmasını sağlayan bir yöntem çağırırsa, uygulamanın aslında bir belge kilidi olmadığından bu durumu dahili olarak işlemesi gerekir.
Bağlam oluşturucu okuma/yazma erişimine sahip bir düzenleme tanımlama bilgisi gerektiriyorsa kendi düzenleme oturumunu oluşturması gerekir.
İlgili konular