1 | /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
2 | /* |
3 | * This file is part of the LibreOffice project. |
4 | * |
5 | * This Source Code Form is subject to the terms of the Mozilla Public |
6 | * License, v. 2.0. If a copy of the MPL was not distributed with this |
7 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
8 | * |
9 | * This file incorporates work covered by the following license notice: |
10 | * |
11 | * Licensed to the Apache Software Foundation (ASF) under one or more |
12 | * contributor license agreements. See the NOTICE file distributed |
13 | * with this work for additional information regarding copyright |
14 | * ownership. The ASF licenses this file to you under the Apache |
15 | * License, Version 2.0 (the "License"); you may not use this file |
16 | * except in compliance with the License. You may obtain a copy of |
17 | * the License at http://www.apache.org/licenses/LICENSE-2.0 . |
18 | */ |
19 | |
20 | #ifndef INCLUDED_RTL_TEXTCVT_H |
21 | #define INCLUDED_RTL_TEXTCVT_H |
22 | |
23 | #include <sal/config.h> |
24 | |
25 | #include <rtl/textenc.h> |
26 | #include <sal/saldllapi.h> |
27 | #include <sal/types.h> |
28 | |
29 | #ifdef __cplusplus |
30 | extern "C" { |
31 | #endif |
32 | |
33 | /* Documentation about this file can be found at |
34 | <http://udk.openoffice.org/cpp/man/spec/textconversion.html>. */ |
35 | |
36 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
37 | */ |
38 | typedef void* rtl_TextToUnicodeConverter; |
39 | |
40 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
41 | */ |
42 | typedef void* rtl_TextToUnicodeContext; |
43 | |
44 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
45 | */ |
46 | SAL_DLLPUBLIC rtl_TextToUnicodeConverter SAL_CALL rtl_createTextToUnicodeConverter( rtl_TextEncoding eTextEncoding ); |
47 | |
48 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
49 | */ |
50 | SAL_DLLPUBLIC void SAL_CALL rtl_destroyTextToUnicodeConverter( rtl_TextToUnicodeConverter hConverter ); |
51 | |
52 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
53 | */ |
54 | SAL_DLLPUBLIC rtl_TextToUnicodeContext SAL_CALL rtl_createTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter ); |
55 | |
56 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
57 | */ |
58 | SAL_DLLPUBLIC void SAL_CALL rtl_destroyTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter, rtl_TextToUnicodeContext hContext ); |
59 | |
60 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
61 | */ |
62 | SAL_DLLPUBLIC void SAL_CALL rtl_resetTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter, rtl_TextToUnicodeContext hContext ); |
63 | |
64 | #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR ((sal_uInt32)0x0001) |
65 | #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE ((sal_uInt32)0x0002) |
66 | #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE ((sal_uInt32)0x0003) |
67 | #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_DEFAULT ((sal_uInt32)0x0004) |
68 | #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR ((sal_uInt32)0x0010) |
69 | #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_IGNORE ((sal_uInt32)0x0020) |
70 | #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT ((sal_uInt32)0x0030) |
71 | #define RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR ((sal_uInt32)0x0100) |
72 | #define RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE ((sal_uInt32)0x0200) |
73 | #define RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT ((sal_uInt32)0x0300) |
74 | #define RTL_TEXTTOUNICODE_FLAGS_FLUSH ((sal_uInt32)0x8000) |
75 | #define RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE 0x10000 |
76 | /* Accept any global document signatures (for example, in UTF-8, a leading |
77 | EF BB BF encoding the Byte Order Mark U+FEFF) */ |
78 | |
79 | #define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK ((sal_uInt32)0x000F) |
80 | #define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK ((sal_uInt32)0x00F0) |
81 | #define RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK ((sal_uInt32)0x0F00) |
82 | |
83 | #define RTL_TEXTTOUNICODE_INFO_ERROR ((sal_uInt32)0x0001) |
84 | #define RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL ((sal_uInt32)0x0002) |
85 | #define RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL ((sal_uInt32)0x0004) |
86 | #define RTL_TEXTTOUNICODE_INFO_UNDEFINED ((sal_uInt32)0x0008) |
87 | #define RTL_TEXTTOUNICODE_INFO_MBUNDEFINED ((sal_uInt32)0x0010) |
88 | #define RTL_TEXTTOUNICODE_INFO_INVALID ((sal_uInt32)0x0020) |
89 | |
90 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
91 | */ |
92 | SAL_DLLPUBLIC sal_Size SAL_CALL rtl_convertTextToUnicode( |
93 | rtl_TextToUnicodeConverter hConverter, |
94 | rtl_TextToUnicodeContext hContext, |
95 | const sal_Char* pSrcBuf, sal_Size nSrcBytes, |
96 | sal_Unicode* pDestBuf, sal_Size nDestChars, |
97 | sal_uInt32 nFlags, sal_uInt32* pInfo, |
98 | sal_Size* pSrcCvtBytes ); |
99 | |
100 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
101 | */ |
102 | typedef void* rtl_UnicodeToTextConverter; |
103 | |
104 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
105 | */ |
106 | typedef void* rtl_UnicodeToTextContext; |
107 | |
108 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
109 | */ |
110 | SAL_DLLPUBLIC rtl_UnicodeToTextConverter SAL_CALL rtl_createUnicodeToTextConverter( rtl_TextEncoding eTextEncoding ); |
111 | |
112 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
113 | */ |
114 | SAL_DLLPUBLIC void SAL_CALL rtl_destroyUnicodeToTextConverter( rtl_UnicodeToTextConverter hConverter ); |
115 | |
116 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
117 | */ |
118 | SAL_DLLPUBLIC rtl_UnicodeToTextContext SAL_CALL rtl_createUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter ); |
119 | |
120 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
121 | */ |
122 | SAL_DLLPUBLIC void SAL_CALL rtl_destroyUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter, rtl_UnicodeToTextContext hContext ); |
123 | |
124 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
125 | */ |
126 | SAL_DLLPUBLIC void SAL_CALL rtl_resetUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter, rtl_UnicodeToTextContext hContext ); |
127 | |
128 | #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR ((sal_uInt32)0x0001) |
129 | #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE ((sal_uInt32)0x0002) |
130 | #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_0 ((sal_uInt32)0x0003) |
131 | #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK ((sal_uInt32)0x0004) |
132 | #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_UNDERLINE ((sal_uInt32)0x0005) |
133 | #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT ((sal_uInt32)0x0006) |
134 | #define RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR ((sal_uInt32)0x0010) |
135 | #define RTL_UNICODETOTEXT_FLAGS_INVALID_IGNORE ((sal_uInt32)0x0020) |
136 | #define RTL_UNICODETOTEXT_FLAGS_INVALID_0 ((sal_uInt32)0x0030) |
137 | #define RTL_UNICODETOTEXT_FLAGS_INVALID_QUESTIONMARK ((sal_uInt32)0x0040) |
138 | #define RTL_UNICODETOTEXT_FLAGS_INVALID_UNDERLINE ((sal_uInt32)0x0050) |
139 | #define RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT ((sal_uInt32)0x0060) |
140 | #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE ((sal_uInt32)0x0100) |
141 | #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR ((sal_uInt32)0x0200) |
142 | #define RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 ((sal_uInt32)0x0400) |
143 | #define RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE ((sal_uInt32)0x0800) |
144 | #define RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE ((sal_uInt32)0x1000) |
145 | #define RTL_UNICODETOTEXT_FLAGS_PRIVATE_IGNORE ((sal_uInt32)0x2000) |
146 | #define RTL_UNICODETOTEXT_FLAGS_NOCOMPOSITE ((sal_uInt32)0x4000) |
147 | #define RTL_UNICODETOTEXT_FLAGS_FLUSH ((sal_uInt32)0x8000) |
148 | #define RTL_UNICODETOTEXT_FLAGS_GLOBAL_SIGNATURE 0x10000 |
149 | /* Write any global document signatures (for example, in UTF-8, a leading |
150 | EF BB BF encoding the Byte Order Mark U+FEFF) */ |
151 | |
152 | #define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK ((sal_uInt32)0x000F) |
153 | #define RTL_UNICODETOTEXT_FLAGS_INVALID_MASK ((sal_uInt32)0x00F0) |
154 | |
155 | #define RTL_UNICODETOTEXT_INFO_ERROR ((sal_uInt32)0x0001) |
156 | #define RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL ((sal_uInt32)0x0002) |
157 | #define RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL ((sal_uInt32)0x0004) |
158 | #define RTL_UNICODETOTEXT_INFO_UNDEFINED ((sal_uInt32)0x0008) |
159 | #define RTL_UNICODETOTEXT_INFO_INVALID ((sal_uInt32)0x0010) |
160 | |
161 | /** see http://udk.openoffice.org/cpp/man/spec/textconversion.html |
162 | */ |
163 | SAL_DLLPUBLIC sal_Size SAL_CALL rtl_convertUnicodeToText( |
164 | rtl_UnicodeToTextConverter hConverter, |
165 | rtl_UnicodeToTextContext hContext, |
166 | const sal_Unicode* pSrcBuf, sal_Size nSrcChars, |
167 | sal_Char* pDestBuf, sal_Size nDestBytes, |
168 | sal_uInt32 nFlags, sal_uInt32* pInfo, |
169 | sal_Size* pSrcCvtChars ); |
170 | |
171 | #ifdef __cplusplus |
172 | } |
173 | #endif |
174 | |
175 | #endif // INCLUDED_RTL_TEXTCVT_H |
176 | |
177 | /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |
178 | |