windows-nt/Source/XPSP1/NT/shell/ext/mlang/lcdetect.h
2020-09-26 16:20:57 +08:00

49 lines
1.7 KiB
C

/*
* Automatic language and codepage detection
*
* Bob Powell, 2/97
* Copyright (C) 1996, 1997, Microsoft Corp. All rights reserved.
*/
#if !defined( __LCDETECT_H__ )
#define __LCDETECT_H__
typedef struct LCDScore {
UINT nLangID; // Win32 primary language ID
UINT nCodePage; // Win32 code page (valid for SBCS input only!)
int nDocPercent; // % of doc in this language, 0-100
int nConfidence; // Relative confidence measure, approx 0-100
} LCDScore;
typedef struct LCDScore * PLCDScore;
typedef struct LCDConfigure {
int nMin7BitScore; // per-char score threshhold for 7-bit detection
int nMin8BitScore; // " " for 8-bit
int nMinUnicodeScore; // " " for Unicode
int nRelativeThreshhold;// relative "" as % of the top scoring doc, 0-100
int nDocPctThreshhold; // min % of doc in a language to score it, 0-100
int nChunkSize; // # of chars to process at a time
} LCDConfigure;
typedef struct LCDConfigure *PLCDConfigure;
typedef struct LCDConfigure const *PCLCDConfigure;
// Pass in rough body text in pStr, length nChars
// Pass in preallocated LCDScore array in paScores, array size in *pnScores.
// On return, *pnScores is set to number of elements containing result data.
//
// If pLCDC is NULL, the default configuration is used.
// To detect with a custom configuration, call LCD_GetConfig() to fill in
// a copy of an LCDConfigure, and then pas it to LCD_Detect().
extern "C" DWORD WINAPI LCD_Detect (LPCSTR pStr, int nChars,
PLCDScore paScores, int *pnScores,
PCLCDConfigure pLCDC);
extern "C" DWORD WINAPI LCD_DetectW (LPCWSTR pwStr, int nChars,
PLCDScore paScores, int *pnScores,
PCLCDConfigure pLCDC);
extern "C" void WINAPI LCD_GetConfig (PLCDConfigure pLCDC);
#endif