It's hard to clearly describe my problem, but, I'm trying to make it better.

First I created an ActiveX control, in which there's another sub window, says it playerwnd, got created and attached just while MyActiveXCtrl::OnCreate() was called.
In playerwnd, I did something like,
1. Initialized COM library and uninitilized it when received WM_DESTROY;
2. Played video via DirectShow;

Finally, I created a html and some embedded js code to manipulate inner player, you know.
It seemed to work quite well until I refreshed the IE window.

When I refreshed IE window, I found that the whole IE window lost response. Then I used Spy++ to check out message loop. wow, not suprising, all messages went to the outmost IE window (class IEFrame) instead of going to real message targets. The outmost IE frame window ate all messages and didn't dispatch them to children!

And if I didn't create playerwnd in OnCreate, problem's gone.

Although I've discovered why IE lost response, I still can't figure out the solution.

Sorry that I can't extract some sample code because I don't know which part, but welcome and appreciate for your any help. I'm willing to write more if there's sth missed.

thanks in advance.