ActiveX Document (also known as DocObject or DocObj) is a Microsoft technology that allows users to view and edit Microsoft
Word
A word is a basic element of language that carries an objective or practical meaning, can be used on its own, and is uninterruptible. Despite the fact that language speakers often have an intuitive grasp of what a word is, there is no consen ...
,
Excel
ExCeL London (an abbreviation for Exhibition Centre London) is an exhibition centre, international convention centre and former hospital in the Custom House area of Newham, East London. It is situated on a site on the northern quay of the Ro ...
, and
PDF
Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. ...
documents inside web browsers. It defines a set of
Component Object Model coding contracts between hosting programs like Internet Explorer or
Microsoft Office Binder
Microsoft Office shared tools are software components that are (or were) included in all Microsoft Office products.
Delve
Office Delve allows Office 365 users to search and manage their emails, meetings, contacts, social networks and document ...
and hosted documents from programs like
Microsoft Word
Microsoft Word is a word processing software developed by Microsoft. It was first released on October 25, 1983, under the name ''Multi-Tool Word'' for Xenix systems. Subsequent versions were later written for several other platforms includi ...
,
Microsoft Excel
Microsoft Excel is a spreadsheet developed by Microsoft for Windows, macOS, Android and iOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a macro programming language called Visual Basic for ...
and
Adobe Reader
Adobe Acrobat is a family of application software and Web services developed by Adobe Inc. to view, create, manipulate, print and manage Portable Document Format (PDF) files.
The family comprises Acrobat Reader (formerly Reader), Acrobat (former ...
. 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
COM Structured Storage (variously also known as ''COM structured storage'' or '' OLE structured storage'') is a technology developed by Microsoft as part of its Windows operating system for storing hierarchical data within a single file. Stri ...
, the technology allows one single hosting program like Office Binder to contain unlimited type of documents.
[Microsoft promises compound documents. (Win95 Suites Set to Clash) by Greenberg, Ilan, InfoWorld June 5, 1995 http://www.accessmylibrary.com/article-1G1-17053478/microsoft-promises-compound-documents.html] The server program that provides an ActiveX document can be an EXE or a DLL server.
Code contracts
There are a few code contracts that ActiveX documents and their container need to implement in order to communicate about their capabilities and requirements.
An ActiveX document server application needs to implement the following code contracts that are expected by an ActiveX document container that is going to host the document:
*IPersistStorage, if use compound files as the storage
*Standard OLE interfaces like IPersistFile, IOleObject, and IDataObject, for creating a document that supports object linking and embedding from file
*IOleInPlaceObject and IOleInPlaceActiveObject, for editing inline
*IOleDocument, IOleCommandTarget, and IPrint, for talking to document container, command routing, and printing
An ActiveX document container application needs to implement the following code contracts
*Provide storage for documents via IStorage
*Implement IOleClientSite and IAdviseSink, for standard object linking and embedding
*Implement IOleInPlaceSite and IOleInPlaceFrame, for editing inline
*Implement IOleDocumentSite, IOleCommandTarget, IPrint and IContinueCallback, for document hosting, command routing and printing
Developer Support
Microsoft has ActiveX Document support in its developer tools to help programmers in creating ActiveX Document applications.
In
Visual C++
Microsoft Visual C++ (MSVC) is a compiler for the C, C++ and C++/CX programming languages by Microsoft. MSVC is proprietary software; it was originally a standalone product but later became a part of Visual Studio and made available in both tr ...
, programmers can include
Microsoft Foundation Classes
Microsoft Foundation Class Library (MFC) is a C++ object-oriented library for developing desktop applications for Windows.
MFC was introduced by Microsoft in 1992 and quickly gained widespread use. While Microsoft has introduced alternative ap ...
's support for ActiveX Documents in the MFC project wizard. A programmer can choose to add ActiveX document server and/or container support to the new program by checking a checkbox during the project creation process.
In
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to:
* Visual Basic .NET (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET
* Visual Basic (c ...
, ActiveX Document Migration wizard helps programmers to convert VB forms into ActiveX documents.
In
Visual FoxPro
Visual FoxPro is a Microsoft data-centric procedural programming language with object-oriented programming (OOP) features.
It was derived from FoxPro (originally known as FoxBASE) which was developed by Fox Software beginning in 1984. Fox Techno ...
, The ActiveDoc Base Class supports development for ActiveX document servers.
[Creating an Active Document, Visual Studio 7.0 documentation, by Microsoft https://msdn.microsoft.com/en-us/library/aa903396(v=vs.71).aspx]
References
{{Microsoft Windows components
Microsoft initiatives
Windows text-related software