diff options
Diffstat (limited to 'common/quicktime_win32/Dictionary.h')
| -rw-r--r-- | common/quicktime_win32/Dictionary.h | 1299 |
1 files changed, 1299 insertions, 0 deletions
diff --git a/common/quicktime_win32/Dictionary.h b/common/quicktime_win32/Dictionary.h new file mode 100644 index 0000000..fc0a65e --- /dev/null +++ b/common/quicktime_win32/Dictionary.h @@ -0,0 +1,1299 @@ +/* + File: Dictionary.h + + Contains: Dictionary Manager Interfaces + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1992-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 __DICTIONARY__ +#define __DICTIONARY__ + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __FILES__ +#include <Files.h> +#endif + +#ifndef __CODEFRAGMENTS__ +#include <CodeFragments.h> +#endif + +#ifndef __MACERRORS__ +#include <MacErrors.h> +#endif + +#ifndef __AEREGISTRY__ +#include <AERegistry.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=power +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +/* +============================================================================================= + Modern Dictionary Manager +============================================================================================= +*/ +/* + Dictionary information +*/ +enum { + kDictionaryFileType = FOUR_CHAR_CODE('dict'), + kDCMDictionaryHeaderSignature = FOUR_CHAR_CODE('dict'), + kDCMDictionaryHeaderVersion = 2 +}; + +enum { + kDCMAnyFieldTag = typeWildCard, + kDCMAnyFieldType = typeWildCard +}; + +/* + Contents of a Field Info Record (an AERecord) +*/ +enum { + keyDCMFieldTag = FOUR_CHAR_CODE('ftag'), /* typeEnumeration */ + keyDCMFieldType = FOUR_CHAR_CODE('ftyp'), /* typeEnumeration */ + keyDCMMaxRecordSize = FOUR_CHAR_CODE('mrsz'), /* typeMagnitude */ + keyDCMFieldAttributes = FOUR_CHAR_CODE('fatr'), + keyDCMFieldDefaultData = FOUR_CHAR_CODE('fdef'), + keyDCMFieldName = FOUR_CHAR_CODE('fnam'), /* typeChar */ + keyDCMFieldFindMethods = FOUR_CHAR_CODE('ffnd') /* typeAEList of typeDCMFindMethod */ +}; + +/* + Special types for fields of a Field Info Record +*/ +enum { + typeDCMFieldAttributes = FOUR_CHAR_CODE('fatr'), + typeDCMFindMethod = FOUR_CHAR_CODE('fmth') +}; + + +/* + Field attributes +*/ +enum { + kDCMIndexedFieldMask = 0x00000001, + kDCMRequiredFieldMask = 0x00000002, + kDCMIdentifyFieldMask = 0x00000004, + kDCMFixedSizeFieldMask = 0x00000008, + kDCMHiddenFieldMask = (long)0x80000000 +}; + +typedef OptionBits DCMFieldAttributes; +/* + Standard dictionary properties +*/ +enum { + pDCMAccessMethod = FOUR_CHAR_CODE('amtd'), /* data type: typeChar ReadOnly */ + pDCMPermission = FOUR_CHAR_CODE('perm'), /* data type: typeUInt16 */ + pDCMListing = FOUR_CHAR_CODE('list'), /* data type: typeUInt16 */ + pDCMMaintenance = FOUR_CHAR_CODE('mtnc'), /* data type: typeUInt16 */ + pDCMLocale = FOUR_CHAR_CODE('locl'), /* data type: typeUInt32. Optional; default = kLocaleIdentifierWildCard */ + pDCMClass = pClass, /* data type: typeUInt16 */ + pDCMCopyright = FOUR_CHAR_CODE('info') /* data type: typeChar */ +}; + +/* + pDCMPermission property constants +*/ +enum { + kDCMReadOnlyDictionary = 0, + kDCMReadWriteDictionary = 1 +}; + +/* + pDCMListing property constants +*/ +enum { + kDCMAllowListing = 0, + kDCMProhibitListing = 1 +}; + +/* + pDCMClass property constants +*/ +enum { + kDCMUserDictionaryClass = 0, + kDCMSpecificDictionaryClass = 1, + kDCMBasicDictionaryClass = 2 +}; + +/* + Standard search method +*/ +enum { + kDCMFindMethodExactMatch = kAEEquals, + kDCMFindMethodBeginningMatch = kAEBeginsWith, + kDCMFindMethodContainsMatch = kAEContains, + kDCMFindMethodEndingMatch = kAEEndsWith, + kDCMFindMethodForwardTrie = FOUR_CHAR_CODE('ftri'), /* used for morphological analysis*/ + kDCMFindMethodBackwardTrie = FOUR_CHAR_CODE('btri') /* used for morphological analysis*/ +}; + +typedef OSType DCMFindMethod; +/* + AccessMethod features +*/ +enum { + kDCMCanUseFileDictionaryMask = 0x00000001, + kDCMCanUseMemoryDictionaryMask = 0x00000002, + kDCMCanStreamDictionaryMask = 0x00000004, + kDCMCanHaveMultipleIndexMask = 0x00000008, + kDCMCanModifyDictionaryMask = 0x00000010, + kDCMCanCreateDictionaryMask = 0x00000020, + kDCMCanAddDictionaryFieldMask = 0x00000040, + kDCMCanUseTransactionMask = 0x00000080 +}; + +typedef OptionBits DCMAccessMethodFeature; +typedef UInt32 DCMUniqueID; +typedef struct OpaqueDCMObjectID* DCMObjectID; +typedef DCMObjectID DCMAccessMethodID; +typedef DCMObjectID DCMDictionaryID; +#define kDCMInvalidObjectID ((DCMObjectID) kInvalidID) +typedef struct OpaqueDCMObjectRef* DCMObjectRef; +typedef DCMObjectRef DCMDictionaryRef; +typedef DCMObjectRef DCMDictionaryStreamRef; +#define kDCMInvalidObjectRef ((DCMObjectRef) kInvalidID) +typedef struct OpaqueDCMObjectIterator* DCMObjectIterator; +typedef DCMObjectIterator DCMAccessMethodIterator; +typedef DCMObjectIterator DCMDictionaryIterator; +typedef struct OpaqueDCMFoundRecordIterator* DCMFoundRecordIterator; +/* + Field specification declarations +*/ +typedef DescType DCMFieldTag; +typedef DescType DCMFieldType; +/* + Dictionary header information +*/ +struct DCMDictionaryHeader { + FourCharCode headerSignature; + UInt32 headerVersion; + ByteCount headerSize; + Str63 accessMethod; +}; +typedef struct DCMDictionaryHeader DCMDictionaryHeader; +/* + Callback routines +*/ +typedef CALLBACK_API( Boolean , DCMProgressFilterProcPtr )(Boolean determinateProcess, UInt16 percentageComplete, UInt32 callbackUD); +typedef STACK_UPP_TYPE(DCMProgressFilterProcPtr) DCMProgressFilterUPP; +#if CALL_NOT_IN_CARBON +/* + * NewDCMProgressFilterUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( DCMProgressFilterUPP ) +NewDCMProgressFilterUPP(DCMProgressFilterProcPtr userRoutine); +#if !OPAQUE_UPP_TYPES + enum { uppDCMProgressFilterProcInfo = 0x00000E50 }; /* pascal 1_byte Func(1_byte, 2_bytes, 4_bytes) */ + #ifdef __cplusplus + inline DEFINE_API_C(DCMProgressFilterUPP) NewDCMProgressFilterUPP(DCMProgressFilterProcPtr userRoutine) { return (DCMProgressFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDCMProgressFilterProcInfo, GetCurrentArchitecture()); } + #else + #define NewDCMProgressFilterUPP(userRoutine) (DCMProgressFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDCMProgressFilterProcInfo, GetCurrentArchitecture()) + #endif +#endif + +/* + * DisposeDCMProgressFilterUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( void ) +DisposeDCMProgressFilterUPP(DCMProgressFilterUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(void) DisposeDCMProgressFilterUPP(DCMProgressFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } + #else + #define DisposeDCMProgressFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP) + #endif +#endif + +/* + * InvokeDCMProgressFilterUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( Boolean ) +InvokeDCMProgressFilterUPP( + Boolean determinateProcess, + UInt16 percentageComplete, + UInt32 callbackUD, + DCMProgressFilterUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(Boolean) InvokeDCMProgressFilterUPP(Boolean determinateProcess, UInt16 percentageComplete, UInt32 callbackUD, DCMProgressFilterUPP userUPP) { return (Boolean)CALL_THREE_PARAMETER_UPP(userUPP, uppDCMProgressFilterProcInfo, determinateProcess, percentageComplete, callbackUD); } + #else + #define InvokeDCMProgressFilterUPP(determinateProcess, percentageComplete, callbackUD, userUPP) (Boolean)CALL_THREE_PARAMETER_UPP((userUPP), uppDCMProgressFilterProcInfo, (determinateProcess), (percentageComplete), (callbackUD)) + #endif +#endif + +#endif /* CALL_NOT_IN_CARBON */ + +#if CALL_NOT_IN_CARBON || OLDROUTINENAMES + /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ + #define NewDCMProgressFilterProc(userRoutine) NewDCMProgressFilterUPP(userRoutine) + #define CallDCMProgressFilterProc(userRoutine, determinateProcess, percentageComplete, callbackUD) InvokeDCMProgressFilterUPP(determinateProcess, percentageComplete, callbackUD, userRoutine) +#endif /* CALL_NOT_IN_CARBON */ + +/* + Library version +*/ +/* + * DCMLibraryVersion() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( UInt32 ) +DCMLibraryVersion(void); + + +/* + Create/delete dictionary +*/ +/* + * DCMNewDictionary() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMNewDictionary( + DCMAccessMethodID accessMethodID, + const FSSpec * newDictionaryFile, + ScriptCode scriptTag, + const AEDesc * listOfFieldInfoRecords, + Boolean invisible, + ItemCount recordCapacity, + DCMDictionaryID * newDictionary); + + +/* + * DCMDeriveNewDictionary() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMDeriveNewDictionary( + DCMDictionaryID srcDictionary, + const FSSpec * newDictionaryFile, + ScriptCode scriptTag, + Boolean invisible, + ItemCount recordCapacity, + DCMDictionaryID * newDictionary); + + +/* + * DCMDeleteDictionary() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMDeleteDictionary(DCMDictionaryID dictionaryID); + + +/* + Register dictionary +*/ +/* + * DCMRegisterDictionaryFile() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMRegisterDictionaryFile( + const FSSpec * dictionaryFile, + DCMDictionaryID * dictionaryID); + + +/* + * DCMUnregisterDictionary() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMUnregisterDictionary(DCMDictionaryID dictionaryID); + + +/* + Open dictionary +*/ +/* + * DCMOpenDictionary() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMOpenDictionary( + DCMDictionaryID dictionaryID, + ByteCount protectKeySize, + ConstLogicalAddress protectKey, + DCMDictionaryRef * dictionaryRef); + + +/* + * DCMCloseDictionary() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMCloseDictionary(DCMDictionaryRef dictionaryRef); + + +/* + Change access privilege +*/ +/* + * DCMGetDictionaryWriteAccess() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetDictionaryWriteAccess( + DCMDictionaryRef dictionaryRef, + Duration timeOutDuration); + + +/* + * DCMReleaseDictionaryWriteAccess() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMReleaseDictionaryWriteAccess( + DCMDictionaryRef dictionaryRef, + Boolean commitTransaction); + + +/* + Find records +*/ +/* + * DCMFindRecords() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMFindRecords( + DCMDictionaryRef dictionaryRef, + DCMFieldTag keyFieldTag, + ByteCount keySize, + ConstLogicalAddress keyData, + DCMFindMethod findMethod, + ItemCount preFetchedDataNum, + DCMFieldTag preFetchedData[], + ItemCount skipCount, + ItemCount maxRecordCount, + DCMFoundRecordIterator * recordIterator); + + +/* + * DCMCountRecordIterator() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( ItemCount ) +DCMCountRecordIterator(DCMFoundRecordIterator recordIterator); + + +/* + * DCMIterateFoundRecord() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMIterateFoundRecord( + DCMFoundRecordIterator recordIterator, + ByteCount maxKeySize, + ByteCount * actualKeySize, + LogicalAddress keyData, + DCMUniqueID * uniqueID, + AEDesc * dataList); + + +/* + * DCMDisposeRecordIterator() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMDisposeRecordIterator(DCMFoundRecordIterator recordIterator); + + +/* + Dump dictionary +*/ +/* + * DCMCountRecord() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMCountRecord( + DCMDictionaryID dictionaryID, + ItemCount * count); + + +/* + * DCMGetRecordSequenceNumber() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetRecordSequenceNumber( + DCMDictionaryRef dictionaryRef, + DCMFieldTag keyFieldTag, + ByteCount keySize, + ConstLogicalAddress keyData, + DCMUniqueID uniqueID, + ItemCount * sequenceNum); + + +/* + * DCMGetNthRecord() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetNthRecord( + DCMDictionaryRef dictionaryRef, + DCMFieldTag keyFieldTag, + ItemCount serialNum, + ByteCount maxKeySize, + ByteCount * keySize, + LogicalAddress keyData, + DCMUniqueID * uniqueID); + + +/* + * DCMGetNextRecord() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetNextRecord( + DCMDictionaryRef dictionaryRef, + DCMFieldTag keyFieldTag, + ByteCount keySize, + ConstLogicalAddress keyData, + DCMUniqueID uniqueID, + ByteCount maxKeySize, + ByteCount * nextKeySize, + LogicalAddress nextKeyData, + DCMUniqueID * nextUniqueID); + + +/* + * DCMGetPrevRecord() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetPrevRecord( + DCMDictionaryRef dictionaryRef, + DCMFieldTag keyFieldTag, + ByteCount keySize, + ConstLogicalAddress keyData, + DCMUniqueID uniqueID, + ByteCount maxKeySize, + ByteCount * prevKeySize, + LogicalAddress prevKeyData, + DCMUniqueID * prevUniqueID); + + +/* + Get field data +*/ +/* + * DCMGetFieldData() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetFieldData( + DCMDictionaryRef dictionaryRef, + DCMFieldTag keyFieldTag, + ByteCount keySize, + ConstLogicalAddress keyData, + DCMUniqueID uniqueID, + ItemCount numOfData, + const DCMFieldTag dataTag[], + AEDesc * dataList); + + +/* + * DCMSetFieldData() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMSetFieldData( + DCMDictionaryRef dictionaryRef, + DCMFieldTag keyFieldTag, + ByteCount keySize, + ConstLogicalAddress keyData, + DCMUniqueID uniqueID, + const AEDesc * dataList); + + +/* + Add record +*/ +/* + * DCMAddRecord() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMAddRecord( + DCMDictionaryRef dictionaryRef, + DCMFieldTag keyFieldTag, + ByteCount keySize, + ConstLogicalAddress keyData, + Boolean checkOnly, + const AEDesc * dataList, + DCMUniqueID * newUniqueID); + + +/* + * DCMDeleteRecord() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMDeleteRecord( + DCMDictionaryRef dictionaryRef, + DCMFieldTag keyFieldTag, + ByteCount keySize, + ConstLogicalAddress keyData, + DCMUniqueID uniqueID); + + +/* + Reorganize/compact dictionary +*/ +/* + * DCMReorganizeDictionary() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMReorganizeDictionary( + DCMDictionaryID dictionaryID, + ItemCount extraCapacity, + DCMProgressFilterUPP progressProc, + UInt32 userData); + + +/* + * DCMCompactDictionary() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMCompactDictionary( + DCMDictionaryID dictionaryID, + DCMProgressFilterUPP progressProc, + UInt32 userData); + + +/* + DictionaryID utilities +*/ +/* + * DCMGetFileFromDictionaryID() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetFileFromDictionaryID( + DCMDictionaryID dictionaryID, + FSSpec * fileRef); + + +/* + * DCMGetDictionaryIDFromFile() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetDictionaryIDFromFile( + const FSSpec * fileRef, + DCMDictionaryID * dictionaryID); + + +/* + * DCMGetDictionaryIDFromRef() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( DCMDictionaryID ) +DCMGetDictionaryIDFromRef(DCMDictionaryRef dictionaryRef); + + +/* + Field information and manipulation +*/ +/* + * DCMGetDictionaryFieldInfo() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetDictionaryFieldInfo( + DCMDictionaryID dictionaryID, + DCMFieldTag fieldTag, + AEDesc * fieldInfoRecord); + + +/* + Dictionary property +*/ +/* + * DCMGetDictionaryProperty() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetDictionaryProperty( + DCMDictionaryID dictionaryID, + DCMFieldTag propertyTag, + ByteCount maxPropertySize, + ByteCount * actualSize, + LogicalAddress propertyValue); + + +/* + * DCMSetDictionaryProperty() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMSetDictionaryProperty( + DCMDictionaryID dictionaryID, + DCMFieldTag propertyTag, + ByteCount propertySize, + ConstLogicalAddress propertyValue); + + +/* + * DCMGetDictionaryPropertyList() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetDictionaryPropertyList( + DCMDictionaryID dictionaryID, + ItemCount maxPropertyNum, + ItemCount * numProperties, + DCMFieldTag propertyTag[]); + + +/* + Seaarch dictionary +*/ +/* + * DCMCreateDictionaryIterator() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMCreateDictionaryIterator(DCMDictionaryIterator * dictionaryIterator); + + +/* + Search AccessMethod +*/ +/* + * DCMCreateAccessMethodIterator() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMCreateAccessMethodIterator(DCMAccessMethodIterator * accessMethodIterator); + + +/* + Iterator Operation +*/ +/* + * DCMCountObjectIterator() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( ItemCount ) +DCMCountObjectIterator(DCMObjectIterator iterator); + + +/* + * DCMIterateObject() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMIterateObject( + DCMObjectIterator iterator, + DCMObjectID * objectID); + + +/* + * DCMResetObjectIterator() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMResetObjectIterator(DCMObjectIterator iterator); + + +/* + * DCMDisposeObjectIterator() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMDisposeObjectIterator(DCMObjectIterator iterator); + + +/* + Get AccessMethod information +*/ +/* + * DCMGetAccessMethodIDFromName() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetAccessMethodIDFromName( + ConstStr63Param accessMethodName, + DCMAccessMethodID * accessMethodID); + + +/* + Field Info Record routines +*/ +/* + * DCMCreateFieldInfoRecord() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMCreateFieldInfoRecord( + DescType fieldTag, + DescType fieldType, + ByteCount maxRecordSize, + DCMFieldAttributes fieldAttributes, + AEDesc * fieldDefaultData, + ItemCount numberOfFindMethods, + DCMFindMethod findMethods[], + AEDesc * fieldInfoRecord); + + +/* + * DCMGetFieldTagAndType() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetFieldTagAndType( + const AEDesc * fieldInfoRecord, + DCMFieldTag * fieldTag, + DCMFieldType * fieldType); + + +/* + * DCMGetFieldMaxRecordSize() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetFieldMaxRecordSize( + const AEDesc * fieldInfoRecord, + ByteCount * maxRecordSize); + + +/* + * DCMGetFieldAttributes() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetFieldAttributes( + const AEDesc * fieldInfoRecord, + DCMFieldAttributes * attributes); + + +/* + * DCMGetFieldDefaultData() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetFieldDefaultData( + const AEDesc * fieldInfoRecord, + DescType desiredType, + AEDesc * fieldDefaultData); + + +/* + * DCMGetFieldFindMethods() + * + * Availability: + * Non-Carbon CFM: in DictionaryMgrLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +DCMGetFieldFindMethods( + const AEDesc * fieldInfoRecord, + ItemCount findMethodsArrayMaxSize, + DCMFindMethod findMethods[], + ItemCount * actualNumberOfFindMethods); + + +/* + Check Dictionary Manager availability +*/ +#if TARGET_RT_MAC_CFM +#ifdef __cplusplus + inline pascal Boolean DCMDictionaryManagerAvailable() { return (DCMLibraryVersion != (void*)kUnresolvedCFragSymbolAddress); } +#else + #define DCMDictionaryManagerAvailable() ((DCMLibraryVersion != (void*)kUnresolvedCFragSymbolAddress) +#endif +#elif TARGET_RT_MAC_MACHO +/* Dictionary Manager is always available on OS X */ +#ifdef __cplusplus + inline pascal Boolean DCMDictionaryManagerAvailable() { return true; } +#else + #define DCMDictionaryManagerAvailable() (true) +#endif +#endif /* */ + +/* +============================================================================================= + Definitions for Japanese Analysis Module +============================================================================================= +*/ +/* + Default dictionary access method for Japanese analysis +*/ +#define kAppleJapaneseDefaultAccessMethodName "\pDAM:Apple Backward Trie Access Method" +/* + Data length limitations of Apple Japanese dictionaries +*/ +enum { + kMaxYomiLengthInAppleJapaneseDictionary = 40, + kMaxKanjiLengthInAppleJapaneseDictionary = 64 +}; + +/* + Defined field tags of Apple Japanese dictionary +*/ +enum { + kDCMJapaneseYomiTag = FOUR_CHAR_CODE('yomi'), + kDCMJapaneseHyokiTag = FOUR_CHAR_CODE('hyok'), + kDCMJapaneseHinshiTag = FOUR_CHAR_CODE('hins'), + kDCMJapaneseWeightTag = FOUR_CHAR_CODE('hind'), + kDCMJapanesePhoneticTag = FOUR_CHAR_CODE('hton'), + kDCMJapaneseAccentTag = FOUR_CHAR_CODE('acnt'), + kDCMJapaneseOnKunReadingTag = FOUR_CHAR_CODE('OnKn'), + kDCMJapaneseFukugouInfoTag = FOUR_CHAR_CODE('fuku') +}; + +enum { + kDCMJapaneseYomiType = typeUnicodeText, + kDCMJapaneseHyokiType = typeUnicodeText, + kDCMJapaneseHinshiType = FOUR_CHAR_CODE('hins'), + kDCMJapaneseWeightType = typeShortInteger, + kDCMJapanesePhoneticType = typeUnicodeText, + kDCMJapaneseAccentType = FOUR_CHAR_CODE('byte'), + kDCMJapaneseOnKunReadingType = typeUnicodeText, + kDCMJapaneseFukugouInfoType = FOUR_CHAR_CODE('fuku') +}; + + +/* +============================================================================================= + System 7 Dictionary Manager +============================================================================================= +*/ + +#if PRAGMA_STRUCT_ALIGN +#pragma options align=reset +#pragma options align=mac68k +#endif + +enum { + /* Dictionary data insertion modes */ + kInsert = 0, /* Only insert the input entry if there is nothing in the dictionary that matches the key. */ + kReplace = 1, /* Only replace the entries which match the key with the input entry. */ + kInsertOrReplace = 2 /* Insert the entry if there is nothing in the dictionary which matches the key, otherwise replaces the existing matched entries with the input entry. */ +}; + +/* This Was InsertMode */ + +typedef short DictionaryDataInsertMode; +enum { + /* Key attribute constants */ + kIsCaseSensitive = 0x10, /* case sensitive = 16 */ + kIsNotDiacriticalSensitive = 0x20 /* diac not sensitive = 32 */ +}; + +enum { + /* Registered attribute type constants. */ + kNoun = -1, + kVerb = -2, + kAdjective = -3, + kAdverb = -4 +}; + +/* This Was AttributeType */ +typedef SInt8 DictionaryEntryAttribute; +/* Dictionary information record */ +struct DictionaryInformation { + FSSpec dictionaryFSSpec; + SInt32 numberOfRecords; + SInt32 currentGarbageSize; + ScriptCode script; + SInt16 maximumKeyLength; + SInt8 keyAttributes; +}; +typedef struct DictionaryInformation DictionaryInformation; +struct DictionaryAttributeTable { + UInt8 datSize; + DictionaryEntryAttribute datTable[1]; +}; +typedef struct DictionaryAttributeTable DictionaryAttributeTable; +typedef DictionaryAttributeTable * DictionaryAttributeTablePtr; +#if CALL_NOT_IN_CARBON +/* + * InitializeDictionary() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +InitializeDictionary( + const FSSpec * theFsspecPtr, + SInt16 maximumKeyLength, + SInt8 keyAttributes, + ScriptCode script) THREEWORDINLINE(0x303C, 0x0500, 0xAA53); + + +/* + * OpenDictionary() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +OpenDictionary( + const FSSpec * theFsspecPtr, + SInt8 accessPermission, + SInt32 * dictionaryReference) THREEWORDINLINE(0x303C, 0x0501, 0xAA53); + + +/* + * CloseDictionary() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +CloseDictionary(SInt32 dictionaryReference) THREEWORDINLINE(0x303C, 0x0202, 0xAA53); + + +/* + * InsertRecordToDictionary() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +InsertRecordToDictionary( + SInt32 dictionaryReference, + ConstStr255Param key, + Handle recordDataHandle, + DictionaryDataInsertMode whichMode) THREEWORDINLINE(0x303C, 0x0703, 0xAA53); + + +/* + * DeleteRecordFromDictionary() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +DeleteRecordFromDictionary( + SInt32 dictionaryReference, + ConstStr255Param key) THREEWORDINLINE(0x303C, 0x0404, 0xAA53); + + +/* + * FindRecordInDictionary() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +FindRecordInDictionary( + SInt32 dictionaryReference, + ConstStr255Param key, + DictionaryAttributeTablePtr requestedAttributeTablePointer, + Handle recordDataHandle) THREEWORDINLINE(0x303C, 0x0805, 0xAA53); + + +/* + * FindRecordByIndexInDictionary() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +FindRecordByIndexInDictionary( + SInt32 dictionaryReference, + SInt32 recordIndex, + DictionaryAttributeTablePtr requestedAttributeTablePointer, + Str255 recordKey, + Handle recordDataHandle) THREEWORDINLINE(0x303C, 0x0A06, 0xAA53); + + +/* + * GetDictionaryInformation() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +GetDictionaryInformation( + SInt32 dictionaryReference, + DictionaryInformation * theDictionaryInformation) THREEWORDINLINE(0x303C, 0x0407, 0xAA53); + + +/* + * CompactDictionary() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +CompactDictionary(SInt32 dictionaryReference) THREEWORDINLINE(0x303C, 0x0208, 0xAA53); + + + + + +#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 /* __DICTIONARY__ */ + |