summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/NameRegistry.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/NameRegistry.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/NameRegistry.h')
-rw-r--r--common/quicktime_win32/NameRegistry.h840
1 files changed, 840 insertions, 0 deletions
diff --git a/common/quicktime_win32/NameRegistry.h b/common/quicktime_win32/NameRegistry.h
new file mode 100644
index 0000000..7b8c752
--- /dev/null
+++ b/common/quicktime_win32/NameRegistry.h
@@ -0,0 +1,840 @@
+/*
+ File: NameRegistry.h
+
+ Contains: NameRegistry Interfaces
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1993-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 __NAMEREGISTRY__
+#define __NAMEREGISTRY__
+
+#ifndef __MACTYPES__
+#include <MacTypes.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
+
+/*******************************************************************************
+ *
+ * Foundation Types
+ *
+ */
+/* Value of a property */
+typedef void * RegPropertyValue;
+/* Length of property value */
+typedef UInt32 RegPropertyValueSize;
+/*******************************************************************************
+ *
+ * RegEntryID : The Global x-Namespace Entry Identifier
+ *
+ */
+struct RegEntryID {
+ UInt32 contents[4];
+};
+typedef struct RegEntryID RegEntryID;
+typedef RegEntryID * RegEntryIDPtr;
+/*******************************************************************************
+ *
+ * Root Entry Name Definitions (Applies to all Names in the RootNameSpace)
+ *
+ * o Names are a colon-separated list of name components. Name components
+ * may not themselves contain colons.
+ * o Names are presented as null-terminated ASCII character strings.
+ * o Names follow similar parsing rules to Apple file system absolute
+ * and relative paths. However the '::' parent directory syntax is
+ * not currently supported.
+ */
+/* Max length of Entry Name */
+enum {
+ kRegCStrMaxEntryNameLength = 47
+};
+
+/* Entry Names are single byte ASCII */
+typedef char RegCStrEntryName;
+typedef char * RegCStrEntryNamePtr;
+/* length of RegCStrEntryNameBuf = kRegCStrMaxEntryNameLength+1*/
+typedef char RegCStrEntryNameBuf[48];
+typedef char RegCStrPathName;
+typedef UInt32 RegPathNameSize;
+enum {
+ kRegPathNameSeparator = ':', /* 0x3A */
+ kRegEntryNameTerminator = 0x00, /* '\0' */
+ kRegPathNameTerminator = 0x00 /* '\0' */
+};
+
+/*******************************************************************************
+ *
+ * Property Name and ID Definitions
+ * (Applies to all Properties Regardless of NameSpace)
+ */
+enum {
+ kRegMaximumPropertyNameLength = 31, /* Max length of Property Name */
+ kRegPropertyNameTerminator = 0x00 /* '\0' */
+};
+
+typedef char RegPropertyNameBuf[32];
+typedef char RegPropertyName;
+typedef char * RegPropertyNamePtr;
+/*******************************************************************************
+ *
+ * Iteration Operations
+ *
+ * These specify direction when traversing the name relationships
+ */
+typedef UInt32 RegIterationOp;
+typedef RegIterationOp RegEntryIterationOp;
+enum {
+ /* Absolute locations*/
+ kRegIterRoot = 0x00000002, /* "Upward" Relationships */
+ kRegIterParents = 0x00000003, /* include all parent(s) of entry */
+ /* "Downward" Relationships*/
+ kRegIterChildren = 0x00000004, /* include all children */
+ kRegIterSubTrees = 0x00000005, /* include all sub trees of entry */
+ kRegIterDescendants = 0x00000005, /* include all descendants of entry */
+ /* "Horizontal" Relationships */
+ kRegIterSibling = 0x00000006, /* include all siblings */
+ /* Keep doing the same thing*/
+ kRegIterContinue = 0x00000001
+};
+
+/*******************************************************************************
+ *
+ * Name Entry and Property Modifiers
+ *
+ *
+ *
+ * Modifiers describe special characteristics of names
+ * and properties. Modifiers might be supported for
+ * some names and not others.
+ *
+ * Device Drivers should not rely on functionality
+ * specified as a modifier.
+ */
+typedef UInt32 RegModifiers;
+typedef RegModifiers RegEntryModifiers;
+typedef RegModifiers RegPropertyModifiers;
+enum {
+ kRegNoModifiers = 0x00000000, /* no entry modifiers in place */
+ kRegUniversalModifierMask = 0x0000FFFF, /* mods to all entries */
+ kRegNameSpaceModifierMask = 0x00FF0000, /* mods to all entries within namespace */
+ kRegModifierMask = (long)0xFF000000 /* mods to just this entry */
+};
+
+/* Universal Property Modifiers */
+enum {
+ kRegPropertyValueIsSavedToNVRAM = 0x00000020, /* property is non-volatile (saved in NVRAM) */
+ kRegPropertyValueIsSavedToDisk = 0x00000040 /* property is non-volatile (saved on disk) */
+};
+
+/* NameRegistry version, Gestalt/PEF-style -- MUST BE KEPT IN SYNC WITH MAKEFILE !! */
+enum {
+ LatestNR_PEFVersion = 0x01030000 /* latest NameRegistryLib version (Gestalt/PEF-style) */
+};
+
+/* ///////////////////////
+//
+// The Registry API
+//
+/////////////////////// */
+/* NameRegistry dispatch indexes */
+enum {
+ kSelectRegistryEntryIDInit = 0,
+ kSelectRegistryEntryIDCompare = 1,
+ kSelectRegistryEntryIDCopy = 2,
+ kSelectRegistryEntryIDDispose = 3,
+ kSelectRegistryCStrEntryCreate = 4,
+ kSelectRegistryEntryDelete = 5,
+ kSelectRegistryEntryCopy = 6,
+ kSelectRegistryEntryIterateCreate = 7,
+ kSelectRegistryEntryIterateDispose = 8,
+ kSelectRegistryEntryIterateSet = 9,
+ kSelectRegistryEntryIterate = 10,
+ kSelectRegistryEntrySearch = 11,
+ kSelectRegistryCStrEntryLookup = 12,
+ kSelectRegistryEntryToPathSize = 13,
+ kSelectRegistryCStrEntryToPath = 14,
+ kSelectRegistryCStrEntryToName = 15,
+ kSelectRegistryPropertyCreate = 16,
+ kSelectRegistryPropertyDelete = 17,
+ kSelectRegistryPropertyRename = 18,
+ kSelectRegistryPropertyIterateCreate = 19,
+ kSelectRegistryPropertyIterateDispose = 20,
+ kSelectRegistryPropertyIterate = 21,
+ kSelectRegistryPropertyGetSize = 22,
+ kSelectRegistryPropertyGet = 23,
+ kSelectRegistryPropertySet = 24,
+ kSelectRegistryEntryGetMod = 25,
+ kSelectRegistryEntrySetMod = 26,
+ kSelectRegistryPropertyGetMod = 27,
+ kSelectRegistryPropertySetMod = 28,
+ kSelectRegistryEntryMod = 29,
+ kSelectRegistryEntryPropertyMod = 30, /* if you add more selectors here, remember to change 'kSelectRegistryHighestSelector' below*/
+ kSelectRegistryHighestSelector = kSelectRegistryEntryPropertyMod
+};
+
+
+/* ///////////////////////
+//
+// Entry Management
+//
+/////////////////////// */
+
+/*-------------------------------
+ * EntryID handling
+ */
+/*
+ * Initialize an EntryID to a known invalid state
+ * note: invalid != uninitialized
+ */
+#if CALL_NOT_IN_CARBON
+/*
+ * RegistryEntryIDInit()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryIDInit(RegEntryID * id) TWOWORDINLINE(0x7000, 0xABE9);
+
+
+/*
+ * Compare EntryID's for equality or if invalid
+ *
+ * If a NULL value is given for either id1 or id2, the other id
+ * is compared with an invalid ID. If both are NULL, the id's
+ * are consided equal (result = true).
+ */
+/*
+ * RegistryEntryIDCompare()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( Boolean )
+RegistryEntryIDCompare(
+ const RegEntryID * id1,
+ const RegEntryID * id2) TWOWORDINLINE(0x7001, 0xABE9);
+
+
+/*
+ * Copy an EntryID
+ */
+/*
+ * RegistryEntryIDCopy()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryIDCopy(
+ const RegEntryID * src,
+ RegEntryID * dst) TWOWORDINLINE(0x7002, 0xABE9);
+
+
+/*
+ * Free an ID so it can be reused.
+ */
+/*
+ * RegistryEntryIDDispose()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryIDDispose(RegEntryID * id) TWOWORDINLINE(0x7003, 0xABE9);
+
+
+/*-------------------------------
+ * Adding and removing entries
+ *
+ * If (parentEntry) is NULL, the name is assumed
+ * to be a rooted path. It is rooted to an anonymous, unnamed root.
+ */
+/*
+ * RegistryCStrEntryCreate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryCStrEntryCreate(
+ const RegEntryID * parentEntry,
+ const RegCStrPathName * name,
+ RegEntryID * newEntry) TWOWORDINLINE(0x7004, 0xABE9);
+
+
+/*
+ * RegistryEntryDelete()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryDelete(const RegEntryID * id) TWOWORDINLINE(0x7005, 0xABE9);
+
+
+/*
+ * RegistryEntryCopy()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryCopy(
+ RegEntryID * parentEntryID,
+ RegEntryID * sourceDevice,
+ RegEntryID * destDevice) TWOWORDINLINE(0x7006, 0xABE9);
+
+
+/*---------------------------
+ * Traversing the namespace
+ *
+ * To support arbitrary namespace implementations in the future,
+ * I have hidden the form that the place pointer takes. The previous
+ * interface exposed the place pointer by specifying it as a
+ * RegEntryID.
+ *
+ * I have also removed any notion of returning the entries
+ * in a particular order, because an implementation might
+ * return the names in semi-random order. Many name service
+ * implementations will store the names in a hashed lookup
+ * table.
+ *
+ * Writing code to traverse some set of names consists of
+ * a call to begin the iteration, the iteration loop, and
+ * a call to end the iteration. The begin call initializes
+ * the iteration cookie data structure. The call to end the
+ * iteration should be called even in the case of error so
+ * that allocated data structures can be freed.
+ *
+ * Create(...)
+ * do {
+ * Iterate(...);
+ * } while (!done);
+ * Dispose(...);
+ *
+ * This is the basic code structure for callers of the iteration
+ * interface.
+ */
+#endif /* CALL_NOT_IN_CARBON */
+
+typedef struct OpaqueRegEntryIter* RegEntryIter;
+/*
+ * create/dispose the iterator structure
+ * defaults to root with relationship = kRegIterDescendants
+ */
+#if CALL_NOT_IN_CARBON
+/*
+ * RegistryEntryIterateCreate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryIterateCreate(RegEntryIter * cookie) TWOWORDINLINE(0x7007, 0xABE9);
+
+
+/*
+ * RegistryEntryIterateDispose()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryIterateDispose(RegEntryIter * cookie) TWOWORDINLINE(0x7008, 0xABE9);
+
+
+/*
+ * set Entry Iterator to specified entry
+ */
+/*
+ * RegistryEntryIterateSet()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryIterateSet(
+ RegEntryIter * cookie,
+ const RegEntryID * startEntryID) TWOWORDINLINE(0x7009, 0xABE9);
+
+
+/*
+ * Return each value of the iteration
+ *
+ * return entries related to the current entry
+ * with the specified relationship
+ */
+/*
+ * RegistryEntryIterate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryIterate(
+ RegEntryIter * cookie,
+ RegEntryIterationOp relationship,
+ RegEntryID * foundEntry,
+ Boolean * done) TWOWORDINLINE(0x700A, 0xABE9);
+
+
+/*
+ * return entries with the specified property
+ *
+ * A NULL RegPropertyValue pointer will return an
+ * entry with the property containing any value.
+ */
+/*
+ * RegistryEntrySearch()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntrySearch(
+ RegEntryIter * cookie,
+ RegEntryIterationOp relationship,
+ RegEntryID * foundEntry,
+ Boolean * done,
+ const RegPropertyName * propertyName,
+ const void * propertyValue,
+ RegPropertyValueSize propertySize) TWOWORDINLINE(0x700B, 0xABE9);
+
+
+/*--------------------------------
+ * Find a name in the namespace
+ *
+ * This is the fast lookup mechanism.
+ * NOTE: A reverse lookup mechanism
+ * has not been provided because
+ * some name services may not
+ * provide a fast, general reverse
+ * lookup.
+ */
+/*
+ * RegistryCStrEntryLookup()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryCStrEntryLookup(
+ const RegEntryID * searchPointID,
+ const RegCStrPathName * pathName,
+ RegEntryID * foundEntry) TWOWORDINLINE(0x700C, 0xABE9);
+
+
+/*---------------------------------------------
+ * Convert an entry to a rooted name string
+ *
+ * A utility routine to turn an Entry ID
+ * back into a name string.
+ */
+/*
+ * RegistryEntryToPathSize()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryToPathSize(
+ const RegEntryID * entryID,
+ RegPathNameSize * pathSize) TWOWORDINLINE(0x700D, 0xABE9);
+
+
+/*
+ * RegistryCStrEntryToPath()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryCStrEntryToPath(
+ const RegEntryID * entryID,
+ RegCStrPathName * pathName,
+ RegPathNameSize pathSize) TWOWORDINLINE(0x700E, 0xABE9);
+
+
+/*
+ * Parse a path name.
+ *
+ * Retrieve the last component of the path, and
+ * return a spec for the parent.
+ */
+/*
+ * RegistryCStrEntryToName()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryCStrEntryToName(
+ const RegEntryID * entryID,
+ RegEntryID * parentEntry,
+ RegCStrEntryName * nameComponent,
+ Boolean * done) TWOWORDINLINE(0x700F, 0xABE9);
+
+
+/* //////////////////////////////////////////////////////
+//
+// Property Management
+//
+////////////////////////////////////////////////////// */
+/*-------------------------------
+ * Adding and removing properties
+ */
+/*
+ * RegistryPropertyCreate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertyCreate(
+ const RegEntryID * entryID,
+ const RegPropertyName * propertyName,
+ const void * propertyValue,
+ RegPropertyValueSize propertySize) TWOWORDINLINE(0x7010, 0xABE9);
+
+
+/*
+ * RegistryPropertyDelete()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertyDelete(
+ const RegEntryID * entryID,
+ const RegPropertyName * propertyName) TWOWORDINLINE(0x7011, 0xABE9);
+
+
+/*
+ * RegistryPropertyRename()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertyRename(
+ const RegEntryID * entry,
+ const RegPropertyName * oldName,
+ const RegPropertyName * newName) TWOWORDINLINE(0x7012, 0xABE9);
+
+
+/*---------------------------
+ * Traversing the Properties of a name
+ *
+ */
+#endif /* CALL_NOT_IN_CARBON */
+
+typedef struct OpaqueRegPropertyIter* RegPropertyIter;
+#if CALL_NOT_IN_CARBON
+/*
+ * RegistryPropertyIterateCreate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertyIterateCreate(
+ const RegEntryID * entry,
+ RegPropertyIter * cookie) TWOWORDINLINE(0x7013, 0xABE9);
+
+
+/*
+ * RegistryPropertyIterateDispose()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertyIterateDispose(RegPropertyIter * cookie) TWOWORDINLINE(0x7014, 0xABE9);
+
+
+/*
+ * RegistryPropertyIterate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertyIterate(
+ RegPropertyIter * cookie,
+ RegPropertyName * foundProperty,
+ Boolean * done) TWOWORDINLINE(0x7015, 0xABE9);
+
+
+/*
+ * Get the value of the specified property for the specified entry.
+ *
+ */
+/*
+ * RegistryPropertyGetSize()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertyGetSize(
+ const RegEntryID * entryID,
+ const RegPropertyName * propertyName,
+ RegPropertyValueSize * propertySize) TWOWORDINLINE(0x7016, 0xABE9);
+
+
+/*
+ * (*propertySize) is the maximum size of the value returned in the buffer
+ * pointed to by (propertyValue). Upon return, (*propertySize) is the size of the
+ * value returned.
+ */
+/*
+ * RegistryPropertyGet()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertyGet(
+ const RegEntryID * entryID,
+ const RegPropertyName * propertyName,
+ void * propertyValue,
+ RegPropertyValueSize * propertySize) TWOWORDINLINE(0x7017, 0xABE9);
+
+
+/*
+ * RegistryPropertySet()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertySet(
+ const RegEntryID * entryID,
+ const RegPropertyName * propertyName,
+ const void * propertyValue,
+ RegPropertyValueSize propertySize) TWOWORDINLINE(0x7018, 0xABE9);
+
+
+/* //////////////////////////////////////////////////////
+//
+// Modifier Management
+//
+////////////////////////////////////////////////////// */
+/*
+ * Modifiers describe special characteristics of names
+ * and properties. Modifiers might be supported for
+ * some names and not others.
+ *
+ * Device Drivers should not rely on functionality
+ * specified as a modifier. These interfaces
+ * are for use in writing Experts.
+ */
+/*
+ * Get and Set operators for entry modifiers
+ */
+/*
+ * RegistryEntryGetMod()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryGetMod(
+ const RegEntryID * entry,
+ RegEntryModifiers * modifiers) TWOWORDINLINE(0x7019, 0xABE9);
+
+
+/*
+ * RegistryEntrySetMod()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntrySetMod(
+ const RegEntryID * entry,
+ RegEntryModifiers modifiers) TWOWORDINLINE(0x701A, 0xABE9);
+
+
+/*
+ * Get and Set operators for property modifiers
+ */
+/*
+ * RegistryPropertyGetMod()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertyGetMod(
+ const RegEntryID * entry,
+ const RegPropertyName * name,
+ RegPropertyModifiers * modifiers) TWOWORDINLINE(0x701B, 0xABE9);
+
+
+/*
+ * RegistryPropertySetMod()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryPropertySetMod(
+ const RegEntryID * entry,
+ const RegPropertyName * name,
+ RegPropertyModifiers modifiers) TWOWORDINLINE(0x701C, 0xABE9);
+
+
+/*
+ * Iterator operator for entry modifier search
+ */
+/*
+ * RegistryEntryMod()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryMod(
+ RegEntryIter * cookie,
+ RegEntryIterationOp relationship,
+ RegEntryID * foundEntry,
+ Boolean * done,
+ RegEntryModifiers matchingModifiers) TWOWORDINLINE(0x701D, 0xABE9);
+
+
+/*
+ * Iterator operator for entries with matching
+ * property modifiers
+ */
+/*
+ * RegistryEntryPropertyMod()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NameRegistryLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+RegistryEntryPropertyMod(
+ RegEntryIter * cookie,
+ RegEntryIterationOp relationship,
+ RegEntryID * foundEntry,
+ Boolean * done,
+ RegPropertyModifiers matchingModifiers) TWOWORDINLINE(0x701E, 0xABE9);
+
+
+
+#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 /* __NAMEREGISTRY__ */
+