00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _RTL_TEXTCVT_H
00021 #define _RTL_TEXTCVT_H
00022
00023 #include "sal/config.h"
00024
00025 #include "rtl/textenc.h"
00026 #include "sal/saldllapi.h"
00027 #include "sal/types.h"
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00033
00034
00035
00038 typedef void* rtl_TextToUnicodeConverter;
00039
00042 typedef void* rtl_TextToUnicodeContext;
00043
00046 SAL_DLLPUBLIC rtl_TextToUnicodeConverter SAL_CALL rtl_createTextToUnicodeConverter( rtl_TextEncoding eTextEncoding );
00047
00050 SAL_DLLPUBLIC void SAL_CALL rtl_destroyTextToUnicodeConverter( rtl_TextToUnicodeConverter hConverter );
00051
00054 SAL_DLLPUBLIC rtl_TextToUnicodeContext SAL_CALL rtl_createTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter );
00055
00058 SAL_DLLPUBLIC void SAL_CALL rtl_destroyTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter, rtl_TextToUnicodeContext hContext );
00059
00062 SAL_DLLPUBLIC void SAL_CALL rtl_resetTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter, rtl_TextToUnicodeContext hContext );
00063
00064 #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR ((sal_uInt32)0x0001)
00065 #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE ((sal_uInt32)0x0002)
00066 #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE ((sal_uInt32)0x0003)
00067 #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_DEFAULT ((sal_uInt32)0x0004)
00068 #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR ((sal_uInt32)0x0010)
00069 #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_IGNORE ((sal_uInt32)0x0020)
00070 #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT ((sal_uInt32)0x0030)
00071 #define RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR ((sal_uInt32)0x0100)
00072 #define RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE ((sal_uInt32)0x0200)
00073 #define RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT ((sal_uInt32)0x0300)
00074 #define RTL_TEXTTOUNICODE_FLAGS_FLUSH ((sal_uInt32)0x8000)
00075 #define RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE 0x10000
00076
00077
00078
00079 #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK ((sal_uInt32)0x000F)
00080 #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK ((sal_uInt32)0x00F0)
00081 #define RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK ((sal_uInt32)0x0F00)
00082
00083 #define RTL_TEXTTOUNICODE_INFO_ERROR ((sal_uInt32)0x0001)
00084 #define RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL ((sal_uInt32)0x0002)
00085 #define RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL ((sal_uInt32)0x0004)
00086 #define RTL_TEXTTOUNICODE_INFO_UNDEFINED ((sal_uInt32)0x0008)
00087 #define RTL_TEXTTOUNICODE_INFO_MBUNDEFINED ((sal_uInt32)0x0010)
00088 #define RTL_TEXTTOUNICODE_INFO_INVALID ((sal_uInt32)0x0020)
00089
00092 SAL_DLLPUBLIC sal_Size SAL_CALL rtl_convertTextToUnicode(
00093 rtl_TextToUnicodeConverter hConverter,
00094 rtl_TextToUnicodeContext hContext,
00095 const sal_Char* pSrcBuf, sal_Size nSrcBytes,
00096 sal_Unicode* pDestBuf, sal_Size nDestChars,
00097 sal_uInt32 nFlags, sal_uInt32* pInfo,
00098 sal_Size* pSrcCvtBytes );
00099
00102 typedef void* rtl_UnicodeToTextConverter;
00103
00106 typedef void* rtl_UnicodeToTextContext;
00107
00110 SAL_DLLPUBLIC rtl_UnicodeToTextConverter SAL_CALL rtl_createUnicodeToTextConverter( rtl_TextEncoding eTextEncoding );
00111
00114 SAL_DLLPUBLIC void SAL_CALL rtl_destroyUnicodeToTextConverter( rtl_UnicodeToTextConverter hConverter );
00115
00118 SAL_DLLPUBLIC rtl_UnicodeToTextContext SAL_CALL rtl_createUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter );
00119
00122 SAL_DLLPUBLIC void SAL_CALL rtl_destroyUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter, rtl_UnicodeToTextContext hContext );
00123
00126 SAL_DLLPUBLIC void SAL_CALL rtl_resetUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter, rtl_UnicodeToTextContext hContext );
00127
00128 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR ((sal_uInt32)0x0001)
00129 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE ((sal_uInt32)0x0002)
00130 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_0 ((sal_uInt32)0x0003)
00131 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK ((sal_uInt32)0x0004)
00132 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_UNDERLINE ((sal_uInt32)0x0005)
00133 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT ((sal_uInt32)0x0006)
00134 #define RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR ((sal_uInt32)0x0010)
00135 #define RTL_UNICODETOTEXT_FLAGS_INVALID_IGNORE ((sal_uInt32)0x0020)
00136 #define RTL_UNICODETOTEXT_FLAGS_INVALID_0 ((sal_uInt32)0x0030)
00137 #define RTL_UNICODETOTEXT_FLAGS_INVALID_QUESTIONMARK ((sal_uInt32)0x0040)
00138 #define RTL_UNICODETOTEXT_FLAGS_INVALID_UNDERLINE ((sal_uInt32)0x0050)
00139 #define RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT ((sal_uInt32)0x0060)
00140 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE ((sal_uInt32)0x0100)
00141 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR ((sal_uInt32)0x0200)
00142 #define RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 ((sal_uInt32)0x0400)
00143 #define RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE ((sal_uInt32)0x0800)
00144 #define RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE ((sal_uInt32)0x1000)
00145 #define RTL_UNICODETOTEXT_FLAGS_PRIVATE_IGNORE ((sal_uInt32)0x2000)
00146 #define RTL_UNICODETOTEXT_FLAGS_NOCOMPOSITE ((sal_uInt32)0x4000)
00147 #define RTL_UNICODETOTEXT_FLAGS_FLUSH ((sal_uInt32)0x8000)
00148 #define RTL_UNICODETOTEXT_FLAGS_GLOBAL_SIGNATURE 0x10000
00149
00150
00151
00152 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK ((sal_uInt32)0x000F)
00153 #define RTL_UNICODETOTEXT_FLAGS_INVALID_MASK ((sal_uInt32)0x00F0)
00154
00155 #define RTL_UNICODETOTEXT_INFO_ERROR ((sal_uInt32)0x0001)
00156 #define RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL ((sal_uInt32)0x0002)
00157 #define RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL ((sal_uInt32)0x0004)
00158 #define RTL_UNICODETOTEXT_INFO_UNDEFINED ((sal_uInt32)0x0008)
00159 #define RTL_UNICODETOTEXT_INFO_INVALID ((sal_uInt32)0x0010)
00160
00163 SAL_DLLPUBLIC sal_Size SAL_CALL rtl_convertUnicodeToText(
00164 rtl_UnicodeToTextConverter hConverter,
00165 rtl_UnicodeToTextContext hContext,
00166 const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
00167 sal_Char* pDestBuf, sal_Size nDestBytes,
00168 sal_uInt32 nFlags, sal_uInt32* pInfo,
00169 sal_Size* pSrcCvtChars );
00170
00171 #ifdef __cplusplus
00172 }
00173 #endif
00174
00175 #endif
00176
00177