/* odma.h - Definitions, prototypes, etc. for Open Document Managment API | |
(ODMA) version 2.0. | |
OPEN DOCUMENT MANAGEMENT API LICENSE 1.0 | |
ODMA 2.0 SPECIFICATIONS AND SOFTWARE | |
------------------------------------ | |
Copyright © 1994-1998 AIIM International | |
LICENSE: | |
Redistribution and use in source and binary forms, with or | |
without modifications, are permitted provided that the | |
following conditions are met: | |
* Redistributions of source code must retain the above | |
copyright notice, this list of conditions and the | |
following disclaimer. | |
* Redistributions in binary form must reproduce the | |
above copyright notice, this list of conditions and | |
the following disclaimer in the documentation and/or | |
other materials provided with the distribution. | |
* Neither the name of AIIM International nor the names | |
of its contributors may be used to endorse or promote | |
products derived from this software without specific | |
prior written permission. | |
DISCLAIMER: | |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND | |
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, | |
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR | |
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING | |
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
SUCH DAMAGE. | |
COPYRIGHT (C) 1994, 1995 | |
AIIM International | |
All Right Reserved | |
*/ | |
#ifndef ODMA_H | |
#define ODMA_H | |
/* Type definitions */ | |
typedef LPVOID ODMHANDLE; | |
typedef LPSTR (*ODMSAVEASCALLBACK)(DWORD dwEnvData, LPSTR lpszFormat, LPVOID pInstanceData); | |
typedef int ODMSTATUS; | |
/* Constants */ | |
#define ODM_API_VERSION 200 /* Version of the API */ | |
#ifdef WIN32 | |
#define ODM_DOCID_MAX 255 /* Win32 */ | |
#elif defined( _WINDOWS_ ) || defined( _MSDOS ) | |
#define ODM_DOCID_MAX 80 /* Windows 3.x */ | |
#else | |
#define ODM_DOCID_MAX 255 /* Other platforms */ | |
#endif | |
#define ODM_DMSID_MAX 9 /* Max length of a DMS ID including the | |
/* terminating NULL character. */ | |
#define ODM_APPID_MAX 16 /* Max length of a application ID including | |
/* the terminating NULL character. */ | |
// ODMA 2.0 | |
#define ODM_QUERYID_MAX 255 // Max length of a query ID including | |
// the terminating NULL character. | |
#define ODM_FORMAT_MAX 81 // Max length of a format including | |
// the terminating NULL character. | |
// Maximum length of a filename returned by ODMA including the terminating | |
// NULL character. Platform dependent. | |
#ifdef WIN32 | |
#define ODM_FILENAME_MAX 255 /* Win32 */ | |
#elif defined( _WINDOWS_ ) || defined( _MSDOS ) | |
#define ODM_FILENAME_MAX 128 /* Windows 3.x */ | |
#elif defined( unix ) || defined( _UNIX ) | |
#define ODM_FILENAME_MAX 1024 /* Unix */ | |
#else | |
#define ODM_FILENAME_MAX 255 /* Other platforms */ | |
#endif | |
/* Common format type names */ | |
#define ODM_FORMAT_TEXT "Text" | |
#define ODM_FORMAT_RTF "Rich text format" | |
#define ODM_FORMAT_DCA "DCA RFT" /* IBM DCA Rich Format Text */ | |
#define ODM_FORMAT_TIFF "Tiff" | |
#define ODM_FORMAT_GIF "Gif" /* Compuserve Graphics Interchange Format */ | |
#define ODM_FORMAT_BMP "Windows bitmap" | |
#define ODM_FORMAT_PCX "PCX" | |
#define ODM_FORMAT_CGM "CGM" /* Computer Graphics Metafile */ | |
#define ODM_FORMAT_EXE "Executable file" | |
#define ODM_FORMAT_PCL "PCL" /* HP Printer Control Language */ | |
#define ODM_FORMAT_PS "PostScript" | |
/* Error returns */ | |
#define ODM_SUCCESS 0 // Success! | |
#define ODM_E_FAIL 1 /* Unspecified failure */ | |
#define ODM_E_CANCEL 2 /* Action was cancelled at user's request */ | |
#define ODM_E_NODMS 3 /* DMS not registered */ | |
#define ODM_E_CANTINIT 4 /* DMS failed to initalize */ | |
#define ODM_E_VERSION 5 /* DMS doesn't support the requested | |
version of ODMA */ | |
#define ODM_E_APPSELECT 6 /* User has indicated that he wants to use | |
the application's file selection | |
capabilities rather than those of the | |
DMS. */ | |
#define ODM_E_USERINT 7 /* Requested action cannot be performed | |
without user interaction, but silent | |
mode was specified. */ | |
#define ODM_E_HANDLE 8 /* The DMHANDLE argument was invalid. */ | |
#define ODM_E_ACCESS 9 /* User does not have requested access | |
rights to specified document. */ | |
#define ODM_E_INUSE 10 /* Document is currently in use and cannot | |
be accessed in specified mode. */ | |
#define ODM_E_DOCID 11 /* Invalid document ID */ | |
#define ODM_E_OPENMODE 12 /* The specified action is incompatible | |
with the mode in which the document was | |
opened. */ | |
#define ODM_E_NOOPEN 13 /* The specified document is not open. */ | |
#define ODM_E_ITEM 14 /* Invalid item specifier. */ | |
#define ODM_E_OTHERAPP 15 /* Selected document was for another app. */ | |
#define ODM_E_NOMOREDATA 16 /* No more data is available */ | |
#define ODM_E_PARTIALSUCCESS 17 /* */ | |
// Additional Error code from ODMA 2.0 | |
#define ODM_E_REQARG 18 /* */ | |
#define ODM_E_NOSUPPORT 19 /* */ | |
#define ODM_E_TRUNCATED 20 /* */ | |
#define ODM_E_INVARG 21 | |
#define ODM_E_OFFLINE 22 /* */ | |
// ODMOpenDoc modes | |
#define ODM_MODIFYMODE 1 /* Open document in a modifiable mode. */ | |
#define ODM_VIEWMODE 2 /* Open document in non-modifiable mode. */ | |
// ODMA 2.0 | |
#define ODM_REFCOPY 3 | |
// Actions for ODMActivate | |
#define ODM_NONE 0 /* No specific action is requested. */ | |
#define ODM_DELETE 1 /* Delete the specified document. */ | |
#define ODM_SHOWATTRIBUTES 2 /* Display the specified document's profile | |
or attributes. */ | |
#define ODM_EDITATTRIBUTES 3 /* Edit the specified document's profile or | |
attributes. */ | |
#define ODM_VIEWDOC 4 /* Display the specified document in a | |
viewer window. */ | |
#define ODM_OPENDOC 5 /* Open the specified document in its | |
native application. */ | |
// ODMA 2.0 | |
#define ODM_NEWDOC 6 | |
#define ODM_CHECKOUT 7 | |
#define ODM_CANCELCHECKOUT 8 | |
#define ODM_CHECKIN 9 | |
#define ODM_SHOWHISTORY 10 | |
// Item selectors for ODMGetDocInfo and ODMSetDocInfo | |
#define ODM_AUTHOR 1 /* Author of the document. */ | |
#define ODM_NAME 2 /* Descriptive name of the document. */ | |
#define ODM_TYPE 3 /* Type of the document. */ | |
#define ODM_TITLETEXT 4 /* Suggested text to display in the | |
document window's title bar. */ | |
#define ODM_DMS_DEFINED 5 /* DMS defined data. */ | |
#define ODM_CONTENTFORMAT 6 /* String describing document's format */ | |
// ODMA 2.0 | |
#define ODM_ALTERNATE_RENDERINGS 7 | |
#define ODM_CHECKEDOUTBY 8 | |
#define ODM_CHECKOUTCOMMENT 9 | |
#define ODM_CHECKOUTDATE 10 | |
#define ODM_CREATEDBY 11 | |
#define ODM_CREATEDDATE 12 | |
#define ODM_DOCID_LATEST 13 | |
#define ODM_DOCID_RELEASED 14 | |
#define ODM_DOCVERSION 15 | |
#define ODM_DOCVERSION_LATEST 16 | |
#define ODM_DOCVERSION_RELEASED 17 | |
#define ODM_LOCATION 18 | |
#define ODM_KEYWORDS 19 | |
#define ODM_LASTCHECKINBY 20 | |
#define ODM_LASTCHECKINDATE 21 | |
#define ODM_MODIFYDATE 22 | |
#define ODM_MODIFYDATE_LATEST 23 | |
#define ODM_MODIFYDATE_RELEASED 24 | |
#define ODM_OWNER 25 | |
#define ODM_SUBJECT 26 | |
#define ODM_TITLETEXT_RO 27 | |
#define ODM_URL 28 | |
// Item selectors for ODMQueryCapability ODMA 2.0 | |
#define ODM_QC_ACTIVATE 1 | |
#define ODM_QC_CLOSEDOC 2 | |
#define ODM_QC_CLOSEDOCEX 3 | |
#define ODM_QC_GETALTERNATECONTENT 4 | |
#define ODM_QC_GETDMSINFO 5 | |
#define ODM_QC_GETDOCINFO 6 | |
#define ODM_QC_GETDOCRELATION 7 | |
#define ODM_QC_GETLEADMONIKER 8 | |
#define ODM_QC_NEWDOC 9 | |
#define ODM_QC_OPENDOC 10 | |
#define ODM_QC_QUERYCLOSE 11 | |
#define ODM_QC_QUERYEXECUTE 12 | |
#define ODM_QC_QUERYGETRESULTS 13 | |
#define ODM_QC_SAVEAS 14 | |
#define ODM_QC_SAVEASEX 15 | |
#define ODM_QC_SAVEDOC 16 | |
#define ODM_QC_SAVEDOCEX 17 | |
#define ODM_QC_SELECTDOC 18 | |
#define ODM_QC_SELECTDOCEX 19 | |
#define ODM_QC_SETALTERNATECONTENT 20 | |
#define ODM_QC_SETDOCEVENT 21 | |
#define ODM_QC_SETDOCRELATION 22 | |
#define ODM_QC_SETDOCINFO 23 | |
// Misc. modes, flags | |
#define ODM_SILENT 16 /* Don't interact with the user while | |
fulfilling this request. */ | |
//ODMA 2.0 | |
#define ODM_VERSION_SAME 1 | |
#define ODM_VERSION_MAJOR 2 | |
#define ODM_VERSION_MINOR 4 | |
#define ODM_VERSION_CHANGED 8 | |
#define ODM_ALT_DELETE 32 | |
//ODMA 2.0 DMS Info Flags | |
#define ODM_EXT_QUERY 1 | |
#define ODM_EXT_WORKFLOW 2 | |
// Flags for Query Interface | |
#define ODM_ALL 1 // All DMS's should be searched | |
#define ODM_SPECIFIC 2 // Only specific DMS's should be searched | |
// Function prototypes | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
ODMSTATUS WINAPI ODMRegisterApp(ODMHANDLE FAR *pOdmHandle, WORD version, | |
LPSTR lpszAppId, DWORD dwEnvData, LPVOID pReserved); | |
void WINAPI ODMUnRegisterApp(ODMHANDLE odmHandle); | |
ODMSTATUS WINAPI ODMSelectDoc(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
LPDWORD pdwFlags); | |
ODMSTATUS WINAPI ODMOpenDoc(ODMHANDLE odmHandle, DWORD flags, | |
LPSTR lpszDocId, LPSTR lpszDocLocation); | |
ODMSTATUS WINAPI ODMSaveDoc(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
LPSTR lpszNewDocId); | |
ODMSTATUS WINAPI ODMCloseDoc(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
DWORD activeTime, DWORD pagesPrinted, LPVOID sessionData, WORD dataLen); | |
ODMSTATUS WINAPI ODMNewDoc(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
DWORD dwFlags, LPSTR lpszFormat, LPSTR lpszDocLocation); | |
ODMSTATUS WINAPI ODMSaveAs(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
LPSTR lpszNewDocId, LPSTR lpszFormat, ODMSAVEASCALLBACK pcbCallBack, | |
LPVOID pInstanceData); | |
ODMSTATUS WINAPI ODMActivate(ODMHANDLE odmHandle, WORD action, | |
LPSTR lpszDocId); | |
ODMSTATUS WINAPI ODMGetDocInfo(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
WORD item, LPSTR lpszData, WORD dataLen); | |
ODMSTATUS WINAPI ODMSetDocInfo(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
WORD item, LPSTR lpszData); | |
ODMSTATUS WINAPI ODMGetDMSInfo(ODMHANDLE odmHandle, LPSTR lpszDmsId, | |
LPWORD pwVerNo, LPDWORD pdwExtensions); | |
/* Query Enhancements */ | |
WORD WINAPI ODMGetDMSCount(); | |
WORD WINAPI ODMGetDMSList( LPSTR buffer, WORD buffer_size ); | |
ODMSTATUS WINAPI ODMGetDMS( LPCSTR lpszAppId, LPSTR lpszDMSId ); | |
ODMSTATUS WINAPI ODMSetDMS( LPCSTR lpszAppId, LPCSTR lpszDMSId ); | |
ODMSTATUS WINAPI ODMQueryExecute(ODMHANDLE odmHandle, LPCSTR lpszQuery, | |
DWORD flags, LPCSTR lpszDMSList, LPSTR queryId ); | |
ODMSTATUS WINAPI ODMQueryGetResults(ODMHANDLE odmHandle, LPCSTR queryId, | |
LPSTR lpszDocId, LPSTR lpszDocName, WORD docNameLen, | |
WORD *docCount ); | |
ODMSTATUS WINAPI ODMQueryClose(ODMHANDLE odmHandle, LPCSTR queryId ); | |
/* ODMA 2.0 Enhancements */ | |
ODMSTATUS WINAPI ODMCloseDocEx(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
LPDWORD pdwFlags, DWORD activeTime, DWORD pagesPrinted, | |
LPVOID sessionData, WORD dataLen); | |
ODMSTATUS WINAPI ODMSaveAsEx(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
LPSTR lpszNewDocId, LPSTR lpszFormat, ODMSAVEASCALLBACK pcbCallBack, | |
LPVOID pInstanceData, LPDWORD pdwFlags); | |
ODMSTATUS WINAPI ODMSaveDocEx(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
LPSTR lpszNewDocId, LPDWORD pdwFlags); | |
ODMSTATUS WINAPI ODMSelectDocEx(ODMHANDLE odmHandle, LPSTR lpszDocIds, | |
LPWORD pwDocIdsLen, LPWORD pwDocCount, LPDWORD pdwFlags, | |
LPSTR lpszFormatFilter); | |
ODMSTATUS WINAPI ODMQueryCapability(ODMHANDLE odmHandle, LPCSTR lpszDmsId, | |
DWORD function, DWORD item, DWORD flags); | |
ODMSTATUS WINAPI ODMSetDocEvent(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
DWORD flags, DWORD event, LPVOID lpData, DWORD dwDataLen, | |
LPSTR lpszComment); | |
ODMSTATUS WINAPI ODMGetAlternateContent(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
LPDWORD pdwFlags, LPSTR lpszFormat, LPSTR lpszDocLocation); | |
ODMSTATUS WINAPI ODMSetAlternateContent(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
LPDWORD pdwFlags, LPSTR lpszFormat, LPSTR lpszDocLocation); | |
ODMSTATUS WINAPI ODMGetDocRelation(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
LPDWORD pdwFlags, LPSTR lpszLinkedId, LPSTR lpszFormat, | |
LPSTR lpszPreviousId); | |
ODMSTATUS WINAPI ODMSetDocRelation(ODMHANDLE odmHandle, LPSTR lpszDocId, | |
LPDWORD pdwFlags, LPSTR lpszLinkedId, LPSTR lpszFormat, | |
LPSTR lpszPreviousId); | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif |