blob: 2e8530a05b19897999b1d9b3bae4bd88c565a036 [file] [log] [blame]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef __INC_ELSCORE__
#define __INC_ELSCORE__
#include <objbase.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef ELSCOREAPI
#define ELSCOREAPI DECLSPEC_IMPORT
#endif
#ifndef CALLBACK
#define CALLBACK WINAPI
#endif
/* MAPPING_ENUM_OPTIONS.ServiceType */
#define ALL_SERVICE_TYPES 0
#define HIGHLEVEL_SERVICE_TYPES 1
#define LOWLEVEL_SERVICE_TYPES 2
/* MAPPING_ENUM_OPTIONS.OnlineService */
#define ALL_SERVICES 0
#define ONLINE_SERVICES 1
#define OFFLINE_SERVICES 2
typedef struct _MAPPING_DATA_RANGE {
DWORD dwStartIndex;
DWORD dwEndIndex;
LPWSTR pszDescription;
DWORD dwDescriptionLength;
LPVOID pData;
DWORD dwDataSize;
LPWSTR pszContentType;
LPWSTR *prgActionIds;
DWORD dwActionsCount;
LPWSTR *prgActionDisplayNames;
} MAPPING_DATA_RANGE, *PMAPPING_DATA_RANGE;
typedef struct _MAPPING_ENUM_OPTIONS {
size_t Size;
LPWSTR pszCategory;
LPWSTR pszInputLanguage;
LPWSTR pszOutputLanguage;
LPWSTR pszInputScript;
LPWSTR pszOutputScript;
LPWSTR pszInputContentType;
LPWSTR pszOutputContentType;
GUID *pGuid;
unsigned OnlineService :2;
unsigned ServiceType :2;
} MAPPING_ENUM_OPTIONS, *PMAPPING_ENUM_OPTIONS;
typedef struct _MAPPING_PROPERTY_BAG {
size_t Size;
PMAPPING_DATA_RANGE prgResultRanges;
DWORD dwRangesCount;
LPVOID pServiceData;
DWORD dwServiceDataSize;
LPVOID pCallerData;
DWORD dwCallerDataSize;
LPVOID pContext;
} MAPPING_PROPERTY_BAG, *PMAPPING_PROPERTY_BAG;
typedef void (CALLBACK *PFN_MAPPINGCALLBACKPROC)(
MAPPING_PROPERTY_BAG *pBag,
LPVOID data,
DWORD dwDataSize,
HRESULT Result
);
typedef struct _MAPPING_OPTIONS {
size_t Size;
LPWSTR pszInputLanguage;
LPWSTR pszOutputLanguage;
LPWSTR pszInputScript;
LPWSTR pszOutputScript;
LPWSTR pszInputContentType;
LPWSTR pszOutputContentType;
LPWSTR pszUILanguage;
PFN_MAPPINGCALLBACKPROC pfnRecognizeCallback;
LPVOID pRecognizeCallerData;
DWORD dwRecognizeCallerDataSize;
PFN_MAPPINGCALLBACKPROC pfnActionCallback;
LPVOID pActionCallerData;
DWORD dwActionCallerDataSize;
DWORD dwServiceFlag;
unsigned GetActionDisplayName :1;
} MAPPING_OPTIONS, *PMAPPING_OPTIONS;
typedef struct _MAPPING_SERVICE_INFO {
size_t Size;
LPWSTR pszCopyright;
WORD wMajorVersion;
WORD wMinorVersion;
WORD wBuildVersion;
WORD wStepVersion;
DWORD dwInputContentTypesCount;
LPWSTR *prgInputContentTypes;
DWORD dwOutputContentTypesCount;
LPWSTR *prgOutputContentTypes;
DWORD dwInputLanguagesCount;
LPWSTR *prgInputLanguages;
DWORD dwOutputLanguagesCount;
LPWSTR *prgOutputLanguages;
DWORD dwInputScriptsCount;
LPWSTR *prgInputScripts;
DWORD dwOutputScriptsCount;
LPWSTR *prgOutputScripts;
GUID guid;
LPWSTR pszCategory;
LPWSTR pszDescription;
DWORD dwPrivateDataSize;
LPVOID pPrivateData;
LPVOID pContext;
unsigned IsOneToOneLanguageMapping :1;
unsigned HasSubservices :1;
unsigned OnlineOnly :1;
unsigned ServiceType :2;
} MAPPING_SERVICE_INFO, *PMAPPING_SERVICE_INFO;
ELSCOREAPI HRESULT WINAPI MappingRecognizeText(
PMAPPING_SERVICE_INFO pServiceInfo,
LPCWSTR pszText,
DWORD dwLength,
DWORD dwIndex,
PMAPPING_OPTIONS pOptions,
PMAPPING_PROPERTY_BAG pBag
);
ELSCOREAPI HRESULT WINAPI MappingDoAction(
PMAPPING_PROPERTY_BAG pBag,
DWORD dwRangeIndex,
LPCWSTR pszActionId
);
ELSCOREAPI HRESULT WINAPI MappingFreePropertyBag(
PMAPPING_PROPERTY_BAG pBag
);
ELSCOREAPI HRESULT WINAPI MappingFreeServices(
PMAPPING_SERVICE_INFO pServiceInfo
);
ELSCOREAPI HRESULT WINAPI MappingGetServices(
PMAPPING_ENUM_OPTIONS pOptions,
PMAPPING_SERVICE_INFO *prgServices,
DWORD *pdwServicesCount
);
#ifdef __cplusplus
}
#endif
#endif /*__INC_ELSCORE__*/