Listing 2-10 – Apple Network Setup User Manual

Page 38

Advertising
background image

C H A P T E R 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;

}

Advertising