vovs |
опубликован 24-05-2001 16:15 MSK
День добрый, постепенно разбираясь всё в том же примере столкнулся с ещё одной странным явлением. А именно, добавляю я в Events метод(напомню что это я в старую прогу руками добавил поскольку повторить пример не получилось), например Position(double a, double b, double c, double d) (То есть в Proxy будет Fire_Position(..)). В процедуре CreateFilterGraph(LPCOLESTR strFile)(в которой я при настройке окна добавил к WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS ещё и WS_VSCROLL после чего окно в рамках стало ), где создаётся видео-окно и есть hWnd (или m_hWnd) : // Now initialize the video window HWND hWnd; RECT rc = m_rcPos; if (m_bWndLess) { // Obtain the HWND of the client's window HDC hDC; m_spInPlaceSite->GetDC(NULL, OLEDC_NODRAW, &hDC); hWnd = WindowFromDC(hDC); } else { hWnd = m_hWnd; OffsetRect(&rc, -rc.left, -rc.top); //////////////////// добавяю API-таймер (то есть ::SetTimer(hWnd,ID_T1,500,NULL)) где ID_T1 добавил в ресурсах в VS-окружении /View. А в WN_TIMER то етсь в OnTimer(...) добавляю для тест целей MessageBeep ну и собсвенно Fire_Position(11,441,447,5). Компилируем,,,стартуем Spy++ ну и VB-пример, добавляем туды перехват Events и выводим его в textbox ..запусскаем и смотрим....Писков нет, Events не шлються, НО в Spy++ тикает WN_TIMER .....(( Ладно , ставим вместо API-Timer такой таймер;) ...SetTimer(ID_T1,500,NULL))..проверяем..всё тихо как в гробу ((( нет WN_TIMER вообще в Spy++ ....Тогда так ...с тест-целями создаём VOID CALLBACK TimerProc( HWND,UINT,UINT,DWORD) {MessageBeep(65555) и пишем в ::SetTimer(hWnd,ID_T1,500,(TIMERPROC)TimerProc) Ура beeps есть как толкько я в vb-прогамме стартую видео (если убрать в settimer hWnd и записать NULL то стартует сразу пр окрытии окна VB-программы) НО ТЕПЕРЬ Я НЕ МОГУ ДОБАВИТЬ (не умею в глобальном пространстве заявить Fire_ ....) Fire_Position(11,441,447,5). ((( Что мне собсвенно и надо было...Кстати меня удивляет, что прекращение beeps происходит НЕ при закрывании видеокна а при закрытии программы.. Вот и вопрос КАК вызывать в callback Fire_ почему без callback ничего не выходит,,как реализовать таймер с Threads..мне уже посоветовали ,,делай в VB но его не знаю...а времени мне ,,недели полторы... Благодарю за советы:)
|