By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,030 Members | 2,277 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,030 IT Pros & Developers. It's quick & easy.

A strange problem with IE and the browser helper object

P: n/a
(note: reason for posting here; browser helper object is written in
C++; C++ developers tend to know the intricacies of message handling;
this looks like a Windows messaging issue)

Microsoft very kindly make available a DLL (the browser helper DLL)
which allows you to trap and disable the context menu (right mouse
click) and various 'built-in' browser accelerators (such as ctrl+P
which brings up the print dialogue, and F5, which will refresh the
current page) when using the browser.

This is great, and I am duly grateful. However, using the helper DLL
does have a strange side-effect which is annoying our users, and if
anyone has an explanation, I'd be grateful.

What happens is this. If you have any contenteditable fields in your
page (and we have a *lot* of them

e.g

<span contenteditable>some editable stuff</span>

and you host this page inside Visual Basic using the standard browser
control

then without the browser helper DLL attached to the page you can press
the left mouse button and 'sweep' over the text to highlight it. This
is of course a standard piece of Windows behaviour.

Now attach the helper DLL. Now, you can no longer sweep across and
highlight text. Instead, nothing happens.

However, the keyboard still allows this e.g you can press HOME and
CTRL+END to highlight text.

I have tried running up Spy++ to see if somehow there's something
weird going on with message handling but can't pin it down. The DLL
source code doesn't seem to be screwing around with messages it didn't
ought to be handling.

Can anyone suggest a way of pinning down this rather strange problem?.

I strongly suspect it is tied in with message handling/ accelerators
or something weird in this area. I can't see obvious message eating
but how Windows internally handles this I am not sure. I would assume
that the destination hWnd sees a WM_LBUTTONDOWN and then captures the
mouse and monitor WM_MOUSEMOVE messages to handle highlighting, but as
this behaviour is intrinsic to the edit control, I don't see it
documented anywhere. (of course, I assume that contenteditable text is
implemented via an edit control - I have no idea how MS are doing it
inside the browser).
Jul 22 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
On 18 Dec 2003 04:23:44 -0800, aj****@my-deja.com (Andrew Mayo) wrote:
(note: reason for posting here; browser helper object is written in
C++; C++ developers tend to know the intricacies of message handling;
this looks like a Windows messaging issue)


Then post to a Windows group.

[snip]

Sincerely,

Gene Wirchenko

Jul 22 '05 #2

P: n/a
On 18 Dec 2003 04:23:44 -0800, aj****@my-deja.com (Andrew Mayo) wrote:
(note: reason for posting here; browser helper object is written in
C++; C++ developers tend to know the intricacies of message handling;
this looks like a Windows messaging issue)


The question is off-topic in [comp.lang.c++].

Try [comp.os.ms-windows.programmer.win32] instead. It's chock full of
people programming Windows in C++. And other languages.
Jul 22 '05 #3

P: n/a
sorry. That would have been a better idea; was looking for an
MS-specific C++ group and failed to find it, hence post.
Jul 22 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.