Mac OS 9
TextEncodingPlugin.h
Go to the documentation of this file.
1 
19 #ifndef __TEXTENCODINGPLUGIN__
20 #define __TEXTENCODINGPLUGIN__
21 
22 #ifndef __MACTYPES__
23 #include <MacTypes.h>
24 #endif
25 
26 #ifndef __TEXTCOMMON__
27 #include <TextCommon.h>
28 #endif
29 
30 #ifndef __TEXTENCODINGCONVERTER__
31 #include <TextEncodingConverter.h>
32 #endif
33 
34 #if PRAGMA_ONCE
35 #pragma once
36 #endif
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 #if PRAGMA_IMPORT
43 #pragma import on
44 #endif
45 
46 #if PRAGMA_STRUCT_ALIGN
47 #pragma options align = mac68k
48 #elif PRAGMA_STRUCT_PACKPUSH
49 #pragma pack(push, 2)
50 #elif PRAGMA_STRUCT_PACK
51 #pragma pack(2)
52 #endif
53 
65  TextPtr textInputBuffer;
66  TextPtr textInputBufferEnd;
67  TextPtr textOutputBuffer;
68  TextPtr textOutputBufferEnd;
69 
70  TextEncodingRunPtr encodingInputBuffer;
71  TextEncodingRunPtr encodingInputBufferEnd;
72  TextEncodingRunPtr encodingOutputBuffer;
73  TextEncodingRunPtr encodingOutputBufferEnd;
74 };
77 
78  UInt8 state1;
79  UInt8 state2;
80  UInt8 state3;
81  UInt8 state4;
82 
83  UInt32 longState1;
84  UInt32 longState2;
85  UInt32 longState3;
86  UInt32 longState4;
87 };
90 
91  /* public - manipulated externally and by plugin*/
92  Ptr pluginRec;
93  TextEncoding sourceEncoding;
94  TextEncoding destEncoding;
95  UInt32 reserved1;
96  UInt32 reserved2;
97  TECBufferContextRec bufferContext;
98  /* private - manipulated only within Plugin*/
99  UInt32 contextRefCon;
100  ProcPtr conversionProc;
101  ProcPtr flushProc;
102  ProcPtr clearContextInfoProc;
103  UInt32 options1;
104  UInt32 options2;
105  TECPluginStateRec pluginState;
106 };
109  /* public - manipulated externally*/
110  Ptr pluginRec;
111  TextEncoding encoding;
112  ItemCount maxErrors;
113  ItemCount maxFeatures;
114  TextPtr textInputBuffer;
115  TextPtr textInputBufferEnd;
116  ItemCount numFeatures;
117  ItemCount numErrors;
118  /* private - manipulated only within Plugin*/
119  UInt32 contextRefCon;
120  ProcPtr sniffProc;
121  ProcPtr clearContextInfoProc;
122  TECPluginStateRec pluginState;
123 };
131 typedef CALLBACK_API_C(OSStatus, TECPluginNewEncodingConverterPtr)(
132  TECObjectRef *newEncodingConverter, TECConverterContextRec *plugContext,
133  TextEncoding inputEncoding, TextEncoding outputEncoding);
134 typedef CALLBACK_API_C(OSStatus, TECPluginClearContextInfoPtr)(
135  TECObjectRef encodingConverter, TECConverterContextRec *plugContext);
136 typedef CALLBACK_API_C(OSStatus, TECPluginConvertTextEncodingPtr)(
137  TECObjectRef encodingConverter, TECConverterContextRec *plugContext);
138 typedef CALLBACK_API_C(OSStatus, TECPluginFlushConversionPtr)(
139  TECObjectRef encodingConverter, TECConverterContextRec *plugContext);
140 typedef CALLBACK_API_C(OSStatus, TECPluginDisposeEncodingConverterPtr)(
141  TECObjectRef newEncodingConverter, TECConverterContextRec *plugContext);
142 typedef CALLBACK_API_C(OSStatus, TECPluginNewEncodingSnifferPtr)(
143  TECSnifferObjectRef *encodingSniffer, TECSnifferContextRec *snifContext,
144  TextEncoding inputEncoding);
145 typedef CALLBACK_API_C(OSStatus, TECPluginClearSnifferContextInfoPtr)(
146  TECSnifferObjectRef encodingSniffer, TECSnifferContextRec *snifContext);
147 typedef CALLBACK_API_C(OSStatus, TECPluginSniffTextEncodingPtr)(
148  TECSnifferObjectRef encodingSniffer, TECSnifferContextRec *snifContext);
149 typedef CALLBACK_API_C(OSStatus, TECPluginDisposeEncodingSnifferPtr)(
150  TECSnifferObjectRef encodingSniffer, TECSnifferContextRec *snifContext);
151 typedef CALLBACK_API_C(OSStatus, TECPluginGetCountAvailableTextEncodingsPtr)(
152  TextEncoding *availableEncodings, ItemCount maxAvailableEncodings,
153  ItemCount *actualAvailableEncodings);
154 typedef CALLBACK_API_C(OSStatus,
155  TECPluginGetCountAvailableTextEncodingPairsPtr)(
156  TECConversionInfo *availableEncodings, ItemCount maxAvailableEncodings,
157  ItemCount *actualAvailableEncodings);
158 typedef CALLBACK_API_C(OSStatus, TECPluginGetCountDestinationTextEncodingsPtr)(
159  TextEncoding inputEncoding, TextEncoding *destinationEncodings,
160  ItemCount maxDestinationEncodings, ItemCount *actualDestinationEncodings);
161 typedef CALLBACK_API_C(OSStatus, TECPluginGetCountSubTextEncodingsPtr)(
162  TextEncoding inputEncoding, TextEncoding subEncodings[],
163  ItemCount maxSubEncodings, ItemCount *actualSubEncodings);
164 typedef CALLBACK_API_C(OSStatus, TECPluginGetCountAvailableSniffersPtr)(
165  TextEncoding *availableEncodings, ItemCount maxAvailableEncodings,
166  ItemCount *actualAvailableEncodings);
167 typedef CALLBACK_API_C(OSStatus, TECPluginGetTextEncodingInternetNamePtr)(
168  TextEncoding textEncoding, Str255 encodingName);
169 typedef CALLBACK_API_C(OSStatus, TECPluginGetTextEncodingFromInternetNamePtr)(
170  TextEncoding *textEncoding, ConstStr255Param encodingName);
171 typedef CALLBACK_API_C(OSStatus, TECPluginGetCountWebEncodingsPtr)(
172  TextEncoding *availableEncodings, ItemCount maxAvailableEncodings,
173  ItemCount *actualAvailableEncodings);
174 typedef CALLBACK_API_C(OSStatus, TECPluginGetCountMailEncodingsPtr)(
175  TextEncoding *availableEncodings, ItemCount maxAvailableEncodings,
176  ItemCount *actualAvailableEncodings);
183 enum {
184  kTECPluginDispatchTableVersion1 = 0x00010000, /* 1.0 through 1.0.3 releases*/
185  kTECPluginDispatchTableVersion1_1 = 0x00010001, /* 1.1 releases*/
186  kTECPluginDispatchTableVersion1_2 = 0x00010002, /* 1.2 releases*/
187  kTECPluginDispatchTableCurrentVersion = kTECPluginDispatchTableVersion1_2
188 };
189 
191 
192  TECPluginVersion version;
193  TECPluginVersion compatibleVersion;
194  TECPluginSignature PluginID;
195 
196  TECPluginNewEncodingConverterPtr PluginNewEncodingConverter;
197  TECPluginClearContextInfoPtr PluginClearContextInfo;
198  TECPluginConvertTextEncodingPtr PluginConvertTextEncoding;
199  TECPluginFlushConversionPtr PluginFlushConversion;
200  TECPluginDisposeEncodingConverterPtr PluginDisposeEncodingConverter;
201 
202  TECPluginNewEncodingSnifferPtr PluginNewEncodingSniffer;
203  TECPluginClearSnifferContextInfoPtr PluginClearSnifferContextInfo;
204  TECPluginSniffTextEncodingPtr PluginSniffTextEncoding;
205  TECPluginDisposeEncodingSnifferPtr PluginDisposeEncodingSniffer;
206 
207  TECPluginGetCountAvailableTextEncodingsPtr
208  PluginGetCountAvailableTextEncodings;
209  TECPluginGetCountAvailableTextEncodingPairsPtr
210  PluginGetCountAvailableTextEncodingPairs;
211  TECPluginGetCountDestinationTextEncodingsPtr
212  PluginGetCountDestinationTextEncodings;
213  TECPluginGetCountSubTextEncodingsPtr PluginGetCountSubTextEncodings;
214  TECPluginGetCountAvailableSniffersPtr PluginGetCountAvailableSniffers;
215  TECPluginGetCountWebEncodingsPtr PluginGetCountWebTextEncodings;
216  TECPluginGetCountMailEncodingsPtr PluginGetCountMailTextEncodings;
217 
218  TECPluginGetTextEncodingInternetNamePtr PluginGetTextEncodingInternetName;
219  TECPluginGetTextEncodingFromInternetNamePtr
220  PluginGetTextEncodingFromInternetName;
221 };
223 
224 #if PRAGMA_STRUCT_ALIGN
225 #pragma options align = reset
226 #elif PRAGMA_STRUCT_PACKPUSH
227 #pragma pack(pop)
228 #elif PRAGMA_STRUCT_PACK
229 #pragma pack()
230 #endif
231 
232 #ifdef PRAGMA_IMPORT_OFF
233 #pragma import off
234 #elif PRAGMA_IMPORT
235 #pragma import reset
236 #endif
237 
238 #ifdef __cplusplus
239 }
240 #endif
241 
242 #endif /* __TEXTENCODINGPLUGIN__ */
Basic Macintosh data types.
TextEncoding-related types and constants, and prototypes for related functions.
Text Encoding Conversion Interfaces.
struct OpaqueTECObjectRef * TECObjectRef
Definition: TextEncodingConverter.h:64
typedef CALLBACK_API_C(OSStatus, TECPluginNewEncodingConverterPtr)(TECObjectRef *newEncodingConverter
Definition: TextEncodingPlugin.h:64
Definition: TextEncodingConverter.h:68
Definition: TextEncodingPlugin.h:89
Definition: TextEncodingPlugin.h:190
Definition: TextEncodingPlugin.h:76
Definition: TextEncodingPlugin.h:108
Definition: TextCommon.h:516