Internet Explorer 4.0 - A look at what's new.

I Find Karma (adam@cs.caltech.edu)
Tue, 3 Sep 96 21:09:59 PDT


We now know that the plan for Internet Explorer 5.0 includes
programmable forms, but I forget the URL for that announcement.

Meanwhile, here's an outside look at IE 4.0. Ready for Beta
testing, Tim?
-- Adam

http://www.microsoft.com/win32dev/ui/ie40.htm

What's New for Internet Explorer 4.0
Nancy Winnick Cluts
Microsoft Developer Network Technology Group

July 22, 1996

Microsoft. Internet Explorer version 4.0, known by the code name
"Nashville," includes all of the previous performance enhancements and
features that you got with Internet Explorer 3.0, plus enhanced Internet
navigation, new tools that automate Internet content, updates to the
common controls, and support for HTML built into the shell. Internet
Explorer 4.0 includes updates to many components in Microsoft Windows.
95, including the common control dynamic-link library, Comctl32.dll, as
well as Explorer.exe, Shell32.dll, Shdocvw.dll, and Mshtml.dll. Some of
these components are redistributable via the Microsoft ActiveX
Software Development Kit (SDK), but the core pieces (that is,
Explorer.exe, Shell32.dll, Shdovw.dll) are not. Please refer to your
ActiveX SDK for information about what is redistributable and what is
not.

Note This article is based in part on a presentation given by Joe
Belfiore, Group Program Manager for Windows/Internet User
Interface. The information contained in this article is based on
the alpha release of Internet Explorer version 4.0. The
information is subject to change and is considered to be valid
only for the alpha release.

A Brief Walking Tour of Internet Explorer 4.0

Since this is so new, many of you may not yet have had a chance to sneak
a peek at the user interface in Internet Explorer 4.0. If you've already
attended one of the developer conferences where Internet Explorer 4.0
has been demonstrated, feel free to skip this section. It contains
information that primarily affects users of the system. Later on in this
article, I'll go into some of the new updates that affect developers.

Internet Explorer 4.0 was designed with the following goals in mind:

* Make it easy to browse any content or information, not only folder
contents. This means that the user can browse the Web directly via
Windows Explorer now, and the Internet looks just like any other
folder.

* Integrate local machine, local area networks, and the Internet so that
browsing among the different locations is seamless. This means that
Windows Explorer and other portions of the shell don't discriminate
among data locations.

* Make it easy to browse the Web by offering system-wide favorites so
that users can have all of their most cherished Web sites (like the
Win32Dev site) available at the click of a mouse, as well as a history
of sites visited and a map of your favorite Web sites. The ability to
rate content (you don't want the kiddies reading offensive material
like the latest rant by Rush Limbaugh, do you?) is also built in.

* Make your computer more fun to use, bringing the content alive via
"active content." In reality, this means that there will be tools
available that automate the downloading of information and that have
the ability to schedule when information is gathered from your favorite
Web sites. In addition, new tools will allow you to see whether
something new has popped up on your favorites sites via icon handlers
so that you will know whether or not you should check the sites.
Finally, you will see the addition of some active desktop themes. These
themes will be different from the themes that you already have with the
Plus! Pack in that their content is "live." It can be hooked up to the
Internet, and the information that you see on your desktop can be
updated daily, weekly, or at the interval you choose.

Enhanced Internet Shortcuts

Internet shortcuts are .URL files. They are much the same as regular
shortcuts (.LNK files), except that they point to something on the Internet.
You can drag and drop them into files, and they can work with any type of
browser. With Internet Explorer 4.0, these shortcuts have been enhanced to
support rich properties such as the author of the Web site, when the site
was last updated, and what is new on the site. The number of times you have
visited the Web site will also be tracked.

For the developer, Internet shortcuts can also be enhanced by the built-in
shell extension mechanisms such as context menu handlers and icon handlers.
(These shell extensions are supported by Windows 95, and you can find
information about how to create these at the end of this article.) A
developer could, for instance, provide a special icon for a site when a site
has been updated or have customized icons to indicate the current state of a
Web site. She can even add special properties to a site via OLE. This allows
the storage of other data associated with the site (for instance, individual
preferences).

Site Maps

