mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-15 21:26:57 +00:00
1
This commit is contained in:
@@ -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__ */
|
||||
|
||||
Reference in New Issue
Block a user