mirror of
https://github.com/reactos/reactos.git
synced 2024-11-07 15:10:53 +00:00
81 lines
2.2 KiB
C
81 lines
2.2 KiB
C
/*
|
|
* PROJECT: ReactOS NLS to TXT Converter
|
|
* LICENSE: GNU General Public License Version 2.0 or any later version
|
|
* FILE: devutils/nls2txt/precomp.h
|
|
* COPYRIGHT: Copyright 2016 Dmitry Chapyshev <dmitry@reactos.org>
|
|
*/
|
|
|
|
#ifndef __PRECOMP_H
|
|
#define __PRECOMP_H
|
|
|
|
#include <windows.h>
|
|
#include <strsafe.h>
|
|
|
|
#define MAX_STR_LEN 256
|
|
|
|
#define MAXIMUM_LEADBYTES 12
|
|
|
|
typedef struct _NLS_FILE_HEADER
|
|
{
|
|
USHORT HeaderSize;
|
|
USHORT CodePage;
|
|
USHORT MaximumCharacterSize;
|
|
USHORT DefaultChar;
|
|
USHORT UniDefaultChar;
|
|
USHORT TransDefaultChar;
|
|
USHORT TransUniDefaultChar;
|
|
UCHAR LeadByte[MAXIMUM_LEADBYTES];
|
|
} NLS_FILE_HEADER, *PNLS_FILE_HEADER;
|
|
|
|
typedef struct _CPTABLEINFO
|
|
{
|
|
USHORT CodePage;
|
|
USHORT MaximumCharacterSize; /* 1 = SBCS, 2 = DBCS */
|
|
USHORT DefaultChar; /* Default MultiByte Character for the CP->Unicode conversion */
|
|
USHORT UniDefaultChar; /* Default Unicode Character for the CP->Unicode conversion */
|
|
USHORT TransDefaultChar; /* Default MultiByte Character for the Unicode->CP conversion */
|
|
USHORT TransUniDefaultChar; /* Default Unicode Character for the Unicode->CP conversion */
|
|
USHORT DBCSCodePage;
|
|
UCHAR LeadByte[MAXIMUM_LEADBYTES];
|
|
PUSHORT MultiByteTable; /* Table for CP->Unicode conversion */
|
|
PVOID WideCharTable; /* Table for Unicode->CP conversion */
|
|
PUSHORT DBCSRanges;
|
|
PUSHORT DBCSOffsets;
|
|
} CPTABLEINFO, *PCPTABLEINFO;
|
|
|
|
int WINAPI
|
|
GetUName(IN WORD wCharCode, OUT LPWSTR lpBuf);
|
|
|
|
/* nls.c */
|
|
PUSHORT
|
|
NLS_ReadFile(const WCHAR *pszFile, PCPTABLEINFO CodePageTable);
|
|
|
|
BOOL
|
|
NLS_IsDBCSCodePage(PCPTABLEINFO CodePageTable);
|
|
|
|
BOOL
|
|
NLS_IsGlyphTablePresent(PCPTABLEINFO CodePageTable);
|
|
|
|
BOOL
|
|
NLS_IsDefaultCharForMB(PCPTABLEINFO CodePageTable, UCHAR Char);
|
|
|
|
BOOL
|
|
NLS_IsDefaultCharForUnicode(PCPTABLEINFO CodePageTable, USHORT Char);
|
|
|
|
USHORT
|
|
NLS_RecordsCountForMBTable(PCPTABLEINFO CodePageTable);
|
|
|
|
USHORT
|
|
NLS_RecordsCountForUnicodeTable(PCPTABLEINFO CodePageTable);
|
|
|
|
USHORT
|
|
NLS_RecordsCountForGlyphTable(PCPTABLEINFO CodePageTable);
|
|
|
|
USHORT
|
|
NLS_RecordsCountForDBCSTable(PCPTABLEINFO CodePageTable, UCHAR LeadByte);
|
|
|
|
/* bestfit.c */
|
|
BOOL
|
|
BestFit_FromNLS(const WCHAR *pszNLSFile, const WCHAR *pszBestFitFile);
|
|
|
|
#endif
|