A strange problem with IE and the browser helper object

A

Andrew Mayo

(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).
 
G

Gene Wirchenko

(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
 
A

Alf P. Steinbach

(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.
 
A

Andrew Mayo

sorry. That would have been a better idea; was looking for an
MS-specific C++ group and failed to find it, hence post.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top