Click here to Skip to main content
15,867,330 members
Articles / Desktop Programming / MFC
Article

Find in CWebBrowser Control

Rate me:
Please Sign up or sign in to vote.
5.00/5 (1 vote)
10 Aug 2000 157.2K   24   30
How to display the "Find" window in a CWebBrowser control.

Introduction

An application that I had been assigned to write, required me to display reports that could possibly be over 10,000 lines in a CWebBrowser control. These 10,000 lines sometimes took a matter of hours to produce, so it was decided that it would be nice to display the report as it was generated, line by line. Being reasonably new to COM, I posted the question "How?" in the CodeProject message area. Along came Colin Davies, with a bit a code. In a 10,000 line report, it can take the user a lllloooonnnngggg time to find what they are looking for!

IE5 has the Edit - Find (on this page)... CTRL+F option that searches the current page. So I investigated implementing this in my CWebBrowser control, and found it was not as easy as it had first sounded to a COM newbie. Anyway after searching some rather confusing MSDN articles I hacked some code to produce this code slice, which can also be modified to display the View Source and Options windows as well.

Source listing

#include <initguid.h>
DEFINE_GUID(CGID_IWebBrowser,0xED016940L,
            0xBD5B,0x11cf,0xBA, 0x4E,0x00,
            0xC0,0x4F,0xD7,0x08,0x16);

//1 : FIND, 2: VIEWSOURCE, 3 : OPTIONS
DWORD nCmdID = 1; 

LPDISPATCH lpDispatch = NULL;
LPOLECOMMANDTARGET lpOleCommandTarget = NULL;

//m_htmlview is the member variable 
//for the CWebBrowser2 control.

lpDispatch = m_htmlview.GetDocument();
ASSERT(lpDispatch);

// Get an IDispatch pointer for the 
// IOleCommandTarget interface.
lpDispatch->QueryInterface(
        IID_IOleCommandTarget,
        (void**)&lpOleCommandTarget);
ASSERT(lpOleCommandTarget);

lpDispatch->Release();

// Invoke the given command id for 
// the WebBrowser control
lpOleCommandTarget->Exec(
        &CGID_IWebBrowser, nCmdID, 0,
        NULL, NULL);

// Release the command target
lpOleCommandTarget->Release();

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Instructor / Trainer
United Kingdom United Kingdom
Is was a hardware engineer that wrote the odd bit of MFC software. A redundancy and career change later, I now teach 11-19 year olds Mechanical Engineering and Computer Science.
This is a Organisation (No members)


Comments and Discussions

 
GeneralHandle to this dialog Pin
will07070721-Sep-07 9:31
will07070721-Sep-07 9:31 
GeneralApplet in WebBrowser Pin
colin-12312-Sep-06 23:49
colin-12312-Sep-06 23:49 
QuestionHow Can this be used IN C# Pin
jdnx21-Apr-06 22:16
jdnx21-Apr-06 22:16 
General10x Pin
cata_100026-Sep-05 8:15
cata_100026-Sep-05 8:15 
GeneralSave as &quot;Web Page, complete&quot; Pin
leuven2-Jun-04 22:19
leuven2-Jun-04 22:19 
GeneralRe: Save as &quot;Web Page, complete&quot; Pin
Ickis15-Jun-04 1:42
Ickis15-Jun-04 1:42 
GeneralRe: Save as &quot;Web Page, complete&quot; Pin
Douglas R. Keesler30-Dec-04 5:02
Douglas R. Keesler30-Dec-04 5:02 
Questionhow to navigate to HTML page from resouces Pin
george ivanov18-Dec-03 2:54
george ivanov18-Dec-03 2:54 
AnswerRe: how to navigate to HTML page from resouces Pin
jerry0davis18-Dec-03 3:47
jerry0davis18-Dec-03 3:47 
QuestionCan I use it with CHtmlView Pin
7-Sep-02 2:39
suss7-Sep-02 2:39 
AnswerRe: Can I use it with CHtmlView Pin
mmori14-Mar-04 11:23
mmori14-Mar-04 11:23 
QuestionHow can I get the HTML text from Webbrowser Control ? Pin
2-Oct-01 2:23
suss2-Oct-01 2:23 
QuestionHow can I get the HTML text from Webbrowser Control ? Pin
2-Oct-01 2:22
suss2-Oct-01 2:22 
AnswerRe: How can I get the HTML text from Webbrowser Control ? Pin
pawlb24-Oct-02 11:50
pawlb24-Oct-02 11:50 
GeneralThe arguments to the find method Pin
Tim Ford4-Jun-01 0:42
Tim Ford4-Jun-01 0:42 
GeneralRe: The arguments to the find method Pin
jerry0davis25-Jul-01 23:27
jerry0davis25-Jul-01 23:27 
QuestionGet explore device context..? Pin
22-Mar-01 18:53
suss22-Mar-01 18:53 
GeneralRight button -->> IE pop-up menu Pin
25-Feb-01 7:16
suss25-Feb-01 7:16 
GeneralRe: Right button -->> IE pop-up menu Pin
jerry0davis16-Mar-01 3:00
jerry0davis16-Mar-01 3:00 
GeneralRe: Right button -->> IE pop-up menu Pin
5-Jun-01 3:01
suss5-Jun-01 3:01 
Please, can you have a look? Smile | :)
I also looking for the solution for hiding the standard IExplorer right-click menu, or even to implement my own.
GeneralRe: Right button -->> IE pop-up menu Pin
KaЯl3-Jan-03 3:09
KaЯl3-Jan-03 3:09 
GeneralRe: Right button -->> IE pop-up menu Pin
jerry0davis22-Aug-01 22:49
jerry0davis22-Aug-01 22:49 
Questionhow i can use it? Pin
Jaims15-Aug-00 16:12
Jaims15-Aug-00 16:12 
AnswerRe: how i can use it? Pin
Jeremy Davis21-Aug-00 23:44
Jeremy Davis21-Aug-00 23:44 
GeneralSave As Pin
Brian Hart14-Aug-00 19:17
Brian Hart14-Aug-00 19:17 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.