Site maps give you a hierarchical view of the Web site so that you can see
exactly how the site is laid out (and so you can go to the pages that you
find most helpful and interesting). Site maps are not based on the HTML
storage built into a site. Instead, the author provides the details about
the site for the site map via an OBJECT tag. This way, the author can show
the map of the site that he wants his user to see. If you don't take
advantage of this new functionality, the user might not think that your site
is as easy to navigate as a site that does employ maps.

Site maps are supported via the use of an .SMP file. The .SMP file is an
ASCII file created by the Web author that contains the description of a site
hierarchy and contains information about the site including:

* The name of the document
* The URL for the document
* The index to the associated icon or a URL for the associated icon
* The location of the hierarchy
* The size of the file
* The date the file was last modified
* The way to display the file

The final format of the .SMP file is subject to change, so I won't show it
here.

What's New for Win32 Developers

A lot of what I've shown you already gives you a good idea of what will be
provided for end users, but there are some new enhancements that are
specifically for developers who use the Win32 application programming
interface (API). The major areas of change that concern developers are:

* Updates to the common controls
* Enhanced ability to extend the shell
* Use of Active Documents
* Folder aggregation
* OLE Automation

Enhancements to the Common Controls

Many controls are built into Windows 95 and supported by the Win32 API.
These are called common controls. Internet Explorer 4.0 provides some
enhancements to these existing controls. All common controls now support
smooth scrolling. The table below is a synopsis of some of the new
functionality that is supported in the common controls.

Table 1. Common Control Enhancements

Control Feature

List View Smooth scrolling for item deletion.

Ability to set the spacing between per-instance
icons via the LVM_SETICONSPACING message.

Ability to get and set extended styles via the
LVM_GETEXTENDEDLISTVIEWSTYLE and
LVM_SETEXTENDEDLISTVIEWSTYLE messages.

Grid lines in list view report mode via the
LVS_EX_GRIDLINES style.

Support for adding images to the column headings.

Ability to indent items via the LVIF_INDENT flag.

Customized drawing.

Creation of subitem images via the
LVS_EX_SUBITEMIMAGES style.

Set the column order in report mode via LVCF_ORDER.

Virtual list view ability to support an "infinite
item" mode. In this mode, no data is stored per
item, but this is the way for you to use list views
on really large lists.

Drag-and-drop support of columns in report mode via
the LVS_EX_HEADERDRAGDROP style. You can now drag a
header item to a different location, resetting the
order.

Full-row select mode via the LSV_EX_FULLROWSELECT
style.

The ability to select while hovering via the
LVS_EX_TRACKSELECT style.

ToolTips Ability to track ToolTips using the TTF_TRACK,
TTF_TRACKACTIVE, and TTF-TRACKPOSITION messages.

ToolTips now supported in trackbars via the
TBS_TOOLTIPS style on a trackbar using the
TBM_GETTOOLTIPS, TBM_SETTOOLTIPS, and TBM_SETTIPSIDE
messages.

Headers Full-window drag and column resize.

Cancel out of header tracking (via the
<ESCAPE>+<RIGHT-CLICK> combination).

Ability to set the item drawing order via the
HDM_ORDERTOINDEX message and HDI_ORDER style.

Support for images and bitmaps and support for
simultaneous bitmap and text on a header.

Support for callbacks via the HDDISPINFO structure.

Progress New modes: vertical (PBS_VERTICAL) and smooth
Bars (PBS_SMOOTH).

Vertical tabs supported via the TCS_VERTICAL style.
This style is mutually exclusive with the
TCS_BUTTON, TCS_SINGLELINE, and TCS_DRAWTEXT modes.

Set the range of the progress bar to 32 bits via the
PBM_SETRANGE message.

Trackbars Custom draw support.

Ability to set buddy windows to automatically reside
on the right or left of a trackbar.

Animation Ability to use timers via the ACS_TIMER style.
Control

Tabs Tabs can be on the right or on the bottom of a
property sheet now. Ability to set the minimum tab
width via the TCM_SETMINTABWIDTH message.

Multiple selection support via the TVIF_STATE flag
and the TVIS_BUTTONPRESSED style.

Tree View ToolTip support on tree view items.

Support for partially expanded items via the
TVIS_EXPANDPARTIAL state. In this state, the tree
node will show a plus sign (+) even though it has
more child nodes that it is not showing. Use the
TVM_EXPAND messages with the TVE_EXPANDPARTIAL flag.

