Apple manual Using Network Setup, Reading and Writing Preferences

Models: Network Setup

1 184
Download 184 pages 5.56 Kb
Page 38
Image 38
38Reading and Writing Preferences

C H A P T E R 2

Using Network Setup

by calling OTCfgGetPrefsSize before you read the preference, as shown in Listing 2-10.

Listing 2-10Calling 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;

}

38Reading and Writing Preferences

Page 38
Image 38
Apple manual Using Network Setup, Reading and Writing Preferences