xref: /aoo42x/main/ucb/source/ucp/odma/odma.h (revision cdf0e10c)
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