Contents Index Topic Contents | ||
Previous Topic: Other Considerations Next Topic: Standard Internet-Aware Objects |
Summary
Added Standard Properties, Methods, Events, and Interfaces
The following table summarizes the added standard dispIDs described in this document:
Control Property Value DISPID_READYSTATE (-525) Control Methods Value none Control Events Value DISPID_READYSTATECHANGE (-609) The following table summarizes the new interfaces and other GUID values described in this document, as well as those that are described here with the exception of category IDs described in a later section:
Symbol Value IID_IBindHost FC4801A1-2BA9-11CF-A229-00AA003D7352 IID_IServiceProvider 6D5140C1-7436-11CE-8034-00AA006009FA IID_IObjectWithSite FC4801A3-2BA9-11CF-A229-00AA003D7352 IID_IPersistMemory BD1AE5E0-A6AE-11CE-BD37-504200C10000 IID_IPersistPropertyBag 37D84F60-42CB-11CE-8135-00AA004BB851 IID_IPropertyBag 55272A00-42CB-11CE-8135-00AA004BB851 IID_IPersistPropertyBag2 22F55881-280B-11d0-A8A9-00A0C90C2004 IID_IPropertyBag2 22F55882-280B-11d0-A8A9-00A0C90C2004 IID_IErrorLog 3127CA40-446E-11CE-8135-00AA004BB851 GUID_PathProperty 0002DE80-0000-0000-C000-000000000046 GUID_HasPathProperties 0002DE81-0000-0000-C000-000000000046 SID_SBindHost FC4801A1-2BA9-11CF-A229-00AA003D7352 (same as IID_IBindHost) IPersistMoniker and its IID is documented in Asynchronous Monikers.
Requirements for Internet-Aware Controls and Objects
If a control does not use any data paths for BLOB data, working well within Internet-aware containers mostly means that a control supports as many IPersist* interfaces as is reasonable for it, giving the container and asynchronous monikers a great deal of flexibility in how they initialize the control in both persistent embedding and persistent linking cases.
Controls that only support one persistence interface must mark themselves as mandatory users of the appropriate category.
Controls with one or more data paths have these requirements:
- Must support either IOleObject or IObjectWithSite as a siting mechanism.
- Must mark data path properties in type information with the [bindable] attribute as well as the appropriate custom attribute using GUID_PathProperty.
- Must mark the coclass entry in the control's type information with the custom attribute using GUID_HasPathProperties.
- Must follow the rules of moniker creation and persistence, using the container's IBindHost as necessary and as IBindHost is available.
- Must understand how to bind with an asynchronous moniker using a container-provided bind context from IBindHost if available and how to receive data through IBindStatusCallback.
- Must prioritize initialization sequences and data retrieval to render and interact as soon as possible, returning E_PENDING from member functions as appropriate for the control's initialization state.
- Should supply a ReadyState property, if applicable, and fire OnReadyStateChange events as needed.
- Should support IPersistPropertyBag for supporting HTML PARAM attributes.
This document also recommends that controls be OLE Accessibility-aware for the benefit of users requiring accessibility services.
Requirements for Internet-Aware Containers/Clients/Controllers
Whereas much of a control's functionality is optional (with the exceptions of necessary support for data paths), a container, on the other hand, generally wants to support as many features as possible. As guidelines, a container that wishes to host Internet-aware controls at run time should meet these requirements:
- Must expect and handle E_PENDING, especially from IViewObject2::Draw.
- Must provide a site to a control through either IOleObject or IObjectWithSite mechanisms.
- Must supply initialized bind contexts and name parsing through IBindHost.
- Must support at least IPersistStreamInit as a control persistence mechanism.
- Must support the HTML Extensions for COM Objects if the client is HTML-oriented.
- Should manage relative creation/initialization priorities for each control in the document.
- Should supply browsers for common data types required by data paths (authoring tools).
- Should support as many IPersist* interfaces as possible to allow maximum control flexibility.
This document also recommends that controls be OLE Accessibility-aware for the benefit of users requiring accessibility services.
Top of Page
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.