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.
840 lines
23 KiB
840 lines
23 KiB
/* |
|
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__ */ |
|
|
|
|