  SuperStack - передача параметров через контейнер (DataWare).

Причина(ы): связи между различными GUI-компонентами (браузеры, монтажное окно, редактор) 
 приложения намеренно сделаны слабыми; соотвественно, чтобы обрабатывать события
 медийных объектов (Project::MediaItem) используется централизованная "доска объявлений",
 когда любой желающий (обработчик) может отловить нужное ему событие, при этом каждый
 раз он получает один аргумент - Project::MediaItem; благодаря тому, что он порожден
 от DataWare, можно в нем самом передавать (остальные) аргументы любого типа, что
 сейчас и делается (см. вызовы InvokeOn*). Проблема в том, что сейчас для каждого
 вызова приходится создавать новую структуру, хранящую параметры вызова, что неудобно.

Интерфейс/Функционал: нужен функционал по типу стека на DataWare,-
  template<class ArgTuple>
  void PushCallArgs(DataWare& dw, ArgTuple args);
  template<class ArgTuple>
  void PopCallArgs(DataWare& dw, ArgTuple args);
  template<class ArgTuple>
  ArgTuple PeekCallArgs(DataWare& dw);
 При этом:
  - ArgTuple это boost::tuple<arg1, arg2, arg3, ...>, очевидно :)
  - вызовы PopCallArgs()/PeekCallArgs() должны быть "защищены",- можно выдавать только то,
    что положили последним PushCallArgs(),- значит надо хранить с каждым аргументом его
    стековую позицию (начиная от 0 - первый вызов, 1 - второй вложенный вызов, ...)
  - некоторая сложность заключается в том, что типы аргументов вполне могут быть одинаковыми,
    а значит при хранении их надо как-то различать (номер?!) 
  - для удобства нужна интерфейсная функция супер-вызова (вызов по "C"-соглашению),-
    template<class Arg1, class Arg2, ...>
    HandlerCall(MediaItem mi, const std::string& op, Arg1 arg1, Arg2 arg2, ...)
    {
        ArgTuple args(arg1, arg2, ...);
        PushCallArgs(args);
        InvokeOn(mi, op);
        PopCallArgs(args);
    } 
 
Замечания:
 - помимо удобства вызова не нужно описывать в заголовках эти спец-структуры;
 - также подобные структуры не нужно очищать,- это будет делаться автоматом.
 - идея приставки "супер" возникла у меня благодаря некоторой ностальгии по тому 
   времени, когда я, будучи аспирантом, немного занимался наукой,- математикой
   в области "Супералгебры Ли". :'(

