World Library  
Flag as Inappropriate
Email this Article

ActiveX Document

Article Id: WHEBN0014998231
Reproduction Date:

Title: ActiveX Document  
Author: World Heritage Encyclopedia
Language: English
Subject: .NET Framework, Remote Differential Compression, Transactional NTFS, Active Directory Explorer, Windows Shell namespace
Publisher: World Heritage Encyclopedia

ActiveX Document

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

Initially designed for Compound documents based on COM Structured Storage, the technology allows one single hosting programs like Office Binder to contain unlimited type of documents.[3] 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:[5]

  • 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[6]

  • 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++, programmers can include Microsoft Foundation Classes'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.[7]

In Visual Basic, ActiveX Document Migration wizard helps programmers to convert VB forms into ActiveX documents.[8]

In Visual FoxPro, The ActiveDoc Base Class supports development for ActiveX document servers.[9]


  1. ^ Definition of ActiveX Documents
  2. ^ Microsoft readies DocObject; technology will allow document editing in Web browsers, InfoWorld Apr 29, 1996, page 49
  3. ^ a b Microsoft promises compound documents. (Win95 Suites Set to Clash) by Greenberg, Ilan, InfoWorld June 05, 1995
  4. ^ Menus in Active Documents, Visual FoxPro 7.0 documentation, by Microsoft
  5. ^ The Visual Programmer Puts ActiveX Document Objects Through Their Paces, by Joshua Trupin, Microsoft Systems Journal, June 1996,
  6. ^ Active Document Containers, Visual Studio 2012 documentation, by Microsoft,
  7. ^ Compound Document Support, MFC Application Wizard, Visual Studio 2012 documentation, by Microsoft,
  8. ^ You can't go there today. (ActiveX application development; Microsoft's Visual Basic 5.0 and Visual C++ 5.0, Borland's Delphi 3.0) by Blumenthal, Holly, InfoWorld | May 19, 1997
  9. ^ Creating an Active Document, Visual Studio 7.0 documentation, by Microsoft
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.