| ActiveX | |
|---|---|
| Original author | Microsoft |
| Developer | Microsoft |
| Initial release | 1996; 30 years ago (1996) |
| Final release | 2013 |
| Written in | C,C++ |
| Operating system | Microsoft Windows,Solaris,Classic Mac OS,macOS |
| Platform | x86 |
| Included with | Internet Explorer,Microsoft Office,Microsoft Visual Studio, andWindows Media Player etc. |
| Predecessor | OLE 2.0 andCOM |
| Type | Software framework |
ActiveX is adeprecated software framework created byMicrosoft that adapts its earlierComponent Object Model (COM) andObject Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from theWorld Wide Web.[1] Microsoft introduced ActiveX in 1996. In principle, ActiveX is not dependent onMicrosoft Windows operating systems, but in practice, most ActiveX controls only run on Windows. Most also require the client to be running on anx86-based computer because ActiveX controls contain compiled code.[2]
ActiveX is still supported in the "Internet Explorer mode" ofMicrosoft Edge (which has a different, incompatible extension system, as it is based onGoogle'sChromium project).[3]
ActiveX was one of the major technologies used incomponent-based software engineering.[4] Compared withJavaBeans, ActiveX supports moreprogramming languages, but JavaBeans supports more platforms.[5] ActiveX is supported in many rapid application development technologies, such asActive Template Library,Delphi, JavaBeans,Microsoft Foundation Class Library,Qt,Visual Basic,Windows Forms andwxWidgets, to enable application developers to embed ActiveX controls into their products.
Many Microsoft Windows applications—including many of those from Microsoft itself, such asInternet Explorer,Microsoft Office,Microsoft Visual Studio, andWindows 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 inweb pages.
Faced with the complexity ofOLE 2.0 and with poor support for COM inMFC, Microsoft simplified the specification and rebranded the technology as ActiveX in 1996.[6][7] Even after simplification, users still required controls to implement about six core interfaces. In response to this complexity, Microsoft producedwizards,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 anOBJECTtag (theOBJECTtag was added to theHTML 3.2 specification byCharlie Kindel, the Microsoft representative to theW3C at the time[8]) 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.[9]
For example:
ActiveX was controversial from the start; while Microsoft claimed programming ease and good performance compared toJava 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 protectedintranets.[10] The ActiveX security model relied almost entirely on identifying trusted component developers using acode signing technology calledAuthenticode. Developers had to register withVerisign (US$20 per year for individuals, $400 for corporations) and sign a contract, promising not to developmalware. Identified code would then run inside the web browser with full permissions, meaning that anybug in the code was a potential security issue; this contrasts with thesandboxing already used in Java at the time.[11]
In October 1996, Microsoft released a beta version of the ActiveXSoftware Development Kit (SDK) for theMacintosh, including a plug-in forNetscape Navigator on the Mac, and announced its plan to support ActiveX onSolaris later that year.[12] Six months and two more beta releases later, there had yet to be any commercially available Macintosh ActiveX plugins.[13]
In 1997, NCompass Labs in cooperation with Microsoft released a plug-in forNetscape Navigator to support ActiveX.[14]
Documentation for ActiveX core technology resides at The Open Group and may be read for free.[15]
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 ofSouth 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.[16]
While Microsoft made significant efforts to push the cross-platform aspect of ActiveX by way of publishing the API, ultimately thecross-platform effort failed due to the ActiveX controls being written inC orC++ and being compiled inIntel x86Assembly language, making them executable only on Windows machines where they can call the standardWin32 APIs.[17]
Microsoft dropped ActiveX support from theWindows Store edition of Internet Explorer 10 inWindows 8. In 2015, Microsoft releasedMicrosoft 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.[18]Microsoft [New] Edge, however, includes an "Internet Explorer mode" feature, which supports ActiveX.
Microsoft has developed a large number of products and software platforms using ActiveX objects. They are still used (e.g., websites still using ASP):
The term ActiveX surfaced in the Microsoft world in early 1996.
Microsoft Corp. today announced ActiveX … Technologies, which make it easy for the broadest range of software developers and Web designers to build dynamic content for the Internet and the PC. … ActiveX Technologies form a robust framework for creating interactive content using software components, scripts and existing applications. Specifically, ActiveX Technologies enable developers to build Web content easily using ActiveX Controls (formerly OLE Controls), active scripts and active documents. … ActiveX Technologies are available in the form of the Microsoft ActiveX Development Kit, which is being distributed to more than 4,000 developers attending the Professional Developers Conference in San Francisco today.
ncompass activex plugin.