ActiveX

ActiveX is a 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.[1] 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.[2]

ActiveX is still supported as of Windows 10 through Internet Explorer 11, while ActiveX is not supported in their default web browser Microsoft Edge (which has a different, incompatible extension system) and will be compatible with the new Chromium-based Microsoft Edge using IE Mode.

ActiveX
ActiveX logo
Original author(s)Microsoft
Developer(s)Microsoft
Initial release1996
Websitemicrosoft.com/com/tech/activex.asp

ActiveX controls

ActiveX is one of the major technologies used in component-based software engineering.[3] Compared with JavaBeans, ActiveX supports more programming languages, but JavaBeans supports more platforms.[4] 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.

History

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.[5][6] 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, 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 F68K/PowerPC.) and security risks (especially given the lack of user intervention). Microsoft subsequently introduced security measures to make browsing including ActiveX safer.[7]

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.[8] 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.[9]

Platform support

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.[10] Six months and two more beta releases later, there had yet to be any commercially available Macintosh ActiveX plugins.[11]

In 1997, NCompass Labs in cooperation with Microsoft released a plug-in for Netscape Navigator to support ActiveX.[12]

Documentation for ActiveX core technology resides at The Open Group and may be downloaded free.[13]

Despite Microsoft's previous efforts to make ActiveX cross-platform, most ActiveX controls will not work on all platforms, so using ActiveX controls to implement essential functionality of a web page restricts its usefulness. South Korea has started to remove this technology from their public websites in order to make their web site accessible to more platforms.[14]

While Microsoft made significant effort 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.[15]

Microsoft dropped ActiveX support from the Windows Store edition of Internet Explorer 10 in Windows 8. In 2015 Microsoft released Microsoft Edge, the replacement for Internet Explorer with no support for ActiveX, this marked the end of the technology in Microsoft's web browser development.[16]

ActiveX in non-Internet Explorer applications

It may not always be possible to use Internet Explorer to execute ActiveX content (e.g., on a Wine installation), nor may a user want to.

  • Mozilla ActiveX Control was last updated in late 2005, and runs in Firefox 1.5.[17]
  • ScriptActive for Netscape Navigator last updated in 1997 can run ActiveX controls but requires a special HTML tag.[12]
  • Google Chrome ActiveX Control is available through the utilization of the IE Tab Extension for Google Chrome, which allows the use of a special "IE Tab," an emulation of Internet Explorer within the Chrome application. The IE Tab displays a second address bar and processes ActiveX protocols normally. Enabling ActiveX protocols allows Chrome users access to a variety of interactive dynamic websites like game and business web applications.

Other ActiveX technologies

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

See also

References

  1. ^ "Introduction to ActiveX Controls". MSDN. Microsoft. Archived from the original on 14 May 2016. Retrieved 1 June 2016.
  2. ^ Anderson, Jerry (1997). Activex Programming with Visual C++. Que. ISBN 978-0-7897-1030-7.
  3. ^ 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.
  4. ^ Hughes, Merlin (1 March 1997). "JavaBeans and ActiveX go head to head". JavaWorld. IDG. Archived from the original on 15 March 2016.
  5. ^ "Using ActiveX with LabVIEW – Examining Mission Editor Version 1.0". NI Developer Zone. National Instruments. 13 August 2007. Archived from the original on 28 February 2008. Retrieved 12 March 2009. The term ActiveX surfaced in the Microsoft world in early 1996.
  6. ^ "Microsoft announces ActiveX Technologies". News Center. Microsoft. 12 March 1996. Archived from the original on 12 February 2017. Retrieved 11 February 2017. 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.
  7. ^ "Activating ActiveX Controls". Activating ActiveX Controls. 18 April 2006. Archived from the original on 19 April 2006. Retrieved 16 June 2009.
  8. ^ "ActiveX technology: You can't go there today". InfoWorld. 19 May 1997. pp. 90 ff.
  9. ^ Dugan, Sean (19 May 1997). "Exposing the ActiveX security model". InfoWorld. p. 98.
  10. ^ Quinlan, Tom (28 October 1996). "MacOS will get access to ActiveX". InfoWorld. p. 48.
  11. ^ "After 6 months, ActiveX passive in Mac market". Vol. 11 no. 15. MacWEEK. 11 April 1997. Archived from the original on 12 April 1997.CS1 maint: BOT: original-url status unknown (link)
  12. ^ a b "Playing with plug-ins". Computerworld. IDG Enterprise. 7 April 1997.
  13. ^ "Documentation for ActiveX Core Technology". The Open Group. Archived from the original on 10 October 2012. Retrieved 7 August 2012.
  14. ^ "Seoul poised to remove ActiveX software from public websites". Yohap News Agency. 3 March 2015. Archived from the original on 22 March 2015.
  15. ^ "Will ActiveX Threaten National Security?". WIRED. Retrieved 15 October 2018.
  16. ^ Keizer, Gregg (10 May 2015). "Microsoft nixes ActiveX add-on technology in new Edge browser". Computerworld. IDG. Archived from the original on 14 May 2015.
  17. ^ "Mozilla Control". 29 April 2011.

