UDK 3.2.7 C/C++ API Reference
|
00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 00002 /************************************************************************* 00003 * 00004 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 00005 * 00006 * Copyright 2000, 2010 Oracle and/or its affiliates. 00007 * 00008 * OpenOffice.org - a multi-platform office productivity suite 00009 * 00010 * This file is part of OpenOffice.org. 00011 * 00012 * OpenOffice.org is free software: you can redistribute it and/or modify 00013 * it under the terms of the GNU Lesser General Public License version 3 00014 * only, as published by the Free Software Foundation. 00015 * 00016 * OpenOffice.org is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 * GNU Lesser General Public License version 3 for more details 00020 * (a copy is included in the LICENSE file that accompanied this code). 00021 * 00022 * You should have received a copy of the GNU Lesser General Public License 00023 * version 3 along with OpenOffice.org. If not, see 00024 * <http://www.openoffice.org/license.html> 00025 * for a copy of the LGPLv3 License. 00026 * 00027 ************************************************************************/ 00028 00029 #ifndef _RTL_TEXTCVT_H 00030 #define _RTL_TEXTCVT_H 00031 00032 #ifndef _SAL_TYPES_H 00033 #include <sal/types.h> 00034 #endif 00035 #include <rtl/textenc.h> 00036 00037 #ifdef __cplusplus 00038 extern "C" { 00039 #endif 00040 00041 /* Documentation about this file can be found at 00042 <http://udk.openoffice.org/cpp/man/spec/textconversion.html>. */ 00043 00046 typedef void* rtl_TextToUnicodeConverter; 00047 00050 typedef void* rtl_TextToUnicodeContext; 00051 00054 SAL_DLLPUBLIC rtl_TextToUnicodeConverter SAL_CALL rtl_createTextToUnicodeConverter( rtl_TextEncoding eTextEncoding ); 00055 00058 SAL_DLLPUBLIC void SAL_CALL rtl_destroyTextToUnicodeConverter( rtl_TextToUnicodeConverter hConverter ); 00059 00062 SAL_DLLPUBLIC rtl_TextToUnicodeContext SAL_CALL rtl_createTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter ); 00063 00066 SAL_DLLPUBLIC void SAL_CALL rtl_destroyTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter, rtl_TextToUnicodeContext hContext ); 00067 00070 SAL_DLLPUBLIC void SAL_CALL rtl_resetTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter, rtl_TextToUnicodeContext hContext ); 00071 00072 #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR ((sal_uInt32)0x0001) 00073 #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE ((sal_uInt32)0x0002) 00074 #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE ((sal_uInt32)0x0003) 00075 #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_DEFAULT ((sal_uInt32)0x0004) 00076 #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR ((sal_uInt32)0x0010) 00077 #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_IGNORE ((sal_uInt32)0x0020) 00078 #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT ((sal_uInt32)0x0030) 00079 #define RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR ((sal_uInt32)0x0100) 00080 #define RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE ((sal_uInt32)0x0200) 00081 #define RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT ((sal_uInt32)0x0300) 00082 #define RTL_TEXTTOUNICODE_FLAGS_FLUSH ((sal_uInt32)0x8000) 00083 #define RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE 0x10000 00084 /* Accept any global document signatures (for example, in UTF-8, a leading 00085 EF BB BF encoding the Byte Order Mark U+FEFF) */ 00086 00087 #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK ((sal_uInt32)0x000F) 00088 #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK ((sal_uInt32)0x00F0) 00089 #define RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK ((sal_uInt32)0x0F00) 00090 00091 #define RTL_TEXTTOUNICODE_INFO_ERROR ((sal_uInt32)0x0001) 00092 #define RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL ((sal_uInt32)0x0002) 00093 #define RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL ((sal_uInt32)0x0004) 00094 #define RTL_TEXTTOUNICODE_INFO_UNDEFINED ((sal_uInt32)0x0008) 00095 #define RTL_TEXTTOUNICODE_INFO_MBUNDEFINED ((sal_uInt32)0x0010) 00096 #define RTL_TEXTTOUNICODE_INFO_INVALID ((sal_uInt32)0x0020) 00097 00100 SAL_DLLPUBLIC sal_Size SAL_CALL rtl_convertTextToUnicode( 00101 rtl_TextToUnicodeConverter hConverter, 00102 rtl_TextToUnicodeContext hContext, 00103 const sal_Char* pSrcBuf, sal_Size nSrcBytes, 00104 sal_Unicode* pDestBuf, sal_Size nDestChars, 00105 sal_uInt32 nFlags, sal_uInt32* pInfo, 00106 sal_Size* pSrcCvtBytes ); 00107 00110 typedef void* rtl_UnicodeToTextConverter; 00111 00114 typedef void* rtl_UnicodeToTextContext; 00115 00118 SAL_DLLPUBLIC rtl_UnicodeToTextConverter SAL_CALL rtl_createUnicodeToTextConverter( rtl_TextEncoding eTextEncoding ); 00119 00122 SAL_DLLPUBLIC void SAL_CALL rtl_destroyUnicodeToTextConverter( rtl_UnicodeToTextConverter hConverter ); 00123 00126 SAL_DLLPUBLIC rtl_UnicodeToTextContext SAL_CALL rtl_createUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter ); 00127 00130 SAL_DLLPUBLIC void SAL_CALL rtl_destroyUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter, rtl_UnicodeToTextContext hContext ); 00131 00134 SAL_DLLPUBLIC void SAL_CALL rtl_resetUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter, rtl_UnicodeToTextContext hContext ); 00135 00136 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR ((sal_uInt32)0x0001) 00137 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE ((sal_uInt32)0x0002) 00138 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_0 ((sal_uInt32)0x0003) 00139 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK ((sal_uInt32)0x0004) 00140 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_UNDERLINE ((sal_uInt32)0x0005) 00141 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT ((sal_uInt32)0x0006) 00142 #define RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR ((sal_uInt32)0x0010) 00143 #define RTL_UNICODETOTEXT_FLAGS_INVALID_IGNORE ((sal_uInt32)0x0020) 00144 #define RTL_UNICODETOTEXT_FLAGS_INVALID_0 ((sal_uInt32)0x0030) 00145 #define RTL_UNICODETOTEXT_FLAGS_INVALID_QUESTIONMARK ((sal_uInt32)0x0040) 00146 #define RTL_UNICODETOTEXT_FLAGS_INVALID_UNDERLINE ((sal_uInt32)0x0050) 00147 #define RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT ((sal_uInt32)0x0060) 00148 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE ((sal_uInt32)0x0100) 00149 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR ((sal_uInt32)0x0200) 00150 #define RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 ((sal_uInt32)0x0400) 00151 #define RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE ((sal_uInt32)0x0800) 00152 #define RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE ((sal_uInt32)0x1000) 00153 #define RTL_UNICODETOTEXT_FLAGS_PRIVATE_IGNORE ((sal_uInt32)0x2000) 00154 #define RTL_UNICODETOTEXT_FLAGS_NOCOMPOSITE ((sal_uInt32)0x4000) 00155 #define RTL_UNICODETOTEXT_FLAGS_FLUSH ((sal_uInt32)0x8000) 00156 #define RTL_UNICODETOTEXT_FLAGS_GLOBAL_SIGNATURE 0x10000 00157 /* Write any global document signatures (for example, in UTF-8, a leading 00158 EF BB BF encoding the Byte Order Mark U+FEFF) */ 00159 00160 #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK ((sal_uInt32)0x000F) 00161 #define RTL_UNICODETOTEXT_FLAGS_INVALID_MASK ((sal_uInt32)0x00F0) 00162 00163 #define RTL_UNICODETOTEXT_INFO_ERROR ((sal_uInt32)0x0001) 00164 #define RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL ((sal_uInt32)0x0002) 00165 #define RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL ((sal_uInt32)0x0004) 00166 #define RTL_UNICODETOTEXT_INFO_UNDEFINED ((sal_uInt32)0x0008) 00167 #define RTL_UNICODETOTEXT_INFO_INVALID ((sal_uInt32)0x0010) 00168 00171 SAL_DLLPUBLIC sal_Size SAL_CALL rtl_convertUnicodeToText( 00172 rtl_UnicodeToTextConverter hConverter, 00173 rtl_UnicodeToTextContext hContext, 00174 const sal_Unicode* pSrcBuf, sal_Size nSrcChars, 00175 sal_Char* pDestBuf, sal_Size nDestBytes, 00176 sal_uInt32 nFlags, sal_uInt32* pInfo, 00177 sal_Size* pSrcCvtChars ); 00178 00179 #ifdef __cplusplus 00180 } 00181 #endif 00182 00183 #endif /* _RTL_TEXTCVT_H */ 00184 00185 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */