Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Program
För att skapa en redigeringskontext anropar ett program ITfDocumentMgr::CreateContext.
Texttjänster
En texttjänst använder ofta den aktuella aktiva redigeringskontexten. Den aktuella aktiva redigeringskontexten är redigeringskontexten överst i stacken för den aktiva dokumenthanteraren. För att hämta den aktuella aktiva kontexten anropar en texttjänst ITfThreadMgr::GetFocus för att hämta den aktiva dokumenthanteraren och anropar sedan ITfDocumentMgr::GetTop för att hämta redigeringskontexten överst i stacken.
I vissa fall kräver en texttjänst en egen redigeringskontext. För att skapa en redigeringskontext anropar en texttjänst ITfDocumentMgr::CreateContext.
Redigera cookies
Många metoder, till exempel ITfRange::SetText, kräver ett sätt att identifiera en redigeringskontext som har ett skrivskyddat eller skrivskyddat dokumentlås. Ett dokumentlås erhålls via en förhandling mellan TSF-chefen och programmet. En texttjänst kan inte utföra den här förhandlingen direkt. En texttjänst kan bara hämta ett lås genom att begära en redigeringssession med en specifik kontext och skrivskyddad eller skrivskyddad åtkomst. När redigeringssessionen beviljas levereras texttjänsten med en redigera cookie som identifierar redigeringskontexten med den begärda åtkomsten. Den här cookien skickas sedan till metoden för att identifiera redigeringskontexten med rätt åtkomst.
ITfDocumentMgr::CreateContext tillhandahåller även en redigeringscookie till kontextskaparen. Den här cookien har skrivskyddad åtkomst och det finns inget sätt att ändra åtkomstnivån. I själva verket förhandlar TSF-chefen inte om ett dokumentlås för den här redigeringscookien. Cookien är internt markerad som skrivskyddad, men dokumentet är inte låst. Om kontextskaparen till exempel anropar ITfContext::GetSelection med redigeringscookien som returneras av ITfDocumentMgr::CreateContext resulterar detta i programmets ITextStoreACP::GetSelection eller ITextStoreAnchor::GetSelection anropas. Innan du hämtar markeringen avgör programmet om det finns ett dokumentlås. Eftersom det inte finns något lås misslyckas programmet med TS_E_NOLOCK. Om ett program anropar en metod med den här cookien som resulterar i att någon av programmets textlagringsmetoder anropas, måste det hantera det här fallet internt eftersom programmet faktiskt inte har något dokumentlås.
Om kontextskapare kräver en redigeringscookie med läs-/skrivåtkomst måste den upprätta en egen redigeringssession.
Relaterade ämnen