|
|
|||||||||||||||||||||
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.
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:
Figure 1. Windows Explorer includes a view of the Internet.
It looks very similar to the current version of Windows Explorer, but if you look closely, you will notice that the tree view on the left side of the window includes not only the standard folders (My Computer, Network Neighborhood, Recycle Bin, and so forth), but also a folder titled The Internet. Within this folder are URLs to the most recently visited sites on the Web. On the right side of the window, you may notice that the list view used doesn't look like the usual large icon view. The standard large icons are there, but there is also a blue box containing the text "Welcome to Internet Explorer 4.0!" This box has some hypertext (the underlined text) that you can click to jump directly to the associated Web site.
So, how does Windows Explorer know which Web site to jump to? The text in the blue area is encoded in Hypertext Markup Language (HTML). If you right-click in this blue area, you will see a context menu appear. Within this context menu, you will have the option to "View Source." If you click this menu item, you can see the HTML source code, which looks like this:
<!--
* This file was automatically generated by Microsoft Internet Explorer 4.0
* using the file C:\WINDOWS\Web\DIR_3.HTM
-->
<html>
<style>
body {
background: #006699;
color: white;
font: 0.12in arial;
margin-left: 0.14in;
margin-right: 0.06in;
}
table {
margin-left: 0in;
margin-right: 0in;
}
h1 {
color: #cc3300;
}
p {
}
a {
color: #ff9933;
font-weight: bold;
}
</style>
<body>
<p>
<b>Welcome to <br>Internet Explorer 4.0!</b>
<p>
This <b>Alpha</b> version of Microsoft Internet Explorer 4.0 makes using files on your hard disk and the Internet completely seamless.
You can now view local content in the same way that you view content on the Web.
<p>
Try it! Surf the Microsoft Web site by clicking any of the links below.
<p>
<a target="_top" href="http://www.microsoft.com">
Microsoft Home Page
</a>
<br>
<a target="_top" href="http://www.microsoft.com/misc/whatsnew.htm">
What's New at Microsoft
</a>
<br>
<a target="_top" href="http://www.microsoft.com/support/products/windows95/windows95.htm">
Product Support
</a>
</body>
</html>
On the left side of the window, you can click one of the URLs listed under The Internet folder to jump directly to that Web site. So, in a shameless plug for the Win32Dev Web site that I work so hard to make compelling, thrilling, and otherwise necessary to your daily life, take a look at how Internet Explorer 4.0 displays that Web site.
Figure 2. Browsing the Win32Dev Web site using Internet Explorer 4.0
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 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:
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:
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.
| 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 Bars | New modes: vertical (PBS_VERTICAL) and smooth (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 Control | Ability to use timers via the ACS_TIMER style. |
| 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. |
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.
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.
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.
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).
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.
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.
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:
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:
|
|
|||||||||||||||||||||