Partager via


Méthode ITextStoreAnchor ::RequestLock (textstor.h)

Utilisé par le gestionnaire TSF pour fournir un verrou de document afin de modifier le flux de texte.

Syntaxe

HRESULT RequestLock(
  [in]  DWORD   dwLockFlags,
  [out] HRESULT *phrSession
);

Paramètres

[in] dwLockFlags

Spécifie le type de verrou demandé.

Valeur Signification
TS_LF_READ
Le document a un verrou en lecture seule et ne peut pas être modifié.
TS_LF_READWRITE
Le document a un verrou en lecture/écriture et peut être modifié.
TS_LF_SYNC
Le document a un verrou synchrone si cet indicateur est combiné avec d’autres indicateurs.

[out] phrSession

Si la demande de verrouillage est synchrone, reçoit une valeur HRESULT de la méthode ITextStoreAnchorSink ::OnLockGranted qui spécifie le résultat de la demande de verrouillage.

Si la demande de verrouillage est asynchrone et que le résultat est TS_S_ASYNC, le document reçoit un verrou asynchrone. Si la demande de verrouillage est asynchrone et que le résultat est TS_E_SYNCHRONOUS, le document ne peut pas être verrouillé de manière synchrone.

Valeur retournée

Cette méthode peut retourner l’une de ces valeurs.

Valeur Description
S_OK
La méthode a réussi.
E_FAIL
Une erreur non spécifiée s'est produite.

Remarques

Cette méthode utilise la méthode ITextStoreAnchorSink ::OnLockGranted pour verrouiller le document. Les applications ne doivent jamais modifier le document ou envoyer de notifications de modification à l’aide de la méthode ITextStoreAnchorSink ::OnTextChange à partir de la méthode ITextStoreAnchor ::RequestLock . Si l’application a des modifications en attente de rapport, l’application ne peut répondre qu’à la demande de verrouillage asynchrone.

Les applications ne doivent pas tenter de mettre en file d’attente plusieurs appels de méthode ITextStoreAnchor ::RequestLock , car l’application ne nécessite qu’un seul rappel. Toutefois, si l’appelant effectue plusieurs demandes de lecture et une ou plusieurs demandes d’écriture, le rappel doit être destiné à l’accès en écriture.

Les demandes de verrous synchrones réussies remplacent les demandes de verrous asynchrones. Les demandes infructueuses de verrous synchrones ne remplacent pas les demandes de verrous asynchrones. L’implémentation doit toujours traiter la requête asynchrone en suspens, le cas échéant.

Si le verrou est accordé avant le retour de la méthode ITextStoreAnchor ::RequestLock , le paramètre phrSession reçoit le HRESULT retourné par la méthode ITextStoreAnchorSink ::OnLockGranted . Si l’appel réussit, mais que le verrou sera accordé ultérieurement, le paramètre phrSession reçoit l’indicateur TS_S_ASYNC. Le paramètre phrSession doit être ignoré si ITextStoreAnchor ::RequestLock retourne autre chose que S_OK.

Un appelant ne doit jamais appeler cette méthode de manière réentrante, sauf dans le cas où l’appelant détient un verrou en lecture seule. Dans ce cas, la méthode peut être appelée de manière réentrante pour demander un verrou d’écriture asynchrone. Le verrou d’écriture sera accordé ultérieurement, une fois le verrou en lecture seule terminé.

Pour plus d’informations sur les verrous de document, consultez Verrous de document.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête textstor.h
DLL Msctf.dll
Composant redistribuable TSF 1.0 sur Windows 2000 Professionnel

Voir aussi

Verrous de document

ITextStoreAnchor

ITextStoreAnchorsink ::OnLockGranted

constantes TS_LF_*

Valeurs de retour du magasin de texte