![]() |
Q000705
ODMA
FAQtip |
- Latest version: The latest version of this FAQtip is available on the Internet at
<http://ODMA.info/faq/2000/07/Q000705b.htm>.- This section: 0.20 Review Draft <http://ODMA.info/faq/2000/07/Q000705c.htm>. Consult that page for the latest status and for the most-recent electronic copies of the material.
The latest status on ODMA 2.0 is always available on the Internet at
http://ODMA.info/support/odma20st.htm
.This document is designed to be used in the same file location as HTML edition 2.0-3 of the ODMA 2.0 Specification and the Errata for that edition. Shortcuts in this document depend on proximity to a copy of the specification. A convenient way to make sure all necessary materials are present is to download the complete ODMA 2.0 Documentation Files package.
This response expands on the question "What Changed Between ODMA Versions?"
The question is addressed in terms of what an ODMA-aware application would see as different. There is also attention to what an ODMA-compliant DMS will adapt to (or not) when agreeing to support a particular level of ODMA on behalf of a requesting application.
This information is intended primarily for developers of ODMA-compliant components. It is also useful as background for troubleshooting and exploring interoperability questions.
Dennis E. Hamilton
AIIM DMware Technical Coordinator
Renton, Washington, 2000 August 291. Inter-Level Interoperability
2. Feature Introduction Levels
3. Analysis and Recommendations
4. Sources and ResourcesContributors
Revision History
- see also:
- Q000703 ODMA-Aware Application and Connection-Manager Version Compatibility
ODMA 2.0 Specification description ofODMRegisterApp
version
parameterThe evolution from ODMA 1.0 through ODMA 1.5 to ODMA 2.0 has been with the requirement that all versions of the API are downward compatible. Updates to the specification are intended to be defined so that any DMS integration developed to a newer version of the specification will operate successfully with any ODMA-aware application constructed in correct conformance with an earlier version of the specification.
Nevertheless, there are revisions to ODMA that do alter the described behavior of interfaces defined under earlier version of the specification.
This article summarizes when each API element is introduced and where any alterations to the behavior of earlier elements has been added.
2.1 ODMA 1.0 Baseline
2.2 ODMA 1.5 Changes
2.3 ODMA 2.0 ChangesThe following table lists the 31 ODMA 2.0 API operations and the single DMS initiation operation. The version of ODMA that introduced a given operation is shown in the columns to the right, along with any changes that arose in subsequent ODMA versions.
API Operation | ODMA 1.0? | ODMA 1.5? | ODMA 2.0? |
ODMActivate |
IODMDocMan |
unchanged |
ODM_NEWDOC action action action action action
|
ODMCloseDoc |
IODMDocMan |
unchanged |
ODM_E_FAIL |
ODMCloseDocEx |
- | - | |
ODMGetAlternateContent |
- | - | |
ODMGetDMS |
- |
- |
ODMA 2.0 |
ODMGetDMSCount |
- |
ODMA 1.5 |
unchanged |
ODMGetDMSInfo |
IODMDocMan |
unchanged |
ODM_EXT_QUERY *pdwExtensions *pdwExtensions |
ODMGetDMSList |
- |
ODMA 1.5 |
unchanged |
ODMGetDocInfo |
IODMDocMan |
unchanged |
22 item valuesODM_E_OFFLINE |
ODMGetDocRelation |
- |
- |
|
ODMGetLeadMoniker |
IODMDocMan |
unchanged |
unchanged |
ODMNewDoc |
IODMDocMan |
unchanged |
ODM_E_OFFLINE |
ODMOpenDoc |
IODMDocMan |
unchanged |
ODM_REFCOPY flags ODM_E_OFFLINE |
ODMQueryCapability |
- |
- |
|
ODMQueryClose |
- |
IODMQuery |
ODM_E_HANDLE , replaced by ODM_SUCCESS |
ODMQueryExecute |
- |
IODMQuery |
queryId[] maximum
changed from ODM_DOCID_MAX to ODM_QUERYID_MAX , , replaced by ODM_SUCCESS |
ODMQueryGetResults |
- |
IODMQuery |
lpszDocId[] and lpszDocName[]
minimum sizes, ODM_E_HANDLE , ODM_E_REQARG , ODM_NOERROR
replaced by ODM_SUCCESS |
ODMQueryInterface |
unchanged |
E_ACCESS_DENIED |
|
ODMRegisterApp |
unchanged |
ODM_E_REFUSED |
|
ODMSaveAs |
IODMDocMan |
unchanged |
ODM_E_OFFLINE |
ODMSaveAsEx |
- |
- |
|
ODMSaveDoc |
IODMDocMan |
unchanged |
ODM_E_NOOPEN |
ODMSaveDocEx |
- |
- |
|
ODMSelectDoc |
IODMDocMan |
unchanged |
ODM_VIEWMODE
*pdwFlag inputODM_E_OFFLINE |
ODMSelectDocEx |
- |
- |
|
ODMSetAlternateContent |
- |
- |
|
ODMSetDMS |
- |
ODMA 1.5 |
ODM_NOERROR replaced by ODM_SUCCESS |
ODMSetDocEvent |
- |
- |
|
ODMSetDocInfo |
IODMDocMan |
unchanged |
22 item valuesODM_E_ACCESS |
ODMSetDocRelation |
- |
- |
|
ODMUnRegisterApp |
unchanged |
unchanged |
|
ODMGetODMInterface |
ODMA 1.0 |
unchanged |
E_ACCESSDENIED , E_FAIL ,
E_ODM_VERSION |
ODMA 1.0 introduced 11 DMS-supported operations, 3 Connection-Manager operations, and one integration operation between the Connection Manager and the DMS.
The 11 DMS-implemented operations are identified by
IODMDocMan
in the ODMA 1.0 column of Table 1.
- see also:
- Q000901: Using COM
The ODMA 1.0 Connection Manager implements three operations directly:
The first two are responsible for establishing and discarding an ODMA session. The third uses the Connection Manager to request any COM interface known to the application from the DMS integration identified in the request.
ODMRegisterApp
operations require the application to specify the minimum version of ODMA that the application can accept for its functions. The DMS integrations have no means for discovering that level nor the level of the Connection Manager that is being used. It is the Connection Manager that must reconcile theODMRegisterApp
version
parameter from the application with the versions supported by individual DMS integrations.
ODMQueryInterface
is a means by which an application may dynamically discover additional features of a selected DMS using the Microsoft Component Object Model (COM). These may be any of the COM interfaces defined for ODMA of any version. These may also be proprietary or other interfaces that a DMS integration happens to make available and that the application is implemented to employ.Microsoft COM interfaces, properly specified and implemented, are inherently versioned. There are no ODMA versioning concerns for use of the COM interfaces, and the Connection Manager allows any interfaces to be requested, whether the universally-supported
IUnknown
interface, the ODMA-defined ones, or any others that the application is able to identify. The selected DMS will determine whether it supports the requested interface and will respond accordingly.
ODMQueryInterface
delivers anHRESULT
code. IfODMQueryInterface
has invalid parameters or is unable to access a DMS integration, it will terminate the operation, returning anHRESULT
ofE_INVALIDARG
. IfODMQueryInterface
has valid parameters and is able to access a DMS integration, theHRESULT
will be produced by the DMS integration's implementation ofIUnknown::QueryInterface
. The permissible results are those defined by the Microsoft COM specification and can be more than theE_NOINTERFACE
case defined in the ODMA 1.0 Specification.
[tbd following completion and review of Table 1]
- ODMA (1995).
- Open Document Management API Version 1.0a. ODMA Coalition, AIIM International, December 18, 1995. Available on the internet at <http://ODMA.info/downloads/odma10-2.htm>.
- ODMA (1996).
- Open Document Management API Version 1.5. ODMA Coalition, AIIM International, October 29, 1996. Available on the internet at <http://ODMA.info/downloads/odma15-2.htm>.
- ODMA (1997).
- Open Document Management API Version 2.0. ODMA Coalition, AIIM International, September 19, 1997. Available on the internet at <http://ODMA.info/downloads/#ODMA-20-Specification>. On-line review edition 2.0-3 available at <http://ODMA.info/downloads/odma20-3.htm>.
- ODMA (2000a).
- ODMA Codes Missing in Odma.h. ODMA Incident Report X000002. 2001-05-21 version available at <http://ODMA.info/support/X000002.htm>.
- ODMA (2000b).
- Omission of 0 and ODM_NOERROR from ODMSTATUS. ODMA Incident Report X000900. 2000-09-10 version available at <http://ODMA.info/support/X000900.htm>.
- ODMA (2001).
- odma.h 2.0.0-1. ODMA 2.0 Library Files. 2001-09-04 edition. Available at <http://ODMA.info/downloads/odma200h.htm>.
This is the definitive header file for defining the ODMA-specific symbols and API signatures as established with the release of the ODMA 2.0 SDK.
![]() |
You are
navigating the ODMA Interoperability Exchange. |
created 2000-08-29-15:43-0700 (pdt) by
orcmid |