summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/Dictionary.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/Dictionary.h')
-rw-r--r--common/quicktime_win32/Dictionary.h1299
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__ */
+