示例#1
0
    // **********************************************************************

    public MainForm()
    {
      InitializeComponent();

      server = new XlDdeServer(service);

      // Создадим и зарегистрируем обработчики передаваемых Квиком данных
      // для каждого нашего DDE канала.
      tradesChannel = new TradesChannel();
      quotesChannel = new QuotesChannel();

      tradesChannel.ConversationAdded += TradesConversationsChanged;
      tradesChannel.ConversationRemoved += TradesConversationsChanged;

      quotesChannel.ConversationAdded += QuotesConversationsChanged;
      quotesChannel.ConversationRemoved += QuotesConversationsChanged;

      server.AddChannel(tradesChannel);
      server.AddChannel(quotesChannel);

      // Зарегистрируем сам DDE сервер.
      server.Register();

      // Таймер
      updater = new Timer();
      updater.Interval = 100; // мс, этим значением не стоит злоупотреблять.
      // если нужна большая скорость обновления, то минимально разумное
      // значение - 15 мс. Меньше не имеет смысла, как с технической точки
      // зрения, так и с физиологической для человека.

      updater.Tick += new EventHandler(UpdaterTick);
      updater.Start();
    }
    // **********************************************************************
    // *                             EntryPoint                             *
    // **********************************************************************

    static void Main()
    {
      using(XlDdeServer server = new XlDdeServer(service))
      {
        // Создадим и зарегистрируем обработчики передаваемых Квиком данных
        // для каждого нашего DDE канала.
        server.AddChannel(new TradesChannel());
        server.AddChannel(new QuotesChannel());

        // Зарегистрируем сам DDE сервер.
        server.Register();

        // Теперь DDE сервер готов к работе и каждый раз при поступлении
        // данных он будет передавать их методу ProcessTable() в
        // соответствующем каналу экземпляре класса.

        Console.WriteLine("DDE server ready. Press Enter to exit.\n\n");
        Console.ReadLine();
      }
    }