1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski #ifndef ODMA_LIB_HXX 24*b1cdbd2cSJim Jagielski #define ODMA_LIB_HXX 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski typedef void *LPVOID; 27*b1cdbd2cSJim Jagielski typedef char *LPSTR, 28*b1cdbd2cSJim Jagielski *PSTR; 29*b1cdbd2cSJim Jagielski typedef const char *LPCSTR; 30*b1cdbd2cSJim Jagielski typedef unsigned long DWORD; 31*b1cdbd2cSJim Jagielski typedef unsigned short WORD; 32*b1cdbd2cSJim Jagielski typedef unsigned short *LPWORD; 33*b1cdbd2cSJim Jagielski typedef DWORD *LPDWORD; 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski #define WINAPI __stdcall 36*b1cdbd2cSJim Jagielski #define FAR 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski #include "odma.h" 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski namespace odma 41*b1cdbd2cSJim Jagielski { 42*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMRegisterApp) ( ODMHANDLE FAR *pOdmHandle, 43*b1cdbd2cSJim Jagielski WORD version, 44*b1cdbd2cSJim Jagielski LPSTR lpszAppId, 45*b1cdbd2cSJim Jagielski DWORD dwEnvData, 46*b1cdbd2cSJim Jagielski LPVOID pReserved); 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski typedef void (WINAPI *TODMUnRegisterApp)(ODMHANDLE odmHandle); 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSelectDoc)( ODMHANDLE odmHandle, 52*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 53*b1cdbd2cSJim Jagielski LPDWORD pdwFlags); 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMOpenDoc)( ODMHANDLE odmHandle, 57*b1cdbd2cSJim Jagielski DWORD flags, 58*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 59*b1cdbd2cSJim Jagielski LPSTR lpszDocLocation); 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSaveDoc)( ODMHANDLE odmHandle, 62*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 63*b1cdbd2cSJim Jagielski LPSTR lpszNewDocId); 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMCloseDoc)( ODMHANDLE odmHandle, 66*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 67*b1cdbd2cSJim Jagielski DWORD activeTime, 68*b1cdbd2cSJim Jagielski DWORD pagesPrinted, 69*b1cdbd2cSJim Jagielski LPVOID sessionData, 70*b1cdbd2cSJim Jagielski WORD dataLen); 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMNewDoc)( ODMHANDLE odmHandle, 73*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 74*b1cdbd2cSJim Jagielski DWORD dwFlags, 75*b1cdbd2cSJim Jagielski LPSTR lpszFormat, 76*b1cdbd2cSJim Jagielski LPSTR lpszDocLocation); 77*b1cdbd2cSJim Jagielski 78*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSaveAs)( ODMHANDLE odmHandle, 79*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 80*b1cdbd2cSJim Jagielski LPSTR lpszNewDocId, 81*b1cdbd2cSJim Jagielski LPSTR lpszFormat, 82*b1cdbd2cSJim Jagielski ODMSAVEASCALLBACK pcbCallBack, 83*b1cdbd2cSJim Jagielski LPVOID pInstanceData); 84*b1cdbd2cSJim Jagielski 85*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMActivate)( ODMHANDLE odmHandle, 86*b1cdbd2cSJim Jagielski WORD action, 87*b1cdbd2cSJim Jagielski LPSTR lpszDocId); 88*b1cdbd2cSJim Jagielski 89*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMGetDocInfo)( ODMHANDLE odmHandle, 90*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 91*b1cdbd2cSJim Jagielski WORD item, 92*b1cdbd2cSJim Jagielski LPSTR lpszData, 93*b1cdbd2cSJim Jagielski WORD dataLen); 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSetDocInfo)( ODMHANDLE odmHandle, 96*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 97*b1cdbd2cSJim Jagielski WORD item, 98*b1cdbd2cSJim Jagielski LPSTR lpszData); 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMGetDMSInfo)( ODMHANDLE odmHandle, 101*b1cdbd2cSJim Jagielski LPSTR lpszDmsId, 102*b1cdbd2cSJim Jagielski LPWORD pwVerNo, 103*b1cdbd2cSJim Jagielski LPDWORD pdwExtensions); 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski /* Query Enhancements */ 106*b1cdbd2cSJim Jagielski typedef WORD (WINAPI *TODMGetDMSCount)(); 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski typedef WORD (WINAPI *TODMGetDMSList)( LPSTR buffer, 109*b1cdbd2cSJim Jagielski WORD buffer_size ); 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMGetDMS)( LPCSTR lpszAppId, 112*b1cdbd2cSJim Jagielski LPSTR lpszDMSId ); 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSetDMS)( LPCSTR lpszAppId, 115*b1cdbd2cSJim Jagielski LPCSTR lpszDMSId ); 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMQueryExecute)( ODMHANDLE odmHandle, 118*b1cdbd2cSJim Jagielski LPCSTR lpszQuery, 119*b1cdbd2cSJim Jagielski DWORD flags, 120*b1cdbd2cSJim Jagielski LPCSTR lpszDMSList, 121*b1cdbd2cSJim Jagielski LPSTR queryId ); 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMQueryGetResults)(ODMHANDLE odmHandle, 124*b1cdbd2cSJim Jagielski LPCSTR queryId, 125*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 126*b1cdbd2cSJim Jagielski LPSTR lpszDocName, 127*b1cdbd2cSJim Jagielski WORD docNameLen, 128*b1cdbd2cSJim Jagielski WORD *docCount ); 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMQueryClose)( ODMHANDLE odmHandle, 131*b1cdbd2cSJim Jagielski LPCSTR queryId ); 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski /* ODMA 2.0 Enhancements */ 134*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMCloseDocEx)( ODMHANDLE odmHandle, 135*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 136*b1cdbd2cSJim Jagielski LPDWORD pdwFlags, 137*b1cdbd2cSJim Jagielski DWORD activeTime, 138*b1cdbd2cSJim Jagielski DWORD pagesPrinted, 139*b1cdbd2cSJim Jagielski LPVOID sessionData, 140*b1cdbd2cSJim Jagielski WORD dataLen); 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSaveAsEx)( ODMHANDLE odmHandle, 143*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 144*b1cdbd2cSJim Jagielski LPSTR lpszNewDocId, 145*b1cdbd2cSJim Jagielski LPSTR lpszFormat, 146*b1cdbd2cSJim Jagielski ODMSAVEASCALLBACK pcbCallBack, 147*b1cdbd2cSJim Jagielski LPVOID pInstanceData, 148*b1cdbd2cSJim Jagielski LPDWORD pdwFlags); 149*b1cdbd2cSJim Jagielski 150*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSaveDocEx)( ODMHANDLE odmHandle, 151*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 152*b1cdbd2cSJim Jagielski LPSTR lpszNewDocId, 153*b1cdbd2cSJim Jagielski LPDWORD pdwFlags); 154*b1cdbd2cSJim Jagielski 155*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSelectDocEx)( ODMHANDLE odmHandle, 156*b1cdbd2cSJim Jagielski LPSTR lpszDocIds, 157*b1cdbd2cSJim Jagielski LPWORD pwDocIdsLen, 158*b1cdbd2cSJim Jagielski LPWORD pwDocCount, 159*b1cdbd2cSJim Jagielski LPDWORD pdwFlags, 160*b1cdbd2cSJim Jagielski LPSTR lpszFormatFilter); 161*b1cdbd2cSJim Jagielski 162*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMQueryCapability)(ODMHANDLE odmHandle, 163*b1cdbd2cSJim Jagielski LPCSTR lpszDmsId, 164*b1cdbd2cSJim Jagielski DWORD function, 165*b1cdbd2cSJim Jagielski DWORD item, 166*b1cdbd2cSJim Jagielski DWORD flags); 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSetDocEvent)( ODMHANDLE odmHandle, 169*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 170*b1cdbd2cSJim Jagielski DWORD flags, 171*b1cdbd2cSJim Jagielski DWORD event, 172*b1cdbd2cSJim Jagielski LPVOID lpData, 173*b1cdbd2cSJim Jagielski DWORD dwDataLen, 174*b1cdbd2cSJim Jagielski LPSTR lpszComment); 175*b1cdbd2cSJim Jagielski 176*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMGetAlternateContent)(ODMHANDLE odmHandle, 177*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 178*b1cdbd2cSJim Jagielski LPDWORD pdwFlags, 179*b1cdbd2cSJim Jagielski LPSTR lpszFormat, 180*b1cdbd2cSJim Jagielski LPSTR lpszDocLocation); 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSetAlternateContent)(ODMHANDLE odmHandle, 183*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 184*b1cdbd2cSJim Jagielski LPDWORD pdwFlags, 185*b1cdbd2cSJim Jagielski LPSTR lpszFormat, 186*b1cdbd2cSJim Jagielski LPSTR lpszDocLocation); 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMGetDocRelation)( ODMHANDLE odmHandle, 189*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 190*b1cdbd2cSJim Jagielski LPDWORD pdwFlags, 191*b1cdbd2cSJim Jagielski LPSTR lpszLinkedId, 192*b1cdbd2cSJim Jagielski LPSTR lpszFormat, 193*b1cdbd2cSJim Jagielski LPSTR lpszPreviousId); 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski typedef ODMSTATUS (WINAPI *TODMSetDocRelation)( ODMHANDLE odmHandle, 196*b1cdbd2cSJim Jagielski LPSTR lpszDocId, 197*b1cdbd2cSJim Jagielski LPDWORD pdwFlags, 198*b1cdbd2cSJim Jagielski LPSTR lpszLinkedId, 199*b1cdbd2cSJim Jagielski LPSTR lpszFormat, 200*b1cdbd2cSJim Jagielski LPSTR lpszPreviousId); 201*b1cdbd2cSJim Jagielski 202*b1cdbd2cSJim Jagielski // now we define some macros 203*b1cdbd2cSJim Jagielski 204*b1cdbd2cSJim Jagielski #define NODMRegisterApp(a,b,c,d,e) (*(pODMRegisterApp))(a,b,c,d,e) 205*b1cdbd2cSJim Jagielski #define NODMUnRegisterApp(a) (*(pODMUnRegisterApp))(a) 206*b1cdbd2cSJim Jagielski #define NODMSelectDoc(a,b,c) (*(pODMSelectDoc))(a,b,c) 207*b1cdbd2cSJim Jagielski #define NODMOpenDoc(a,b,c,d) (*(pODMOpenDoc))(a,b,c,d) 208*b1cdbd2cSJim Jagielski #define NODMSaveDoc(a,b,c) (*(pODMSaveDoc))(a,b,c) 209*b1cdbd2cSJim Jagielski #define NODMCloseDoc(a,b,c,d,e,f) (*(pODMCloseDoc))(a,b,c,d,e,f) 210*b1cdbd2cSJim Jagielski #define NODMNewDoc(a,b,c,d,e) (*(pODMNewDoc))(a,b,c,d,e) 211*b1cdbd2cSJim Jagielski #define NODMSaveAs(a,b,c,d,e,f) (*(pODMSaveAs))(a,b,c,d,e,f) 212*b1cdbd2cSJim Jagielski #define NODMActivate(a,b,c) (*(pODMActivate))(a,b,c) 213*b1cdbd2cSJim Jagielski #define NODMGetDocInfo(a,b,c,d,e) (*(pODMGetDocInfo))(a,b,c,d,e) 214*b1cdbd2cSJim Jagielski #define NODMSetDocInfo(a,b,c,d) (*(pODMSetDocInfo))(a,b,c,d) 215*b1cdbd2cSJim Jagielski #define NODMGetDMSInfo(a,b,c,d) (*(pODMGetDMSInfo))(a,b,c,d) 216*b1cdbd2cSJim Jagielski #define NODMGetDMSCount() (*(pODMGetDMSCount))() 217*b1cdbd2cSJim Jagielski #define NODMGetDMSList(a,b) (*(pODMGetDMSList))(a,b) 218*b1cdbd2cSJim Jagielski #define NODMGetDMS(a,b) (*(pODMGetDMS))(a,b) 219*b1cdbd2cSJim Jagielski #define NODMSetDMS(a,b) (*(pODMSetDMS))(a,b) 220*b1cdbd2cSJim Jagielski #define NODMQueryExecute(a,b,c,d,e) (*(pODMQueryExecute))(a,b,c,d,e) 221*b1cdbd2cSJim Jagielski #define NODMQueryGetResults(a,b,c,d,e,f) (*(pODMQueryGetResults))(a,b,c,d,e,f) 222*b1cdbd2cSJim Jagielski #define NODMQueryClose(a,b) (*(pODMQueryClose))(a,b) 223*b1cdbd2cSJim Jagielski #define NODMCloseDocEx(a,b,c,d,e,f,g) (*(pODMCloseDocEx))(a,b,c,d,e,f,g) 224*b1cdbd2cSJim Jagielski #define NODMSaveAsEx(a,b,c,d,e,f,g) (*(pODMSaveAsEx))(a,b,c,d,e,f,g) 225*b1cdbd2cSJim Jagielski #define NODMSaveDocEx(a,b,c,d) (*(pODMSaveDocEx))(a,b,c,d) 226*b1cdbd2cSJim Jagielski #define NODMSelectDocEx(a,b,c,d,e,f) (*(pODMSelectDocEx))(a,b,c,d,e,f) 227*b1cdbd2cSJim Jagielski #define NODMQueryCapability(a,b,c,d,e) (*(pODMQueryCapability))(a,b,c,d,e) 228*b1cdbd2cSJim Jagielski #define NODMSetDocEvent(a,b,c,d,e,f,g) (*(pODMSetDocEvent))(a,b,c,d,e,f,g) 229*b1cdbd2cSJim Jagielski #define NODMGetAlternateContent(a,b,c,d,e) (*(pODMGetAlternateContent))(a,b,c,d,e) 230*b1cdbd2cSJim Jagielski #define NODMSetAlternateContent(a,b,c,d,e) (*(pODMSetAlternateContent))(a,b,c,d,e) 231*b1cdbd2cSJim Jagielski #define NODMGetDocRelation(a,b,c,d,e,f) (*(pODMGetDocRelation))(a,b,c,d,e,f) 232*b1cdbd2cSJim Jagielski #define NODMSetDocRelation(a,b,c,d,e,f) (*(pODMSetDocRelation))(a,b,c,d,e,f) 233*b1cdbd2cSJim Jagielski 234*b1cdbd2cSJim Jagielski sal_Bool LoadLibrary(); 235*b1cdbd2cSJim Jagielski 236*b1cdbd2cSJim Jagielski extern TODMRegisterApp pODMRegisterApp; 237*b1cdbd2cSJim Jagielski extern TODMUnRegisterApp pODMUnRegisterApp; 238*b1cdbd2cSJim Jagielski extern TODMSelectDoc pODMSelectDoc; 239*b1cdbd2cSJim Jagielski extern TODMOpenDoc pODMOpenDoc; 240*b1cdbd2cSJim Jagielski extern TODMSaveDoc pODMSaveDoc; 241*b1cdbd2cSJim Jagielski extern TODMCloseDoc pODMCloseDoc; 242*b1cdbd2cSJim Jagielski extern TODMNewDoc pODMNewDoc; 243*b1cdbd2cSJim Jagielski extern TODMSaveAs pODMSaveAs; 244*b1cdbd2cSJim Jagielski extern TODMActivate pODMActivate; 245*b1cdbd2cSJim Jagielski extern TODMGetDocInfo pODMGetDocInfo; 246*b1cdbd2cSJim Jagielski extern TODMSetDocInfo pODMSetDocInfo; 247*b1cdbd2cSJim Jagielski extern TODMGetDMSInfo pODMGetDMSInfo; 248*b1cdbd2cSJim Jagielski extern TODMGetDMSCount pODMGetDMSCount; 249*b1cdbd2cSJim Jagielski extern TODMGetDMSList pODMGetDMSList; 250*b1cdbd2cSJim Jagielski extern TODMGetDMS pODMGetDMS; 251*b1cdbd2cSJim Jagielski extern TODMSetDMS pODMSetDMS; 252*b1cdbd2cSJim Jagielski extern TODMQueryExecute pODMQueryExecute; 253*b1cdbd2cSJim Jagielski extern TODMQueryGetResults pODMQueryGetResults; 254*b1cdbd2cSJim Jagielski extern TODMQueryClose pODMQueryClose; 255*b1cdbd2cSJim Jagielski extern TODMCloseDocEx pODMCloseDocEx; 256*b1cdbd2cSJim Jagielski extern TODMSaveAsEx pODMSaveAsEx; 257*b1cdbd2cSJim Jagielski extern TODMSaveDocEx pODMSaveDocEx; 258*b1cdbd2cSJim Jagielski extern TODMSelectDocEx pODMSelectDocEx; 259*b1cdbd2cSJim Jagielski extern TODMQueryCapability pODMQueryCapability; 260*b1cdbd2cSJim Jagielski extern TODMSetDocEvent pODMSetDocEvent; 261*b1cdbd2cSJim Jagielski extern TODMGetAlternateContent pODMGetAlternateContent; 262*b1cdbd2cSJim Jagielski extern TODMSetAlternateContent pODMSetAlternateContent; 263*b1cdbd2cSJim Jagielski extern TODMGetDocRelation pODMGetDocRelation; 264*b1cdbd2cSJim Jagielski extern TODMSetDocRelation pODMSetDocRelation; 265*b1cdbd2cSJim Jagielski 266*b1cdbd2cSJim Jagielski } 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski #endif // ODMA_LIB_HXX 269