Combo Box Extension

This new control is an extension to the current combo box. It supports
images with text. You set the style bits such that images won't be painted
when the item in the combo box is being edited. This new combo box also
gives the application the ability to see whether the text in the edit
portion of the combo box has changed from its initial value. This will help
if you are doing any special validation for your edit field.

Date Picker Control

The control called a date picker (no, it does not pick fruit, and it doesn't
get you an escort to a movie) is a standard user interface that developers
can use to allow end users to set and view the date. This works much like
the File Open common dialog box in that you will be provided the standard
user interface, including all of the controls needed, but you will need to
provide the "guts" of the code. That is, you need to do the real work. There
is a new class called DATETIMEPICK_CLASS or "SysDateTimePick32" in the
common control header file to support this new control.

Shell Extensibility: How It Works

The Windows 95 shell is extensible. Internet Explorer 4.0 takes that
extensibility further and gives developers the ability to really use the
shell's built-in functionality. The shell can host different views of the
shell views via the IShellView interface. For example, Windows Explorer, the
Printers folder, and MSN are all different shell views. One cool thing about
shell views is that they can merge into the shell frame and into the shell's
toolbar and status bar.

Create Active Objects

The Shell Explorer active object gives you the ability to use part of the
shell, with all of its functionality, for your own application. This means
that you can use the events and methods that the shell provides without
having to rewrite the user interface yourself. As a developer, some of the
things that you can provide to add value might be the ability to see
detailed information when a mouse hovers over an object, or you might
provide new user interface operations on objects such as a Delete button, or
you might want to expose your utility features directly in the shell (such
as compression or an undelete function).

Add Views to the Shell

As mentioned before, the shell can display different views to the user if a
developer uses the IShellView interface. This allows you to add your own
custom view to the View menu of the shell. In fact, the Web view that is
supported in Internet Explorer 4.0 is an extension to the previous view that
the shell used. Custom shell views can be used only in specific folders or
for all folders of a particular type. You can provide a different view by
writing a full-blown shell extension (as shown in the CABVIEW sample), or
you can use an HTML template.

Active Document Support

If you support Active Documents (DocObjs), users will automatically be
able to see your content in many places such as Internet Explorer 3.0,
the Windows shell (Windows Explorer), or the Microsoft Office binder. If
you are going to support active documents, be sure to learn about and
support hyperlinking so that the navigation works properly to and from
your Active Document. Check out my list at the end of this article for
other places to find more information about ActiveX and its associated
technologies.

Active Document UI Guidelines

Currently, there is work being done to incorporate Active Document user
interface guidelines into the Windows style guide. But that work isn't
done yet. Here are just a few suggestions that we have that you should
keep in mind when designing your Active Document:

* Be aware that you don't automatically have your document open in the
same pane that the user is currently in. The default is to have a new
window open for your document. In order to open your document in the
same window, an author must specify that behavior for an authored
hyperlink.

* Prompt for saving changes when the user leaves your document. Whenever
the user clicks on the Back or Next button and leaves your document, be
sure to prompt the user to save any changes he may have made in that
session.

* Display minimal editing/adornment when your document appears. Extra
stuff just gets in the way. The important stuff is the actual content,
so attempt to optimize any user interface enhancements for reading.

More Information

As you can see, the Internet Explorer 4.0 update will bring the power of
the Internet to your Windows operating system. It will be as easy to
surf the Web as it now is to surf your folders. You can get more
information about the technologies employed in Internet Explorer 4.0
from the following Web sites:

* Microsoft For Developers Only (http://www.microsoft.com/devonly/)
* Microsoft Site Builder Workshop (http://www.microsoft.com/workshop/)
* Microsoft Site Builder Network (http://www.microsoft.com/sitebuilder/)
* Namespace Extensions (includes the CABVIEW sample on the Win32Dev Web
site) (http://www.microsoft.com/win32dev/apiext/namespa1.htm).
* "Extending the Windows 95 Shell"
(http://www.microsoft.com/win32dev/ui/shellex2.htm)

Programming the Windows 95 User Interface, available on the MSDN Library
CD (Books and Periodicals), covers shell extensions, the common
controls, and general user interface programming issues for Windows 95.