Internet Development Technologies

Microsoft ActiveX Software Development Kit

Last Updated July 8, 1996

This document describes the Microsoft® ActiveX™ Software Development Kit (SDK), available support for the SDK, and the ActiveX Control Pad (a new utility). It also outlines the steps required to enable your ActiveX controls for the Internet.

The ActiveX SDK includes a variety of technologies that Microsoft is introducing to facilitate development of Internet applications and content. By nature the ActiveX SDK will remain small and dynamic. You will see technologies come and go through this SDK; as they become more mature and mainstream, they will be transferred to other SDKs, such as the Win32® SDK, or you may find them as separate downloads at Microsoft's Web sites. This allows the ActiveX SDK to be kept small enough that it can continue to be downloaded from the Internet, but still be on the cutting edge for independent software vendors (ISVs) who need to stay focused on the most recent changes. The public Microsoft Web site (http://www.microsoft.com/intdev/default.htm) contains all of the publicly released versions of technology and specifications. Please visit this site to find more about providing feedback and receiving support for the Microsoft ActiveX Software Development Kit.

This release of the ActiveX SDK is synchronized with the recent Internet Explorer 3.0 Beta II (IE 3.0). Over the next few months you will see frequent releases of the ActiveX SDK, which will continue to transition to meet the needs of Internet Explorer and Nashville beta releases. To keep the download small, IE 3.0 is not a part of this release; it is a separate download. You will also need the latest beta release (May 1996) of the Win32 SDK installed on your system (this is available through the MSDN Level II subscription). To build samples, it is important that you visit the Readme.txt file, which will be in the root of your ActiveX SDK installation. Due to requests from ISVs, the ActiveX.mvb file is again included in this ActiveX SDK download rather than as a separate download.

Providing documentation for a development kit as dynamic as the ActiveX SDK is a difficult process, because the information associated with developing technology is often subject to change at any time. Therefore, two sets of documentation are provided for you. The first set consists of the files in the \inetsdk\help directory of the SDK, which you can access through \inetsdk\help\default.htm. This directory typically reflects documentation that has been kept fairly well updated. The other set of documentation is in \inetsdk\specs. This documentation is easily accessible later in this document. It is typically older documentation, which may be somewhat out of date and in the process of being renewed, but it is still helpful. As always, view the readme.txt file for the newest information; and consider the header files the last word in documentation.

The Microsoft ActiveX Control Pad

The new ActiveX Control Pad lets you build ActiveX Web pages with ease. The ActiveX Control Pad is a utility that lets you add ActiveX controls and ActiveX scripting (Visual Basic® Scripting Edition [VBScript] or JavaScript™) to your HTML pages with an easy point-and-click interface. It is a great way to create and edit pages that use the components built with the ActiveX SDK.

For more information, follow this link to the Microsoft ActiveX Control Pad located on www.microsoft.com.

The Licensing Package Authoring Tool

Another tool new to the ActiveX SDK is the Licensing Package Authoring Tool (LPK_Tool), which allows you to author an LPK file. An LPK file is a licensing package that stores the run-time licenses for all of the controls used on a given page. For more details, look in you ActiveX SDK installation for LPK_Tool.exe, LPK_Tool.hlp, and LPK_Tool.txt in the \inetsdk\bin directory.

Paid Support for the ActiveX SDK

The ActiveX SDK is supported by Microsoft's AnswerPoint group (Product Support Services). You can ask questions through your Premier Level support contract. You can also ask questions through your Priority Level contract or purchase individual Priority Support incidents (essentially a one-time fee for one question). If you would like to understand more about Microsoft's paid support options, you can call Microsoft Support Sales at (800) 936-3500 from 6:00 a.m. to 6:00 p.m. Pacific time, Monday through Friday, excluding holidays. Please note that technical support is not available through this number. AnswerPoint Information is also available on the World Wide Web at http://www.microsoft.com/support/.

Free Support for the ActiveX SDK

Newsgroups are a great place for free peer support. As time and resources allow, Microsoft developers, program managers, support engineers, and test engineers visit the site to collect feedback and answer questions or correct misperceptions. They will lurk there often to read feedback, but they will not become actively involved unless a specific question is asked or a misperception is observed. This largely depends on bandwidth and time, which is greatly affected by shipping schedules. Some more interesting news groups for Internet Explorer are on microsoft.public.internetexplorer

