README.TXT

//------------------------------------------------------------------------- 
// Readme.txt
//-------------------------------------------------------------------------
// Objvw: A sample that illustrates using IE's Automation and scripting interfaces
// from a contained control
//-------------------------------------------------------------------------
// (C) Copyright 1992-1996 by Microsoft Corporation. All rights reserved.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//-------------------------------------------------------------------------

PURPOSE
=======

This sample has been updated for IE4.0. It no longer uses the Base Control
framework. For the sake of simplicity, the sample is not backwards compatible
with IE 3.X. The original ObjVw sample can be referenced for information on
the IE 3.0 object model.

- illustrates accessing IE's Automation model and scripting model from within a
contained ATL control.

- illustrates enumerating all ActiveX controls and links in a page and sub
pages. This includes an algorithm for recursively enumerating floating
frames and framesets.

- illustrate implementing an event sink in a ATL control.

- illustrates using the DocumentComplete event to identify when pages have been
completely loaded. DocumentComplete is fired for each frame in a document.
DocumentComplete returns the IDispatch for the document that has completed
loading. The outermost frame will always fire last so by comparing the
IDispatch pointer returned by DocumentComplete with the IDispatch of the
outer frame, it is possible to tell when all frames have completely loaded.

- Illustrates marking an ATL control "Safe for scripting".

FILES SUPPLIED
==============
This is a standard VC 5.0 project. All code relevant to the sample is located
in ObjVwCtl.cpp and ObjVwCtl.h.

RUNNING THE SAMPLE
==================
Compile the sample with VC 5.0 ( this will also register the control ). Open
the file TestCtl.htm. This file contains an instance of the control and links
to several test pages.

SINKING EVENTS
==============
This ATL control directly implements the DWebBrowserEvents2 interface. An
alternative approach would be to implement the sink as a separate object and
use CComObject::CreateObject to instantiate the sink. The event sink is
connected and disconnected in the CObjVw::SetClientSite function.