summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/DateTimeUtils.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/DateTimeUtils.h')
-rw-r--r--common/quicktime_win32/DateTimeUtils.h972
1 files changed, 972 insertions, 0 deletions
diff --git a/common/quicktime_win32/DateTimeUtils.h b/common/quicktime_win32/DateTimeUtils.h
new file mode 100644
index 0000000..61befce
--- /dev/null
+++ b/common/quicktime_win32/DateTimeUtils.h
@@ -0,0 +1,972 @@
+/*
+ File: DateTimeUtils.h
+
+ Contains: International Date and Time Interfaces (previously in TextUtils)
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1994-2001 by Apple Computer, Inc., all rights reserved.
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+#ifndef __DATETIMEUTILS__
+#define __DATETIMEUTILS__
+
+#ifndef __CONDITIONALMACROS__
+#include <ConditionalMacros.h>
+#endif
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+#ifndef __UTCUTILS__
+#include <UTCUtils.h>
+#endif
+
+#ifndef __CFDATE__
+#include <CFDate.h>
+#endif
+
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=mac68k
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(push, 2)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack(2)
+#endif
+
+/*
+
+ Here are the current routine names and the translations to the older forms.
+ Please use the newer forms in all new code and migrate the older names out of existing
+ code as maintainance permits.
+
+ New Name Old Name(s)
+
+ DateString IUDatePString IUDateString
+ InitDateCache
+ LongDateString IULDateString
+ LongTimeString IULTimeString
+ StringToDate String2Date
+ StringToTime
+ TimeString IUTimeString IUTimePString
+ LongDateToSeconds LongDate2Secs
+ LongSecondsToDate LongSecs2Date
+ DateToSeconds Date2Secs
+ SecondsToDate Secs2Date
+
+
+ Carbon only supports the new names. The old names are undefined for Carbon targets.
+ This is true for C, Assembly and Pascal.
+
+ InterfaceLib always has exported the old names. For C macros have been defined to allow
+ the use of the new names. For Pascal and Assembly using the new names will result
+ in link errors.
+
+*/
+
+typedef SInt16 ToggleResults;
+enum {
+ /* Toggle results */
+ toggleUndefined = 0,
+ toggleOK = 1,
+ toggleBadField = 2,
+ toggleBadDelta = 3,
+ toggleBadChar = 4,
+ toggleUnknown = 5,
+ toggleBadNum = 6,
+ toggleOutOfRange = 7, /*synonym for toggleErr3*/
+ toggleErr3 = 7,
+ toggleErr4 = 8,
+ toggleErr5 = 9
+};
+
+enum {
+ /* Date equates */
+ smallDateBit = 31, /*Restrict valid date/time to range of Time global*/
+ togChar12HourBit = 30, /*If toggling hour by char, accept hours 1..12 only*/
+ togCharZCycleBit = 29, /*Modifier for togChar12HourBit: accept hours 0..11 only*/
+ togDelta12HourBit = 28, /*If toggling hour up/down, restrict to 12-hour range (am/pm)*/
+ genCdevRangeBit = 27, /*Restrict date/time to range used by genl CDEV*/
+ validDateFields = -1,
+ maxDateField = 10
+};
+
+enum {
+ eraMask = 0x0001,
+ yearMask = 0x0002,
+ monthMask = 0x0004,
+ dayMask = 0x0008,
+ hourMask = 0x0010,
+ minuteMask = 0x0020,
+ secondMask = 0x0040,
+ dayOfWeekMask = 0x0080,
+ dayOfYearMask = 0x0100,
+ weekOfYearMask = 0x0200,
+ pmMask = 0x0400,
+ dateStdMask = 0x007F /*default for ValidDate flags and ToggleDate TogglePB.togFlags*/
+};
+
+typedef SInt8 LongDateField;
+enum {
+ eraField = 0,
+ yearField = 1,
+ monthField = 2,
+ dayField = 3,
+ hourField = 4,
+ minuteField = 5,
+ secondField = 6,
+ dayOfWeekField = 7,
+ dayOfYearField = 8,
+ weekOfYearField = 9,
+ pmField = 10,
+ res1Field = 11,
+ res2Field = 12,
+ res3Field = 13
+};
+
+typedef SInt8 DateForm;
+enum {
+ shortDate = 0,
+ longDate = 1,
+ abbrevDate = 2
+};
+
+enum {
+ /* StringToDate status values */
+ fatalDateTime = 0x8000, /* StringToDate and String2Time mask to a fatal error */
+ longDateFound = 1, /* StringToDate mask to long date found */
+ leftOverChars = 2, /* StringToDate & Time mask to warn of left over characters */
+ sepNotIntlSep = 4, /* StringToDate & Time mask to warn of non-standard separators */
+ fieldOrderNotIntl = 8, /* StringToDate & Time mask to warn of non-standard field order */
+ extraneousStrings = 16, /* StringToDate & Time mask to warn of unparsable strings in text */
+ tooManySeps = 32, /* StringToDate & Time mask to warn of too many separators */
+ sepNotConsistent = 64, /* StringToDate & Time mask to warn of inconsistent separators */
+ tokenErr = 0x8100, /* StringToDate & Time mask for 'tokenizer err encountered' */
+ cantReadUtilities = 0x8200,
+ dateTimeNotFound = 0x8400,
+ dateTimeInvalid = 0x8800
+};
+
+typedef short StringToDateStatus;
+typedef StringToDateStatus String2DateStatus;
+struct DateCacheRecord {
+ short hidden[256]; /* only for temporary use */
+};
+typedef struct DateCacheRecord DateCacheRecord;
+typedef DateCacheRecord * DateCachePtr;
+struct DateTimeRec {
+ short year;
+ short month;
+ short day;
+ short hour;
+ short minute;
+ short second;
+ short dayOfWeek;
+};
+typedef struct DateTimeRec DateTimeRec;
+
+typedef SInt64 LongDateTime;
+#if TARGET_RT_BIG_ENDIAN
+union LongDateCvt {
+ SInt64 c;
+ struct {
+ UInt32 lHigh;
+ UInt32 lLow;
+ } hl;
+};
+typedef union LongDateCvt LongDateCvt;
+#else
+union LongDateCvt {
+ SInt64 c;
+ struct {
+ UInt32 lLow;
+ UInt32 lHigh;
+ } hl;
+};
+typedef union LongDateCvt LongDateCvt;
+#endif /* TARGET_RT_BIG_ENDIAN */
+
+union LongDateRec {
+ struct {
+ short era;
+ short year;
+ short month;
+ short day;
+ short hour;
+ short minute;
+ short second;
+ short dayOfWeek;
+ short dayOfYear;
+ short weekOfYear;
+ short pm;
+ short res1;
+ short res2;
+ short res3;
+ } ld;
+ short list[14]; /*Index by LongDateField!*/
+ struct {
+ short eraAlt;
+ DateTimeRec oldDate;
+ } od;
+};
+typedef union LongDateRec LongDateRec;
+
+typedef SInt8 DateDelta;
+struct TogglePB {
+ long togFlags; /*caller normally sets low word to dateStdMask=$7F*/
+ ResType amChars; /*from 'itl0', but uppercased*/
+ ResType pmChars; /*from 'itl0', but uppercased*/
+ long reserved[4];
+};
+typedef struct TogglePB TogglePB;
+/*
+ Conversion utilities between CF and Carbon time types.
+*/
+/*
+ * UCConvertUTCDateTimeToCFAbsoluteTime()
+ *
+ * Discussion:
+ * Use UCConvertUTCDateTimeToCFAbsoluteTime to convert from a
+ * UTCDDateTime to a CFAbsoluteTime. Remember that the epoch for
+ * UTCDateTime is January 1, 1904 while the epoch for CFAbsoluteTime
+ * is January 1, 2001.
+ *
+ * Parameters:
+ *
+ * iUTCDate:
+ * A pointer to a UTCDateTime struct that represents the time you
+ * wish to convert from.
+ *
+ * oCFTime:
+ * A pointer to a CFAbsoluteTime. On successful return, this will
+ * contain the converted time from the input time type.
+ *
+ * Result:
+ * A result code indicating whether or not conversion was successful.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+UCConvertUTCDateTimeToCFAbsoluteTime(
+ const UTCDateTime * iUTCDate,
+ CFAbsoluteTime * oCFTime);
+
+
+/*
+ * UCConvertSecondsToCFAbsoluteTime()
+ *
+ * Discussion:
+ * Use UCConvertSecondsToCFAbsoluteTime to convert from the normal
+ * seconds representation of time to a CFAbsoluteTime. Remember that
+ * the epoch for seconds is January 1, 1904 while the epoch for
+ * CFAbsoluteTime is January 1, 2001.
+ *
+ * Parameters:
+ *
+ * iSeconds:
+ * A UInt32 value that represents the time you wish to convert
+ * from.
+ *
+ * oCFTime:
+ * A pointer to a CFAbsoluteTime. On successful return, this will
+ * contain the converted time from the input time type.
+ *
+ * Result:
+ * A result code indicating whether or not conversion was successful.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+UCConvertSecondsToCFAbsoluteTime(
+ UInt32 iSeconds,
+ CFAbsoluteTime * oCFTime);
+
+
+/*
+ * UCConvertLongDateTimeToCFAbsoluteTime()
+ *
+ * Discussion:
+ * Use UCConvertLongDateTimeToCFAbsoluteTime to convert from a
+ * LongDateTime to a CFAbsoluteTime. Remember that the epoch for
+ * LongDateTime is January 1, 1904 while the epoch for
+ * CFAbsoluteTime is January 1, 2001.
+ *
+ * Parameters:
+ *
+ * iLongTime:
+ * A LongDateTime value that represents the time you wish to
+ * convert from.
+ *
+ * oCFTime:
+ * A pointer to a CFAbsoluteTime. On successful return, this will
+ * contain the converted time from the input time type.
+ *
+ * Result:
+ * A result code indicating whether or not conversion was successful.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+UCConvertLongDateTimeToCFAbsoluteTime(
+ LongDateTime iLongTime,
+ CFAbsoluteTime * oCFTime);
+
+
+/*
+ * UCConvertCFAbsoluteTimeToUTCDateTime()
+ *
+ * Discussion:
+ * Use UCConvertCFAbsoluteTimeToUTCDateTime to convert from a
+ * CFAbsoluteTime to a UTCDateTime. Remember that the epoch for
+ * UTCDateTime is January 1, 1904 while the epoch for CFAbsoluteTime
+ * is January 1, 2001.
+ *
+ * Parameters:
+ *
+ * iCFTime:
+ * A CFAbsoluteTime value that represents the time you wish to
+ * convert from.
+ *
+ * oUTCDate:
+ * A pointer to a UTCDateTime. On successful return, this will
+ * contain the converted time from the CFAbsoluteTime input.
+ *
+ * Result:
+ * A result code indicating whether or not conversion was successful.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+UCConvertCFAbsoluteTimeToUTCDateTime(
+ CFAbsoluteTime iCFTime,
+ UTCDateTime * oUTCDate);
+
+
+/*
+ * UCConvertCFAbsoluteTimeToSeconds()
+ *
+ * Discussion:
+ * Use UCConvertCFAbsoluteTimeToSeconds to convert from a
+ * CFAbsoluteTime to a UInt32 representation of seconds. Remember
+ * that the epoch for seconds is January 1, 1904 while the epoch for
+ * CFAbsoluteTime is January 1, 2001.
+ *
+ * Parameters:
+ *
+ * iCFTime:
+ * A CFAbsoluteTime value that represents the time you wish to
+ * convert from.
+ *
+ * oSeconds:
+ * A pointer to a UInt32. On successful return, this will contain
+ * the converted time from the CFAbsoluteTime input.
+ *
+ * Result:
+ * A result code indicating whether or not conversion was successful.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+UCConvertCFAbsoluteTimeToSeconds(
+ CFAbsoluteTime iCFTime,
+ UInt32 * oSeconds);
+
+
+/*
+ * UCConvertCFAbsoluteTimeToLongDateTime()
+ *
+ * Discussion:
+ * Use UCConvertCFAbsoluteTimeToLongDateTime to convert from a
+ * CFAbsoluteTime to a LongDateTime. Remember that the epoch for
+ * LongDateTime is January 1, 1904 while the epoch for
+ * CFAbsoluteTime is January 1, 2001.
+ *
+ * Parameters:
+ *
+ * iCFTime:
+ * A CFAbsoluteTime value that represents the time you wish to
+ * convert from.
+ *
+ * oLongDate:
+ * A pointer to a LongDateTime. On successful return, this will
+ * contain the converted time from the CFAbsoluteTime input.
+ *
+ * Result:
+ * A result code indicating whether or not conversion was successful.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+UCConvertCFAbsoluteTimeToLongDateTime(
+ CFAbsoluteTime iCFTime,
+ LongDateTime * oLongDate);
+
+
+
+/*
+ These routine are available in Carbon with their new name
+*/
+/*
+ * DateString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( void )
+DateString(
+ long dateTime,
+ DateForm longFlag,
+ Str255 result,
+ Handle intlHandle) THREEWORDINLINE(0x3F3C, 0x000E, 0xA9ED);
+
+
+/*
+ * TimeString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( void )
+TimeString(
+ long dateTime,
+ Boolean wantSeconds,
+ Str255 result,
+ Handle intlHandle) THREEWORDINLINE(0x3F3C, 0x0010, 0xA9ED);
+
+
+/*
+ * LongDateString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( void )
+LongDateString(
+ const LongDateTime * dateTime,
+ DateForm longFlag,
+ Str255 result,
+ Handle intlHandle) THREEWORDINLINE(0x3F3C, 0x0014, 0xA9ED);
+
+
+/*
+ * LongTimeString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( void )
+LongTimeString(
+ const LongDateTime * dateTime,
+ Boolean wantSeconds,
+ Str255 result,
+ Handle intlHandle) THREEWORDINLINE(0x3F3C, 0x0016, 0xA9ED);
+
+
+
+/*
+ These routine are available in Carbon and InterfaceLib with their new name
+*/
+/*
+ * InitDateCache()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSErr )
+InitDateCache(DateCachePtr theCache) FOURWORDINLINE(0x2F3C, 0x8204, 0xFFF8, 0xA8B5);
+
+
+/*
+ * StringToDate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( StringToDateStatus )
+StringToDate(
+ Ptr textPtr,
+ long textLen,
+ DateCachePtr theCache,
+ long * lengthUsed,
+ LongDateRec * dateTime) FOURWORDINLINE(0x2F3C, 0x8214, 0xFFF6, 0xA8B5);
+
+
+/*
+ * StringToTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( StringToDateStatus )
+StringToTime(
+ Ptr textPtr,
+ long textLen,
+ DateCachePtr theCache,
+ long * lengthUsed,
+ LongDateRec * dateTime) FOURWORDINLINE(0x2F3C, 0x8214, 0xFFF4, 0xA8B5);
+
+
+/*
+ * LongDateToSeconds()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( void )
+LongDateToSeconds(
+ const LongDateRec * lDate,
+ LongDateTime * lSecs) FOURWORDINLINE(0x2F3C, 0x8008, 0xFFF2, 0xA8B5);
+
+
+/*
+ * LongSecondsToDate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( void )
+LongSecondsToDate(
+ const LongDateTime * lSecs,
+ LongDateRec * lDate) FOURWORDINLINE(0x2F3C, 0x8008, 0xFFF0, 0xA8B5);
+
+
+/*
+ * ToggleDate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( ToggleResults )
+ToggleDate(
+ LongDateTime * lSecs,
+ LongDateField field,
+ DateDelta delta,
+ short ch,
+ const TogglePB * params) FOURWORDINLINE(0x2F3C, 0x820E, 0xFFEE, 0xA8B5);
+
+
+/*
+ * ValidDate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( short )
+ValidDate(
+ const LongDateRec * vDate,
+ long flags,
+ LongDateTime * newSecs) FOURWORDINLINE(0x2F3C, 0x820C, 0xFFE4, 0xA8B5);
+
+
+/*
+ * ReadDateTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
+#pragma parameter __D0 ReadDateTime(__A0)
+#endif
+EXTERN_API( OSErr )
+ReadDateTime(unsigned long * time) ONEWORDINLINE(0xA039);
+
+
+/*
+ * GetDateTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
+#pragma parameter GetDateTime(__A0)
+#endif
+EXTERN_API( void )
+GetDateTime(unsigned long * secs) TWOWORDINLINE(0x20B8, 0x020C);
+
+
+/*
+ * SetDateTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
+#pragma parameter __D0 SetDateTime(__D0)
+#endif
+EXTERN_API( OSErr )
+SetDateTime(unsigned long time) ONEWORDINLINE(0xA03A);
+
+
+/*
+ * SetTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
+#pragma parameter SetTime(__A0)
+#endif
+EXTERN_API( void )
+SetTime(const DateTimeRec * d) TWOWORDINLINE(0xA9C7, 0xA03A);
+
+
+/*
+ * GetTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
+#pragma parameter GetTime(__A0)
+#endif
+EXTERN_API( void )
+GetTime(DateTimeRec * d) THREEWORDINLINE(0x2038, 0x020C, 0xA9C6);
+
+
+/*
+ * DateToSeconds()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( void )
+DateToSeconds(
+ const DateTimeRec * d,
+ unsigned long * secs);
+
+
+/*
+ * SecondsToDate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
+#pragma parameter SecondsToDate(__D0, __A0)
+#endif
+EXTERN_API( void )
+SecondsToDate(
+ unsigned long secs,
+ DateTimeRec * d) ONEWORDINLINE(0xA9C6);
+
+
+
+/*
+ These routine are available in InterfaceLib using their old name.
+ Macros allow using the new names in all source code.
+*/
+#if CALL_NOT_IN_CARBON
+/*
+ * IUDateString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( void )
+IUDateString(
+ long dateTime,
+ DateForm longFlag,
+ Str255 result) TWOWORDINLINE(0x4267, 0xA9ED);
+
+
+/*
+ * IUTimeString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( void )
+IUTimeString(
+ long dateTime,
+ Boolean wantSeconds,
+ Str255 result) THREEWORDINLINE(0x3F3C, 0x0002, 0xA9ED);
+
+
+/*
+ * IUDatePString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( void )
+IUDatePString(
+ long dateTime,
+ DateForm longFlag,
+ Str255 result,
+ Handle intlHandle) THREEWORDINLINE(0x3F3C, 0x000E, 0xA9ED);
+
+
+/*
+ * IUTimePString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( void )
+IUTimePString(
+ long dateTime,
+ Boolean wantSeconds,
+ Str255 result,
+ Handle intlHandle) THREEWORDINLINE(0x3F3C, 0x0010, 0xA9ED);
+
+
+/*
+ * IULDateString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( void )
+IULDateString(
+ LongDateTime * dateTime,
+ DateForm longFlag,
+ Str255 result,
+ Handle intlHandle) THREEWORDINLINE(0x3F3C, 0x0014, 0xA9ED);
+
+
+/*
+ * IULTimeString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( void )
+IULTimeString(
+ LongDateTime * dateTime,
+ Boolean wantSeconds,
+ Str255 result,
+ Handle intlHandle) THREEWORDINLINE(0x3F3C, 0x0016, 0xA9ED);
+
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#if CALL_NOT_IN_CARBON
+#define DateString(dateTime, longFlag, result, intlHandle) \
+ IUDatePString( dateTime, longFlag, result, intlHandle)
+#define TimeString(dateTime, wantSeconds, result, intlHandle) \
+ IUTimePString(dateTime, wantSeconds, result, intlHandle)
+#define LongDateString(dateTime, longFlag, result, intlHandle) \
+ IULDateString(dateTime, longFlag, result, intlHandle)
+#define LongTimeString(dateTime, wantSeconds, result, intlHandle) \
+ IULTimeString(dateTime, wantSeconds, result, intlHandle)
+#endif /* CALL_NOT_IN_CARBON */
+#if OLDROUTINENAMES
+#define String2Date(textPtr, textLen, theCache, lengthUsed, dateTime) \
+ StringToDate(textPtr, textLen, theCache, lengthUsed, dateTime)
+#define String2Time(textPtr, textLen, theCache, lengthUsed, dateTime) \
+ StringToTime(textPtr, textLen, theCache, lengthUsed, dateTime)
+#define LongDate2Secs(lDate, lSecs) LongDateToSeconds(lDate, lSecs)
+#define LongSecs2Date(lSecs, lDate) LongSecondsToDate(lSecs, lDate)
+#define Date2Secs(d, secs) DateToSeconds(d, secs)
+#define Secs2Date(secs, d) SecondsToDate(secs, d)
+#endif /* OLDROUTINENAMES */
+
+#if CALL_NOT_IN_CARBON
+/*
+ * iudatestring()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+iudatestring(
+ long dateTime,
+ DateForm longFlag,
+ char * result);
+
+
+/*
+ * iudatepstring()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+iudatepstring(
+ long dateTime,
+ DateForm longFlag,
+ char * result,
+ Handle intlHandle);
+
+
+/*
+ * iutimestring()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+iutimestring(
+ long dateTime,
+ Boolean wantSeconds,
+ char * result);
+
+
+/*
+ * iutimepstring()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+iutimepstring(
+ long dateTime,
+ Boolean wantSeconds,
+ char * result,
+ Handle intlHandle);
+
+
+/*
+ * iuldatestring()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+iuldatestring(
+ LongDateTime * dateTime,
+ DateForm longFlag,
+ char * result,
+ Handle intlHandle);
+
+
+/*
+ * iultimestring()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+iultimestring(
+ LongDateTime * dateTime,
+ Boolean wantSeconds,
+ char * result,
+ Handle intlHandle);
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+
+
+
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=reset
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(pop)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack()
+#endif
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DATETIMEUTILS__ */
+