flash activex w mfc

0

mam nastepujacy problem:
pracuje w visual c++ v6.0. robie wizardem mfc aplikacje 'dialog
based'. osadzam w niej kontrolke activex flash playera macromedii.
potrzebuje przechwycic zdarzenia myszy i klawiatury, ktore dostaje ta
kontrolka. nie wiem jak to zrobic ;)
rozwiazanie czesciowe mam takie:
kontorlka w moim programie wyswietla swfa. edytuje jego zrodlo fla i
pisze tam actionscript, ktory na kazde zdarzenie myszy i klawiatury
wywoluje fscommand(...) (dla niezorientowanych - actionscript to
jezyk skryptowy flasha, fscommand to funkcja w tym jezyky, ktora
umozliwia komunikacje ze srodowiskiem odtwarzajacym swfa). obsluge
tego fscommanda dodaje sobie w classwizardzie w visualu. dziura jest
jedna - flashplayer na prawy przycisk myszy wyswietla menu ze swoimi
opcjami i about boxem i tego typu [CIACH!] i nie przekazuje tego
zdarzenia do actionscriptu. wszystkie hacki tego opieraja sie na
zalozeniu, ze player jest osadzony na stronie www, co nie jest prawda
w moim przypadku.
zanim poszedlem w ta strone myslalem jeszcze zeby napisac jakas
kontolke, ktora zakryje calego flashplayera, ktora nic nie bedzie
wyswietlac, ale przechwyci wszystkie zdarzenia, ale to przekracza moje
umiejetnosci ;)
czy ktos wie jak sobie z tym problemem poradzic?
pozdro
borzoj

0

Nie znam się kompletnie na VC++, ale w Delphi widziałbym conajmniej 2 sposoby rozwiązania sytuacji:

  1. Przechwycenie komunikatów wysyłanych przez mysz i klawiaturę, sprawdzenie czy pochodza one z obszaru kontrolki (próbowałem z WM_RBUTTONDOWN i wszystko hulało jak trzeba) a następnie przekazanie ich obsługi do głownego okna.

  2. Globalny hook na mysz i klawiaturę - przechwytywanie komunikatów i obsługa jak wyżej.

Pierwszy sposób wydaje mi sie lepszy i łatwiejszy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1