OSErr GetConfig(Ptr config) { OSErr error = noErr; FSSpec where; short ref; Handle theString; Ptr temp = nil; long len; config[0] = '\0'; // Start without a name error = FindPrefs(&where); ref = FSpOpenResFile(&where, fsRdWrPerm); if (ref != -1) { theString = Get1Resource('STR ',kConfigRes); // Should look in most recent file first if (theString != nil) { len = SizeResource(theString); SetPtrSize(config, len); // Set the size error = MemError(); // And make sure it worked if (error == noErr) { HLock(theString); temp = (Ptr)*theString; memcpy(config, temp, len); HUnlock(theString); ReleaseResource(theString); } } else { error = -4; } CloseResFile(ref); } else { error = ResError(); } return error; }
long BetterSizeResource(short resFile,ResType resType,short resID) { Handle theHandle; long theSize=0L; short saveResLoad=LMGetResLoad(); SetResLoad(false); theHandle=BetterGetResource(resFile,resType,resID); if (theHandle) { theSize=SizeResource(theHandle); ReleaseResource(theHandle); } if (saveResLoad) SetResLoad(true); return theSize; }