External links

ADO.NET

ADO.NET is a data access technology from the Microsoft .NET Framework that provides communication between relational and non-relational systems through a common set of components.

ADO.NET is a set of computer software components that programmers can use to access data and data services from a database. It is a part of the base class library that is included with the Microsoft .NET Framework. It is commonly used by programmers to access and modify data stored in relational database systems, though it can also access data in non-relational data sources. ADO.NET is sometimes considered an evolution of ActiveX Data Objects (ADO) technology, but was changed so extensively that it can be considered an entirely new product.

ActiveX Data Objects

In computing, Microsoft's ActiveX Data Objects (ADO) comprises a set of Component Object Model (COM) objects for accessing data sources. A part of MDAC (Microsoft Data Access Components), it provides a middleware layer between programming languages and OLE DB (a means of accessing data stores, whether databases or not, in a uniform manner). ADO allows a developer to write programs that access data without knowing how the database is implemented; developers must be aware of the database for connection only. No knowledge of SQL is required to access a database when using ADO, although one can use ADO to execute SQL commands directly (with the disadvantage of introducing a dependency upon the type of database used).

Microsoft introduced ADO in October 1996, positioning the software as a successor to Microsoft's earlier object layers for accessing data sources, including RDO (Remote Data Objects) and DAO (Data Access Objects).

ADO is made up of four collections and twelve objects.

ActiveX Document

ActiveX Document (also known as DocObject or DocObj) is a Microsoft technology that allows users to view and edit Microsoft Word, Excel, and PDF documents inside web browsers. It defines a set of Component Object Model coding contracts between hosting programs like Internet Explorer or Microsoft Office Binder and hosted documents from programs like Microsoft Word, Microsoft Excel and Adobe Reader. This allows them to negotiate communications about commands like save and navigate, as well as merging user interface elements such as menu, to provide a unified user experience.

Initially designed for compound documents based on COM Structured Storage, the technology allows one single hosting program like Office Binder to contain unlimited type of documents. The server program that provides an ActiveX document can be an EXE or a DLL server.

Active Scripting

Active Scripting (formerly known as ActiveX Scripting) is the technology used in Windows to implement component-based scripting support. It is based on OLE Automation (part of COM) and allows installation of additional scripting engines in the form of COM modules.

Active Template Library

The Active Template Library (ATL) is a set of template-based C++ classes developed by Microsoft, intended to simplify the programming of Component Object Model (COM) objects. The COM support in Microsoft Visual C++ allows developers to create a variety of COM objects, OLE Automation servers, and ActiveX controls. ATL includes an object wizard that sets up primary structure of the objects quickly with a minimum of hand coding. On the COM client side ATL provides smart pointers that deal with COM reference counting. The library makes heavy use of the curiously recurring template pattern.

Advanced Systems Format

Advanced Systems Format (formerly Advanced Streaming Format, Active Streaming Format) is Microsoft's proprietary digital audio/digital video container format, especially meant for streaming media. ASF is part of the Media Foundation framework.

CAPICOM

