The Internet Client SDK contains samples which demonstrate the various technologies documented in the SDK. The following is a comprehensive list of these samples.

While the Dynamic HTML (DHTML) samples in the Web Authoring section below can be loaded directly from the Web Site, the other samples must be downloaded, compiled, and linked before they can be run. To view the DHTML samples, simply click on the links provided below. To run the other samples and to analyze the code, install them from the Active Setup page on this site.

You must be running Internet Explorer 4.0 to view these samples.


Web Authoring Samples
Sample Files Description

DHTML
Asteroids Demonstrates a fully-functional DHTML version of Asteroids.
Clock Demonstrates an example of Dynamic Content.
Styles Demonstrates a sample of using Dynamic styles.
Path Demonstrates a scripting version of the path control.
Popup-Menu Creating a popup-menu through the use of DHTML.
Filter Wizard HTML-based wizard that generates working filters code.
Wave Wizard HTML-based wizard that generates working wave filter code.
Light Wizard HTML-based wizard that generates working light filter code.
Centering Demonstrates centering an object within a division on the page.
Image Demonstrates image switching between gif files.
Position Demonstrates 2D layer of moving images with a mouse.
Resize Various samples demonstrating resizing capabilities.
Domain Illustrates accessing a second-tier domain in an IFRAME.
MMAudio Illustrates mixing several .WAV files.
MMSGX Demonstrates how to use a structured graphic control.
Surface Shows how the DirectAnimation DrawingSurface API is used to create a single vector shape with independent internal and external rotations.
Graphics HTML based wizard that generates working code (for the Structured Graphics and Sequencer controls) that produces a rotating text logo, based on the parameters entered by the user.
Agent Uses Microsoft Agent to demonstrate the use of Dynamic HTML.
Path Wizard HTML-based wizard that generates working path control code, based on the parameters entered by the user.
Poly Wizard HTML-based wizard that generates a polygon-shaped path, based on the parameters entered by the user.
Tricycle Shows a sprite control on a path, and allows you to control its behavior.
Sprite Demonstrates the ability to add still and animate images on your web page, with control over frames per second, forward or reverse playback, or dynamic reading of source files.
Banner Demonstrates the ability to use the sprite control as a clickless control for a Banner-type advertisement.
Concentrate Demonstrates the ability to use the sprite control to contain images for this match game.
Swapgame Demonstrates the ability to use the sprite control to contain images for puzzle-type game.
Sequencer-JScript JScript sequencer sample.
Sequencer-VBScript VBScript sequencer sample.

DataBind A suite of samples demonstrating the use of Data Binding in Internet Explorer 4.0. Samples are accessible from the Show Me buttons in the Databinding overview.
Channel Demonstrates subscribing to a channel.

MultiMedia
Rectangle Demonstrates rectangles with time-varying colors that chase each other along a path.
Text Animation Demonstrates basic text animation as a windowless control.
Crop Demonstrates a cropped animated image that overlays a variation of itself.
Buttons Demonstrates using Visual Basic buttons to color an animation.

Software Developer Samples
Sample Files Description

ChatOCX
Chat2000 Demonstrates how to use the Chat OCX inside an MDI MFC application.
ChatAd A simple Visual Basic Application which provides monitoring capability for chat administrators.
Checkrs A Visual Basic Application that enables you to play a Checkers game with the people you are chatting with.
ExecChat Contains a Visual Basic application for hosting Executive Chat Sessions.
Trnscrpt A Visual Basic application which provides a transcript of the chat session.
Webdemo Contains four web pages that demonstrate the usage of the chat control with Visual Basic scripting.
Chappy Chat Protocol 2.0 - MFC Sample
Procx Chat Protocol 2.0 - HTML Sample
Nmstart Chat Protocol 2.0 HTML sample where user can select a chat user and startup a NetMeeting conversation.
Checkers Demonstrates how to use the Chat Protocol control to transfer data between two checkers players in a chat room.

ColBtn Demonstrates a control that accesses and changes the HTML document in which it is contained.

