Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1300 lines
35 KiB

5 years ago
/*
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__ */