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