xref: /trunk/main/ucb/source/ucp/odma/odma.h (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
1 /* odma.h - Definitions, prototypes, etc. for Open Document Managment API
2     (ODMA) version 2.0.
3 
4     COPYRIGHT (C) 1994, 1995
5     AIIM International
6     All Right Reserved
7 */
8 
9 #ifndef ODMA_H
10 #define ODMA_H
11 
12 /* Type definitions */
13 typedef LPVOID ODMHANDLE;
14 typedef LPSTR (*ODMSAVEASCALLBACK)(DWORD dwEnvData, LPSTR lpszFormat, LPVOID pInstanceData);
15 typedef int ODMSTATUS;
16 
17 /* Constants */
18 #define ODM_API_VERSION         200     /* Version of the API */
19 
20 #ifdef WIN32
21     #define ODM_DOCID_MAX       255     /* Win32 */
22 
23 #elif defined( _WINDOWS_ ) || defined( _MSDOS )
24     #define ODM_DOCID_MAX       80      /* Windows 3.x */
25 
26 #else
27     #define ODM_DOCID_MAX       255     /* Other platforms */
28 #endif
29 
30 #define ODM_DMSID_MAX           9       /* Max length of a DMS ID including the
31                                         /* terminating NULL character.  */
32 
33 #define ODM_APPID_MAX           16      /* Max length of a application ID including
34                                         /* the terminating NULL character.  */
35 
36 // ODMA 2.0
37 #define ODM_QUERYID_MAX         255     // Max length of a query ID including
38                                                     // the terminating NULL character.
39 
40 #define ODM_FORMAT_MAX          81 // Max length of a format including
41                                                     // the terminating NULL character.
42 
43 // Maximum length of a filename returned by ODMA including the terminating
44 //  NULL character.  Platform dependent.
45 
46 #ifdef WIN32
47     #define ODM_FILENAME_MAX    255     /* Win32 */
48 
49 #elif defined( _WINDOWS_ ) || defined( _MSDOS )
50     #define ODM_FILENAME_MAX    128     /* Windows 3.x */
51 
52 #elif defined( unix ) || defined( _UNIX )
53     #define ODM_FILENAME_MAX    1024    /* Unix */
54 
55 #else
56     #define ODM_FILENAME_MAX    255     /* Other platforms */
57 #endif
58 
59 
60 /* Common format type names */
61 #define ODM_FORMAT_TEXT "Text"
62 #define ODM_FORMAT_RTF  "Rich text format"
63 #define ODM_FORMAT_DCA  "DCA RFT"       /* IBM DCA Rich Format Text */
64 #define ODM_FORMAT_TIFF "Tiff"
65 #define ODM_FORMAT_GIF  "Gif"               /* Compuserve Graphics Interchange Format */
66 #define ODM_FORMAT_BMP  "Windows bitmap"
67 #define ODM_FORMAT_PCX  "PCX"
68 #define ODM_FORMAT_CGM  "CGM"               /* Computer Graphics Metafile */
69 #define ODM_FORMAT_EXE  "Executable file"
70 #define ODM_FORMAT_PCL  "PCL"               /* HP Printer Control Language */
71 #define ODM_FORMAT_PS   "PostScript"
72 
73 
74 /* Error returns */
75 #define ODM_SUCCESS         0       // Success!
76 #define ODM_E_FAIL          1       /* Unspecified failure */
77 #define ODM_E_CANCEL        2       /* Action was cancelled at user's request */
78 #define ODM_E_NODMS         3       /* DMS not registered */
79 #define ODM_E_CANTINIT      4       /* DMS failed to initalize */
80 #define ODM_E_VERSION       5       /* DMS doesn't support the requested
81                                                version of ODMA */
82 #define ODM_E_APPSELECT     6        /* User has indicated that he wants to use
83                                        the application's file selection
84                                        capabilities rather than those of the
85                                        DMS. */
86 #define ODM_E_USERINT       7        /* Requested action cannot be performed
87                                        without user interaction, but silent
88                                        mode was specified. */
89 #define ODM_E_HANDLE        8        /* The DMHANDLE argument was invalid. */
90 #define ODM_E_ACCESS        9        /* User does not have requested access
91                                        rights to specified document. */
92 #define ODM_E_INUSE         10        /* Document is currently in use and cannot
93                                        be accessed in specified mode. */
94 #define ODM_E_DOCID         11        /* Invalid document ID */
95 #define ODM_E_OPENMODE      12        /* The specified action is incompatible
96                                        with the mode in which the document was
97                                        opened. */
98 #define ODM_E_NOOPEN        13        /* The specified document is not open. */
99 #define ODM_E_ITEM          14        /* Invalid item specifier. */
100 #define ODM_E_OTHERAPP      15        /* Selected document was for another app. */
101 #define ODM_E_NOMOREDATA    16      /* No more data is available */
102 #define ODM_E_PARTIALSUCCESS 17     /* */
103 // Additional Error code from ODMA 2.0
104 #define ODM_E_REQARG        18      /* */
105 #define ODM_E_NOSUPPORT     19      /* */
106 #define ODM_E_TRUNCATED     20      /* */
107 #define ODM_E_INVARG  21
108 #define ODM_E_OFFLINE  22       /* */
109 
110 
111 // ODMOpenDoc modes
112 #define ODM_MODIFYMODE      1        /* Open document in a modifiable mode. */
113 #define ODM_VIEWMODE        2        /* Open document in non-modifiable mode. */
114 // ODMA 2.0
115 #define ODM_REFCOPY         3
116 
117 
118 // Actions for ODMActivate
119 #define ODM_NONE            0        /* No specific action is requested.  */
120 #define ODM_DELETE          1        /* Delete the specified document.  */
121 #define ODM_SHOWATTRIBUTES  2        /* Display the specified document's profile
122                                        or attributes. */
123 #define ODM_EDITATTRIBUTES  3        /* Edit the specified document's profile or
124                                        attributes. */
125 #define ODM_VIEWDOC         4        /* Display the specified document in a
126                                        viewer window. */
127 #define ODM_OPENDOC         5        /* Open the specified document in its
128                                        native application.  */
129 // ODMA 2.0
130 #define ODM_NEWDOC          6
131 #define ODM_CHECKOUT        7
132 #define ODM_CANCELCHECKOUT  8
133 #define ODM_CHECKIN         9
134 #define ODM_SHOWHISTORY     10
135 
136 
137 // Item selectors for ODMGetDocInfo and ODMSetDocInfo
138 #define ODM_AUTHOR          1        /* Author of the document. */
139 #define ODM_NAME            2        /* Descriptive name of the document.  */
140 #define ODM_TYPE            3        /* Type of the document.  */
141 #define ODM_TITLETEXT       4        /* Suggested text to display in the
142                                        document window's title bar. */
143 #define ODM_DMS_DEFINED     5        /* DMS defined data. */
144 #define ODM_CONTENTFORMAT   6        /* String describing document's format */
145 // ODMA 2.0
146 #define ODM_ALTERNATE_RENDERINGS    7
147 #define ODM_CHECKEDOUTBY    8
148 #define ODM_CHECKOUTCOMMENT 9
149 #define ODM_CHECKOUTDATE    10
150 #define ODM_CREATEDBY       11
151 #define ODM_CREATEDDATE     12
152 #define ODM_DOCID_LATEST    13
153 #define ODM_DOCID_RELEASED  14
154 #define ODM_DOCVERSION      15
155 #define ODM_DOCVERSION_LATEST   16
156 #define ODM_DOCVERSION_RELEASED 17
157 #define ODM_LOCATION        18
158 #define ODM_KEYWORDS        19
159 #define ODM_LASTCHECKINBY   20
160 #define ODM_LASTCHECKINDATE 21
161 #define ODM_MODIFYDATE      22
162 #define ODM_MODIFYDATE_LATEST   23
163 #define ODM_MODIFYDATE_RELEASED 24
164 #define ODM_OWNER           25
165 #define ODM_SUBJECT         26
166 #define ODM_TITLETEXT_RO    27
167 #define ODM_URL             28
168 
169 
170 // Item selectors for ODMQueryCapability ODMA 2.0
171 #define ODM_QC_ACTIVATE             1
172 #define ODM_QC_CLOSEDOC             2
173 #define ODM_QC_CLOSEDOCEX           3
174 #define ODM_QC_GETALTERNATECONTENT  4
175 #define ODM_QC_GETDMSINFO           5
176 #define ODM_QC_GETDOCINFO           6
177 #define ODM_QC_GETDOCRELATION       7
178 #define ODM_QC_GETLEADMONIKER       8
179 #define ODM_QC_NEWDOC               9
180 #define ODM_QC_OPENDOC              10
181 #define ODM_QC_QUERYCLOSE           11
182 #define ODM_QC_QUERYEXECUTE         12
183 #define ODM_QC_QUERYGETRESULTS      13
184 #define ODM_QC_SAVEAS               14
185 #define ODM_QC_SAVEASEX             15
186 #define ODM_QC_SAVEDOC              16
187 #define ODM_QC_SAVEDOCEX            17
188 #define ODM_QC_SELECTDOC            18
189 #define ODM_QC_SELECTDOCEX          19
190 #define ODM_QC_SETALTERNATECONTENT  20
191 #define ODM_QC_SETDOCEVENT          21
192 #define ODM_QC_SETDOCRELATION       22
193 #define ODM_QC_SETDOCINFO           23
194 
195 
196 // Misc. modes, flags
197 #define ODM_SILENT          16        /* Don't interact with the user while
198                                        fulfilling this request. */
199 //ODMA 2.0
200 #define ODM_VERSION_SAME    1
201 #define ODM_VERSION_MAJOR   2
202 #define ODM_VERSION_MINOR   4
203 #define ODM_VERSION_CHANGED 8
204 #define ODM_ALT_DELETE      32
205 
206 //ODMA 2.0 DMS Info Flags
207 #define ODM_EXT_QUERY       1
208 #define ODM_EXT_WORKFLOW    2
209 
210 // Flags for Query Interface
211 #define ODM_ALL             1       // All DMS's should be searched
212 #define ODM_SPECIFIC        2       // Only specific DMS's should be searched
213 
214 
215 // Function prototypes
216 #ifdef __cplusplus
217 extern "C" {
218 #endif
219 
220 ODMSTATUS WINAPI ODMRegisterApp(ODMHANDLE FAR *pOdmHandle, WORD version,
221     LPSTR lpszAppId, DWORD dwEnvData, LPVOID pReserved);
222 
223 void WINAPI ODMUnRegisterApp(ODMHANDLE odmHandle);
224 
225 ODMSTATUS WINAPI ODMSelectDoc(ODMHANDLE odmHandle, LPSTR lpszDocId,
226     LPDWORD pdwFlags);
227 
228 ODMSTATUS WINAPI ODMOpenDoc(ODMHANDLE odmHandle, DWORD flags,
229     LPSTR lpszDocId, LPSTR lpszDocLocation);
230 
231 ODMSTATUS WINAPI ODMSaveDoc(ODMHANDLE odmHandle, LPSTR lpszDocId,
232     LPSTR lpszNewDocId);
233 
234 ODMSTATUS WINAPI ODMCloseDoc(ODMHANDLE odmHandle, LPSTR lpszDocId,
235     DWORD activeTime, DWORD pagesPrinted, LPVOID sessionData, WORD dataLen);
236 
237 ODMSTATUS WINAPI ODMNewDoc(ODMHANDLE odmHandle, LPSTR lpszDocId,
238     DWORD dwFlags, LPSTR lpszFormat, LPSTR lpszDocLocation);
239 
240 ODMSTATUS WINAPI ODMSaveAs(ODMHANDLE odmHandle, LPSTR lpszDocId,
241     LPSTR lpszNewDocId, LPSTR lpszFormat, ODMSAVEASCALLBACK pcbCallBack,
242     LPVOID pInstanceData);
243 
244 ODMSTATUS WINAPI ODMActivate(ODMHANDLE odmHandle, WORD action,
245     LPSTR lpszDocId);
246 
247 ODMSTATUS WINAPI ODMGetDocInfo(ODMHANDLE odmHandle, LPSTR lpszDocId,
248     WORD item, LPSTR lpszData, WORD dataLen);
249 
250 ODMSTATUS WINAPI ODMSetDocInfo(ODMHANDLE odmHandle, LPSTR lpszDocId,
251     WORD item, LPSTR lpszData);
252 
253 ODMSTATUS WINAPI ODMGetDMSInfo(ODMHANDLE odmHandle, LPSTR lpszDmsId,
254     LPWORD pwVerNo, LPDWORD pdwExtensions);
255 
256 /* Query Enhancements */
257 WORD WINAPI ODMGetDMSCount();
258 
259 WORD WINAPI ODMGetDMSList( LPSTR buffer, WORD buffer_size );
260 
261 ODMSTATUS WINAPI ODMGetDMS( LPCSTR lpszAppId, LPSTR lpszDMSId );
262 
263 ODMSTATUS WINAPI ODMSetDMS( LPCSTR lpszAppId, LPCSTR lpszDMSId );
264 
265 ODMSTATUS WINAPI ODMQueryExecute(ODMHANDLE odmHandle, LPCSTR lpszQuery,
266                                  DWORD flags, LPCSTR lpszDMSList, LPSTR queryId );
267 
268 ODMSTATUS WINAPI ODMQueryGetResults(ODMHANDLE odmHandle, LPCSTR queryId,
269                                     LPSTR lpszDocId, LPSTR lpszDocName, WORD docNameLen,
270                                     WORD *docCount );
271 
272 ODMSTATUS WINAPI ODMQueryClose(ODMHANDLE odmHandle, LPCSTR queryId );
273 
274 /* ODMA 2.0 Enhancements */
275 ODMSTATUS WINAPI ODMCloseDocEx(ODMHANDLE odmHandle, LPSTR lpszDocId,
276                             LPDWORD pdwFlags, DWORD activeTime, DWORD pagesPrinted,
277                             LPVOID sessionData, WORD dataLen);
278 
279 ODMSTATUS WINAPI ODMSaveAsEx(ODMHANDLE odmHandle, LPSTR lpszDocId,
280                             LPSTR lpszNewDocId, LPSTR lpszFormat, ODMSAVEASCALLBACK pcbCallBack,
281                             LPVOID pInstanceData, LPDWORD pdwFlags);
282 
283 ODMSTATUS WINAPI ODMSaveDocEx(ODMHANDLE odmHandle, LPSTR lpszDocId,
284                             LPSTR lpszNewDocId, LPDWORD pdwFlags);
285 
286 ODMSTATUS WINAPI ODMSelectDocEx(ODMHANDLE odmHandle, LPSTR lpszDocIds,
287                             LPWORD pwDocIdsLen, LPWORD pwDocCount, LPDWORD pdwFlags,
288                             LPSTR lpszFormatFilter);
289 
290 ODMSTATUS WINAPI ODMQueryCapability(ODMHANDLE odmHandle, LPCSTR lpszDmsId,
291                             DWORD function, DWORD item, DWORD flags);
292 
293 ODMSTATUS WINAPI ODMSetDocEvent(ODMHANDLE odmHandle, LPSTR lpszDocId,
294                             DWORD flags, DWORD event, LPVOID lpData, DWORD dwDataLen,
295                             LPSTR lpszComment);
296 
297 ODMSTATUS WINAPI ODMGetAlternateContent(ODMHANDLE odmHandle, LPSTR lpszDocId,
298                             LPDWORD pdwFlags, LPSTR lpszFormat, LPSTR lpszDocLocation);
299 
300 ODMSTATUS WINAPI ODMSetAlternateContent(ODMHANDLE odmHandle, LPSTR lpszDocId,
301                             LPDWORD pdwFlags, LPSTR lpszFormat, LPSTR lpszDocLocation);
302 
303 ODMSTATUS WINAPI ODMGetDocRelation(ODMHANDLE odmHandle, LPSTR lpszDocId,
304                             LPDWORD pdwFlags, LPSTR lpszLinkedId, LPSTR lpszFormat,
305                             LPSTR lpszPreviousId);
306 
307 ODMSTATUS WINAPI ODMSetDocRelation(ODMHANDLE odmHandle, LPSTR lpszDocId,
308                             LPDWORD pdwFlags, LPSTR lpszLinkedId, LPSTR lpszFormat,
309                             LPSTR lpszPreviousId);
310 
311 #ifdef __cplusplus
312 }
313 #endif
314 
315 #endif
316