ITextStoreAnchor::RequestLock メソッド (textstor.h)

TSF マネージャーがテキスト ストリームを変更するためにドキュメント ロックを提供するために使用します。

構文

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

パラメーター

[in] dwLockFlags

要求されるロックの種類を指定します。

意味
TS_LF_READ
ドキュメントには読み取り専用ロックがあり、変更できません。
TS_LF_READWRITE
ドキュメントには読み取り/書き込みロックがあり、変更できます。
TS_LF_SYNC
このフラグが他のフラグと組み合わされている場合、ドキュメントには同期ロックがあります。

[out] phrSession

ロック要求が同期の場合、ロック要求の結果を指定する ITextStoreAnchorSink::OnLockGranted メソッドから HRESULT 値を受け取ります。

ロック要求が非同期で、結果が TS_S_ASYNC場合、ドキュメントは非同期ロックを受け取ります。 ロック要求が非同期で、結果がTS_E_SYNCHRONOUS場合、ドキュメントを同期的にロックすることはできません。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

説明
S_OK
メソッドは正常に実行されました。
E_FAIL
未指定のエラーが発生しました。

解説

このメソッドは 、ITextStoreAnchorSink::OnLockGranted メソッドを使用してドキュメントをロックします。 アプリケーションは、 ITextStoreAnchor::RequestLock メソッド内から ITextStoreAnchorSink::OnTextChange メソッドを使用して、ドキュメントを変更したり 変更通知を送信したりしてはなりません。 アプリケーションにレポートの保留中の変更がある場合、アプリケーションは非同期ロック要求にのみ応答できます。

アプリケーションは 1 つのコールバックのみを必要とするため、複数の ITextStoreAnchor::RequestLock メソッド呼び出しをキューに登録しないでください。 ただし、呼び出し元が複数の読み取り要求と 1 つ以上の書き込み要求を行う場合、コールバックは書き込みアクセス用である必要があります。

同期ロックの要求が成功すると、非同期ロックの要求よりも優先されます。 同期ロックの要求が失敗した場合、非同期ロックの要求は置き換えられません。 未処理の非同期要求が存在する場合、その実装は引き続き処理する必要があります。

ITextStoreAnchor::RequestLock メソッドが返される前にロックが許可されている場合、phrSession パラメーターは ITextStoreAnchorSink::OnLockGranted メソッドによって返される HRESULT を受け取ります。 呼び出しが成功したが、後でロックが付与される場合、 phrSession パラメーターは TS_S_ASYNC フラグを受け取ります。 iTextStoreAnchor::RequestLock がS_OK以外のものを返す場合、phrSession パラメーターは無視する必要があります。

呼び出し元が読み取り専用ロックを保持している場合を除き、呼び出し元はこのメソッドを再入可能に呼び出さないでください。 この場合、 メソッドを再入可能に呼び出して、非同期書き込みロックを要求できます。 書き込みロックは、読み取り専用ロックが終了した後に付与されます。

ドキュメント ロックの詳細については、「ドキュメント ロック」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー textstor.h
[DLL] Msctf.dll
再頒布可能パッケージ Windows 2000 Professional 上の TSF 1.0

こちらもご覧ください

ドキュメント ロック

ITextStoreAnchor

ITextStoreAnchorSink::OnLockGranted

TS_LF_* 定数

テキスト ストアの戻り値