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 #ifndef ELSCOREAPI 12 #define ELSCOREAPI DECLSPEC_IMPORT 13 #endif 14 15 #ifndef CALLBACK 16 #define CALLBACK WINAPI 17 #endif 18 19 typedef struct _MAPPING_DATA_RANGE { 20 DWORD dwStartIndex; 21 DWORD dwEndIndex; 22 LPWSTR pszDescription; 23 DWORD dwDescriptionLength; 24 LPVOID pData; 25 DWORD dwDataSize; 26 LPWSTR pszContentType; 27 LPWSTR *prgActionIds; 28 DWORD dwActionsCount; 29 LPWSTR *prgActionDisplayNames; 30 } MAPPING_DATA_RANGE, *PMAPPING_DATA_RANGE; 31 32 typedef struct _MAPPING_ENUM_OPTIONS { 33 size_t Size; 34 LPWSTR pszCategory; 35 LPWSTR pszInputLanguage; 36 LPWSTR pszOutputLanguage; 37 LPWSTR pszInputScript; 38 LPWSTR pszOutputScript; 39 LPWSTR pszInputContentType; 40 LPWSTR pszOutputContentType; 41 GUID *pGuid; 42 unsigned OnlineService :2; 43 unsigned ServiceType :2; 44 } MAPPING_ENUM_OPTIONS, *PMAPPING_ENUM_OPTIONS; 45 46 typedef struct _MAPPING_PROPERTY_BAG { 47 size_t Size; 48 PMAPPING_DATA_RANGE prgResultRanges; 49 DWORD dwRangesCount; 50 LPVOID pServiceData; 51 DWORD dwServiceDataSize; 52 LPVOID pCallerData; 53 DWORD dwCallerDataSize; 54 LPVOID pContext; 55 } MAPPING_PROPERTY_BAG, *PMAPPING_PROPERTY_BAG; 56 57 typedef void (CALLBACK *PFN_MAPPINGCALLBACKPROC)( 58 MAPPING_PROPERTY_BAG *pBag, 59 LPVOID data, 60 DWORD dwDataSize, 61 HRESULT Result 62 ); 63 64 typedef struct _MAPPING_OPTIONS { 65 size_t Size; 66 LPWSTR pszInputLanguage; 67 LPWSTR pszOutputLanguage; 68 LPWSTR pszInputScript; 69 LPWSTR pszOutputScript; 70 LPWSTR pszInputContentType; 71 LPWSTR pszOutputContentType; 72 LPWSTR pszUILanguage; 73 PFN_MAPPINGCALLBACKPROC pfnRecognizeCallback; 74 LPVOID pRecognizeCallerData; 75 DWORD dwRecognizeCallerDataSize; 76 PFN_MAPPINGCALLBACKPROC pfnActionCallback; 77 LPVOID pActionCallerData; 78 DWORD dwActionCallerDataSize; 79 DWORD dwServiceFlag; 80 unsigned GetActionDisplayName :1; 81 } MAPPING_OPTIONS, *PMAPPING_OPTIONS; 82 83 typedef struct _MAPPING_SERVICE_INFO { 84 size_t Size; 85 LPWSTR pszCopyright; 86 WORD wMajorVersion; 87 WORD wMinorVersion; 88 WORD wBuildVersion; 89 WORD wStepVersion; 90 DWORD dwInputContentTypesCount; 91 LPWSTR *prgInputContentTypes; 92 DWORD dwOutputContentTypesCount; 93 LPWSTR *prgOutputContentTypes; 94 DWORD dwInputLanguagesCount; 95 LPWSTR *prgInputLanguages; 96 DWORD dwOutputLanguagesCount; 97 LPWSTR *prgOutputLanguages; 98 DWORD dwInputScriptsCount; 99 LPWSTR *prgInputScripts; 100 DWORD dwOutputScriptsCount; 101 LPWSTR *prgOutputScripts; 102 GUID guid; 103 LPWSTR pszCategory; 104 LPWSTR pszDescription; 105 DWORD dwPrivateDataSize; 106 LPVOID pPrivateData; 107 LPVOID pContext; 108 unsigned IsOneToOneLanguageMapping :1; 109 unsigned HasSubservices :1; 110 unsigned OnlineOnly :1; 111 unsigned ServiceType :2; 112 } MAPPING_SERVICE_INFO, *PMAPPING_SERVICE_INFO; 113 114 ELSCOREAPI HRESULT WINAPI MappingRecognizeText( 115 PMAPPING_SERVICE_INFO pServiceInfo, 116 LPCWSTR pszText, 117 DWORD dwLength, 118 DWORD dwIndex, 119 PMAPPING_OPTIONS pOptions, 120 PMAPPING_PROPERTY_BAG pBag 121 ); 122 123 ELSCOREAPI HRESULT WINAPI MappingDoAction( 124 PMAPPING_PROPERTY_BAG pBag, 125 DWORD dwRangeIndex, 126 LPCWSTR pszActionId 127 ); 128 129 ELSCOREAPI HRESULT WINAPI MappingFreePropertyBag( 130 PMAPPING_PROPERTY_BAG pBag 131 ); 132 133 ELSCOREAPI HRESULT WINAPI MappingFreeServices( 134 PMAPPING_SERVICE_INFO pServiceInfo 135 ); 136 137 ELSCOREAPI HRESULT WINAPI MappingGetServices( 138 PMAPPING_ENUM_OPTIONS pOptions, 139 PMAPPING_SERVICE_INFO *prgServices, 140 DWORD *pdwServicesCount 141 ); 142 143 #endif /*__INC_ELSCORE__*/ 144