/// <summary>
        /// Performs given units and removes them from the stack
        /// </summary>
        private List <IOleUndoUnit> HandleUnits(List <IOleUndoUnit> units, IOleUndoManager pUndoManager)
        {
            foreach (IOleUndoUnit unit in units)
            {
                unit.Do(pUndoManager);
            }

            if (isUndo)
            {
                return(pUndoManager.RemoveTopFromRedoStack(units.Count));
            }
            else
            {
                return(pUndoManager.RemoveTopFromUndoStack(units.Count));
            }
        }