CommCtrl
Rebar Demonstrates implementation and usage of the rebar control.
VListVw Demonstrates implementation and usage of a "virtual" listview control.

Shell
BandObjs Demonstrates implementation of three types of band objects, Desk Bands, Explorer Bars and Communication Bands.
RegView Demonstrates implementation of a multi-level shell namespace extension.

DXM Various samples demonstrating the use of DirectAnimation for implementation of multimedia in a web page.
DOServer Demonstrates implementation of an ActiveX Document server.

Driller
Driller Demonstrates implementation of an ActiveX control container using MFC.
DrillVB Demonstrates implementation of an ActiveX control container using Visual Basic.

HTML Dlg Demonstrates how to use the ShowHTMLDialog function.
Percy ATL2.0 control that demonstrates the use of IPersistHistory so that state can be retained if the page containing the control is returned to using the back button.
Framer Demonstrates in-place activation of an ActiveX Document.
Glass Demonstrates some of the new multi-media infrustructure enhancements made to the Internet Explorer that Active X control creators can use.
Ielnk An ATL-based control which demonstrates the usage of the Simple Hyperlink Navigation APIs.
IISLog Demonstrates how to receive and parse the IE4 user logging profile from the server side.
IEMime Demonstrates MIME type registration and MIME type recognition of downloads with an asynchronous URL moniker.
ObjVw Illustrates using IE's Automation model and scripting model from within a contained ATL control.
ProfAsst Illustrates how the IE4 Profile Assistant is used to share information.
Progress Demonstrates the use of the URL Moniker to download data across the network.
Spruuids Demonstrates implementation of an ActiceX Scripting host.
Task Demonstrates the new Task Scheduler objects and API provided with installation of the Task Scheduler package
TDC Implements an ActiveX control that displays interactive tabular data in an HTML page.
UrlPad Enhances SUPERPAD that demonstrates getting an URL using urlostream API(from urlhlink.lib) and posting it back to the server using WebPost API(sample below).
VBScript Sample VBScript pages.
VBIEFrm Illustrates hosting the Web Browser control in a Visual Basic Application.
WalkAll Demonstrates using the MSHTML.DLL as an HTML parser.
Microsoft Agent Microsoft Agent samples in C, HTML, Java, and VB.
WabTool Demonstrates how to program the Internet Explorer Address Book (also known as the Windows Address Book).

WebPost
StubWpp Demonstrates authoring a Web Publishing Service Provider.
WBPost Demonstrates the usage of WebPost APIs.

WinINet
FTPJr Demonstrates the FTP WinInet APIs.
HTTPAuth Demonstrates use of WinInet for HTTP authentication.
HTTPDump Demonstrates how to create and submit an HTTP request.
InetAll Demonstrates downloading files using FTP URL, HTTP URL or FILE URL.


Instructions

BUILDING FROM COMMAND LINE: To build samples from the command line, please run SetEnv.Bat to set up your environment variables. This SDK requires the most recent Win32 development files (you can get these from the Microsoft Platform SDK on the MSDN site; or you can get the require subset of these files from the Internet Client SDK download site) and a recent compiler (all testing was done with VC++ 5.0). The INCLUDE, LIB and PATH environment variables should first look in \INetSDK\include, \INetSDK\lib, and \INetSDK\bin respectively (from this SDK), then to the recent Win32 development files. Then your VC++ 5.0 files (i.e. \ProgramFiles\DevStudio\VC).

BUILDING FROM VC5 IDE: To build samples from within the Visual C++ 5.0 IDE, the equivalent to the above must be done within the IDE. Select "Options" from the "Tools" menu. Choose the "Directories" tab. The full path to your INetSDK\Include directory (for example, "C:\InetSDK\Include") should be the top-most entry in the list for "Include files" directories. Likewise, the full path to your INetSDK\Lib directory should be the top-most entry in the list for "Library files" directories.

WIN32 HEADERS: If you experience build errors due to missing Win32 header files or incorrect definitions in Win32 header files, your Visual C++ 5.0 headers may not be up to date with the most recent Win32 headers. To resolve, use the Win32 headers and libs installed with this SDK by adding the InetSdk\win32inc to the list of "Include files" directories and InetSDk\win32lib to the list of "Library files" as directed above. These entries should be listed immediately under the InetSDK\* entries in each list.

