472,356 Members | 1,961 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,356 software developers and data experts.

Implementing IDispatch for Webbrowser.....

How would I implement the IDispatch interface to handle the following in

Controlling Download and Execution
The WebBrowser Control gives you control over what it downloads, displays,
and executes. To gain this control, you need to implement your host's
IDispatch so it handles DISPID_AMBIENT_DLCONTROL. When the WebBrowser
Control is instantiated, it will call your IDispatch::Invoke with this ID.
Set pvarResult to a combination of following flags, using the bitwise OR
operator, to indicate your preferences.

background sounds will be downloaded from the server and displayed or played
if these flags are set. They will not be downloaded and displayed if the
flags are not set.
b.. DLCTL_NO_SCRIPTS and DLCTL_NO_JAVA: Scripts and Java applets will not
be executed.
will not be downloaded or will not be executed.
d.. DLCTL_DOWNLOADONLY: The page will only be downloaded, not displayed.
e.. DLCTL_NO_FRAMEDOWNLOAD: The WebBrowser Control will download and parse
a frameSet, but not the individual frame objects within the frameSet.
f.. DLCTL_RESYNCHRONIZE and DLCTL_PRAGMA_NO_CACHE: These flags cause cache
refreshes. With DLCTL_RESYNCHRONIZE, the server will be asked for update
status. Cached files will be used if the server indicates that the cached
information is up-to-date. With DLCTL_PRAGMA_NO_CACHE, files will be
re-downloaded from the server regardless of the update status of the files.
g.. DLCTL_NO_BEHAVIORS: Behaviors are not downloaded and are disabled in
the document.
h.. DLCTL_NO_METACHARSET_HTML: Character sets specified in meta elements
are suppressed.
These flags function similarly to the
IDocHostUIHandler::GetHostInfo. The difference is that the DOCHOSTUIFLAG
flags are checked only when the WebBrowser Control is first instantiated.
The download flags here for the ambient property change are checked whenever
the WebBrowser Control needs to perform a download.
j.. DLCTL_NO_CLIENTPULL: No client pull operations will be performed.
k.. DLCTL_SILENT: No user interface will be displayed during downloads.
l.. DLCTL_FORCEOFFLINE: The WebBrowser Control always operates in offline
same. The WebBrowser Control will operate in offline mode if not connected
to the Internet.
DISPID_AMBIENT_DLCONTROL and the flag values are defined in mshtmdid.h.

Initially, when the function call to IDispatch::Invoke starts, the VARIANT
to which the parameter pvarResult points is of type VT_EMPTY. You must
switch the type to VT_I4 for any settings to have an effect. You can place
your flag values in the lVal member of the VARIANT.

Most of the flag values have negative effects, that is, they prevent
behavior that normally happens. For instance, scripts are normally executed
by the WebBrowser Control if you don't customize its behavior. But if you
set the DLCTL_NOSCRIPTS flag, no scripts will execute in that instance of
the control. However, three flags-DLCTL_DLIMAGES, DLCTL_VIDEOS, and
DLCTL_BGSOUNDS-work exactly opposite. If you set flags at all, you must set
these three for the WebBrowser Control to behave in its default manner
vis-a-vis images, videos and sounds.

The following code sample causes a WebBrowser Control instance to download
and display images and videos, but not background sounds, since the
DLCTL_BGSOUNDS is not explicitly set. Also, script execution on pages
displayed by the WebBrowser Control is disabled.

STDMETHODIMP CAtlBrCon::Invoke(DISPID dispidMember, REFIID riid,
LCID lcid, WORD wFlags,
DISPPARAMS* pDispParams,
VARIANT* pvarResult,
EXCEPINFO* pExcepInfo,
UINT* puArgErr)
switch (dispidMember)
pvarResult->vt = VT_I4;


return S_OK;
<END>Thanks so much for your help. Contributors will be listed in the
freeware browser being developed.
Nov 21 '05 #1
0 3342

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

by: Peter Sparago | last post by:
I am working with the MSHTML editor control. I used win32com.client.gencache.EnsureModule on the MSHTML type library to generate the necessary IDispatch support for all the various interfaces used...
by: Roger That | last post by:
Hi, I am trying to use the function "CreateStreamOnHGlobal" from python code (I need to pass an IStream object to MSXML, like I do in C++ code). I was able to retrieve a pointer on the IStream...
by: multi_term2000 | last post by:
I wanna customize web browser. Can someone show me an example? Thanks
by: Dmitry Medvedev | last post by:
Hello, I need to write C# class, that would implement IDispatch interface to be used in ActiveScript. I can't use IReflect interface here due to design issues, I need to handle GetIDsOfNames...
by: Phil Coveney | last post by:
Hello, I am implementing a class in C# that wraps an automation server and am stuck on something basic. Using the following code fragment: using System; using System.Runtime.InteropServices;...
by: Charles Law | last post by:
Hi guys There's nothing much going on in Interop at the moment, so I'll post this here as well in case someone can give me a quick answer. The following is an extract from MSDN: <extract>...
by: Jim Hubbard | last post by:
How would I implement the IDispatch interface to handle the following in VB.Net <BEGIN> Controlling Download and Execution The WebBrowser Control gives you control over what it downloads,...
by: Nikolay Belyh | last post by:
I have created a "collection" in C# like this: namespace ClassLibrary1 { public class X {} public class Class1 { public ArrayList objs {
by: Huayang Xia | last post by:
I am trying to use ctypes to call dll functions. One of the functions requires argument "struct IDispatch* ". I do have a PyIDispatch object in python. How can I convert this "PyIDispatch object"...
by: Kemmylinns12 | last post by:
Blockchain technology has emerged as a transformative force in the business world, offering unprecedented opportunities for innovation and efficiency. While initially associated with cryptocurrencies...
by: Matthew3360 | last post by:
Hi there. I have been struggling to find out how to use a variable as my location in my header redirect function. Here is my code. header("Location:".$urlback); Is this the right layout the...
by: Arjunsri | last post by:
I have a Redshift database that I need to use as an import data source. I have configured the DSN connection using the server, port, database, and credentials and received a successful connection...
by: Matthew3360 | last post by:
Hi, I have been trying to connect to a local host using php curl. But I am finding it hard to do this. I am doing the curl get request from my web server and have made sure to enable curl. I get a...
by: Oralloy | last post by:
Hello Folks, I am trying to hook up a CPU which I designed using SystemC to I/O pins on an FPGA. My problem (spelled failure) is with the synthesis of my design into a bitstream, not the C++...
by: Carina712 | last post by:
Setting background colors for Excel documents can help to improve the visual appeal of the document and make it easier to read and understand. Background colors can be used to highlight important...
by: BLUEPANDA | last post by:
At BluePanda Dev, we're passionate about building high-quality software and sharing our knowledge with the community. That's why we've created a SaaS starter kit that's not only easy to use but also...
by: Rahul1995seven | last post by:
Introduction: In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python has gained popularity among beginners and experts...
by: Ricardo de Mila | last post by:
Dear people, good afternoon... I have a form in msAccess with lots of controls and a specific routine must be triggered if the mouse_down event happens in any control. Than I need to discover what...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.