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

近期下载者

相关文件


收藏者