IOleUndoManager::Close メソッド (ocidl.h)

指定した親元に戻す単位を閉じます。

構文

HRESULT Close(
  [in] IOleParentUndoUnit *pPUU,
  [in] BOOL               fCommit
);

パラメーター

[in] pPUU

現在開いている親ユニットを閉じる IOleParentUndoUnit インターフェイスへのポインター。

[in] fCommit

ユニットを保持するか破棄するかを示します。 TRUE の場合、単位はコレクション内に保持されます。 FALSE の場合、単位は破棄されます。 このパラメーターは、エラーまたは取り消しが発生した場合に、構築中の元に戻す単位をクライアントが破棄できるようにするために使用されます。

戻り値

このメソッドは、元に戻すマネージャーが開いている親の元に戻す単位があり、正常に閉じられた場合にS_OKを返します。 元に戻すマネージャーが無効になっている場合は、すぐにS_OKを返し、それ以外の操作は行わない必要があります。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
S_FALSE
親の元に戻すユニットには開いている子がなく、正常に閉じられました。
E_INVALIDARG
pPUU が現在開いている親の元に戻す単位と一致しない場合、このメソッドの実装は、親ユニットがブロックされていない限り、内部状態を変更せずにE_INVALIDARGを返す必要があります。

注釈

このメソッドは、 IOleParentUndoUnit::Close と同じように実装されます。 親の元に戻す単位は、このメソッドからS_FALSEを返したときに閉じられていることを認識します。 その時点で、プライベート インターフェイスを介してデータを提供している可能性がある他のオブジェクトとの通信を終了する必要があります。

呼び出し元へのメモ

エラーの戻り値は、致命的なエラー状態を示します。

fCommitTRUE の場合、親単位または元に戻すマネージャーは元に戻す単位を受け入れる必要があります。

実装者への注意

閉じる要求を処理するために、親の元に戻すユニットは、最初に開いている子ユニットがあるかどうかを確認します。 そうでない場合は、S_FALSEを返します。

子ユニットが開いている場合は、子の IOleUndoManager::Close メソッドを呼び出します。 子がS_FALSEを返す場合、親の元に戻すユニットは 、pPUU が子ユニットを指していることを確認し、その子の元に戻す単位を閉じます。 子がS_OKを返す場合は、内部的に close を処理し、その親は何もしないでください。

親ユニットがブロックされている場合は、pPUU パラメーターをチェックして、適切な戻りコードを決定する必要があります。 pPUU がそれ自体を指している場合は、S_FALSEを返す必要があります。

それ以外の場合は、S_OKを返す必要があります。 fCommit パラメーターは無視されます。アクションは実行されません。

pPUU が現在開いている親の元に戻す単位と一致しない場合、このメソッドの実装は内部状態を変更せずにE_INVALIDARGを返す必要があります。 これに対する唯一の例外は、ユニットがブロックされている場合です。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ocidl.h

こちらもご覧ください

IOleParentUndoUnit::Close

IOleUndoManager