Microsoft Web Browser COM control in VB .Net

B

BobAchgill

Has anyone had success with using this Com control?

When I add it into my tool box and drop it into my form
it says in the
properties that the Document and LocationURL are read
only. (they are grayed out)

I am successful to get Media Play Com to work alright in
the form but can
not get Web Browser to work.

Maybe you can tell me there is another way to get HTML
browsing capability
inside a form?

I found a link on Google that seemed to be referencing
this issue but could
not get their code to compile
http://weblogs.asp.net/kaevans/archive/2003/02/25/2936.asp
x
 
C

Cor

There is a difference between the adWebbrowser and the webbrowser

axshdocVw.dll and shdocVw.dll and only shdocVW.dll, are you using axshdocvw?

Cor
 
B

BobAchgill

When I run the form with a Microsoft Web Browser
(shdocVw.dll ) i only get a white box. It is not obvious
how to feed the browser box an HTML file to read.

I searched on my drives and did not find a axshdocVw.dll.

I searched in the COM list and did not see an
adWebbrowser... is this a third party COM? If it is what
I need to finish the task...where to I get it?


If there are two methods for getting a browser control in
a form: Microsoft Web Browser AND AdWebbrowser...
What are the advantages of each?
 
C

Cor

Hi Bob,

I never got things working with the shdocvw.dll the axdocvw.dll is I think
the compatible part from VB6 I put in the subject Charles than maybe Charles
can sees it and he can tell us what he is using.

Cor
 
C

Charles Law

Hi Cor, Bob

Sorry, I was miles away (figuratively speaking).

Bob ...

The WebBrowser control is an ActiveX control, so when you add one to a form
in your .NET project, .NET adds a managed wrapper to it, which is what the
ax prefix means.

Once you have a WebBrowser control on your form, you will see
AxInterop.SHDocVw and Microsoft.mshtml in the project references, in the
solution explorer. The former is concerned with the user interface and the
latter is concerned with the DOM.

The reason Document is greyed out, for example, is that it is an object that
provides access to the DOM. Its primary interface is mshtml.IHTMLDocument2,
but you can use DirectCast to get at other supported interfaces.

In the simplest case, suppose you want to navigate to an HTML page: in the
load event of your form put

AxWebBrowser1.Navigate2("http://www.microsoft.com")

for example, to go to the Microsoft home page. Be aware that the page loads
asynchronously, so the call to Navigate2() will return immediately, and
certainly before the page has finished loading. If you want to access the
document you will need to handle the DocumentComplete event of the browser
control, or wait until the readyState = "complete".

Sorry if this is a bit brief, but have a go, and post back with any further
problems.

HTH

Charles
 
C

Cor

Hi Charles,

The main problem is that I never could use the Shdocvw (when I did want all
the benefits) directly but always the axshdocvw.

(And maybe a little bit lazy when I saw it did not go and the axshdovw did
work fine, not check it really very deep)

How is that with you, do you use the Shdocvw withouth the AxShdocvw.

Cor
 
C

Charles Law

Hi Cor

No I don't. I have found it easier to use the RCW that .NET creates. In
order to make SHDocVw work on its own, there are several interfaces that
need to be implemented by the host, and these are not defined in the
framework, so they need to be created by hand. When .NET creates the RCW it
uses an AxHost as the container for SHDocVw, which takes care of all the
extra interfaces required.

There are reasons why doing it all by hand is beneficial, but I have managed
to get round the problems like events not firing by other means.

Charles
 
B

BobAchgill

I looked at the Navigate ( ) Method but it was not clear
how or if that is what I need to direct the Web Browswer
control to point to read an HTML file.

You guys are so smart...pleeease share with me how you
get the Microsoft Web Browser (shdocVw.dll) to read a
file with in a VB form. I am still looking at a white
space where the control is painted on my form.
 
C

Charles Law

Hi Bob

Believe me, we are not trying to keep it from you.

You can use the Navigate method to load a file as well, e.g.

AxWebBrowser1.Navigate("c:\myplace\myfile.htm")

What happens when you use the above syntax?

Charles
 
B

BobAchgill

It works! I successfully did the AxWebBrowser1.Navigate
("c:\myplace\myfile.htm") Thanks!!

Where can I find a list of all the methods for
AxWebBrowser or is that a stupid question?
 
B

BobAchgill

Hi Cor,

I downloaded the code at the link you gave me. And tried
to upgrade it to VB .Net with some errors that would not
let it compile... like:

Type 'shell' is not defined.

'Object' is not a member of 'AxSHDocVw.AxWebBrowser'.

For now Charles' suggestion for using the command:
AxWebBrowser1.Navigate("c:\myplace\myfile.htm")

has me going alright to load a HTML document...but it
would be nice to use some the functionality in the code
you pointed me to. Is is simple to make the upgrade
function properly? If not I will leave it alone until I
get to be a better programmer.
 
C

Charles Law

I suppose the simple answer is that they are basically the same as the
WebBrowser control. The more helpful answer is that they can all be found in
MSDN, on-line or in the library if you have it.

You will notice some methods and attributes called CtlXXXX. These are
generated when the underlying control (in this case the WebBrowser control)
has members with the same name as members of the .NET Control class. In this
case, the .NET members keep their name, and the underlying control members
are prefixed with ctl.

I don't wish to put you off, and depending on what your plans are this may
not be significant, but using the WebBrowser control for anything even
remotely clever is fraught with problems. I have spent the last nine months,
on and off, developing a browser control for .NET, with the WebBrowser
control at the heart. It ain't straight forward. Apart from the bugs in the
interop and the browser control itself, you will need to spend a lot of time
delving into the MSDN for examples and clues, and these newsgroups will
become your best friends.

But hey ...

Good luck.

Charles
 

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

Top