Megosztás a következőn keresztül:


Környezetek szerkesztése

Alkalmazások

Szerkesztési környezet létrehozásához egy alkalmazás meghívja ITfDocumentMgr::CreateContext.

Szövegszolgáltatások

A szövegszolgáltatás gyakran az aktuálisan aktív szerkesztési környezetet használja. A jelenleg aktív szerkesztési környezet az aktív dokumentumkezelő verem tetején lévő szerkesztési környezet. A jelenleg aktív környezet beszerzéséhez egy szöveges szolgáltatás meghívja ITfThreadMgr::GetFocus az aktív dokumentumkezelő beszerzéséhez, majd meghívja ITfDocumentMgr::GetTop a szerkesztési környezet lekéréséhez a verem tetején.

Bizonyos esetekben a szövegszolgáltatásnak saját szerkesztési környezetre van szüksége. Szerkesztési környezet létrehozásához egy szövegszolgáltatás meghívja ITfDocumentMgr::CreateContext.

Cookie-k szerkesztése

Számos módszer, például ITfRange::SetText, megköveteli egy szerkesztési környezet azonosítását, amely írásvédett vagy írási dokumentumzárolásirendelkezik. A dokumentumzár a TSF-kezelő és az alkalmazás közötti egyeztetésen keresztül érhető el. A szövegszolgáltatás nem tudja közvetlenül végrehajtani ezt a tárgyalást. A szövegszolgáltatás csak egy adott környezettel rendelkező szerkesztési munkamenet kérésével és írásvédett vagy írásvédett hozzáféréssel szerezheti be a zárolást. Amikor a szerkesztési munkamenet meg van adva, a szövegszolgáltatás egy szerkesztési cookie-val, amely azonosítja a szerkesztési környezetet a kért hozzáféréssel. Ezt a cookie-t ezután a rendszer átadja a metódusnak, hogy a szerkesztési környezetet a megfelelő hozzáféréssel azonosítsa.

ITfDocumentMgr::CreateContext egy szerkesztési cookie-t is biztosít a környezet létrehozójának. Ez a cookie írásvédett hozzáféréssel rendelkezik, és nincs mód a hozzáférési szint módosítására. Valójában a TSF-kezelő nem tárgyal a dokumentumzárolásról ehhez a szerkesztési cookie-hoz. A cookie belsőleg írásvédettként van megjelölve, de a dokumentum valójában nincs zárolva. Ha például a környezet létrehozója meghívja ITfContext::GetSelection a ITfDocumentMgr::CreateContext által visszaadott szerkesztési cookie-val, ez az alkalmazás ITextStoreACP::GetSelection vagy ITextStoreAnchor::GetSelection meghívását eredményezi. A kijelölés beszerzése előtt az alkalmazás megállapítja, hogy létezik-e dokumentumzárolás. Mivel nincs zárolás, az alkalmazás TS_E_NOLOCK sikertelen lesz. Vagyis ha egy alkalmazás olyan metódust hív meg ezzel a cookie-val, amely az alkalmazás egyik szövegtároló metódusának meghívását eredményezi, akkor ezt az esetet belsőleg kell kezelnie, mert az alkalmazásnak valójában nem lesz dokumentumzára.

Ha a környezet létrehozója olvasási/írási hozzáféréssel rendelkező szerkesztési cookie-t igényel, saját szerkesztési munkamenetet kell létrehoznia.

ITfContext

ITfDocumentMgr::CreateContext

ITfThreadMgr::GetFocus

ITfDocumentMgr::GetTop

ITfRange::SetText

dokumentumzárolások

Munkamenetek szerkesztése

ITfContext::GetSelection

ITextStoreACP::GetSelection

ITextStoreAnchor::GetSelection