次の方法で共有


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

TSF マネージャーによって呼び出され、ドキュメントを変更するためのドキュメント ロックが提供されます。 このメソッドは 、OnLockGranted メソッドを呼び出してドキュメント ロックを作成します。

構文

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

パラメーター

[in] dwLockFlags

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

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

[out] phrSession

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

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

戻り値

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

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

解説

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

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

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

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

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

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

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー textstor.h
[DLL] Msctf.dll

こちらもご覧ください

ドキュメント ロック

ITextStoreACP2

OnLockGranted

TS_LF_* 定数

テキスト ストアの戻り値