master
  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
 12extern "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
 33typedef 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
 46typedef 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
 60typedef 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
 71typedef void (CALLBACK *PFN_MAPPINGCALLBACKPROC)(
 72  MAPPING_PROPERTY_BAG *pBag,
 73  LPVOID data,
 74  DWORD dwDataSize,
 75  HRESULT Result
 76);
 77
 78typedef 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
 97typedef 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
128ELSCOREAPI 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
137ELSCOREAPI HRESULT WINAPI MappingDoAction(
138  PMAPPING_PROPERTY_BAG pBag,
139  DWORD dwRangeIndex,
140  LPCWSTR pszActionId
141);
142
143ELSCOREAPI HRESULT WINAPI MappingFreePropertyBag(
144  PMAPPING_PROPERTY_BAG pBag
145);
146
147ELSCOREAPI HRESULT WINAPI MappingFreeServices(
148  PMAPPING_SERVICE_INFO pServiceInfo
149);
150
151ELSCOREAPI 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__*/