CAPICOM is a discontinued ActiveX control created by Microsoft to help expose a select set of Microsoft Cryptographic Application Programming Interface (CryptoAPI) functions through Microsoft Component Object Model (COM). It was intended to enable every environment that supports ActiveX to use Microsoft Cryptographic technologies, including web pages that are opened with Microsoft Internet Explorer or any other web browser that supports ActiveX.CAPICOM can be used to digitally sign data, inspect, verify and display their digital signature or digital certificate, add or remove certificates to or from the certificate stores, and finally, to encrypt or decrypt data.CAPICOM Version 2.1.0.3, the latest and last version of CAPICOM, is officially supported on Windows Vista. However, Microsoft has announced that CAPICOM is discontinued and is no longer being developed. Microsoft suggests replacing CAPICOM with .NET Framework's X509 Cryptographic Classes and a number of other alternatives.CAPICOM was not included in Windows 7. The linked Microsoft article goes into detail.

Component Object Model

Component Object Model (COM) is a binary-interface standard for software components introduced by Microsoft in 1993. It is used to enable inter-process communication object creation in a large range of programming languages. COM is the basis for several other Microsoft technologies and frameworks, including OLE, OLE Automation, Browser Helper Object, ActiveX, COM+, DCOM, the Windows shell, DirectX, UMDF and Windows Runtime. The essence of COM is a language-neutral way of implementing objects that can be used in environments different from the one in which they were created, even across machine boundaries. For well-authored components, COM allows reuse of objects with no knowledge of their internal implementation, as it forces component implementers to provide well-defined interfaces that are separated from the implementation. The different allocation semantics of languages are accommodated by making objects responsible for their own creation and destruction through reference-counting. Type conversion casting between different interfaces of an object is achieved through the QueryInterface method. The preferred method of "inheritance" within COM is the creation of sub-objects to which method "calls" are delegated.

COM is an interface technology defined and implemented as standard only on Microsoft Windows and Apple's Core Foundation 1.3 and later plug-in application programming interface (API). The latter only implements a subset of the whole COM interface. For some applications, COM has been replaced at least to some extent by the Microsoft .NET framework, and support for Web Services through the Windows Communication Foundation (WCF). However, COM objects can be used with all .NET languages through .NET COM Interop. Networked DCOM uses binary proprietary formats, while WCF encourages the use of XML-based SOAP messaging. COM is very similar to other component software interface technologies, such as CORBA and Enterprise JavaBeans, although each has its own strengths and weaknesses. Unlike C++, COM provides a stable application binary interface (ABI) that does not change between compiler releases. This makes COM interfaces attractive for object-oriented C++ libraries that are to be used by clients compiled using different compiler versions.

JScript .NET

JScript .NET is a .NET programming language developed by Microsoft.

The primary differences between JScript and JScript .NET can be summarized as follows:

Firstly, JScript is a scripting language, and as such programs (or more suggestively, scripts) can be executed without the need to compile the code first. This is not the case with the JScript .NET command-line compiler, since this next-generation version relies on the .NET Common Language Runtime (CLR) for execution, which requires that the code be compiled to Common Intermediate Language (CIL), formerly called Microsoft Intermediate Language (MSIL), code before it can be run. Nevertheless, JScript .NET still provides full support for interpreting code at runtime (e.g., via the Function constructor or the eval function) and indeed the interpreter can be exposed by custom applications hosting the JScript .NET engine via the VSA interfaces.

Secondly, JScript has a strong foundation in Microsoft's ActiveX/COM technologies, and relies primarily on ActiveX components to provide much of its functionality (including database access via ADO, file handling, etc.), whereas JScript .NET uses the .NET Framework to provide equivalent functionality. For backwards-compatibility (or for where no .NET equivalent library exists), JScript .NET still provides full access to ActiveX objects via .NET / COM interop using both the ActiveXObject constructor and the standard methods of the .NET Type class.

Although the .NET Framework and .NET languages such as C# and Visual Basic .NET have seen widespread adoption, JScript .NET has never received much attention, by the media or by developers. It is not supported in Microsoft's premier development tool, Visual Studio .NET. However, ASP.NET supports JScript .NET.

NPAPI

Netscape Plugin Application Programming Interface (NPAPI) is a deprecated (see below) application programming interface (API) that allows browser extensions to be developed. It was first developed for Netscape browsers, starting in 1995 with Netscape Navigator 2.0, but was subsequently adopted by other browsers. With the advent of HTML5 many software vendors have removed support for this API for security reasons.

