home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Beta / Quicktime 2.0 Beta.iso / Programming Stuff / Interfaces / Universal Interfaces / TextUtils.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-30  |  17.7 KB  |  454 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        TextUtils.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __TEXTUTILS__
  13. #define __TEXTUTILS__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. /*    #include <ConditionalMacros.h>                                */
  18. /*    #include <MixedMode.h>                                        */
  19. /*        #include <Traps.h>                                        */
  20. #endif
  21.  
  22. #ifndef __SCRIPT__
  23. #include <Script.h>
  24. /*    #include <Quickdraw.h>                                        */
  25. /*        #include <QuickdrawText.h>                                */
  26. /*            #include <IntlResources.h>                            */
  27. /*    #include <Events.h>                                            */
  28. /*        #include <OSUtils.h>                                    */
  29. #endif
  30.  
  31. #ifndef __OSUTILS__
  32. #endif
  33.  
  34.  
  35. /* New constants for System 7.0: */
  36.  
  37. enum  {
  38. /* Constants for truncWhere argument in TruncString and TruncText */
  39.     truncEnd                    = 0,                            /* Truncate at end */
  40.     truncMiddle                    = 0x4000,                        /* Truncate in middle */
  41.     smTruncEnd                    = 0,                            /* Truncate at end - obsolete */
  42.     smTruncMiddle                = 0x4000,                        /* Truncate in middle - obsolete */
  43. /* Constants for TruncString and TruncText results */
  44.     notTruncated                = 0,                            /* No truncation was necessary */
  45.     truncated                    = 1,                            /* Truncation performed */
  46.     truncErr                    = -1,                            /* General error */
  47.     smNotTruncated                = 0,                            /* No truncation was necessary - obsolete */
  48.     smTruncated                    = 1,                            /* Truncation performed    - obsolete */
  49.     smTruncErr                    = -1                            /* General error - obsolete */
  50. };
  51.  
  52. enum  {
  53.     fVNumber                    = 0,                            /* first version of NumFormatString */
  54. /* Special language code values for Language Order */
  55.     systemCurLang                = -2,                            /* current (itlbLang) lang for system script */
  56.     systemDefLang                = -3,                            /* default (table) lang for system script */
  57.     currentCurLang                = -4,                            /* current (itlbLang) lang for current script */
  58.     currentDefLang                = -5,                            /* default lang for current script */
  59.     scriptCurLang                = -6,                            /* current (itlbLang) lang for specified script */
  60.     scriptDefLang                = -7                            /* default language for a specified script */
  61. };
  62.  
  63. enum  {
  64.     iuSystemCurLang                = -2,                            /* <obsolete> current (itlbLang) lang for system script */
  65.     iuSystemDefLang                = -3,                            /* <obsolete> default (table) lang for system script */
  66.     iuCurrentCurLang            = -4,                            /* <obsolete> current (itlbLang) lang for current script */
  67.     iuCurrentDefLang            = -5,                            /* <obsolete> default lang for current script */
  68.     iuScriptCurLang                = -6                            /* <obsolete> current (itlbLang) lang for specified script */
  69. };
  70.  
  71. enum  {
  72. /* <obsolete> default language for a specified script */
  73.     iuScriptDefLang                = -7
  74. };
  75.  
  76. enum  {
  77.     smBreakWord,
  78.     smBreakChar,
  79.     smBreakOverflow
  80. };
  81.  
  82. typedef unsigned char StyledLineBreakCode;
  83.  
  84. enum  {
  85.     fPositive,
  86.     fNegative,
  87.     fZero
  88. };
  89.  
  90. typedef unsigned char FormatClass;
  91.  
  92. enum  {
  93.     fFormatOK,
  94.     fBestGuess,
  95.     fOutOfSynch,
  96.     fSpuriousChars,
  97.     fMissingDelimiter,
  98.     fExtraDecimal,
  99.     fMissingLiteral,
  100.     fExtraExp,
  101.     fFormatOverflow,
  102.     fFormStrIsNAN,
  103.     fBadPartsTable,
  104.     fExtraPercent,
  105.     fExtraSeparator,
  106.     fEmptyFormatString
  107. };
  108.  
  109. typedef unsigned char FormatResultType;
  110.  
  111. #if defined(powerc) || defined (__powerc)
  112. #pragma options align=mac68k
  113. #endif
  114. struct NumFormatString {
  115.     char                        fLength;
  116.     char                        fVersion;
  117.     char                        data[254];                        /* private data */
  118. };
  119. #if defined(powerc) || defined(__powerc)
  120. #pragma options align=reset
  121. #endif
  122.  
  123. typedef struct NumFormatString NumFormatString;
  124.  
  125. typedef struct NumFormatString NumFormatStringRec;
  126.  
  127. #if defined(powerc) || defined (__powerc)
  128. #pragma options align=mac68k
  129. #endif
  130. struct FVector {
  131.     short                        start;
  132.     short                        length;
  133. };
  134. #if defined(powerc) || defined(__powerc)
  135. #pragma options align=reset
  136. #endif
  137.  
  138. typedef struct FVector FVector;
  139.  
  140.  
  141. /* index by [fPositive..fZero] */
  142.  
  143. typedef FVector TripleInt[3];
  144.  
  145. #if defined(powerc) || defined (__powerc)
  146. #pragma options align=mac68k
  147. #endif
  148. struct ScriptRunStatus {
  149.     char                        script;
  150.     char                        variant;
  151. };
  152. #if defined(powerc) || defined(__powerc)
  153. #pragma options align=reset
  154. #endif
  155.  
  156. typedef struct ScriptRunStatus ScriptRunStatus;
  157.  
  158.  
  159. /* New types for System 7.0: */
  160.  
  161.  
  162. /* Type for truncWhere parameter in new TruncString, TruncText */
  163.  
  164. typedef short TruncCode;
  165.  
  166. enum  {
  167.     shortDate,
  168.     longDate,
  169.     abbrevDate
  170. };
  171.  
  172. typedef unsigned char DateForm;
  173.  
  174. enum  {
  175. /* String2Date status values */
  176.     fatalDateTime                = 0x8000,                        /* String2Date and String2Time mask to a fatal error */
  177.     longDateFound                = 1,                            /* String2Date mask to long date found */
  178.     leftOverChars                = 2,                            /* String2Date & Time mask to warn of left over characters */
  179.     sepNotIntlSep                = 4,                            /* String2Date & Time mask to warn of non-standard separators */
  180.     fieldOrderNotIntl            = 8,                            /* String2Date & Time mask to warn of non-standard field order */
  181.     extraneousStrings            = 16,                            /* String2Date & Time mask to warn of unparsable strings in text */
  182.     tooManySeps                    = 32,                            /* String2Date & Time mask to warn of too many separators */
  183.     sepNotConsistent            = 64,                            /* String2Date & Time mask to warn of inconsistent separators */
  184.     tokenErr                    = 0x8100,                        /* String2Date & Time mask for 'tokenizer err encountered' */
  185.     cantReadUtilities            = 0x8200,
  186.     dateTimeNotFound            = 0x8400,
  187.     dateTimeInvalid                = 0x8800
  188. };
  189.  
  190. typedef short StringToDateStatus;
  191.  
  192. typedef short String2DateStatus;
  193.  
  194. #if defined(powerc) || defined (__powerc)
  195. #pragma options align=mac68k
  196. #endif
  197. struct DateCacheRecord {
  198.     short                        hidden[256];                    /* only for temporary use */
  199. };
  200. #if defined(powerc) || defined(__powerc)
  201. #pragma options align=reset
  202. #endif
  203.  
  204. typedef struct DateCacheRecord DateCacheRecord;
  205.  
  206. typedef DateCacheRecord *DateCachePtr;
  207.  
  208. #if defined(powerc) || defined (__powerc)
  209. #pragma options align=mac68k
  210. #endif
  211. struct BreakTable {
  212.     char                        charTypes[256];
  213.     short                        tripleLength;
  214.     short                        triples[1];
  215. };
  216. #if defined(powerc) || defined(__powerc)
  217. #pragma options align=reset
  218. #endif
  219.  
  220. typedef struct BreakTable BreakTable;
  221.  
  222. typedef BreakTable *BreakTablePtr;
  223.  
  224.  
  225. /* New NBreakTable for System 7.0: */
  226.  
  227. #if defined(powerc) || defined (__powerc)
  228. #pragma options align=mac68k
  229. #endif
  230. struct NBreakTable {
  231.     signed char                    flags1;
  232.     signed char                    flags2;
  233.     short                        version;
  234.     short                        classTableOff;
  235.     short                        auxCTableOff;
  236.     short                        backwdTableOff;
  237.     short                        forwdTableOff;
  238.     short                        doBackup;
  239.     short                        length;                            /* length of NBreakTable */
  240.     char                        charTypes[256];
  241.     short                        tables[1];
  242. };
  243. #if defined(powerc) || defined(__powerc)
  244. #pragma options align=reset
  245. #endif
  246.  
  247. typedef struct NBreakTable NBreakTable;
  248.  
  249. typedef NBreakTable *NBreakTablePtr;
  250.  
  251. #ifdef __cplusplus
  252. extern "C" {
  253. #endif
  254.  
  255. extern pascal void IUDateString(long dateTime, DateForm longFlag, Str255 result)
  256.  TWOWORDINLINE(0x4267, 0xA9ED);
  257. extern void iudatestring(long dateTime, DateForm longFlag, char *result);
  258. extern pascal void IUDatePString(long dateTime, DateForm longFlag, Str255 result, Handle intlHandle)
  259.  THREEWORDINLINE(0x3F3C, 0x000E, 0xA9ED);
  260. extern void iudatepstring(long dateTime, DateForm longFlag, char *result, Handle intlHandle);
  261. extern pascal void IUTimeString(long dateTime, Boolean wantSeconds, Str255 result)
  262.  THREEWORDINLINE(0x3F3C, 0x0002, 0xA9ED);
  263. extern void iutimestring(long dateTime, Boolean wantSeconds, char *result);
  264. extern pascal void IUTimePString(long dateTime, Boolean wantSeconds, Str255 result, Handle intlHandle)
  265.  THREEWORDINLINE(0x3F3C, 0x0010, 0xA9ED);
  266. extern void iutimepstring(long dateTime, Boolean wantSeconds, char *result, Handle intlHandle);
  267. extern pascal void IULDateString(LongDateTime *dateTime, DateForm longFlag, Str255 result, Handle intlHandle)
  268.  THREEWORDINLINE(0x3F3C, 0x0014, 0xA9ED);
  269. extern void iuldatestring(LongDateTime *dateTime, DateForm longFlag, char *result, Handle intlHandle);
  270. extern pascal void IULTimeString(LongDateTime *dateTime, Boolean wantSeconds, Str255 result, Handle intlHandle)
  271.  THREEWORDINLINE(0x3F3C, 0x0016, 0xA9ED);
  272. extern void iultimestring(LongDateTime *dateTime, Boolean wantSeconds, char *result, Handle intlHandle);
  273. extern pascal OSErr InitDateCache(DateCachePtr theCache)
  274.  FOURWORDINLINE(0x2F3C, 0x8204, 0xFFF8, 0xA8B5);
  275. extern pascal StringToDateStatus StringToDate(Ptr textPtr, long textLen, DateCachePtr theCache, long *lengthUsed, LongDateRec *dateTime)
  276.  FOURWORDINLINE(0x2F3C, 0x8214, 0xFFF6, 0xA8B5);
  277. extern pascal StringToDateStatus StringToTime(Ptr textPtr, long textLen, DateCachePtr theCache, long *lengthUsed, LongDateRec *dateTime)
  278.  FOURWORDINLINE(0x2F3C, 0x8214, 0xFFF4, 0xA8B5);
  279. extern pascal Boolean EqualString(ConstStr255Param str1, ConstStr255Param str2, Boolean caseSens, Boolean diacSens);
  280. extern Boolean equalstring(char *str1, char *str2, Boolean caseSens, Boolean diacSens);
  281. extern pascal void UpperString(Str255 theString, Boolean diacSens);
  282. extern void upperstring(char *theString, Boolean diacSens);
  283. extern pascal short RelString(ConstStr255Param str1, ConstStr255Param str2, Boolean caseSens, Boolean diacSens);
  284. extern short relstring(char *str1, char *str2, Boolean caseSens, Boolean diacSens);
  285. extern pascal StringHandle GetString(short stringID)
  286.  ONEWORDINLINE(0xA9BA);
  287. extern pascal long Munger(Handle h, long offset, const void *ptr1, long len1, const void *ptr2, long len2)
  288.  ONEWORDINLINE(0xA9E0);
  289. extern pascal void SetString(StringHandle theString, ConstStr255Param strNew)
  290.  ONEWORDINLINE(0xA907);
  291. extern void setstring(StringHandle theString, char *strNew);
  292. extern pascal StringHandle NewString(ConstStr255Param theString)
  293.  ONEWORDINLINE(0xA906);
  294. extern StringHandle newstring(char *theString);
  295. extern pascal void GetIndString(Str255 theString, short strListID, short index);
  296. extern void getindstring(char *theString, short strListID, short index);
  297.  
  298. /* following four will be obsolete. Use equivalent PString call and pass a NIL handle */
  299.  
  300. extern pascal short IUMagString(const void *aPtr, const void *bPtr, short aLen, short bLen)
  301.  THREEWORDINLINE(0x3F3C, 0x000A, 0xA9ED);
  302. extern pascal short IUMagIDString(const void *aPtr, const void *bPtr, short aLen, short bLen)
  303.  THREEWORDINLINE(0x3F3C, 0x000C, 0xA9ED);
  304. extern pascal short IUCompString(ConstStr255Param aStr, ConstStr255Param bStr);
  305. extern short iucompstring(char *aStr, char *bStr);
  306. extern pascal short IUEqualString(ConstStr255Param aStr, ConstStr255Param bStr);
  307. extern short iuequalstring(char *aStr, char *bStr);
  308. extern pascal void StringToNum(ConstStr255Param theString, long *theNum);
  309. extern void stringtonum(char *theString, long *theNum);
  310. extern pascal void NumToString(long theNum, Str255 theString);
  311. extern void numtostring(long theNum, char *theString);
  312. extern pascal short IUMagPString(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  313.  THREEWORDINLINE(0x3F3C, 0x001A, 0xA9ED);
  314. extern pascal short IUMagIDPString(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  315.  THREEWORDINLINE(0x3F3C, 0x001C, 0xA9ED);
  316. extern pascal short IUCompPString(ConstStr255Param aStr, ConstStr255Param bStr, Handle itl2Handle);
  317. extern short iucomppstring(char *aStr, char *bStr, Handle intlHandle);
  318. extern pascal short IUEqualPString(ConstStr255Param aStr, ConstStr255Param bStr, Handle itl2Handle);
  319. extern short iuequalpstring(char *aStr, char *bStr, Handle intlHandle);
  320. extern pascal short ScriptOrder(ScriptCode script1, ScriptCode script2)
  321.  THREEWORDINLINE(0x3F3C, 0x001E, 0xA9ED);
  322. extern pascal short IUScriptOrder(ScriptCode script1, ScriptCode script2)
  323.  THREEWORDINLINE(0x3F3C, 0x001E, 0xA9ED);
  324. extern pascal short IULangOrder(LangCode language1, LangCode language2)
  325.  THREEWORDINLINE(0x3F3C, 0x0020, 0xA9ED);
  326. extern pascal short IUTextOrder(const void *aPtr, const void *bPtr, short aLen, short bLen, ScriptCode aScript, ScriptCode bScript, LangCode aLang, LangCode bLang)
  327.  THREEWORDINLINE(0x3F3C, 0x0022, 0xA9ED);
  328. extern pascal short IUStringOrder(ConstStr255Param aStr, ConstStr255Param bStr, ScriptCode aScript, ScriptCode bScript, LangCode aLang, LangCode bLang);
  329. extern short iustringorder(char *aStr, char *bStr, ScriptCode aScript, ScriptCode bScript, LangCode aLang, LangCode bLang);
  330. extern pascal void FindWord(Ptr textPtr, short textLength, short offset, Boolean leadingEdge, BreakTablePtr breaks, OffsetTable offsets)
  331.  FOURWORDINLINE(0x2F3C, 0x8012, 0x001A, 0xA8B5);
  332. extern pascal void FindWordBreaks(Ptr textPtr, short textLength, short offset, Boolean leadingEdge, BreakTablePtr breaks, OffsetTable offsets, ScriptCode script)
  333.  FOURWORDINLINE(0x2F3C, 0xC012, 0x001A, 0xA8B5);
  334. extern pascal void UprText(Ptr textPtr, short len)
  335.  THREEWORDINLINE(0x301F, 0x205F, 0xA054);
  336. extern pascal void LwrText(Ptr textPtr, short len)
  337.  THREEWORDINLINE(0x301F, 0x205F, 0xA056);
  338.  
  339. /*  New for 7.0  */
  340.  
  341. extern pascal void LowerText(Ptr textPtr, short len)
  342.  THREEWORDINLINE(0x301F, 0x205F, 0xA056);
  343. extern pascal void StripText(Ptr textPtr, short len)
  344.  THREEWORDINLINE(0x301F, 0x205F, 0xA256);
  345. extern pascal void UpperText(Ptr textPtr, short len)
  346.  THREEWORDINLINE(0x301F, 0x205F, 0xA456);
  347. extern pascal void StripUpperText(Ptr textPtr, short len)
  348.  THREEWORDINLINE(0x301F, 0x205F, 0xA656);
  349. extern pascal StyledLineBreakCode StyledLineBreak(Ptr textPtr, long textLen, long textStart, long textEnd, long flags, Fixed *textWidth, long *textOffset)
  350.  FOURWORDINLINE(0x2F3C, 0x821C, 0xFFFE, 0xA8B5);
  351. extern pascal FormatStatus StringToFormatRec(ConstStr255Param inString, const NumberParts *partsTable, NumFormatString *outString)
  352.  FOURWORDINLINE(0x2F3C, 0x820C, 0xFFEC, 0xA8B5);
  353. extern pascal FormatStatus FormatRecToString(const NumFormatString *myCanonical, const NumberParts *partsTable, Str255 outString, TripleInt positions)
  354.  FOURWORDINLINE(0x2F3C, 0x8210, 0xFFEA, 0xA8B5);
  355. extern pascal FormatStatus ExtendedToString(extended80 *x, const NumFormatString *myCanonical, const NumberParts *partsTable, Str255 outString)
  356.  FOURWORDINLINE(0x2F3C, 0x8210, 0xFFE8, 0xA8B5);
  357. extern pascal FormatStatus StringToExtended(ConstStr255Param source, const NumFormatString *myCanonical, const NumberParts *partsTable, extended80 *x)
  358.  FOURWORDINLINE(0x2F3C, 0x8210, 0xFFE6, 0xA8B5);
  359. extern pascal ScriptRunStatus FindScriptRun(Ptr textPtr, long textLen, long *lenUsed)
  360.  FOURWORDINLINE(0x2F3C, 0x820C, 0x0026, 0xA8B5);
  361. extern pascal void NFindWord(Ptr textPtr, short textLength, short offset, Boolean leadingEdge, NBreakTablePtr nbreaks, OffsetTable offsets)
  362.  FOURWORDINLINE(0x2F3C, 0x8012, 0xFFE2, 0xA8B5);
  363. extern pascal short TruncString(short width, Str255 theString, TruncCode truncWhere)
  364.  FOURWORDINLINE(0x2F3C, 0x8208, 0xFFE0, 0xA8B5);
  365. extern pascal short TruncText(short width, Ptr textPtr, short *length, TruncCode truncWhere)
  366.  FOURWORDINLINE(0x2F3C, 0x820C, 0xFFDE, 0xA8B5);
  367. extern pascal short ReplaceText(Handle baseText, Handle substitutionText, Str15 key)
  368.  FOURWORDINLINE(0x2F3C, 0x820C, 0xFFDC, 0xA8B5);
  369. extern pascal void LowercaseText(Ptr textPtr, short len, ScriptCode script)
  370.  SIXWORDINLINE(0x3F3C, 0x0000, 0x2F3C, 0x800A, 0xFFB6, 0xA8B5);
  371. extern pascal void StripDiacritics(Ptr textPtr, short len, ScriptCode script)
  372.  SIXWORDINLINE(0x3F3C, 0x0200, 0x2F3C, 0x800A, 0xFFB6, 0xA8B5);
  373. extern pascal void UppercaseText(Ptr textPtr, short len, ScriptCode script)
  374.  SIXWORDINLINE(0x3F3C, 0x0400, 0x2F3C, 0x800A, 0xFFB6, 0xA8B5);
  375. extern pascal void UppercaseStripDiacritics(Ptr textPtr, short len, ScriptCode script)
  376.  SIXWORDINLINE(0x3F3C, 0x0600, 0x2F3C, 0x800A, 0xFFB6, 0xA8B5);
  377. #if OLDROUTINENAMES
  378. #define LongDateString(dateTime, longFlag, result, intlHandle)  \
  379.     IULDateString(dateTime, longFlag, result, intlHandle)
  380.  
  381. #define longdatestring(dateTime, longFlag, result, intlHandle)  \
  382.     iuldatestring(dateTime, longFlag, result, intlHandle)
  383.  
  384. #define LongTimeString(dateTime, wantSeconds, result, intlHandle)  \
  385.     IULDateString(dateTime, wantSeconds, result, intlHandle)
  386.  
  387. #define longtimestring(dateTime, wantSeconds, result, intlHandle)  \
  388.     iultimestring(dateTime, wantSeconds, result, intlHandle)
  389.  
  390. #define String2Date(textPtr, textLen, theCache, lengthUsed, dateTime)  \
  391.     StringToDate(textPtr, textLen, theCache, lengthUsed, dateTime)
  392.  
  393. #define String2Time(textPtr, textLen, theCache, lengthUsed, dateTime)  \
  394.     StringToTime(textPtr, textLen, theCache, lengthUsed, dateTime)
  395.  
  396. #define UprString(theString, diacSens) UpperString(theString, diacSens)
  397.  
  398. #define uprstring(theString, diacSens) upperstring(theString, diacSens)
  399.  
  400. #define CompareString(aStr, bStr, itl2Handle) IUCompPString(aStr, bStr, itl2Handle)
  401.  
  402. #define comparestring(aStr, bStr, intlHandle) iucomppstring(aStr, bStr, intlHandle)
  403.  
  404. #define CompareText(aPtr, bPtr, aLen, bLen, itl2Handle)  \
  405.     IUMagPString(aPtr, bPtr, aLen, bLen, itl2Handle)
  406.  
  407. #define IdenticalText(aPtr, bPtr, aLen, bLen, itl2Handle)  \
  408.     IUMagIDPString(aPtr, bPtr, aLen, bLen, itl2Handle)
  409.  
  410. #define IdenticalString(aStr, bStr, itl2Handle) IUEqualPString(aStr, bStr, itl2Handle)
  411.  
  412. #define identicalstring(aStr, bStr, intlHandle) iuequalpstring(aStr, bStr, intlHandle)
  413.  
  414. #define LanguageOrder(language1, language2) IULangOrder(language1, language2)
  415.  
  416. #define TextOrder(aPtr, bPtr, aLen, bLen, aScript, bScript, aLang, bLang)  \
  417.     IUTextOrder(aPtr, bPtr, aLen, bLen, aScript, bScript, aLang, bLang)
  418.  
  419. #define StringOrder(aStr, bStr, aScript, bScript, aLang, bLang)  \
  420.     IUStringOrder(aStr, bStr, aScript, bScript, aLang, bLang)
  421.  
  422. #define Str2Format(inString, partsTable, outString)  \
  423.     StringToFormatRec(inString, partsTable, outString)
  424.  
  425. #define Format2Str(myCanonical, partsTable, outString, positions)  \
  426.     FormatRecToString(myCanonical, partsTable, outString, positions)
  427.  
  428. #define FormatX2Str(x, myCanonical, partsTable, outString)  \
  429.     ExtendedToString(x, myCanonical, partsTable, outString)
  430.  
  431. #define FormatStr2X(source, myCanonical, partsTable, x)  \
  432.     StringToExtended(source, myCanonical, partsTable, x)
  433.  
  434. #define DateString(dateTime, longFlag, result, intlHandle)  \
  435.     IUDatePString(dateTime, longFlag, result, intlHandle)
  436.  
  437. #define datestring(dateTime, longFlag, result, intlHandle)  \
  438.     iudatepstring(dateTime, longFlag, result, intlHandle)
  439.  
  440. #define TimeString(dateTime, wantSeconds, result, intlHandle)  \
  441.     IUTimePString(dateTime, wantSeconds, result, intlHandle)
  442.  
  443. #define timestring(dateTime, wantSeconds, result, intlHandle)  \
  444.     iutimepstring(dateTime, wantSeconds, result, intlHandle)
  445.  
  446. #endif
  447.  
  448. #ifdef __cplusplus
  449. }
  450. #endif
  451.  
  452. #endif
  453.  
  454.