To access newsgroups, use your preferred newsgroup reader and enter the news server address as news://msnews.microsoft.com. You can use the following URL to access the newsgroups directly from a Web browser: news:microsoft.public.newsgroup-name. The newsreader included with Internet Explorer version 3.0 supports multiple news servers; you can download the newsreader from http://www.microsoft.com/ie/imn/default.htm

Mailing lists are another good form of free peer support. An advantage to being on mailing list is that this is where Microsoft will make early announcements of information on a given topic. Again, it is peer support, and Microsoft staff will often lurk there but not send mail unless a specific question is asked. To learn more about mailing lists, please review http://www.microsoft.com/intdev/resource/mail.htm


Note: Many of these documents are still preliminary specifications that are subject to further change as more feedback from developers and partners is received.

Contents:

  1. The Steps to Enabling OLE Controls for the Internet--read this section to learn about the steps to enabling existing OLE controls for the Internet.
  2. ActiveX Controls--read this section to learn about ActiveX Controls, Microsoft's extensible solution for creating objects that can be inserted universally in Web pages, Microsoft Visual Basic® applications, and other OLE-enabled documents and applications.
  3. Active Documents--read this section to understand how to create new document viewers that can be hosted from various OLE Document Object containers such as Microsoft Internet Explorer.
  4. Scripting Services--read this section for a description of how to use Microsoft Visual Basic Scripting Edition or other scripting languages to add interactive action to Web pages through OLE Automation. This section also describes how a script vendor can write a script engine that plugs into the Microsoft Internet Explorer and other OLE Scripting-enabled applications.
  5. Authenticode-- read this section for specifications of new system services for automatic download, trust verification, and installation of code from the Internet.
  6. Internet Data Download Services--read this section to learn about Microsoft system services for downloading data from the Internet.
  7. Security Services--read this section for information about the Private Communication Technology (PCT) protocol.
  8. Additional Support Information--read this section for additional information about support issues.

The Steps to Enabling OLE Controls for the Internet

1. Make sure your control can download data from HTTP or FTP locations.

If your control needs to load data, pick one of three alternatives for loading this data from Internet locations. For full detail, see the COM Objects on the Internet specification.

  1. Support the IPersistStream interface. When your control is inserted using the syntax <OBJECT DATA="foo.ods">, the Internet Explorer will download this data and pass it to your control's IPersistStream interface.
  2. Support the IPersistPropertyBag interface. One or more of the parameters in this property bag will be the URL for data that you will have to load. Be sure to use the IBindHost interface when loading this data. Use IBindHost::CreateMoniker to create a URL moniker from the URL, and use IBindHost::MonikerBindToStorage to download from this moniker. This will ensure that your download status is displayed in the progress bar (although this is not implemented by IE3.0). Note: As an easy alternative, you can use the URLOpenStream APIs, which will automatically hook you into the IBindHost architecture correctly.
  3. Use a framework for building your control. One such framework can be found in the ActiveX SDK under samples\basectl. Microsoft Foundation Class Library (MFC) 4.2 will also support Internet download for controls.

2. Mark it as safe for scripting or for persistence, if appropriate.

Look at the specification on Scripting Security Hazards to see how to decide if an object is safe for scripting and safe for persisting, and if so how to mark is as a safe object. If you do not do this, you will get warning messages every time your control is used on an HTML page.

3. Sign the code.

Be sure your final code is signed so that when your control is automatically code-downloaded, no trust warning messages are displayed. Note: If you are using a .cab file for component download, it is faster to sign the entire .cab file than each individual component. For details on how to sign code, check the Code Signing Toolkit in the ActiveX SDK. For more information on the Microsoft code-signing initiative, you can check http://www.microsoft.com/intdev/signcode.

4. Package your control for code download.

See the Internet Component Download specification. You can find simple examples in the Microsoft ActiveX Gallery. More samples will be added to the ActiveX SDK in the future.

Back to table of contents


ActiveX Controls

Back to table of contents


Active Documents

Back to table of contents


Scripting Services

Microsoft Internet Explorer will support scripting and automation of its various components using "pluggable" scripting engines.

Back to table of contents


Authenticode

Identification and authenticity of code is an important issue on the Internet. This section describes Authenticode technology, which provides a trust verification infrastructure and new system services to help address the code security problem. These new services allow developers to digitally sign their code so that users may verify whether code downloaded from the Internet has originated from a trusted source.

Back to table of contents


Internet Data Download Services

The Microsoft ActiveX architecture provides both high-level and low-level interfaces for downloading data from the Internet.

Back to table of contents

Security Services

Back to table of contents


Additional Support Information

Back to table of contents