IEContainerSample
所属分类:单片机开发
开发工具:Asm
文件大小:32KB
下载次数:6
上传日期:2015-08-16 02:17:01
上 传 者:
storedproc9
说明: IEContainer is a COM container application which hosts the Internet Exlorer WebBrowser control.
Writtten in MASM-style assembly for JWasm
See README.TXT for more details
文件列表:
ClassFactory.asm (4640, 2011-01-25)
container.asm (8745, 2012-08-05)
container.inc (2628, 2012-08-21)
Debugout.inc (668, 2011-01-15)
Dispatch.asm (2703, 2011-01-17)
DocHostShowUI.asm (1319, 2011-01-10)
DocHostUIHandler.asm (5035, 2012-08-21)
eventobj.asm (7978, 2012-08-21)
IEContainer.asm (13898, 2012-08-21)
macros.inc (380, 2011-02-06)
Makefile (1467, 2012-07-31)
OleClientSite.asm (2386, 2011-01-17)
OleCommandTarget.asm (2722, 2011-01-13)
OleContainer.asm (2974, 2011-01-20)
OleControlSite.asm (2613, 2011-01-12)
OleInPlaceFrame.asm (4923, 2011-01-15)
OleInPlaceSite.asm (5099, 2011-01-18)
ServiceProvider.asm (2189, 2012-07-31)
Unknown.asm (3119, 2012-07-31)
MAKEW32.BAT (544, 2012-08-19)
Release\IEContainer.exe (9728, 2012-08-21)
1. About
IEContainer is a COM container application which hosts the Internet
Exlorer WebBrowser control.
It's written in assembly (Masm-style), and source code is included.
2. How to launch the Binary
When the program starts, it will scan the command-line. The optional
argument must be either an URL or an option.
If no argument or an URL is given, a standard windows is created. The
client area of the window will be used by the IE WebBrowser control, with
2 exceptions: an address bar at the top and a status line at the bottom.
The only option which is accepted in the command-line is -Embedding. This
will make the program to register as a COM server for objects of class
InternetExplorer.Application ( guid="0002DF01-0000-0000-C000-000000000046" )
and no window is created in this case.
WARNING: if you usually don't use IE for browsing, it may be a good idea
to set the security of Internet sites ( in Internet Options of the Control
Panel ) to a higher level ( disable ActiveX and perhaps also Scripting )
BEFORE launching IEContainer.
3. How to create the Binary
The source uses the WinInc Windows include files. These may be found
at http://www.japheth.de/WinInc.html.
Masm or JWasm may be used to assemble the source. Linkers that will
work are MS link, PoLink or OW WLink.
The simplest way to create the binary is to run NMAKE. It may be necessary
to adjust some paths in file Makefile to make NMAKE run successfully. If
NMAKE isn't available, a simple batch file might do the job as well. See
file MakeW32.bat for a sample how the tools are supposed to be used.
4. Brief Source file Description
- IEcontaner.asm : the main module
- container.asm : creates the container object
- eventobj.asm : creates the event sink object
- Dispatch.asm : container's IDispatch interface
- DocHostShowUI.asm : container's IDocHostShowUI interface
- DocHostUIHandler.asm : container's IDocHostUIHandler interface
- OleClientSite.asm : container's IOleClientSite interface
- OleCommandTarget.asm : container's IOleCommandTarget interface
- OleControlSite.asm : container's IOleControlSite interface
- OleInPlaceFrame.asm : container's IOleInPlaceFrame interface
- OleInPlaceSite.asm : container's IOleInPlaceSite interface
- Unknown.asm : container's IUnknown interface
- ServiceProvider.asm : container's IServiceProvider interface
- OleContainer.asm : container's IOleContainer interface
- ClassFactory.asm : class factory for InternetExplorer.Application
The application is able to create multiple windows which all will host
their own webbrowser control. This is achieved in eventobj.asm by handling
events DISPID_NEWWINDOW3 and DISPID_NEWWINDOW2.
5. Understanding the Program
To understand what's going on when the container runs is not trivial.
At least the COM basics must be known. As a first step, I'd suggest
to create a debug version of the program ( run NMAKE with parameter
DEBUG=1 ). The debug version will emit displays onto the "debug terminal".
To see those displays you'll have to get a tool that makes them visible,
for example DbgView from SysInternals.
The amount of displays may be tuned. As default, the display of invokations
of IUnknown and IServiceProvider methods are suppressed, because these
methods are called very frequently and hence may just be confusing. To
enable full displays, set -D?DBGEXT=1 and/or -D?ISPDBG when creating the
debug version.
6. History
- 2011/01: first version
- 2012/06: fixed a few assembly errors.
- 2012/08: handles DISPIP_DOCUMENTCOMPLETE to update the address bar edit
control with the current URL.
7. License
This code is Public Domain.
japheth
近期下载者:
相关文件:
收藏者: