home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-1.iso / Files / Internet / Misc / InternetConfigProgKit1.0.sit / ICProgKit1.0 / Examples / IC2Resource / IC2Resource.c next >
Encoding:
C/C++ Source or Header  |  1994-11-29  |  3.6 KB  |  4 lines  |  [TEXT/MMCC]

  1. IC2Resource.cTEXTMMCC ˨´Aâ´AâÅÅ÷¡#include "ICAPI.h"#include "ICKeys.h"#include "ICMappings.h"#include "ICSubs.h"typedef struct {    unsigned char    extension[6];    OSType    fType;    OSType    fCreator;    short    reserved;}typeRec;typedef struct {    short    numTypes;    typeRec    theTypes[1];}typeListRec, **typeListRecH;void InitToolbox (void) {    InitGraf ( &qd.thePort );    InitFonts ();    InitWindows ();    InitMenus ();    TEInit ();    InitDialogs (NULL);        // use of ResumeProcs no longer approved by Apple    InitCursor ();    FlushEvents ( everyEvent, 0 );        // how about some memory fun! Two should be enough!    MoreMasters ();    MoreMasters ();}void main(void){    ICInstance        inst;    ICAttr            attr = 0;    ICError         err;    ICMapEntry        entry;    Handle            mappings = nil;    long            prefsize = 0;    typeListRecH    tlrH = nil;    SFTypeList         typeList;    StandardFileReply    reply;        InitToolbox();        StandardGetFile(nil, -1, typeList, &reply);    // standardfile.h    if (!reply.sfGood)    return;        if (!ICStart(&inst, 'ICMa')) {    // init the sucker        if (!ICFindConfigFile(inst, 0, nil)) {    // locate the config file            if (!ICBegin(inst, icReadOnlyPerm)) {    // open up the file for reading                if (!ICGetPrefHandle(inst, (ConstStr255Param)kICMapping, &attr, &mappings)) {    // get the size                    long         pos = 0, count, i = 0;                    // first things first - found out how many to preflight memory allocation                                        err = ICMCountEntries(mappings, &count);                    if (!err && count) {                        tlrH = (typeListRecH)NewHandle(count * sizeof(typeRec) + sizeof(short));                        if (tlrH) {                            HLock((Handle)tlrH);                            (*tlrH)->numTypes = count-1;    // -1 for 0 based count                                                        err = ICMGetEntry(mappings, pos, &entry);                            do {                                // copy the info out to the typeListH                                BlockMoveData(entry.extension, (*tlrH)->theTypes[i].extension, 6);                                (*tlrH)->theTypes[i].fType = entry.file_type;                                (*tlrH)->theTypes[i].fCreator = entry.file_creator;                                (*tlrH)->theTypes[i].reserved = 1;                                                                // and get the next one!                                i++;                                pos += entry.total_length;                                err = ICMGetEntry(mappings, pos, &entry);                            } while (err == noErr);                                                        // open up the file and add the resource                            {                                short refNum = FSpOpenResFile(&reply.sfFile, fsRdWrPerm);    // resources.h                                Handle    tmpH = Get1Resource('E2Ty', 0);                                                                if (tmpH) {                                    SetHandleSize(tmpH, GetHandleSize((Handle)tlrH));                                    BlockMoveData((Ptr)*tlrH, *tmpH, GetHandleSize((Handle)tlrH));                                    ChangedResource(tmpH);                                    WriteResource(tmpH);                                    DisposHandle((Handle)tlrH);                                } else {                                    AddResource((Handle)tlrH, 'E2Ty', 0, "\p");                                    WriteResource((Handle)tlrH);                                    ReleaseResource((Handle)tlrH);                                }                                CloseResFile(refNum);                            }                        } else                            err = MemError();                    }                                        DisposHandle(mappings);                } else                    StopAlert(129, 0L);                                ICEnd(inst);    // all done            } else                StopAlert(129, 0L);        } else            StopAlert(129, 0L);                ICStop(inst);            // all done    } else        StopAlert(128, 0L);}nn>ˇˇˇˇˇˆˆˆˇˇˆˆˆˆˆ+˜ˇˇıˆˆˇIC2Resource.cTEXTMMCCTEXTMMCC™€§ß ˨ˆ+˜ˇˇıˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ++˜ˇˇˆ++++++++++++++++++˜˜ˇˇˆ˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜¯ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇH    MonacoP ›=P ›=´˚9
  2. ?
  3. CËP ›=P ›=Ënn>`—¯ˆ>MPSR
  4. ÌˇˇˇˇLc/|