Upravit kontexty
Aplikace
Chcete-li vytvořit kontext úprav, aplikace volá ITfDocumentMgr::CreateContext.
Textové služby
Textová služba často používá aktuálně aktivní kontext úprav. Aktuálně aktivní kontext úprav je kontext úprav v horní části zásobníku aktivního správce dokumentů. Chcete-li získat aktuálně aktivní kontext, volá textová služba ITfThreadMgr::GetFocus získat aktivní správce dokumentů a potom volá ITfDocumentMgr::GetTop získat kontext úprav v horní části zásobníku.
V některých případech vyžaduje textová služba vlastní kontext úprav. Chcete-li vytvořit kontext úprav, textová služba volá ITfDocumentMgr::CreateContext.
Upravit soubory cookie
Mnoho metod, jako je ITfRange::SetText, vyžadují způsob, jak identifikovat kontext úprav, který má zámek dokumentu jen pro čtení nebo čtení/zápis. Zámek dokumentu se získá prostřednictvím vyjednávání mezi správcem TSF a aplikací. Textová služba nemůže toto vyjednávání provést přímo. Textová služba může získat zámek pouze vyžádáním relace úprav s konkrétním kontextem a přístupem jen pro čtení nebo pro čtení a zápis. Pokud je relace úprav udělena, textová služba se dodává s upravit soubor cookie, který identifikuje kontext úprav s požadovaným přístupem. Tento soubor cookie se pak předá metodě k identifikaci kontextu úprav se správným přístupem.
ITfDocumentMgr::CreateContext také poskytuje soubor cookie pro úpravy tvůrce kontextu. Tento soubor cookie má přístup jen pro čtení a neexistuje způsob, jak upravit úroveň přístupu. Ve skutečnosti správce TSF nevyjedná zámek dokumentu pro tento soubor cookie pro úpravy. Soubor cookie je interně označen jen pro čtení, ale dokument není ve skutečnosti uzamčený. Pokud například tvůrce kontextu volá ITfContext::GetSelection s souborem cookie pro úpravy vráceným ITfDocumentMgr::CreateContext , výsledkem je volání aplikace ITextStoreACP::GetSelection nebo ITextStoreAnchor::GetSelection. Před získáním výběru aplikace určí, jestli existuje zámek dokumentu. Vzhledem k tomu, že neexistuje žádný zámek, aplikace selže s TS_E_NOLOCK. To znamená, že pokud aplikace volá metodu s tímto souborem cookie, což vede k volání jedné z metod úložiště textu aplikace, musí tento případ zpracovat interně, protože aplikace ve skutečnosti nebude mít zámek dokumentu.
Pokud tvůrce kontextu vyžaduje soubor cookie pro úpravy s přístupem pro čtení a zápis, musí vytvořit vlastní relaci úprav.
Související témata