ActiveX

From Wikipedia, the free encyclopedia

ActiveX is a component object model (COM) developed by Microsoft for Windows platforms. By using the COM runtime, developers can create software components that perform a particular function or a set of functions. A software can then compose one or more components in order to provide the functionality it intends to.[1] Many Microsoft Windows applications - including many of those from Microsoft such as Internet Explorer, Microsoft Office, Microsoft Visual Studio, Windows Media Player etc - use ActiveX controls to build their feature set as well as encapsulate their functionality as ActiveX controls so that the functionality can be embedded in other applications. Internet Explorer also allows the ActiveX controls to be embedded inside web pages.

Contents

[edit] Summary

Prior to ActiveX technology, two standards were becoming prevalent in Microsoft Windows. One was OLE (Object Linking and Embedding), and the other was COM (Component Object Model). Both schemes were designed for software interoperability, the former focusing on communicating and the latter focusing on implementation. In 1996, Microsoft combined the technologies and refitted them into ActiveX.

In order to be an ActiveX component, an object must implement the IDispatch interface.[1] This allows any object to be queried for a list of pointers to other interfaces the object may support. The developer can iterate through this list and make references to the interfaces, essentially gaining control of entire software packages (if they are designed to allow it).[2]

The Microsoft Office suite is an example of ActiveX-compliant software. Using certain programming languages, a developer can manipulate documents and spreadsheets from code as if they were using the applications directly.

[edit] ActiveX controls

An ActiveX control being created in Visual Basic 6
An ActiveX control being created in Visual Basic 6

An ActiveX control is a reusable component which implements the IDispatch interface. Such components do not amount to an entire application, rather they provide a small building-block that can be shared by different software. The fact that command buttons look the same in almost any program on a platform is an example of component reusability that is not just limited to ActiveX controls.

ActiveX controls can be compared in some sense to a Java applet, since both technologies strive to act as an abstraction layer between the developer and the operating system. From there, obvious differences surface. For instance, Java applets can run on nearly any platform, while ActiveX components are only compatible with Microsoft's Internet Explorer web browser and the Microsoft Windows operating system. ActiveX controls are also granted a much higher level of control over Windows than Java applets, making them both more powerful and dangerous. Malware, such as computer viruses and spyware, is often distributed as ActiveX applets in webpages.

ActiveX controls can be written in MFC, ATL, C++, Borland Delphi and Visual Basic. Common examples of ActiveX controls are the command button, list box, dialog boxes, and even the Internet Explorer browser.

[edit] Other ActiveX technologies

Microsoft has developed a large number of products and software platforms using ActiveX objects, and many are still in use today.

[edit] See also

In the late 1990s Microsoft began to reuse the term "Active" in a large number of their technologies. The following technologies are unrelated to ActiveX itself, but have similar naming:

[edit] External links

[edit] Notes

  1. ^ a b Introduction to ActiveX Controls at microsoft.com, accessed 18-Jan-2008
  2. ^ IUnknown (COM at microsoft.com; accessed 18-Jan-2008