У меня есть класс на основе
CSocket в DLL, которая имеет различные многопоточные буферы для хранения
входящий поток У меня есть пара приложений, с которыми это работает
отлично, используя таймер для опроса буфера, чтобы увидеть, есть ли что-нибудь
вытащить и затем отобразить.
Теперь у меня есть таймер в некотором коде VBA, макрос, если хотите, в
Модуль Excel. Таймер срабатывает, как и ожидалось, но DLL только говорит, что есть
вещи в буфере, когда вы удерживаете кнопку мыши на вкладке прокрутки
или строка заголовка Excel! Поэтому, если вы попытаетесь переместить окно Excel,
таблица начинает заполняться данными, извлеченными из буфера. Если вы попытаетесь
перемещение окна программно, тогда оно не работает. Как-то мышь
фокус должен быть на рамке окна Excel. Это также работает, если вы
откройте системное меню в левом верхнем углу окна. (Это Excel 2003
SP3 Кстати.)