ActiveX

Revision as of 20:48, 25 March 2025 by imported>Robby (link to Commons is now defined on Wikidata)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description Template:Use dmy dates {{#invoke:Infobox|infobox}}Template:Template other{{#invoke:Check for unknown parameters | check | showblankpositional=1 | unknown = Template:Main other | preview = Page using Template:Infobox software with unknown parameter "_VALUE_"|ignoreblank=y | AsOf | author | background | bodystyle | caption | collapsetext | collapsible | developer | discontinued | engine | engines | genre | included with | language | language count | language footnote | latest preview date | latest preview version | latest release date | latest release version | latest_preview_date | latest_preview_version | latest_release_date | latest_release_version | licence | license | logo | logo alt | logo caption | logo upright | logo size | logo title | logo_alt | logo_caption | logo_upright | logo_size | logo_title | middleware | module | name | operating system | operating_system | other_names | platform | programming language | programming_language | released | replaced_by | replaces | repo | screenshot | screenshot alt | screenshot upright | screenshot size | screenshot title | screenshot_alt | screenshot_upright | screenshot_size | screenshot_title | service_name | size | standard | title | ver layout | website | qid }}Template:Main other

ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide Web.<ref name="msdn1">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Microsoft introduced ActiveX in 1996. In principle, ActiveX is not dependent on Microsoft Windows operating systems, but in practice, most ActiveX controls only run on Windows. Most also require the client to be running on an x86-based computer because ActiveX controls contain compiled code.<ref>Template:Cite book</ref>

ActiveX is still supported in the "Internet Explorer mode" of Microsoft Edge (which has a different, incompatible extension system, as it is based on Google's Chromium project).<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

ActiveX controlsEdit

ActiveX was one of the major technologies used in component-based software engineering.<ref>Cai, Xia, et al. "Component-based software engineering: technologies, development frameworks, and quality assurance schemes." Software Engineering Conference, 2000. APSEC 2000. Proceedings. Seventh Asia-Pacific. IEEE, 2000.</ref> Compared with JavaBeans, ActiveX supports more programming languages, but JavaBeans supports more platforms.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> ActiveX is supported in many rapid application development technologies, such as Active Template Library, Delphi, JavaBeans, Microsoft Foundation Class Library, Qt, Visual Basic, Windows Forms and wxWidgets, to enable application developers to embed ActiveX controls into their products.

Many Microsoft Windows applications—including many of those from Microsoft itself, such as Internet Explorer, Microsoft Office, Microsoft Visual Studio, and Windows Media Player—use ActiveX controls to build their feature-set and also encapsulate their own functionality as ActiveX controls which can then be embedded into other applications. Internet Explorer also allows the embedding of ActiveX controls in web pages.

HistoryEdit

Faced with the complexity of OLE 2.0 and with poor support for COM in MFC, Microsoft simplified the specification and rebranded the technology as ActiveX in 1996.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Even after simplification, users still required controls to implement about six core interfaces. In response to this complexity, Microsoft produced wizards, ATL base classes, macros and C++ language extensions to make it simpler to write controls.

Starting with Internet Explorer 3.0 (1996), Microsoft added support to host ActiveX controls within HTML content. If the browser encountered a page specifying an ActiveX control via an OBJECT tag (the OBJECT tag was added to the HTML 3.2 specification by Charlie Kindel, the Microsoft representative to the W3C at the time<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>) it would automatically download and install the control with little or no user intervention. This made the web "richer" but provoked objections (since such controls, in practice, ran only on Windows, and separate controls were required for each supported platform: one for Windows 3.1/Windows NT 3.51, one for Windows NT/95, and one for Macintosh M68K/PowerPC.) and security risks (especially given the lack of user intervention). Microsoft subsequently introduced security measures to make browsing including ActiveX safer.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

For example:

  • digital signing of installation packages (Cabinet files and executables)
  • controls must explicitly declare themselves safe for scripting
  • increasingly stringent default security settings
  • Internet Explorer maintains a blacklist of bad controls

ActiveX was controversial from the start; while Microsoft claimed programming ease and good performance compared to Java applets in its marketing materials, critics of ActiveX were quick to point out security issues and lack of portability, making it impractical for use outside protected intranets.<ref>Template:Cite news</ref> The ActiveX security model relied almost entirely on identifying trusted component developers using a code signing technology called Authenticode. Developers had to register with Verisign (US$20 per year for individuals, $400 for corporations) and sign a contract, promising not to develop malware. Identified code would then run inside the web browser with full permissions, meaning that any bug in the code was a potential security issue; this contrasts with the sandboxing already used in Java at the time.<ref>Template:Cite news</ref>

Platform supportEdit

In October 1996, Microsoft released a beta version of the ActiveX Software Development Kit (SDK) for the Macintosh, including a plug-in for Netscape Navigator on the Mac, and announced its plan to support ActiveX on Solaris later that year.<ref>Template:Cite news</ref> Six months and two more beta releases later, there had yet to be any commercially available Macintosh ActiveX plugins.<ref>Template:Cite magazine</ref>

In 1997, NCompass Labs in cooperation with Microsoft released a plug-in for Netscape Navigator to support ActiveX.<ref name=":0">Template:Cite book</ref>

Documentation for ActiveX core technology resides at The Open Group and may be read for free.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Despite Microsoft's previous efforts to make ActiveX cross-platform, most ActiveX controls would not and will not work on all platforms, so using ActiveX controls to implement essential functionality of a web page restricts its usefulness. The government of South Korea, in a software-agnostic gravitating move, started in circa 2015 to remove the technology from their public websites in order to make their website accessible to more platforms.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

While Microsoft made significant efforts to push the cross-platform aspect of ActiveX by way of publishing the API, ultimately the cross-platform effort failed due to the ActiveX controls being written in C or C++ and being compiled in Intel x86 Assembly language, making them executable only on Windows machines where they can call the standard Win32 APIs.<ref>Template:Cite magazine</ref>

Microsoft dropped ActiveX support from the Windows Store edition of Internet Explorer 10 in Windows 8. In 2015, Microsoft released Microsoft Edge [Legacy], the replacement for Internet Explorer, with no support for ActiveX; this event marked the end of ActiveX technology in Microsoft's web browser development.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Microsoft [New] Edge, however, includes an "Internet Explorer mode" feature, which supports ActiveX.

ActiveX in non-Internet Explorer applicationsEdit

  • Mozilla ActiveX Control was last updated in late 2005, and runs in Firefox 1.5.<ref>{{#invoke:citation/CS1|citation

|CitationClass=web }}</ref>

  • ScriptActive for Netscape Navigator last updated in 1997 can run ActiveX controls but requires a special HTML tag.<ref name=":0" />
  • Running ActiveX scripts in Google Chrome is possible through the utilization of several extensions, including one which emulates an Internet Explorer tab within the Chrome application.<ref>{{#invoke:citation/CS1|citation

|CitationClass=web }}</ref>

Other ActiveX technologiesEdit

Microsoft has developed a large number of products and software platforms using ActiveX objects. They are still used (e.g., websites still using ASP):

See alsoEdit

Template:Columns-list

ReferencesEdit

Template:Reflist

External linksEdit

Template:Sister project

Template:Microsoft APIs Template:Microsoft Windows components Template:Internet Explorer Template:Web interfaces Template:Authority control