INFO: Difference Between OLE Controls and ActiveX Controls (159621)
The information in this article applies to:
- Microsoft Internet Explorer (Programming) 3.0
- Microsoft Internet Explorer (Programming) 4.0
- Microsoft Internet Explorer (Programming) 4.01
- Microsoft Internet Explorer (Programming) 5
- Microsoft Internet Explorer (Programming) 5.01
- Microsoft Internet Explorer (Programming) 5.5
- Microsoft Visual Basic Enterprise Edition, 16-bit, for Windows 4.0
- Microsoft Visual Basic Enterprise Edition, 32-bit, for Windows 4.0
- Microsoft Visual FoxPro for Windows 3.0
- Microsoft Visual FoxPro for Windows 3.0b
- Microsoft Visual FoxPro for Windows 5.0
- Microsoft Visual C++ 2.0
- Microsoft Visual C++ 2.1
- Microsoft Visual C++ 2.2
- Microsoft Visual C++ 4.0
- Microsoft Visual C++ 4.1
- Microsoft Visual C++, 32-bit Enterprise Edition 4.2
- Microsoft Visual C++, 32-bit Enterprise Edition 6.0
- Microsoft Visual C++, 32-bit Professional Edition 4.2
- Microsoft Visual C++, 32-bit Professional Edition 6.0
This article was previously published under Q159621 SUMMARY
The specification for ActiveX controls has been relaxed to give developers
the ability to create smaller, faster controls that are more suitable for
the Internet. In the new object linking and embedding (OLE) control specification, we make use of component categories, which relax previous rules that identify interfaces as being mandatory and allow greater flexibility to efficiently target certain areas of functionality without having to provide superfluous support to qualify as a control. The OLE control specification also adds some new features such as windowless objects, URL monikers, asynchronous monikers, progressive downloading, and OLE Hyperlinks. Perhaps most importantly, you can mark controls as safe for data download and safe for scripting.
Keep in mind that an ActiveX control is just another term for an "OLE
Object" or "Component Object Model (COM) Object." A "COM Object" must support the IUnknown interface. In addition, all ActiveX controls must be self-registering; as a result, an in-process control must implement and export DllRegisterServer and DllUnregisterServer. With NT 4.0 built-in marshaling support for the connection point interfaces, a control can now be a local server. This means that the control creates and registers its class factory objects with the system when it is first run. Because IUnknown does not allow you to do much, you want to implement at least one additional interface. However, these minimal requirements allow controls to be as lightweight as possible.
Mike McKeown addresses this very confusing issue of OLE controls versus
ActiveX controls in the October 1996 issue of the MIND (Microsoft
Internet Developer) magazine.
For more information on enabling controls for the Internet, as well as which interfaces and functions an ActiveX control supports, see the "ActiveX Controls" section of the ActiveX SDK online documentation.
REFERENCES
If you want to know more about ActiveX controls, particularly on developing
Web pages, see another FAQ available on the Internet Client SDK Web
page. For additional information on the ActiveX technologies, click the article number below
to view the article in the Microsoft Knowledge Base:
154544 Description of ActiveX Technologies
For additional information on the ActiveX controls that are removed in Internet Explorer 5 and 5.5, click the article number below
to view the article in the Microsoft Knowledge Base:
190045 INFO: ActiveX Controls That Are Removed from Internet Explorer 5
For additional information on how to troubleshoot problems with ActiveX scripts and ActiveX controls in Internet Explorer, click the article number below
to view the article in the Microsoft Knowledge Base:
154036 How to Disable Active Content in Internet Explorer
For more information about developing Web-based solutions for Microsoft Internet Explorer, visit the following Microsoft Web sites:
Modification Type: | Major | Last Reviewed: | 5/11/2006 |
---|
Keywords: | kbFAQ kbinfo kbusage KB159621 |
---|
|