ITextStoreACP2::RequestLock メソッド (textstor.h)
TSF マネージャーによって呼び出され、ドキュメントを変更するためのドキュメント ロックが提供されます。 このメソッドは 、OnLockGranted メソッドを呼び出してドキュメント ロックを作成します。
構文
HRESULT RequestLock(
[in] DWORD dwLockFlags,
[out] HRESULT *phrSession
);
パラメーター
[in] dwLockFlags
要求されたロックの種類を指定します。
値 | 意味 |
---|---|
|
ドキュメントには読み取り専用ロックがあり、変更できません。 |
|
ドキュメントには読み取り/書き込みロックがあり、変更できます。 |
|
このフラグが他のフラグと組み合わされている場合、ドキュメントには同期ロックがあります。 |
[out] phrSession
ロック要求が同期の場合は、ロック要求の結果を指定する OnLockGranted メソッドから HRESULT 値を受け取ります。
ロック要求が非同期で、結果が TS_S_ASYNC場合、ドキュメントは非同期ロックを受け取ります。 ロック要求が非同期で、結果がTS_E_SYNCHRONOUS場合、ドキュメントを同期的にロックすることはできません。
戻り値
このメソッドは、これらの値のいずれかを返すことができます。
値 | 説明 |
---|---|
|
メソッドは正常に実行されました。 |
|
未指定のエラーが発生しました。 |
解説
このメソッドは 、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 |