Extends
IOperationApprover to approve the execution of a particular
operation within an operation history. Operations that are candidates for
execution have already been validated against their current state and
according to the rules of the history. Prior to 3.2, an operation approver
was only consulted for undo and redo of an operation, not its initial
execution.
By the time an IOperationApprover2 is consulted, the execution has already
been requested and it has been determined that the operation is valid.
Approvers should return an IStatus
object with severity
OK
if the operation should proceed, and any other severity if
it should not. When an operation is not approved, it is expected that the
object not allowing the operation has already consulted the user if necessary
or otherwise provided any necessary information to the user about the fact
that the operation is not approved.
Like
IOperationApprover, implementers of this extension must be
prepared to receive the approval messages from a background thread. Any UI
access occurring inside the implementation must be properly synchronized
using the techniques specified by the client's widget library.