blob@Apple.COM (Brian Bechtel) (05/21/91)
This application is for System 7.0 only. To use Change Type & Creator, drop any file (or selection of files) on top of it. You'll get a dialog box which will allow you to specify a new type and creator. Sample source code (for Think C 4.0.5) is included. I know this isn't the place for binaries, but the binary is short and included as well. Both the application and the source code are freely redistributable. You don't have to ask me for permission. No support nor warranty is implied by my giving this program away. If you want to change the default type and creator displayed in the dialog box, change the DITL resource using ResEdit. Thanks to Juri Munkki for the inspiration. I apologize for the bad C code. --Brian Bechtel blob@apple.com "My code, not Apple's" /* >> ChangeTypeCreator.c >> change the file type and creator of any file dropped onto this program. >> Prompts for the file type and creator, and changes all files dropped at >> the same time to the same type and creator. >> >> Written by Brian Bechtel, based on code by Juri Munkki >> Feel free to use the code in your programs. */ void ReadFinderStuff(type, creator) long type; long creator; { short message,count,i; AppFile thefile; FileParam block; CountAppFiles(&message,&count); if(message==1) { return; } else { for(i=1;i<=count;i++) { GetAppFiles(i,&thefile); block.ioCompletion=0; block.ioNamePtr=thefile.fName; block.ioVRefNum=thefile.vRefNum; block.ioFVersNum=thefile.versNum; block.ioFDirIndex=0; if (PBGetFInfo((ParmBlkPtr)&block,0) == noErr) { block.ioFlFndrInfo.fdType = type; block.ioFlFndrInfo.fdCreator = creator; PBSetFInfo((ParmBlkPtr)&block,0); } } } } #define OK 1 #define CANCEL 2 #define TYPE 3 #define CREATOR 4 Boolean GetTypeCreator(type, creator) long *type; long *creator; { DialogPtr dPtr; short itemHit; Handle itemHandle; short itemType; Rect box; Str255 itemString; dPtr = GetNewDialog(128, nil, (WindowPtr) -1); SelIText(dPtr, TYPE, 0, 4); do { ModalDialog(nil, &itemHit); } while ((itemHit != OK) && (itemHit != CANCEL)); if (itemHit == CANCEL) { return (false); } else { GetDItem(dPtr, TYPE, &itemType, &itemHandle, &box); GetIText(itemHandle, itemString); BlockMove((Ptr)&itemString[1], type, 4); GetDItem(dPtr, CREATOR, &itemType, &itemHandle, &box); GetIText(itemHandle, itemString); BlockMove((Ptr)&itemString[1], creator, 4); return (true); } } void main() { long type; long creator; InitGraf(&thePort); InitFonts(); InitWindows(); InitMenus(); TEInit(); InitCursor(); InitDialogs(nil); if (GetTypeCreator(&type, &creator)) ReadFinderStuff(type, creator); } (This file must be converted with BinHex 4.0) :&80SB@jRC5"8HA"P)#BJ3h*PBA4[FJ""8&"-3e4$IL!!N!F55c0p!*!%!3#3!a# *!!!2L3!!!F+"E`!"0(i"GTpfH5NB5'lrm#m-)&3J8#*S!,a1N3%YEK9$D'&ZCf8 J9(P`C5!Q)%0bC@&dEh)#!*!$39"36%08!!""8&"-3e4$IL%!!0!!N"5NAS1N!*! '%NY3)#J$!)T+"@Cbjh43!3Jb,C%ZIhj89eX#U@`k(hqh@`+`U!"`C`&R%,GE!V# S!(5P9ATEfPX$Cbj+4@FU3J(f"L!")"NZ!NM&,`8c6!(cNL!9F3&J&#!4!IJ')"! J%J)Bm2r-)!QIA!%$#)a2+L!PAj@94e!J*RRC*@e"!A!%9L!T!*!$!J#3"3)!c!# 3"J)@!&!!!8j@rU*)E[rq5'lrr%kk!CS-EJ!"rrjR!!"XF!%p32rkB&Jr,[rk5'l qmNkk!D"#V[kZ3HlqqLe)rV3pE[lbrVJGE[ljrVa#E[kq3QG)E[kL3QG1ZJ%`-"p +3'BD,@i!#2l#,@i!$2l'3QG)E[kL3QG1ZJ%N-"p5E[rk-#lrqV"Zrra[RNjH6R9 19[lX3UFr2!#!3UG)H2rrUA`JAbe)rr`[,[rm2c`!!d*R2c`!"+Pq3UG)E[rkUC% -EJ!"rrTR#!aZ!!,rqQES$'i!![rkCJ4`!'"L,blrr$mm!!0)E[rd5'lrpNKZrqb TM5mZrrC)E[lXUC!!5'lql5mZ!!K)H!!%6VS!G#mZrr`r2!!%5'lrp%KZrrC)E[r XUBd[,[rf5'lql+Q3!%KZrZd[,J!-5(J!"%kk!%4`!8jH6R919[ri5'hrr+KZU2k T%UN`UFbS8%+RUAY)E[ri5'lrr%kkrba3MdS!C`i[,[ri,blrr%kkrT*3MdjH6R8 L(b!I)PmJAk!Z)N&1d5*I%"mJAfB%S!aJ!U3-2S"1d5*I%"mJAfB%S!eJ!U302S" 1d5*[!!4#85"i#ZbJ*8U!E`iJ8#*[!!JbQ#*[!!3bN!!JAe"26Y")j`!`)Qm!$%+ T!!)JH!VXS#9+J'mQ*&"85M)[!"#b@QiD8d&Y&L"+F!,3+!!)!N$rrP"!e-#J,P0 "B1K-h``!)&pF6dl3!!!#,J#3!`S!N!0b3RJ+5Th16VS!*%*R5(N!!2rr5'm!"%K A2c`!!5)krpj1Y4!!)'d!E%k3!+Rd@Bm[2&T&8Np#CkQJ*&GCMbmm4%&838*RUD! J9b"3)RJ*##45B!ibf'B+-KTJ!N)C8FRrr,[*CZkTSkQM@Bm[2%4548a#CkQJ)&H J*5"3iN!N$@!'-KM9Y4!!8FMrq+QM6R8JAc)B0"L`@&I*rrT+3QIq6[!Jr#"I-KJ d',#B9mRrqNT#Crj1m#$k)&mb'$3BX%*Z#T!!3@d'd%""m!!#-""RrNl`!!!J,`! %,d%!"#)[!!J[A`!%51Fm!#3!*J&)3X6$+!!U!8K&b-A84%K#N!2!`G##60m!2#) I6R8J,`!%,d%!"#)[!!J[A`!%51Fa!%kk!*a-h`#-)Kp1G5![!!3[33!%)Lm!##p I!!4)jc%!6VS!I#!"60m!M#)I6R8J,`!%,d%!"#)[!!J[A`!%51Fa!%kk!#a-h`# -)Kp1G5![!!3[33!%)Lm!##pI!!4)jc%!6VS!$#!"60m!M#)I6R9+J'SF5S&U$%5 !4)&1ZJ!J4)&1G85!6VS!&N5!4)&1G8U"DJT%J8kk!!C%J%je,M`!!2rrXS"M"L) !F!"1GE#(BJb!`8K!-J"#3%K!6R@bKf)D,J"#3%K!J-&)3%K(2J")4il"-!G)4c) (6R8N!#B"iSMLLE+(B[L!`F#(-J2#`#i$5%I1`%K(dSGP#*+#BJ4%J8je8d"Jj%j e!*!$D!#3!hJ!N!21!*!$@!#3!b!!"$mm!!'Tm!#52c`!!DR`!+Br2!!"UI!!ZMm m!!'Tm!$@2c`!!DR`!3`r2!!"UI!",$mm!!'Tm!&12c`!!DR`!@ir2!!"UI!#+$m m!!'Tm!%k2c`!!UR`!*!$#J#3!`%!N!-"!*!%!3)!"J#3"DN!%J#p!%`%!Np,!*! &U3"Q!,d!S!3'3f&ZBf9X!*!&CJ"f!(B!R4!%9%9B9!#3"BF!GJ#A!*d3"%eA58N !N!9Q!#)!GJ"YL!P1CAFJ9(P`C6S!N!D(!!d!P`"YL!a1CAFJ3h*PBA4[FMS!N!8 %!!S!9!#VL(G6CA3J4QPXC5"8HA"P,d0bC@&dEh)JBRNJC(*[F("TEQFJB5"QD@a P)'pZG'mJG'KTFb"KF("XD@0KG'P[EY9c)'PMEfiZ)#""GA4SEh)k)%*bD@&Z)%* PBfKdC@`Z)#"'FQ9PE(NJFQ9NDA0dFQPLGA4KBQaP,J#3"#4$9%0q!*!$!8C548B !!3#3!i!!!3#"5801)`!"!*!$J!!"!*!&"d&38%`!N!B(+T!%!!%!N!-"!!Ij!!! (qS!!"ra!!!)))!!#""!!!3))!!%""!!"#))!!3K"!!-)3)!&#%"!#3a!)"%D3"! JQN!)3)b!")"&!!*!*J!")"J!!K!)!!3)#!!)"!!!%!)!!#!"!!"!!)!!J!"!!3! !)!)!!"!%!!!)#!!!""!!!!)J!!!"3!#3!i!!"rN!!!IlJ!!(rm!!!rrJ!!2rm!! "rrJ!!Irm!!(rrJ!"rrm!!rrrJ!Irrm!2rrrJ(rrrm$rrrrKrrrrmrj!$r[q3!rj rrj!$2rrrrKrrrr`2rrri"rrrm!2rrq!"rrr!!2rrJ!"rr`!!2ri!!"rm!!!2q!! !"r!!!!2J!!!"`!#3!`3!N!ErN!J!!2m!N"ArN!J!rm[r!*!8rj!*bj!$r`#3&2p HN!Arbj!&r`#3%rpHN!Erbj!&r`#3%rpHN!Erbj!&r`#3%[pHN!Irbj!&r`#3%Ip HN!6rAT!$rmZ3"Im!N"$rAT!%rek3"2r,N!Ar!*!1rrpHN!6rAT!%rmZ3"[m!N!c rbrpHN!6rAT!%rmZ3"rm!N!Vrbm[rAT!%rrpHN!2rbj!)r`#3#2r,N!2rAT!$rrr ,rejHrmZ3#Im!N!Erbj!&rejHrrr,rejHrmZ3#[m!N!6rbj!'rek3!rrrAPlrbj! -r`!!rmZ3#2pHN!2rA[r,N!lr!!$rbj!)rejHrrr,N"$r!!$rbj!)rrr,N"(r!*! %rmZ3#2r,N"$r!*!'rmZ3"rr,N!rr!*!)rmZ3&Im!N!Vrbj!6r`#3$2r,N"(r!*! 1rmZ3$rm!N"$rbj!0r`#3%[r,N![r!*!8rmZ3#Im!N"Erbj!(r`#3'2r,N!Ar!*! DrmZ3!rm!N"crbrm!N"lr!*!4!J#3!`rrN!2`$`#3#JrrN!2`qI!!N!N2rj!%QCm !N!VlZl[jQCR`!*!*qlZl[jQCR`#3#3qlN!2jQCR`!*!)$lZ3!lqCQCm!N!J2Zl[ lZrQCQI!!N!F2Zl[lZlqCQCm!N!IrZl[lZlqCN!2`!*!&$jqlZrZl[jQ3!jm!N!A jRlZlrlZrQC!%m!#3!`qCRlZrqIZrQC!%R`#3!rQCQIZrqIZrQC!&m!!2QC!$ql[ rZrQCN!@I!2QCN!1IZlqrQC!(m!qCN!6l[rQCN!HI!2QCN!1IqCQ3#2!!$jQ3"2Q CN!HI!*!$qCQ3!rQCN!I`!*!$$jQ3#Tm!N!AjQC!*m!#3"3qCN!LI!*!(qCQ3"r! !N!F2QC!'R`#3#IQCN!A`!*!*$jQ3"*m!N![jQC!$m!#3#`qCQCm!N!hjQI!!N!d 2R`#3$r!!N!T!2i!q`"0J%l!5Q$+-AiD,JmF"BJ)`""J)$"!')!0!!B!rJ$r!(q! Im"ri2rarr[q3"Rrq2r`Iq!r`"q!$`!!!!3#3!rq3"`#3#Iq3"F[rr`#3#IpHA[r rbrrr!*!)rejHrj!$brrr!*!(rejHrelrbm[rr`#3"IrrAPlrA[r,N!2rr`#3!rr ,rj!'bj!%rrm!rmZ3!rpHrj!$bj!&rj!%bj!$rj!$bj!(r`$rrmZ3!rr,N!Ir!*! $rrr,N!Rr!*!&rrr,N!Ir!*!(rrr,N!Ar!*!*rrr,N!2r!*!,rrr,r`#3$Irr!*! +J!$rN!2`!*!%rrrjr`#3"!qlrjr`!*!$$l[rqIm!N!-2Zr[jRr!!!2qlqrQCr`! 2RrrrqCQIm2QCqrrjQCRrrjQIrjQ3!jm2qCRjQC!$m!$rQC!%R`!!$rQCN!2`!*! $rjQCR`#3"!rjQI!!N!ArR`#3"Jr`!*!'!3#3""J!8!#N!4)"BJ!"!3!"!*!'J!! !+!S!N!-L!3#!!*!$!c%Z-"G$D'&ZCf8J9(P`C5p$FQ9KG'pb)$%Z-!#3!d`"!)! !N!-$-5i`3@*j)%*bD@&Z)%*PBfKdC@c4C(*[F#"KERNJCQPXC5"[ER4[)'eP)(4 [)'0SB@jRC5"TG(-JG(P`C5pMFQ9KG'pb!!!"!*!$%)N!!!q*!!!"`J"T(KJ&iJ# 3!a`"SJ!34%&833#3!iTD49*2!*!$PN4548`!N!1L3dp%43!#!+j659T&!*!$dN4 *9%`!N!2H3Nj%6!#3!qT'8N9'!!%!pNP$6L-!!!%1D@0X1!!!!4TTBf`d!!!"*QP MFb-!!!%bD@0c1!!!!6jTBh-d!!!"5N083hi!!!&@4%a24`!!!@*fCA*c!!%"EJ! !rrmS!*!%D4d3!!$rr`J!!!B!D4dS!!$rrbJ!!!`!D4dJ!!,rrcJ!!"!!D4dF!!( rra`!!LS!N!ErrbJ!"&`!N!6rN!3!!!6)!'NH%!#!rrm!!!6@!'NG$!#!rrm!!!A F!'NG!!#!rrm!!!B%!'NG#!#"rrm!!!B2!*!&J2rr!!!''J"T(33!J2rr!!!((J" T(63!J2rr!!!,)J"T(1!!J2rr!!!0*J"T(1`!J2rr!!!0DJ"T(2!!J2rr!!!1EJ" T(1J!N!B1mJ"T(0`!J!!2!!!1p`"T(13!![rr!!!2%`"T(43!!Irr!!!213#3"!j 2GfjPFL"bCA0[GA*MC4"$D'&ZCf8J4QPXC5"8HA"P`dS: