Nancy Winnick Cluts and Michael Edwards
A Preview of Active Channel
and the Active Desktop for Internet Explorer 4.0
|Microsoft is merging two different information retrieval paradigmsthe desktop and the browserinto a new Web user interface. Active Desktop technology for Microsoft IE 4.0 weds the Internet to the Windows shell, creating a uniform experience for working with information.|
This article assumes you're familiar with HTML, ActiveX
Code for this article: ActiveDesktop.exe (4KB)
Nancy Winnick Cluts is a developer/writer for the Internet Web Publishing Team at Microsoft. She is the author of Programming
the Windows 95 User Interface (Microsoft Press).
Michael Edwards is a development engineer for Site Builder Network.|
Things move super fast these days. Before you can adjust to the last new way of doing something, you face yet another innovation. It wasn't so long ago that the Windows® 95 interface swept aside Microsoft® Windows 3.1. Even less time has passed since Microsoft released Microsoft Internet Explorer (IE) for locating Web-based information on an intranet or the Internet. So what is Microsoft up to now? Now they're merging these two different information retrieval paradigmsthe desktop and the browserinto a new Web user interface. Active Desktop technology for Microsoft IE 4.0 weds the Internet to the Windows shell, creating a uniform experience for working with information whether it resides locally on your computer, on your company's intranet, or on the Internet. In this article, adapted from one on the Site Builder Network (www.microsoft.com/sitebuilder/workshop/prog|
/ie4/actdeskie4-f.htm), we'll show you how the browser has been merged with the Windows shell.
Integration of Shell and Browser
The need to change the Windows 3.1 user interface was partly based on the realization that your computer's desktop is extremely valuable real estate. So Windows 95 introduced the Taskbar, shortcuts, shell programming, and a number of other user interface services that make it easier to organize information on the desktop.
Even before these evolutionary changes to the Windows desktop were released, people at Microsoft were hard at work on the first version of IE. The Internet was changing the whole PC computing game. Next, the Microsoft ActiveX vision for unified browsing advanced the idea that accessing information from the Internet should be no different from getting it off your local computer or network. At that time Microsoft was promoting two pretty different models for interacting with informationone based on the Windows 95 shell and the other on the browser.
The seeds for integrating the Windows shell and browser were planted with the release of IE 3.0, which componentized the Web browser as an ActiveX control so it could be embedded in a Visual Basic form or an HTML page. But to completely integrate the browser component with the container's frame, the browser piece had to be extended furtherit needed to become an Active Document server. (In the INet SDK documentation, click on Component Development/Active Documents for more information.) Active Documents make it possible to view non-HTML content without leaving the browser, while an Active Document server is just an OLE Document server with additional interfaces that enable embeddable in-place objects to take over the entire document window. Active Documents unify the browsing model for applications, documents, and objects.
But removing the barriers between HTML content and other forms of content only went part of the way to unified browsing. The brainstorm that drove the Active Desktop design was turning the Windows desktop into an ActiveX Document container. Of course, the Active Desktop doesn't bring all of the browser's user interface elements to the party, but, as you will see, you can do quite a bit with an HTML view of the world.
By the way, you can learn more about the WebBrowser control in the INet SDK docs by clicking on Internet Tools and Technologies/Web Browsing Objects. When you install the INet SDK for Preview 2, check out the samples list for a listing of all the Active Document samples that can help you use the WebBrowser in your custom Web applications (http://www.microsoft.com/msdn/sdk
The Layers of the Active Desktop
The Active Desktop is a whole new desktop-computing model in which HTML becomes the language for expressing the user interface. Additionally, by integrating the Windows desktop with the Web, the Active Desktop creates new ways for content providers to deliver information to their viewers. Better yet, you don't have to learn all new development technologies and tools; everything you already know is applicable to Active Desktop.
The Active Desktop is made up of two main layers: the icon layer and the HTML desktop background layer that sits underneath it. The icon layer supports the desktop paradigm you are familiar with for Windows 95 and is completely compatible with any shell integration stuff you may be supporting for Windows 95. That's rightthe icon handler you wrote for Windows 95 will still work on the Active Desktop. Within the HTML layer there is further z-ordering, but everything in the HTML background sits underneath the icon layer.
But what exactly is HTML on the desktop? To take a closer look at the Active Desktop, you'll have to install IE 4.0 with shell integration (http://www.microsoft.com/ie/ie40/). With the exception of those Windows 95-style icons on the left (remember, icons sit in a separate layer), the whole screen shown in Figure 1 is your desktop HTML layer. What does that tell you? The file-based HTML layer of your desktop, basically your wallpaper, consists of the web/wallpapr.htm file located in your Windows folder. If you look at the Background tab in your Display Properties (right-click on your desktop background and select Properties), you will see that, in addition to the picture files that can be used for Windows 95 wallpaper, IE 4.0 lets you use any local (to your intranet) HTML document as wallpaper. And of course, as wallpaper, it is the bottommost layer of the Active Desktop.
|Figure 1 The Active Desktop|
So what are the rest of the HTML layers of your Active Desktop? The HTML in Figure 1 includes:
That means the rest of the stuff you see on this desktop (besides the icons and taskbar) are Desktop items.
- The black background
- The fancy bar GIF repeated along the right edge of the screen
- The IE logo GIF in the center of the screen
- The Microsoft IE 4.0 marquee anchor, which slides in from the left and lands on the 50-point Active Desktop headline text
But what exactly is a Desktop item? A Desktop item is an ActiveX control, an image, or an HTML document. Because these are all things that you can put in an HTML document, they look no different from HTML wallpaper except that they live in a layer above it. You can see this by dragging a Desktop item around your Active Desktopit will always be drawn underneath the icons and on top of the wallpaper. If you didn't figure it out already, Desktop items are hosted in an instance of the WebBrowser control.
If you've already seen the Desktop Item Gallery, you probably recognize some of the items in Figure 1. A Desktop item can act as a super-fancy desktop shortcut. As you will see, when combined with site subscriptions, you can create a sort of "What's New" view of your site, or present other timely information that will make a reader want to keep your shortcut on his or her Active Desktop.
For example, as we write this we're missing the Mariners game, and they are currently losing to the Padres in the top of the seventh inning. The ESPN Sportszone item on the desktop gave us the bad news.
You could create a valuable Desktop item without a subscription (that is, without having to regularly download a new HTML document). For example, you could provide a more efficient way to get to some well-used feature of your site, such as the Microsoft Search Component. To learn more about authoring items for the Active Desktop, click Authoring for the Desktop and Web/Creating items for the AD in the INet SDK docs.
On closer inspection you'll notice that there is one item in the Active Desktop that's not the Desktop Item Gallery: that little doodad floating in the top right of the screen with all those company logos (see Figure 2). It is an ActiveX control called the Channel Bar, your channel-changing gateway (so to speak) to Active Channel contentbut hang on, we're getting to that.
What part of the Windows shell is keeping track of all these new objects (and how can you interact with it programatically)? Well, that would be the IActiveDesktop interface. This new interface for IE 4.0 lets you change the wallpaper and Desktop items. More information is available in the INet SDK docs by clicking on Internet Tools and Technologies/Active Desktop interface. All the persistent information about your installed Desktop items is in the registry entry HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Desktop.
The icon layer extends all the features of hyperlinks on a standard Web page, such as single-click navigation and hot-tracking, to your desktop icons. Plus, it integrates this Web-like appearance with the features you are familiar with in the Windows 95 shell, such as click-through transparency, drag-and-drop, file-type associations, double-clicking, and more.
Dynamic HTML is arguably the most distinguishing feature of IE 4.0, as well as a critical piece of the Active Desktop. It's so important that the topic warrants coverage beyond this feature. For the complete story, check out http://msdn.microsoft.com/workshop/ c-frame.htm?/workshop/author/default.asp.
Everybody on the World Wide Web asks for easier access to information. IE 4.0 enables users to take control of how information is found, delivered, and organized for viewing. Webcasting is an open, standards-based solution that lets authors make this happen. With various levels of involvement that can add value to the customer's experience, authors have lots of creative choices for what is appropriate for their content.
IE 4.0 allows a user to "subscribe" to any Web site without requiring that site to offer and administer a subscription service. In other words, the site doesn't have to do anything extra for users to take advantage of the IE 4.0 advanced Webcasting features.
When subscribing to a conventional Web site, users can choose from three subscription options:
Offline browsing can be useful while you are away from a net connection or simply want to avoid dealing with online bottlenecks and 28.8Kbps connection speeds.
- To schedule when their computer automatically checks for changes on the site
- To be notified visually or receive email notifications of content changes on the site
- To make the site (and its changes) available for offline browsing
Users have additional options for beginning the subscription process to a conventional Web site, including:
All three options start the Subscribe dialog for a one-step subscription process. The dialog is designed to be simple enough that most users can accept the default subscription properties, including the update notification method (email or icon change), the schedule of checking for updates, and whether changes are automatically downloaded. Clicking the Customize button in the Subscribe dialog launches the Web Site Subscription Wizard. You can tailor the subscription through a series of dialogs in the traditional wizard format. The wizard includes advanced options like tweaking the default update schedule and setting how many layers of links to download at update time.
- A new Subscription tab on the Internet Shortcut property sheet (displayed when right-clicking IE shortcuts)
- The context menu for a Web page (displayed when right-clicking the page's background)
- The Subscribe option on the IE Favorites menu
Figure 3 Subscribing
After subscribing, users can review, modify, and update their subscription properties in a shell window that navigates the Subscriptions folder (by choosing Manage Subscriptions from the Subscriptions option on the Favorites menu in IE 4.0 as shown in Figure 3).|
While IE 4.0 can subscribe to an entire Web site with no direct participation by the publisher, this brute-force approach offers no way for publishers (or users) to control what information is downloaded. This kind of subscription is essentially an automated way for users to cache the changing contents of a Web site locally. On the other hand, Active Channel contentWeb sites that host and are described by a Channel Definition Format (CDF) fileprovide publishers with a great deal of control over what is broadcast to the user. But before going into the gory details of how Active Channel subscriptions work, let's look at how Active Channel views are presented to the user.
The Channel Bar and Channel Pane
The default Active Desktop for IE 4.0 includes a special Desktop item called the Channel Bar. Initially, the Channel Bar presents the preinstalled set of channel categories and top-level channels as a vertically stacked array of logos (256-color, 80 X 32-pixel GIF images). Channel categories are groups of channels with common themes such as entertainment, sports, and so on, while top-level channels represent the main entry point to content on a given Web site. Aside from the obvious branding implications, the Channel Bar provides quick access to channel content (kind of like your remote control). It also includes the Channel Guide to help users learn about Active Channel content, which includes features like previewing a listing of available channels.
Clicking a channel category or top-level channel launches IE 4.0 in a special, full-screen viewing mode. In this full-screen mode the caption, menu bar, toolbars, and border elements are replaced by a single toolbar along the top of the screen that has icons to close the channel and restore the viewing mode. You can customize this toolbar (of course), and clicking the Restore icon returns the browser to its traditional mode as a window. If you like a full-screen mode view, you'll be pleased to know that you can manually choose it from the View menu.
In both full-screen and traditional modes the Channel Pane appears along the left edge of the screen or browser window. The user interface for the Channel Pane builds on the new Explorer Bar mode for searching and for showing Favorites and History. In this mode, the browser gets a split-pane view with a simplified tree view in the left pane (that is, in the Explorer Bar) and the original view in the right pane. Explorer Bar views make it easier to explore hierarchical content in much the same way that Windows Explorer uses a split-pane view for the shell's namespaceexcept the Explorer Bar uses indentation to represent the hierarchy instead of connecting + and - images.
In the case of the Channel Pane, the tree view hierarchy indicates the current collection of categories and channels installed on your computer. The hierarchy within a given channel is indicated by its CDF file, and the hierarchy within a channel category is stored in the registry. There are other ways to bring up the Channel Pane, including the Channels button on the IE toolbar, the Viewing Channels button in your Quick Launch toolbar (on your taskbar), or by selecting an Explorer Bar view from the View menu.
Channel Definition Format
The standard mechanism for describing and downloading subscribed information from a Web site is CDF, an open specification for describing a Web-site's content that Microsoft recently submitted to the World Wide Web Consortium (http://www.w3.org/TR/NOTE-CDFsubmit.html). CDF's HTML-like format is an application of Extensible Markup Language (XML), and XML itself is an application of a much more general markup language called Standard Generalized Markup Language (SGML). XML was invented to provide standard ways to describe different types of information on the Web, and promises to do for data on the Web what HTML has done for text. Thus, just as HTML tags are used to describe the formatting for different kinds of text in a Web document, XML elements can delineate the different types of its data. For more information about XML and Microsoft support for this new standard, check out our XML standards page (http://www.microsoft.com/standards/xml/xmldata-f.htm).
CDF permits publishers to specify how information on their Web server is updated and how it should be presented to the user. For example, without necessarily changing anything on the Web site itself (other than creating the CDF file), a publisher can:
These capabilities are described by specific tags in the CDF file that a publisher creates and locates on the Web site. For example, the CDF shown in Figure 4 describes a really simple channel for Microsoft Site Builder's Specs and Standards home page.
- Create a hierarchical structure for content that serves as the navigation model for the site's Active Channel
- Manage traffic on the server
- Provide a framework for sitewide user log on, verification, and tracking
- Create an Active Screen Saver entry point
- Create a Desktop item entry point
- Define extensions to meet specialized needs
In Figure 4, we define a single channel that reuses the home page for the top-level Active Channel view. Because channels are a new way of presenting information on your Web site, a custom view would usually be created. The rest of this code snippet describes where to find the images for Channel Pane and Channel Bar, and uses some of the content from the Site Builder Specs and Standards page as subchannel items. Of course, a real channel for the Site Builder Specs and Standards page would use more of the functionality available in CDF. You can use the code above along with the downloadable sample files to recreate this Active Channel view on your own.
The default user experience for subscribing to a site that has a channel representation (that is, it includes a .CDF file on its HTTP server) is very similar to subscribing to a conventional Web site. The difference lies in how detailed the default choices are for the Subscription dialog. If the user enters a subscription on a page that contains an <HREF> tag to a .CDF file, IE uses the information in the .CDF file to create a simple Channel Subscription summary dialog with intelligent defaults for the notification, download, and schedule parameters. And, as with conventional Web sites, the user can choose OK or Cancel for these options, or to customize the subscription by clicking a Customize button.
Internet content providers can also include an optional registration or preferences page for customizing their channel delivery options. And they can use the Profile Assistant (new support for prepopulating HTML form fields) to make gathering registration information a less painful experience for the user.
Creating Your Channel
Actually installing a channel for your Web page is pretty simple to dono harder than adding an anchor element with an <HREF> tag that points to the .CDF file. The hard part is still the creative endeavor of figuring out the best way to organize your site so people find it visually appealing and can also easily and conveniently find information. Fortunately, Active Channel content gives you multiple ways to do this.
If your Web site is like many, you already have a fairly hierarchical view in place. You might even be using a tree view-like control for site navigation, in which case you have already done much of the work of creating a channel view of your Web site. This doesn't mean a redesign is necessary if navigation on your site is essentially inseparable from content. But because the user can be notified of content changes through item icons in the Channel Pane's tree view of your site, you'll need to provide some sort of hierarchical structure for your channel if you want to make use of this feature for fine-tuning updates and downloads. At a minimum, you will need to establish a unique URL for each item you want to appear under your channel's view in the Channel Pane.
You may also want to provide a special version of your home page that's optimized for the Active Channel content to display when the user clicks your channel (that would be "changes to your channel" in TV parlance). Of course, you could just use your regular home page, but the Active Channel view is a great new opportunity to promote your site because the user doesn't need to navigate from it to find anything.
In addition to determining how your site will look and function best as an Active Channel, there are some other important CDF features you need to consider while making support decisions.
Determining Update Frequencies
The <SCHEDULE> tag in CDF enables you to establish a specific time interval at which CDF-capable browsers should automatically check for updated content on your server. This feature allows you to set a schedule for when items are updated on your channel, so IE 4.0 can randomize downloading the changes to subscribed clients within the indicated time interval. You can also flag which items to automatically download during this interval, or only indicate as changed (unless the viewer customizes the channel subscription to always download all updated content). And of course, you can tag individual items with their last-modified date so viewers can receive a visual indication of new or updated items.
These features allow you to reduce the load on your server by downloading only changed content. Of course, this also greatly pleases your more impatient viewers.
The <LOG> and <LOGTARGET> tags allow you to record online and offline user activity in an event log that you can upload to a specified URL during scheduled updates. The current CDF spec only logs whether specific channel items (and their subitems) have been viewed. The log information is anonymous and logging can be disabled by the user (on the Advanced tab of the Options dialog in the IE 4.0 View menu) or administrator (in the registry).
For sites that require a user name and password, the <LOGIN> element directs the Subscription wizard to prompt for this information. Several password-encoding schemes are currently specified.
Expanding on personalized Web sites, you can offer personalized channels as well. This is not a specific feature of CDF as much as it expands on a current Web feature. Instead of linking the channel subscription anchor to a static .CDF file, you can create an intermediate form to gather the appropriate profile information. HTTP cookies can be employed to store the preferences on the user's machine so you can always download a customized CDF for that user.
Screen Savers and Desktop Items
CDF endows the <USAGE> element (as a child of the <ITEM> element) with several attributes, including Channel, Email, DesktopComponent, and ScreenSaver (where Channel is the default value). These define four types of channels for users to peruse your Web content.
Creating a DesktopComponent channel is a simple way to install Desktop items. To use this installation route, you'll need to use a separate .CDF file that contains a single, top-level <CHANNEL> element for your component.
IE 4.0 also includes a new screen saver that cycles through a selection of standard HTML Web pages and can include all the things you'd expect in a cool Web page, such as Dynamic HTML, scripting, images, Java applets, and ActiveX controls. You can either include your screen saver in a separate .CDF file, or as an additional top-level
<CHANNEL> element with your top-level channel content. ScreenSaver channels are shown in the full-screen browser mode utilized for top-level channel content (but without the Channel Pane), and a few user-interface changes have been introduced for this type of screen saver. The main changes include the Close and Pause buttons in the floating toolbar over the top-right portion of the display. The Pause button temporarily stops cycling the screen saver channels. Also, Active Channel screen savers are not dismissed by moving the mouse or clicking objects on the page; the user must click on the HTML background or the Close button.
Finally, you can set up email updates on individual channel items through the <USAGE> element, possibly as part of a personalization feature. As in other areas, the user can customize the subscription to modify your default delivery designations.
Offline Caching Via CD-ROM
Offline caching via CD-ROM enables a new Web-publishing paradigm in which you can intermingle URLs to Internet sites with files on a CD, enabling a form of browsing far more powerful than the file:// protocol on a CD-ROM. For example, you can publish all your high-bandwidth or static information on the CD-ROM, increasing performance substantially while preserving the option to stay current with changing information such as inventory levels or other dynamic data. The technology opens other interesting possibilities such as automatic Web-site setup through autorun CD-ROMs, site archives, or simply stashing away more Web data than you care to carry on your hard disk.
You can enable this feature by including a .CDF file on the CD-ROM that contains <ITEM> tags to URLs that are local to the CD-ROM, or pointing to content on your intranet or the Internet. You can even reference the .CDF file in some HTML to install it as a channel. Or, to make things really simple, you can include an autorun file that launches a Web View of the CD-ROM with a hyperlink to the .CDF file. Appropriate text in the Web View can tell the user what to do to get things started.
Information Delivery API
The Information Delivery API is used to implement the Webcasting features available in IE 4.0. It includes features like the channel manager that handles the addition and deletion of channels and categories in the channel bar, the subscription manager that handles Web site subscriptions, and software agents such as the link crawling agent responsible for downloading Web content into the IE 4.0 cache.
The services provided by this API are supported for third-party developers who want to create custom software to expand on the Webcasting capabilities provided by IE 4.0. For example, if you need to receive notification when your subscribed pages are downloaded to the offline cache, then you would want to work with the notification manager.
While the Active Desktop for IE 4.0 is just part of the story, it is a critical component of Microsoft strategy for moving the Windows platform into the 21st century. If you read about the Microsoft acquisition of WebTV and the announcement about how the next version of Windows is scheduled to include broadcast TV capabilities, you know Microsoft is serious about figuring out how to merge the capabilities of computers and TVs, and how the Internet changes the way people are entertained and stay connected with the world.
Remember, this has been a preview ("beta" doesn't mean the same things it used to) of the IE 4.0 platform. Assume some things mentioned here will change before the final version ships. Also, keep in mind that the whole idea of a preview is to give developers a chance to play with the product so you can have a direct impact on the features that are tweaked, as well as helping find and fix bugs.
The documentation for the Internet Client SDK has been updated for Preview 2, and it is available now at http://www.microsoft.com/msdn/sdk/inetsdk/help/default.htm. The references to Internet Client SDK content in this article correspond to the updated docs (which have also been reorganized). The Internet Client SDK itself was released July 21, 1997. See http://www.microsoft.com/msdn/sdk/inetsdk/asetup/default.asp.