IInputObject no longer called in IE7?  
Author Message
tnielsen





PostPosted: Internet Explorer Extension Development, IInputObject no longer called in IE7? Top

Has the behavior around IInputObject changed for IE7

We're doing the standard:
1. On SetSite(), get the IID_IInputObjectSite from the IUnknown parameter.
2. When one of our UI Windows gets or looses focus, call IInputObjectSite::OnFocusChangeIS()

It all appears to work; however, we never see callbacks on our IInputObject methods: UIActivateIO, HasFocusIO, TranslateAcceleratorIO.

Well, that's not completely true. We see a callback on IInputObject:: UIActivateIO(FALSE..) when a second, different toolbar calls IInputObjectSite::OnFocusChangeIS(FALSE), but that's the only time (we see it in the stack crawl).

Is this behavior different from IE6

This bandobject needs these calls to do it's UI correctly. It's more complex than a simple editbox or combobox. How do I get IInputObject to work



Internet Explorer Development8  
 
 
Tony Schreiner





PostPosted: Internet Explorer Extension Development, IInputObject no longer called in IE7? Top

To delegate accelerators to toolbars in IE7 the toolbar host HWND or one of its children needs to have focus. Can you check whether this is the case This is the normal configuration for hosting toolbars, but I have seen one case where a toolbar was implemented by floating a top-level window over IE, attempting to keep it in sync with the underlying band, which broke in the same way.


 
 
tnielsen





PostPosted: Internet Explorer Extension Development, IInputObject no longer called in IE7? Top

This does appear to be the problem. Our extension creates a floating window that allows the user to interact with the page. This floating window contains a hosted browser to do its UI.

Congratulations on launching.


Unfortunately, it looks like we may need to discontinue support for IE7 and direct our users to our Firefox version unless you can suggest a work around.


 
 
Martin Gentry





PostPosted: Internet Explorer Extension Development, IInputObject no longer called in IE7? Top

I think I'm the one responsible for the "one other toolbar" Tony has seen that broke. :-) Anyway ...

Just out of curiosity, does the "floating window" absolutely need to NOT be a top-level window If a top-level window (WS_POPUP) is acceptable, it will receive keyboard events normally. And of course I'm only asking since you refer to it as a "floating window" which sort of implied there might be a snowball's chance in heck that a top-level window could be acceptable.

 
 
tnielsen





PostPosted: Internet Explorer Extension Development, IInputObject no longer called in IE7? Top

We've tired making the window an WS_POPUP. The focus moves from the browser (IE's window) to the popup; meaning the browser window's title bar shows inactive. Not the greatest user experience.

One problem with this approach is that command keys (like ctrl+x) don't work unless they hook into IE's IInputObject.

Good ideas though. Thanks for suggestions.

 
 
ShawnMullen





PostPosted: Internet Explorer Extension Development, IInputObject no longer called in IE7? Top

This appears to be a problem even without floating windows. I created a toolbar using the BandObject .net extension (Code Project) and a toolstrip. I placed a combo box in the toolstrip. Everything works great except the combo box doesn't receive BACKSPACE and left and right arrows keys, IE won't give them up. The only way it works is to tab to an element on the web page then tab back to the combo box and voila the combo box works.

I know why this happens but I don't know how to fix it. Did you figure anything out about this

Please help. I have spent 2 days trying to figure this out. No luck.

Thanks.


 
 
Radek Voltr





PostPosted: Internet Explorer Extension Development, IInputObject no longer called in IE7? Top

Hi everyone,

I am fighting with same problem - I have ws_popup floating window which contains combobox - in this combo works all keyboard input fine but I don't receiving any of WM_KEY* messages.

So user can write into combo, CBM_ messages are comming but wm_key or other keyboard messages don't.

I was tryed even subclass IE window but still nothing :-(

Have somebody any ideas how to "hook it" into IE's TranslateAccelerator chain