In NPAPI architecture, a plugin declares content types (e.g. "audio/mp3") that it can handle. When the browser encounters a content type it cannot handle natively, it loads the appropriate plugin, sets aside space within the browser context for the plugin to render and then streams data to it. The plugin is responsible for rendering the data. The plugin runs in-place within the page, as opposed to older browsers that had to launch an external application to handle unknown content types.

NPAPI requires each plugin to implement and expose approximately 15 functions for initializing, creating, deleting and positioning plugin content. NPAPI also supports scripting, printing, full-screen plugins, windowless plugins and content streaming.

OLE Automation

In Microsoft Windows applications programming, OLE Automation (later renamed to simply Automation) is an inter-process communication mechanism created by Microsoft. It is based on a subset of Component Object Model (COM) that was intended for use by scripting languages – originally Visual Basic – but now is used by several languages on Windows. All automation objects are required to implement the IDispatch interface. It provides an infrastructure whereby applications called automation controllers can access and manipulate (i.e. set properties of or call methods on) shared automation objects that are exported by other applications. It supersedes Dynamic Data Exchange (DDE), an older mechanism for applications to control one another. As with DDE, in OLE Automation the automation controller is the "client" and the application exporting the automation objects is the "server".

Contrary to its name, automation objects do not necessarily use Microsoft OLE, although some of Automation objects can be used in OLE environments. The confusion has its roots in Microsoft's earlier definition of OLE, which was previously more or less a synonym of COM.

Object Linking and Embedding

Object Linking & Embedding (OLE) is a proprietary technology developed by Microsoft that allows embedding and linking to documents and other objects. For developers, it brought OLE Control Extension (OCX), a way to develop and use custom user interface elements. On a technical level, an OLE object is any object that implements the IOleObject interface, possibly along with a wide range of other interfaces, depending on the object's needs.

Professional Developers Conference

Microsoft's Professional Developers Conference (PDC) was a series of conferences for software developers; the conference was held infrequently to coincide with beta releases of the Windows operating system, and showcased topics of interest to those developing hardware and software for the new version of Windows.

In 2011, PDC was merged with Microsoft's web development conference MIX to form the Build Conference.

Since 2011, it has been renamed BUILD.

Regsvr32

In computing, regsvr32 (Microsoft Register Server) is a command-line utility in Microsoft Windows operating systems for registering and unregistering DLLs and ActiveX controls in the Windows Registry. Despite the suffix "32" in the name of the file, there are both 32-bit and 64-bit versions of this utility (with identical names, but in different directories).To be used with regsvr32, a DLL must export the functions DllRegisterServer and DllUnregisterServer.regsvr32 in Windows is comparable to ldconfig in Linux.

SEED

SEED is a block cipher developed by the Korea Internet & Security Agency (KISA). It is used broadly throughout South Korean industry, but seldom found elsewhere. It gained popularity in Korea because 40-bit encryption was not considered strong enough, so the Korea Information Security Agency developed its own standard. However, this decision has historically limited the competition of web browsers in Korea, as no major SSL libraries or web browsers supported the SEED algorithm, requiring users to use an ActiveX control in Internet Explorer for secure web sites.On April 1, 2015 the Ministry of Science, ICT and Future Planning (MSIP) announced its plan to remove the ActiveX dependency from at least 90 percent of the country's top 100 websites by 2017. Instead, HTML5-based technologies will be employed as they operate on many platforms, including mobile devices. Starting with the private sector, the ministry plans to expand this further to ultimately remove this dependency from public websites as well.

VBScript

VBScript ("Microsoft Visual Basic Scripting Edition") is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers with error handling, subroutines, and other advanced programming constructs. It can give the user complete control over many aspects of their computing environment.

VBScript uses the Component Object Model to access elements of the environment within which it is running; for example, the FileSystemObject (FSO) is used to create, read, update and delete files. VBScript has been installed by default in every desktop release of Microsoft Windows since Windows 98; in Windows Server since Windows NT 4.0 Option Pack; and optionally with Windows CE (depending on the device it is installed on).

