Pathnames may be of any length, but components of a pathname are limited as follows:
enum
{
kRegCStrMaxEntryNameLength = 31
kRegMaximumPropertyNameLength = 31
};
typedef char RegCStrPathName;
typedef unsigned long
RegPathNameSize;
typedef char RegCStrEntryName,
*RegCStrEntryNamePtr
RegCStrEntryNameBuf[kRegCStrMaxEntryNameLength];
typedef char RegPropertyName,
*RegPropertyNamePtr
RegPropertyNameBuf[kRegMaximumPropertyNameLength];
struct RegEntryID {
UInt8 opaque[16];
};
typedef struct RegEntryID RegEntryID, *RegEntryIDPtr;
Software must use directed moves when examining a neighborhood in the Registry's name tree. The following constants indicate the direction of movement during traversals of the hierarchical Registry tree:
typedef unsigned long
RegIterationOp;
typedef RegIterationOp
RegEntryIterationOp;
enum
{
kRegIterRoot = 0x2L, // absolute locations
kRegIterParents = 0x3L, // include all parent(s) of entry
kRegIterChildren = 0x4L, // include all children
kRegIterDescendants = 0x5L, // include all subtrees of entry
kRegIterSibling = 0x6L, // include all siblings
kRegIterContinue = 0x1L // keep doing the same thing
};