Здравствуйте Joker3D, Вы писали:
JD>Здравствуйте Constructor, Вы писали:
C>>Здравствуйте Joker3D, Вы писали:
JD>>>не понимаю, зачем наследоваться от окна если его (окно) не создавать??? (возможно, тут ошибка в дизайне)
C>>Потому что в COleControl кроме функциональности окна еще очень много полезного, в частности, функциональность внутризадачного СОМ-сервера.
JD>>>2. статическую функцию : static TIMERPROC MyTimer(...) и в ней делать то что надо..
C>>А теперь я попрошу поподробнее
C>>1. Почему она должна быть статической?
C>>2. Зачем у нее объявили 2-й параметр UINT uMsg, // WM_TIMER message, если туда все равно передается сообщение WM_TIMER?
JD>1. потому что таймер умеет дергать только глобальную (или статическую — один хрен
функцию, соответствующую описанию
JD>JD>VOID CALLBACK TimerProc(
JD> HWND hwnd, // handle to window
JD> UINT uMsg, // WM_TIMER message
JD> UINT_PTR idEvent, // timer identifier
JD> DWORD dwTime // current system time
JD>);
JD>
JD>и он понятия не имеет о твоих классах/объектах.
JD>2.by design
У меня уже почти плучилось!
Тип функции должен быть не TIMERPROC, а VOID CALLBACK; а 3-й параметр пришлось объявить не UINT_PTR, а UINT, чтобы скомпилировалось. Объявил функцию статически, создаю таймер и приходят от него сообщения!

Я не могу из статической фунции вызвать нормальные методы класса — компилятор говорит, что так нельзя. Как тут быть?