Apple Network Setup Network Card User Manual


 
CHAPTER 2
Using Network Setup
38 Reading and Writing Preferences
by calling OTCfgGetPrefsSize before you read the preference, as shown in
Listing 2-10.
Listing 2-10 Calling OTCfgGetPrefsSize to read a variable-size preference
static OSStatus MyReadVariableSizePref(CfgDatabaseRef dbRef,
const CfgEntityRef *entity,
OSType prefType,
Handle buffer)
{
OSStatus err;
OSStatus err2;
CfgEntityAccessID accessID;
ByteCount prefSize;
SInt8 s;
assert(dbRef != nil);
assert(entity != nil);
assert(buffer != nil);
err = OTCfgOpenPrefs(dbRef, entity, false, &accessID);
if (err == noErr) {
err = OTCfgGetPrefsSize(accessID, prefType, &prefSize);
if (err == noErr) {
SetHandleSize(buffer, prefSize);
err = MemError();
}
if (err == noErr) {
s = HGetState(buffer); assert(MemError()
== noErr);
HLock(buffer); assert(MemError()
== noErr);
err = OTCfgGetPrefs(accessID, prefType, *buffer, prefSize);
HSetState(buffer, s); assert(MemError()
== noErr);
}
err2 = OTCfgClosePrefs(accessID);
if (err == noErr) {
err = err2;
}