Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aplikacji
Aby utworzyć kontekst edycji, aplikacja wywołuje ITfDocumentMgr::CreateContext.
Usługi tekstowe
Usługa tekstowa często używa obecnie aktywnego kontekstu edycji. Aktualnie aktywny kontekst edycji to kontekst edycji w górnej części stosu aktywnego menedżera dokumentów. Aby uzyskać aktualnie aktywny kontekst, usługa tekstowa wywołuje ITfThreadMgr::GetFocus w celu uzyskania aktywnego menedżera dokumentów, a następnie wywołuje ITfDocumentMgr::GetTop w celu uzyskania kontekstu edycji w górnej części stosu.
W niektórych przypadkach usługa tekstowa wymaga własnego kontekstu edycji. Aby utworzyć kontekst edycji, usługa tekstowa wywołuje ITfDocumentMgr::CreateContext.
Edytowanie plików cookie
Wiele metod, takich jak ITfRange::SetText, wymaga sposobu identyfikowania kontekstu edycji z blokadą dokumentu tylko do odczytu lub odczytu/zapisu . Blokada dokumentu jest uzyskiwana przez negocjacje między menedżerem TSF a aplikacją. Usługa tekstowa nie może wykonać tej negocjacji bezpośrednio. Usługa tekstowa może uzyskać blokadę tylko przez żądanie edycji sesji z określonym kontekstem i dostępem tylko do odczytu lub odczytu/zapisu. Po udzieleniu sesji edycji usługa tekstowa jest dostarczana z edycji pliku cookie, który identyfikuje kontekst edycji z żądanym dostępem. Ten plik cookie jest następnie przekazywany do metody w celu zidentyfikowania kontekstu edycji z odpowiednim dostępem.
ITfDocumentMgr::CreateContext również dostarcza plik cookie edycji do twórcy kontekstu. Ten plik cookie ma dostęp tylko do odczytu i nie ma możliwości modyfikowania poziomu dostępu. W rzeczywistości menedżer TSF nie negocjuje blokady dokumentu dla tego pliku cookie edycji. Plik cookie jest wewnętrznie oznaczony jako tylko do odczytu, ale dokument nie jest w rzeczywistości zablokowany. Jeśli na przykład twórca kontekstu wywołuje ITfContext::GetSelection z plikiem cookie edycji zwróconym przez ITfDocumentMgr::CreateContext , spowoduje to wywołanie ITextStoreACP::GetSelection::GetSelection lub ITextStoreAnchor::GetSelection. Przed uzyskaniem zaznaczenia aplikacja określi, czy istnieje blokada dokumentu. Ponieważ nie istnieje blokada, aplikacja zakończy się niepowodzeniem z TS_E_NOLOCK. Oznacza to, że jeśli aplikacja wywołuje metodę z tym plikiem cookie, która powoduje wywołanie jednej z metod magazynu tekstu aplikacji, musi obsłużyć ten przypadek wewnętrznie, ponieważ aplikacja nie będzie mieć blokady dokumentu.
Jeśli twórca kontekstu wymaga edytowanego pliku cookie z dostępem do odczytu/zapisu, musi ustanowić własną sesję edycji.
Tematy pokrewne