## TermUndoRedo

### Description

Optional. Fired when a custom command undo event is removed from the Softimage undo stack. This callback is typically used to release any memory required for undoing this command. The return value is ignored.

Note | This callback is only supported in the C++ API (no support for scripting).

### Applies To

Custom Commands implemented with the C++ API.

### Syntax

    CStatus <command_name>_TermUndoRedo( CRef& in_context )
    {
            ...
    }

<command_name> is the name specified in the call to PluginRegistrar.RegisterCommand, with any spaces converted to underscores.

### Parameters

Parameter | Language | Type | Description
--- | --- | --- | ---
| C++ | CRef& | A reference to the Context object. Context::GetSource returns the Command.

### Context Attributes

Attribute | Description
--- | ---
UndoRedoData | Allows you to release the memory allocated in the Execute callback. See Undoing and Redoing Custom Commands.

### Examples

    // Taken from the SimpleUndoRedoCommand example (for the complete example,
    // click the link in the See Also section below)
    SICALLBACK SimpleUndoRedoCommand_TermUndoRedo( CRef& in_ctxt )
    {
            Context ctxt( in_ctxt );

            CMoveViewTask* p = (CMoveViewTask*)(CValue::siPtrType)ctxt.GetAttribute(L"UndoRedoData");
            delete p;

            return CStatus::OK;
    }

### See Also

- Command Callbacks
- Execute (Command)
- Init (Command)
- Undo
- Redo
- Custom Command Examples