Odma.h
Category: Functionality - Defect Incident ID: X000002 Priority: 5 - Important Status: Workaround Under Development Component: Odma.h 2.0.0
- Repaired in: tbd
Related information:- X000009: Incorrect
ODMOpenDoc
ODM_REFCOPY
Flag
X000301: Constant Definitions Managed Improperly- Q000705: Changes Between ODMA Versions,
Q000703: ODMA-Aware Application and Connection-Manager Version Compatibility,
Errata 2.0: ODMA Version 2.0 Errata,
P000702: ODMA Library Release 2.0.1 projectAssigned To: tbd
- Reported By:
- Raja Sekhar (1998-07-17)
Bob St. Jean (1998-09-08)
Michael D. Smith (1999-04-16)
Dal Ghotra (1999-08-16)
Evgeny Rex (2001-05-09)
Viktor Yuzyuk (2001-05-15)Date Reported: 1998-07-17
Date Logged: 2000-08-11
Date Opened: 2001-05-11Date Closed: none
Content
Contributors
In the original ODMA 2.0 Library header file
Odma.h
, the values for a number of flags and result codes are not defined:
Table 1-1. Missing Values for ODMSTATUS
CodesODMSTATUS
Correct Value Comments ODM_NOERROR
0
Define this code to preserve down-level compatibility with ODMA 1.5 Definitions. ODM_E_ALREADYOPENED
24
1. Do not use these result codes with any operation defined prior to ODMA 2.0. See Q000705: Changes Between ODMA Versions. These codes are not expected by pre-ODMA 2.0 applications, and failures may be provoked if they are returned.
2. Do not define these result codes until it is established how to safely return these codes to only those applications that are prepared for them.ODM_E_ARCHIVED
23
ODM_E_FILELOCKED
25
ODM_W_NOACTION
27
1. An application developed without this definition may fail or behave as if the requested operation failed.
2. Do not define this code. ReturnODM_SUCCESS
instead.ODM_E_NORELATION
28
ODM_E_REFUSED
26
Do not define. Do not use. The ODMA 2.0 Connection Manager implementation of ODMRegisterApp
never returns thisODMSTATUS
value.
Table 1-2. Missing/Corrected Values for ODMOpenDoc
andODMSelectDocEx
flag
ODMOpenDoc
/ODMSelectDocEx flag
valuesCorrect Value Comments ODM_REFCOPY
4
Value of 3
is incorrect.ODM_TEMPLATE
8
Table 1-3. Values for Get/Set Relation *pdw flag
ODMGetRelation
/ODMSetRelation *pdwflag
valuesCorrect Value Comments ODM_REL_CHILD
1
ODM_REL_PARENT
2
ODM_REL_NONE
4
ODM_REL_NOTORDERED
8
ODM_REL_FIXED
32
ODM_REL_RELEASED
64
ODM_REL_LATEST
128
Table 1-4. Values for ODMSetDocEvent event
ODMSetDocEvent event
valuesCorrect Value Comments ODM_EVENT_PRINTED
1
ODM_EVENT_POSTED
2
ODM_EVENT_SENT
3
ODM_EVENT_FAXED
4
ODM_EVENT_ROUTED
5
ODM_EVENT_COPIED
6
ODM_EVENT_CONVERTED
7
ODM_EVENT_DMSDEFINED
8
Table 1-5. Values for ODMGetODMInterface
andODMQueryInterface HRESULT
HRESULT
Correct Value Comments S_OK
0L
1. These values are defined by standard Windows libraries when odmacom.h
is properly included into a program. Do not define these values directly.
2. These are but a small selection of possible COMHRESULT
codes that can be delivered to applications whether or not returned directly by ODMA DMS implementations.
3. Apart fromS_OK
andE_NOINTERFACE
, applications should treat all others as ifE_UNEXPECTED
.E_NOINTERFACE
0x80004002L
E_FAIL
0x80004005L
E_UNEXPECTED
0x8000FFFFL
E_ACCESSDENIED
0x80070005L
1. Do not return these values from an implementation of ODMQueryInterface
orODMGetODMInterface
.
2. Although these are defined by some standard Windows libraries, there is no use made of them by the ODMA 2.0 Connection Manager.E_INVALIDARG
0x80070057L
E_ODM_VERSION
n/a
There is no valid HRESULT
with this name.Do not implement
.
The following actions are proposed:
- Leave
odma.h
2.0.0-1 intact.- Create a supplemental
.h
file that can be added by#include
following the inclusion ofodma.h
.- The supplemental
.h
file will define only those codes that are safe to introduce unannounced at this point.- For the codes that are useful but that introduce compatibility problems, it is recommended that they be abandoned for now and reintroduced with a maintenance release of the specification, the ODMA Connection Manager, and the ODMA libraries.
- The introduction of more codes will be accomplished in a way that preserves operation of all ODMA-aware applications implemented with the current ODMA 2.0, 1.5, or 1.0 versions of
odma.h
and the pre-ODMA 2.0 ODMA Specifications.
[When the supplemental .h file is available, it will be made available here.]
[The discussion of history and problems introduced by the additional ODMA 2.0 codes is a bit complex. We will save this until a decent workaround is available]
- Dennis Hamilton
- reviewed the archive of ODMA Tech mail for unresolved incidents, logging this one (2000-08-11) and later opening it for resolution (2001-05-11) as more people began to notice the deficiency. Dennis provided analysis of the compatibility issues and the workaround approach.
- Bob St. Jean
- confirmed that there are omissions and provided an unofficial version of
odma.h
with his corrections.
created 2001-05-11-08:17 -0700 (pdt) by orcmid
$$Author: Orcmid $
$$Date: 04-11-18 14:16 $
$$Revision: 5 $