ATL SAMPLES: For samples that use ATL, all build configurations except "MinDependency" builds require that ATL.DLL exists and is registered on the build computer. This file is normally installed with typical Visual C++ 5.0 installations. However, in some cases this DLL will be absent from the system or not registered properly. To build these samples, please obtain a current copy of the ATL.DLL from your Visual C++ 5.0 CD (\devstudio\vc\redist\atl.dll), from a recent Visual C++ 5.0 Service Pack, or otherwise insure that ATL.DLL exists in the Windows system directory. You will then need to run "regsvr32 atl.dll" to register this DLL as appropriate. Along the same lines, some ATL samples are also dependent on MSVCRTx.DLL and MSSTKPRP.DLL.

Current SDK samples that use ATL are COLBTN, GLASS, IELNK, IEMIME, OBJVW, PERCY, and TDC.

Please refer to the Redistrb.wri file on your Visual C++ CD (\devstudio\vc\redist) for more information on redistribution of ATL.DLL or any Visual C++ DLLs.


Creating Microsoft Visual C++ Project Files.

To build the samples from within the Microsoft Visual C++ 5.0 Developer Studio environment for samples that do not come with VC++ makefiles (.mak, .dsp files), you must add appropriate paths to the Developer Studio's include and library paths, and create a Visual C++ project file. The general steps to follow are outlined below, although the exact steps vary from sample to sample.

  1. Click "Options..." on the "Tools" menu, and on the "Directories" tab add the full path to your installed INetSDK\Include directory to the includes directories, the full path to INetSDK\Lib to the library directories, and the full path to the INetSDK\Bin directory to the executable files directories. These entries should be moved to the top of the search list. Some samples may require the most recent Win32 development files. The corresponding include, lib, and bin directories should also be added and moved up just below the INetSDK entries.
  2. Create project and make files as follows:
    1. Close any open workspace from the File menu.
    2. Click "New" on the "File" menu and choose the "Projects" tab on the dialog box.
    3. In the "New Projects" tab dialog box type the root name for the output file into the "Project Name:" edit control (for example, type "Framer" for the Framer sample).
    4. Choose "Win32 Application" in the "Projects Listbox:" if you are building an application, "Win32 Dynamic-Link Library" for an ActiveX(tm) Control, or "Win32 Static Library" for a library.
    5. "Browse..." to the INetSDK\Samples directory on your system. From there move to the directory holding the sample's sources and click "OK" to close the "Choose Directory" dialog. Make sure the "Location:" edit control reflects the directory holding the sample's sources and not a new subdirectory under this root.
    6. Click "Create".
    7. Click "Add into Project...Files" on the "Project" menu.
    8. Select all of the *.Cpp, *.c, *.def, and *.Rc and click "OK". If the project contains an .Odl file add this to the project also.
    9. Click "Settings..." on the "Project" menu and select the "Link" tab. Add any appropriate libraries from the INetSDK or Win32 development files to the list of Object/library modules for both debug and release. You can search the SDK makefile in the source's directory for ".lib" to find out which additional libraries are needed by a particular sample (such as urlmon.lib, etc.). Note that some samples need to link to separate debug or release libraries.
    10. If the sample you are building uses MFC, choose which type of library to use in the "Microsoft Foundation Classes:" list box on the "General" tab of the "Project Settings" dialog.
  3. Build the project from within the IDE. Note that some samples are dependent on libraries built by other samples. These dependencies are noted in the ReadMe.Txt files.
  4. If necessary, copy and/or rename the output file appropriately, using the provided makefile as a guide.
  5. If the output is an ActiveX(tm) Control, run RegSvr32 from the command line to register the .ocx on your system. You can probably finesse the "Register Control" option on the "Tools" menu to do this without dropping to the command line, but it is set up to work with projects created using the OLE ControlWizard.

© 1997 Microsoft Corporation. All rights reserved. Terms of Use.