A VBScript script must be executed within a host environment, of which there are several provided with Microsoft Windows, including: Windows Script Host (WSH), Internet Explorer (IE), and Internet Information Services (IIS). Additionally, the VBScript hosting environment is embeddable in other programs, through technologies such as the Microsoft Script Control (msscript.ocx).

Visual Basic

Visual Basic is a third-generation event-driven programming language from Microsoft for its Component Object Model (COM) programming model first released in 1991 and declared legacy during 2008. Microsoft intended Visual Basic to be relatively easy to learn and use. Visual Basic was derived from BASIC and enables the rapid application development (RAD) of graphical user interface (GUI) applications, access to databases using Data Access Objects, Remote Data Objects, or ActiveX Data Objects, and creation of ActiveX controls and objects.

A programmer can create an application using the components provided by the Visual Basic program itself. Over time the community of programmers developed third-party components. Programs written in Visual Basic can also use the Windows API, which requires external function declarations.

The final release was version 6 in 1998 (now known simply as Visual Basic). On April 8, 2008, Microsoft stopped supporting Visual Basic 6.0 IDE. The Microsoft Visual Basic team still maintains compatibility for Visual Basic 6.0 applications on Windows Vista, Windows Server 2008 including R2, Windows 7, Windows 8, Windows 8.1, Windows Server 2012, Windows 10, Windows Server 2016, and Windows Server 2019 through its "It Just Works" program. In 2014, some software developers still preferred Visual Basic 6.0 over its successor, Visual Basic .NET. In 2014 some developers lobbied for a new version of the VB6 programming environment. In 2016, Visual Basic 6.0 won the technical impact award at The 19th Annual D.I.C.E. Awards. A dialect of Visual Basic, Visual Basic for Applications (VBA), is used as a macro or scripting language within several Microsoft applications, including Microsoft Office.

WinWrap Basic

WinWrap Basic (WWB) by Polar Engineering, Inc. is a third-party macro language based on Visual Basic used with programmes of various types which its vendor touts as an alternative to ActiveX (e.g. VBScript, JScript, PerlScript, Rexx-based WSH engines and others), Visual Basic for Applications, and VSTA for this purpose. The WWB software package is used in conjunction with Microsoft development tools including Visual Studio, Visual Studio.NET, and the ActiveX scripting engines. The default file extension for programmes written in this language is .wwb

WWB 10 has Windows Scripting Host functionality, i.e. it contains a scripting engine similar to the default and third-party language implementations for WSH. This engine is able to access both the .NET framework and the Component Object Model.

The current version, 10.01, is available for different combinations of OS and platform. At this time there are four types of WWB, those being WWB.NET for the .NET object model (used with Visual Studio.NET 2005 and 2008 and Vista), .WWB-COM for the COM object model (Visual Studio and Visual Studio.NET earlier versions), both of which are used with all Windows 32 and 64-bit operating systems from Windows 95 to Windows Vista; the other two packages are for Windows CE and PocketPC & Windows Mobile. Earlier versions of WWB ran under Windows 3.1 and ostensibly OS/2 Warp 3 as well.

WWB is integrated into many software packages including most categories of PC and server software (e.g. earlier versions of Host Explorer, which now uses two proprietary scripting languages, Hummingbird QuickScript and Hummingbird Basic) as well as software used to run various types of equipment like mass spectrometers and other lab equipment.

Windows Template Library

Windows Template Library (WTL) is a free software, object-oriented C++ template library for Win32 development. WTL was created by Microsoft employee Nenad Stefanovic for internal use and later released as an unsupported add-on to Visual Studio and the Win32 Framework SDK. It was developed primarily as a light-weight alternative to the Microsoft Foundation Classes and builds upon Microsoft's ATL, another lightweight API widely used to create COM and ActiveX libraries.

Graphics
Audio
Multimedia
Web
Data access
Networking
Communication
Administration and
management
Component model
Libraries
Device drivers
Security
.NET
Software factories
IPC
Accessibility
Text and multilingual
support
Management
tools
Apps
Shell
Services
File systems
Server
Architecture
Security
Compatibility
API
Games
Discontinued
Spun off to
Microsoft Store
Versions
Overview
Technologies
Software & engines
Implementations
Events
People
Server-side
Client-side
Topics

This page is based on a Wikipedia article written by authors (here).
Text is available under the CC BY-SA 3.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.