1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef __INC_ELSCORE__ 7 #define __INC_ELSCORE__ 8 9 #include <objbase.h> 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 #ifndef ELSCOREAPI 16 #define ELSCOREAPI DECLSPEC_IMPORT 17 #endif 18 19 #ifndef CALLBACK 20 #define CALLBACK WINAPI 21 #endif 22 23 /* MAPPING_ENUM_OPTIONS.ServiceType */ 24 #define ALL_SERVICE_TYPES 0 25 #define HIGHLEVEL_SERVICE_TYPES 1 26 #define LOWLEVEL_SERVICE_TYPES 2 27 28 /* MAPPING_ENUM_OPTIONS.OnlineService */ 29 #define ALL_SERVICES 0 30 #define ONLINE_SERVICES 1 31 #define OFFLINE_SERVICES 2 32 33 typedef struct _MAPPING_DATA_RANGE { 34 DWORD dwStartIndex; 35 DWORD dwEndIndex; 36 LPWSTR pszDescription; 37 DWORD dwDescriptionLength; 38 LPVOID pData; 39 DWORD dwDataSize; 40 LPWSTR pszContentType; 41 LPWSTR *prgActionIds; 42 DWORD dwActionsCount; 43 LPWSTR *prgActionDisplayNames; 44 } MAPPING_DATA_RANGE, *PMAPPING_DATA_RANGE; 45 46 typedef struct _MAPPING_ENUM_OPTIONS { 47 size_t Size; 48 LPWSTR pszCategory; 49 LPWSTR pszInputLanguage; 50 LPWSTR pszOutputLanguage; 51 LPWSTR pszInputScript; 52 LPWSTR pszOutputScript; 53 LPWSTR pszInputContentType; 54 LPWSTR pszOutputContentType; 55 GUID *pGuid; 56 unsigned OnlineService :2; 57 unsigned ServiceType :2; 58 } MAPPING_ENUM_OPTIONS, *PMAPPING_ENUM_OPTIONS; 59 60 typedef struct _MAPPING_PROPERTY_BAG { 61 size_t Size; 62 PMAPPING_DATA_RANGE prgResultRanges; 63 DWORD dwRangesCount; 64 LPVOID pServiceData; 65 DWORD dwServiceDataSize; 66 LPVOID pCallerData; 67 DWORD dwCallerDataSize; 68 LPVOID pContext; 69 } MAPPING_PROPERTY_BAG, *PMAPPING_PROPERTY_BAG; 70 71 typedef void (CALLBACK *PFN_MAPPINGCALLBACKPROC)( 72 MAPPING_PROPERTY_BAG *pBag, 73 LPVOID data, 74 DWORD dwDataSize, 75 HRESULT Result 76 ); 77 78 typedef struct _MAPPING_OPTIONS { 79 size_t Size; 80 LPWSTR pszInputLanguage; 81 LPWSTR pszOutputLanguage; 82 LPWSTR pszInputScript; 83 LPWSTR pszOutputScript; 84 LPWSTR pszInputContentType; 85 LPWSTR pszOutputContentType; 86 LPWSTR pszUILanguage; 87 PFN_MAPPINGCALLBACKPROC pfnRecognizeCallback; 88 LPVOID pRecognizeCallerData; 89 DWORD dwRecognizeCallerDataSize; 90 PFN_MAPPINGCALLBACKPROC pfnActionCallback; 91 LPVOID pActionCallerData; 92 DWORD dwActionCallerDataSize; 93 DWORD dwServiceFlag; 94 unsigned GetActionDisplayName :1; 95 } MAPPING_OPTIONS, *PMAPPING_OPTIONS; 96 97 typedef struct _MAPPING_SERVICE_INFO { 98 size_t Size; 99 LPWSTR pszCopyright; 100 WORD wMajorVersion; 101 WORD wMinorVersion; 102 WORD wBuildVersion; 103 WORD wStepVersion; 104 DWORD dwInputContentTypesCount; 105 LPWSTR *prgInputContentTypes; 106 DWORD dwOutputContentTypesCount; 107 LPWSTR *prgOutputContentTypes; 108 DWORD dwInputLanguagesCount; 109 LPWSTR *prgInputLanguages; 110 DWORD dwOutputLanguagesCount; 111 LPWSTR *prgOutputLanguages; 112 DWORD dwInputScriptsCount; 113 LPWSTR *prgInputScripts; 114 DWORD dwOutputScriptsCount; 115 LPWSTR *prgOutputScripts; 116 GUID guid; 117 LPWSTR pszCategory; 118 LPWSTR pszDescription; 119 DWORD dwPrivateDataSize; 120 LPVOID pPrivateData; 121 LPVOID pContext; 122 unsigned IsOneToOneLanguageMapping :1; 123 unsigned HasSubservices :1; 124 unsigned OnlineOnly :1; 125 unsigned ServiceType :2; 126 } MAPPING_SERVICE_INFO, *PMAPPING_SERVICE_INFO; 127 128 ELSCOREAPI HRESULT WINAPI MappingRecognizeText( 129 PMAPPING_SERVICE_INFO pServiceInfo, 130 LPCWSTR pszText, 131 DWORD dwLength, 132 DWORD dwIndex, 133 PMAPPING_OPTIONS pOptions, 134 PMAPPING_PROPERTY_BAG pBag 135 ); 136 137 ELSCOREAPI HRESULT WINAPI MappingDoAction( 138 PMAPPING_PROPERTY_BAG pBag, 139 DWORD dwRangeIndex, 140 LPCWSTR pszActionId 141 ); 142 143 ELSCOREAPI HRESULT WINAPI MappingFreePropertyBag( 144 PMAPPING_PROPERTY_BAG pBag 145 ); 146 147 ELSCOREAPI HRESULT WINAPI MappingFreeServices( 148 PMAPPING_SERVICE_INFO pServiceInfo 149 ); 150 151 ELSCOREAPI HRESULT WINAPI MappingGetServices( 152 PMAPPING_ENUM_OPTIONS pOptions, 153 PMAPPING_SERVICE_INFO *prgServices, 154 DWORD *pdwServicesCount 155 ); 156 157 #ifdef __cplusplus 158 } 159 #endif 160 161 #endif /*__INC_ELSCORE__*/ 162