ñ⁄éü
DTP É^ÉCÉvÇÃéØï
ÉzÅ[ÉXÉvÉâÉOÉCÉìÇÃí«â¡
ÉzÅ[ÉXÉ^ÉCÉvÇÃìoò^
óvñÒ
ä÷òAÉtÉ@ÉCÉãÇÃÉ_ÉEÉìÉçÅ[Éh
|
LaserWriter 8.6 Ç≈ÇÕ PAPÅALPRÅAIrDA ǻǫÅAÇ≥NjǥNjǻÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÇÃÉ^ÉCÉvÇ™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢNjÇ∑ÅBǪÇÍǺÇÍÇÃÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÇÕÅAëŒâûÇ∑ÇÈï®óùÉvÉäÉìÉ^ÅARIPÅAÇ‹ÇΩÇÕǪÇÃëºÇÃÉ|ÉXÉgÉvÉäÉìÉeÉBÉìÉOÉvÉçÉZÉbÉTÇΔÇÃä‘Ç≈ÉfÅ[É^í êMÇçsǧÇΩÇflÇÃìΔé©ÇÃï˚ñ@ÇéùÇøÇ‹Ç∑ÅBÉJÉXÉ^ÉÄÅuÉzÅ[ÉXÅvÇÃì±ì¸Ç…ÇÊÇËÅALaserWriter 8.6 Ç…ÇÕÇ≥NjǥNjǻí êMï˚ñ@ÇÉCÉìÉvÉäÉÅÉìÉgÇ∑ÇÈÇΩÇflÇÃã§óLÉâÉCÉuÉâÉäÇΔÅADZÇÍÇÁÇÃÉâÉCÉuÉâÉäÇ DTP É^ÉCÉvÇ…äÓÇ√ǢǃìÆìIÇ…ÉçÅ[ÉhÇ∑ÇÈã@î\Ç™í«â¡Ç≥ÇÍNjǵÇΩÅBDZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ÇÕÉfÉxÉçÉbÉpå¸ÇØÇ…ÉJÉXÉ^ÉÄÉzÅ[ÉXÇÃédólÇÃäTóvÇé¶ÇµÇ‹Ç∑ÅB |
DTP É^ÉCÉvÇÃéØï
ǪÇÍǺÇÍÇà LaserWriter 8 ÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^Ç…ÇÕÅAÉvÉäÉìÉ^ÇÃñºëOǂǪÇÃëºÇÃä÷òAÇ∑ÇÈí êMÉpÉâÉÅÅ[É^ÇæÇØÇ≈Ç»Ç≠ÅADTP ÇÃÉ^ÉCÉvÇéØï Ç∑ÇÈ 'PAPA' ÉäÉ\Å[ÉXÇ™ëŒâûǵǃǢNjÇ∑ÅBDTP É^ÉCÉvÇÕ 4 ÉoÉCÉgíËêîÇÃå`éÆÇÇΔÇËÇ‹Ç∑ÅB'PAP ' É^ÉCÉvÇèúÇ´ÅAÇ∑Ç◊ǃÇà DTP É^ÉCÉvÇÕ '=XXX' (ÇΩÇΔǶnjÅA'=Hld' Ç‹ÇΩÇÕ '=Fil' ) ÇΔǢǧå`éÆÇéùǬïKóvǙdžÇËÇ‹Ç∑ÅBDZÇÍÇÕÅALaserWriter 8.5.1 ÉhÉâÉCÉoÇÃÉäÉäÅ[ÉXÇΔÇΔLJDžè]óàÇà 'PAPA' ÉäÉ\Å[ÉXÇ™ägí£Ç≥ÇÍÇΩÇΩÇflÇ≈Ç∑ÅBêVǵǢ DTP É^ÉCÉvÇÃÉVÉOÉlÉ`ÉÉÇÕÅAè]óàÇà 103 ÉoÉCÉgÇà 'PAPA' ÉäÉ\Å[ÉXÇ…ä‹Ç‹ÇÍÇÈÉ]Å[Éìï∂éöóÒÇíuÇ´ä∑ǶÅA'PAPA' ÉäÉ\Å[ÉXÇÃìKêÿÇ» 'TYPE' É^ÉOÇ…É}ÉbÉvǵNjÇ∑ÅB'PAPA' ÉäÉ\Å[ÉXÇÃì‡óeDžǬǢǃÇÕÅAÅuTechnote 1115: LaserWriter 8.5.1: ägí£ 'PAPA' ÉäÉ\Å[ÉXÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB
LaserWriter 8.6 ÇÃ DTP É^ÉCÉv
LaserWriter 8.6 ÇΔÇΔLJDžèoâ◊Ç≥ÇÍǃǢÇÈ PrintingLib Ç≈ÇÕÅAéüÇà DTP É^ÉCÉvÇ™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢNjÇ∑ÅB
'PAP '
ÉvÉäÉìÉ^ÇΔÇÃÉfÅ[É^ÇÃÇ‚ÇËéÊÇËÇÕ AppleTalk Çà PAP (Printer Access Protocol) Çégǡǃé¿çsÇ≥ÇÍÇ‹Ç∑ÅBÉvÉäÉìÉ^Çà AppleTalk ñºÅAÉ^ÉCÉvÅAÉ]Å[ÉìÇÕÅuTechnote 1115: LaserWriter 8.5.1: ägí£ 'PAPA' ÉäÉ\Å[ÉXÅvÇ≈ê‡ñæÇ≥ÇÍǃǢÇÈÇÊǧDžÅAè]óàÇà 'PAPA' ÉäÉ\Å[ÉXÇΔÇÃå›ä∑ïîï™Ç…äiî[Ç≥ÇÍǃǢNjÇ∑ÅB
'=Hld'
Åuï€óØÅvÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÇÕÅAǪÇÍÇ…ëŒâûÇ∑ÇÈí êMÉÇÉWÉÖÅ[ÉãÇ™ë∂ç›ÇµÇ»Ç¢ÇΔǢǧì_Ç≈ìΔé©ÇÃÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^Ç≈Ç∑ÅBï€óØÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^Ç™ÉfÉXÉNÉgÉbÉvÉXÉvÅ[ÉãÉtÉ@ÉCÉãÇ PostScript Ç…ïœä∑Ç∑ÇÈDZÇΔÇÕÇ»Ç≠ÅAÉXÉvÅ[Éã ÉtÉ@ÉCÉãÇíPèÉÇ…ÉLÉÖÅ[Ç…ì¸ÇÍÇÈÇæÇØÇ≈Ç∑ÅBï€óØÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÇÃÉLÉÖÅ[Ç…ì¸Ç¡ÇƒÇ¢ÇÈÉXÉvÅ[ÉãÉtÉ@ÉCÉãÇàÛç¸Ç∑ÇÈÇ…ÇÕÅAǪÇÃÉtÉ@ÉCÉãÇï ÇÃÉ^ÉCÉvÇÃÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÇÃÉLÉÖÅ[Ç…à⁄ìÆÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
'=Fil'
ÅuÉtÉ@ÉCÉãÇ…ï€ë∂ÅvÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÇÕÅAPostScriptÅAEPSÅAÇ‹ÇΩÇÕ PDF èoóÕÇÉtÉ@ÉCÉãÇ…èëÇ´çûǛNjÇ∑ÅB
íçà”ÅF
PDF ÇèoóÕÇ∑ÇÈÇΩÇflÇ…ÇÕÅAdžÇÁÇ©Ç∂Çfl Adobe Çà Acrobat Distiller ÇÉCÉìÉXÉgÅ[ÉãǵǃǮÇ≠ïKóvǙdžÇËÇ‹Ç∑ÅB |
'=LPR'
LPR ÉfÉXÉNÉgÉbÉv ÉvÉäÉìÉ^ÇÕ Unix Çà LPD ÉvÉçÉgÉRÉãÇégópǵÅATCP/IP ÇâÓǵǃÉvÉäÉìÉgÉTÅ[ÉoÇΔÇÃä‘Ç≈ÉfÅ[É^ÇÇ‚ÇËéÊÇËǵNjÇ∑ÅBDZÇÃÉvÉçÉgÉRÉãÇÃè⁄ç◊DžǬǢǃÇÕÅAÅuRFC 1179Åv(http://ds.internic.net/ds/dspg1intdoc.html) ÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB
'=Cst'
ÉJÉXÉ^ÉÄÉAÉvÉäÉPÅ[ÉVÉáÉìÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÇÕ PostScript ÇÉfÉBÉXÉNÇ…èëÇ´çûÇÒÇæå„ÅAPostScript ÉWÉáÉuÇèàóùÇ∑ÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇãNìÆÇµÇ‹Ç∑ÅBÉJÉXÉ^ÉÄ DTP ÇÃè⁄ç◊DžǬǢǃÇÕÅAÅuTechnote 1113: ÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÃÉJÉXÉ^É}ÉCÉYÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB
'=Ird'
PostScript ÉWÉáÉuÇÕê‘äOê¸ÉäÉìÉNÇégǡǃ IrDA ëŒâûÇÃÉvÉäÉìÉ^Ç…ì]ëóÇ≥ÇÍÇ‹Ç∑ÅBLaserWriter 8 ÇÕ http://www.irda.org/ Ç≈äTê‡Ç≥ÇÍǃǢÇÈ IrDA édólÇ…èÄãíǵǃǢNjÇ∑ÅB
íçà”ÅF
LaserWriter 8 ÉhÉâÉCÉoÇÃè´óàÇÃÉäÉäÅ[ÉXÇ…ÇÕ USB Ç®ÇÊÇ— FireWire ÇÃÉTÉ|Å[ÉgÇ™ëgÇ›çûÇ‹ÇÍÇÈó\íËÇ≈Ç∑ÅB |
ÉzÅ[ÉXÉvÉâÉOÉCÉìÇÃí«â¡
ÉWÉáÉuÇÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^Ç…àÛç¸Ç∑ÇÈÇΔÇ´ÅALaserWriter 8.6 Ç≈ÇÕ 4 ÉoÉCÉgÇà DTP É^ÉCÉvÇéÊìæÇµÅAÇ≥ÇÁÇ…ÅAǪÇÍÇ…ëŒâûǵÇΩÉzÅ[ÉXÇä‹Çfiã§óLÉâÉCÉuÉâÉäÇåüçıǵNjÇ∑ÅBLaserWriter 8.6 ÇÕéüÇÃèáèòÇ≈ÉâÉCÉuÉâÉäÇåüçıǵNjÇ∑ÅB
- ÉVÉXÉeÉÄÇÃÅgÉvÉäÉìÉgÉvÉâÉOÉCÉìÅhÉtÉHÉãÉ_ (Ågã@î\ägí£ÅhÉtÉHÉãÉ_ì‡)
PrintingLib ÉtÉ@ÉCÉã
ÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÇÃÉ^ÉCÉvÇÕÅAÅuTechnote 1129: LaserWriter 8.5.1: ÉvÉäÉìÉ^ê›íËÉâÉCÉuÉâÉä (SettingsLib)ÅvÇ≈ê‡ñæÇ≥ÇÍǃǢÇÈÇÊǧDžÅASettingsLib Çà psGetDTPType() åƒÇ—èoǵÇégǡǃéÊìæÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃå„ÅADTP É^ÉCÉvÇ…ëŒâûÇ∑ÇÈÉTÉuÉ^ÉCÉvÇä‹ÇÒÇæ 'hose' É^ÉCÉvÇÃÉvÉäÉìÉeÉBÉìÉOÉvÉâÉOÉCÉìÇåüçıÇ∑ÇÈÇΩÇflÅAPrinting Plug-in Manager Ç™égópÇ≥ÇÍÇ‹Ç∑ (è⁄ç◊DžǬǢǃÇÕÅAãfläßó\íËÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅB
ÉJÉXÉ^ÉÄÉzÅ[ÉXÇÇÕÇ∂ÇflÅAPrinting Plug-ins ManagerÇ…ÇÊǡǃä«óùÇ≥ÇÍÇÈÉvÉâÉOÉCÉìÉtÉ@ÉCÉãÇÕÅAëŒè€ÇΔÇ»ÇÈÉtÉ@ÉCÉãÇ…ä‹Ç‹ÇÍÇÈÉvÉâÉOÉCÉìÇ…ä÷Ç∑ÇÈèÓïÒÇä‹ÇÒÇæ ID -8192 Çà 'PLGN' É^ÉCÉvÇÃÉäÉ\Å[ÉXÇéùǡǃǢÇÈïKóvǙdžÇËÇ‹Ç∑ÅBDZÇÃÉäÉ\Å[ÉXǙǻǢÇΔÅAÉvÉâÉOÉCÉìÉtÉ@ÉCÉãÇÕégópÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç∏ÅALaserWriter 8.6 ÉhÉâÉCÉoÇ…ÇÊǡǃñ≥éãÇ≥ÇÍÇ‹Ç∑ÅBÇ‹ÇΩÅAÉvÉâÉOÉCÉìÇÕÉtÉ@ÉCÉãÇÃÉfÅ[É^ÉtÉHÅ[ÉNÇ…äiî[Ç≥ÇÍǃǢÇÈÉRÅ[ÉhÉtÉâÉOÉÅÉìÉgÇãLèqÇ∑ÇÈïWèÄìIÇ» 'cfrg' ÉäÉ\Å[ÉXÇéùǡǃǢÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
'PLGN' ÉäÉ\Å[ÉXÇ…ÇÕÅADZÇÃÉtÉ@ÉCÉãÇ…ä‹Ç‹ÇÍÇÈã§óLÉâÉCÉuÉâÉäÇÃêîÇ…ä÷Ç∑ÇÈèÓïÒÇ™ä‹Ç‹ÇÍÇ‹Ç∑ÅBÇ‹ÇΩÅAǪÇÍǺÇÍÇÃã§óLÉâÉCÉuÉâÉäDžǬǢǃÅAëŒè€ÇΔÇ»ÇÈÉvÉâÉOÉCÉìÇÃÉ^ÉCÉvÅAÉâÉCÉuÉâÉäÇ™èàóùÇ∑ÇÈÉTÉuÉ^ÉCÉvÅAÇ®ÇÊÇ—ÉâÉCÉuÉâÉäñºÇ™ä‹Ç‹ÇÍÇ‹Ç∑ÅB
'PLGN' ÉäÉ\Å[ÉXÇÕà»â∫ÇÃÇΔÇ®ÇËÇ≈Ç∑ÅB
short num; // ã§óLÉâÉCÉuÉâÉäÇÃêî
PluginLibInfo libInfo[num];
PluginLibInfo ç\ë¢ëÃÇÕà»â∫ÇÃÇΔÇ®ÇËÇ≈Ç∑ÅB
typedef struct PluginLibInfo{
SettingsDataType type;
SettingsDataSubType subtype;
unsigned char libraryName[ ]; // Pascal ï∂éöóÒ
// ÉèÅ[ÉhÉAÉâÉCÉì
}PluginLibInfo;
type: Å@PluginLibInfo Ç…ÇÊǡǃãLèqÇ≥ÇÍÇÈÉvÉâÉOÉCÉìÇÃÉ^ÉCÉv
subtype: Å@PluginLibInfo Ç…ÇÊǡǃãLèqÇ≥ÇÍÇÈÉvÉâÉOÉCÉìÇ≈èàóùÇ≈Ç´ÇÈÉfÅ[É^ÇÃÉTÉuÉ^ÉCÉv
libraryName: Å@DZÇà PluginLibInfo Ç…ÇÊǡǃãLèqÇ≥ÇÍÇÈÉvÉâÉOÉCÉìÉtÉ@ÉCÉãì‡ÇÃÉRÅ[ÉhÉtÉâÉOÉÅÉìÉgÇÃÉâÉCÉuÉâÉäñº
ResEdit Ç≈ 'PLGN' ÉäÉ\Å[ÉXÇï“èWÇ≈Ç´ÇÈÇÊǧDžÅAPrintingLib 8.6 Ç…ÇÕ 'TMPL' ÉäÉ\Å[ÉXÇ™ópà”Ç≥ÇÍǃǢNjÇ∑ÅBÉ^ÉCÉvÉtÉBÅ[ÉãÉhÇÕ 'hose' Ç≈ÅAÉTÉuÉ^ÉCÉvÇÕ '=XXX' DžǵǃÇ≠ÇæÇ≥Ç¢ÅBDZDZÇ≈ XXX ÇÕÉTÉ|Å[ÉgÇ≥ÇÍǃǢÇÈ DTP ÇÃÉJÉXÉ^ÉÄìoò^É^ÉCÉvÇï\ǵNjÇ∑ÅBìoò^ÇÃè⁄ç◊DžǬǢǃÇÕÅAå„èqÇÃÅuÉzÅ[ÉXÉ^ÉCÉvÇÃìoò^ÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅBlibraryName ÇÕÉzÅ[ÉXÇÉCÉìÉvÉäÉÅÉìÉgÇ∑ÇÈÉfÅ[É^ÉtÉHÅ[ÉNì‡ÇÃÉRÅ[ÉhÉtÉâÉOÉÅÉìÉgÇÃñºëOÇΔàÍívÇ∑ÇÈÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ÅB
ÉzÅ[ÉXÉCÉìÉ^ÉtÉFÅ[ÉX
hoseOpen
ÉzÅ[ÉXÉtÉâÉOÉÅÉìÉgÇÕíPàÍÇÃÉGÉìÉgÉäÉ|ÉCÉìÉgÇÉGÉNÉXÉ|Å[ÉgÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBDZÇÃÉGÉìÉgÉäÉ|ÉCÉìÉgÇ≈džÇÈ hoseOpen() ÇÕéüÇÃÉVÉOÉlÉ`ÉÉÇéùÇøÇ‹Ç∑ÅB
OSStatus hoseOpen(HoseInfo *hoseInfo, const BufCallbacks *callbacks, Collection hints, Handle papaH);
hoseOpen ÉãÅ[É`ÉìÇÃéÂóvÇ»ÉWÉáÉuÇÕ HoseInfo Ç≈éwÇ≥ÇÍÇÈç\ë¢ëÃÇê›íËÇ∑ÇÈDZÇΔÇ≈Ç∑ÅB /* HoseInfo ç\ë¢ëÃÇÕ hoseOpen ÉvÉçÉVÅ[ÉWÉÉÇ…ÇÊǡǃê›íËÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃç\ë¢ëÃÇÕÉzÅ[ÉXÇÃÉoÉbÉtÉ@óvåèÇΔÅAÉzÅ[ÉXÇÃì«Ç›çûÇ›ÅAèëÇ´çûÇ›ÅAÉNÉçÅ[ÉYÇ…ïKóvÇΔÇ»ÇÈä÷êîÉ|ÉCÉìÉ^ÇãLèqǵNjÇ∑ÅB
*/
typedef struct{
HoseOutProc out; // ÉoÉbÉtÉ@ÇèëÇ´çûÇfiÇΩÇflÇ…åƒÇ—èoÇ≥ÇÍÇ‹Ç∑ÅB
HoseInProc in; // ÉoÉbÉtÉ@Çì«Ç›çûÇfiÇΩÇflÇ…åƒÇ—èoÇ≥ÇÍÇ‹Ç∑ÅB
HoseIdleProc idle; // é¸ä˙ìIÇ…åƒÇ—èoÇ≥ÇÍÇ‹Ç∑ÅB
HoseCloseProc close; // ê⁄ë±ÇêÿífÇ∑ÇÈÇΩÇflÇ…åƒÇ—èoÇ≥ÇÍÇ‹Ç∑ÅB
HoseConnProc connState; // DZÇÃÉvÉçÉVÅ[ÉWÉÉÇÕåªç›ÇÃê⁄ë±ÇÃÉXÉeÅ[É^ÉXÇï‘ǵNjÇ∑ÅB
HoseStatusProc status; // ÉzÅ[ÉXÇÃåªç›ÇÃÉXÉeÅ[É^ÉXï∂éöóÒÇï‘ǵNjÇ∑ÅB
HoseDisposeProc dispose;// ÉzÅ[ÉXÇÕÇ∑Ç◊ǃÇÃÉÅÉÇÉäÇâï˙Ç∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
Size bufSize; // äÑÇËìñǃÇÁÇÍÇΩäeÉfÅ[É^ÉoÉbÉtÉ@ÇÃÉTÉCÉYÅB
long minBufs; // ÉzÅ[ÉXÇÕDZÇÃêîÇÃÉoÉbÉtÉ@ÇïKóvÇΔǵNjÇ∑ÅB
// ÉoÉbÉtÉ@Ç…äÑÇËìñǃÇÈÉÅÉÇÉäÇ™è\ï™Ç≈ǻǢÇΔÅA
// ÉNÉâÉCÉAÉìÉgÇÕ memFullErr Çï‘Ç∑DZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB
long maxBufs; // DZÇÍÇí¥Ç¶ÇÈÉoÉbÉtÉ@ÇäÑÇËìñǃÇÈDZÇΔÇÕdžÇËÇ‹ÇπÇÒÅB
void *refcon; // ÉzÅ[ÉXÉãÅ[É`ÉìÇ…ìnÇ≥ÇÍÇÈÉ|ÉCÉìÉ^ÅB
}HoseInfo;
ÉzÅ[ÉXÇÕÇ‹Ç∏ÅAǪÇÃã@î\ÇÉCÉìÉvÉäÉÅÉìÉgÇ∑ÇÈÉzÅ[ÉXì‡ÇÃÉãÅ[É`ÉìÇ÷ÇÃÉlÉCÉeÉBÉuä÷êîÉ|ÉCÉìÉ^ÇégǡǃÅAoutÅAinÅAidleÅAcloseÅAconnStateÅAstatusÅAÇ®ÇÊÇ— dispose ÇÃäeÉtÉBÅ[ÉãÉhÇê›íËÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ (ÇΩÇΔǶnjÅAPPC ÉRÅ[ÉhÇÕ PPC ä÷êîÉ|ÉCÉìÉ^ÇíÒãüǵÅA68KCFM ÉRÅ[ÉhÇÕ 68KCFM ä÷êîÉ|ÉCÉìÉ^ÇíÒãüǵNjÇ∑ÅBǻǮÅAÉNÉâÉVÉbÉN 68K ä÷êîÉ|ÉCÉìÉ^ÇÕÉTÉ|Å[ÉgÇ≥ÇÍǃǢNjÇπÇÒ)ÅBÉzÅ[ÉXÇÃä÷êîÉ|ÉCÉìÉ^ÇÃê›íËÇ…â¡Ç¶ÇƒÅAÇ≥ÇÁÇ… bufSizeÅAminBufsÅAÇ®ÇÊÇ— maxBufs ÉtÉBÅ[ÉãÉhÇê›íËǵǃÅAÉzÅ[ÉXÇÃÉoÉbÉtÉ@óvåèÇãLèqÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBç≈å„Ç…ÅAÉzÅ[ÉXìΔé©ÇÃÉXÉgÉåÅ[ÉWÇ÷ÇÃÉ|ÉCÉìÉ^Çégǡǃ refcon ÉtÉBÅ[ÉãÉhÇê›íËǵNjÇ∑ÅB
ÉzÅ[ÉXÇåƒÇ—èoǵǃÉfÅ[É^Çì]ëóÇ∑ÇÈëOÇ…ÅAÉzÅ[ÉXÉNÉâÉCÉAÉìÉgÇÕÉpÉtÉHÅ[É}ÉìÉXÇå¸è„Ç≥ÇπÇÈÇΩÇflÇ…ÉoÉbÉtÉ@ÉäÉìÉOÇíÒãüǵNjÇ∑ÅBDZÇÃÇÊǧǻÉoÉbÉtÉ@ÉäÉìÉOÇçsǧÇΩÇflÅAÉzÅ[ÉXÇÕ 1 ǬÇÃì]ëóÉoÉbÉtÉ@ÇΔ 1 ǬÇÃéÛêMÉoÉbÉtÉ@ÇìØéûÇ…èàóùÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBÉoÉbÉtÉ@ÉäÉìÉOÇ…égópÇ∑ÇÈÉoÉbÉtÉ@ÇÃäÑÇËìñǃÇÕÉzÅ[ÉXÉNÉâÉCÉAÉìÉgÇ™çsǢNjÇ∑ÅBÉzÅ[ÉXÇÕÅAhoseOpen ÇÃé¿çséûÇ… bufSize ÉtÉBÅ[ÉãÉhÇê›íËÇ∑ÇÈDZÇΔÇ≈ÅAǪÇÃÉNÉâÉCÉAÉìÉgÇ™äÑÇËìñǃÇÈÇ◊Ç´ÉoÉbÉtÉ@ÇÃÉTÉCÉYÇéwíËǵNjÇ∑ÅBìTå^ìIÇ»ÉoÉbÉtÉ@ÉTÉCÉYÇÕÅA'PAP ' ÉzÅ[ÉXÇÃèÍçá 4096 ÉoÉCÉgÇ≈ÅA'=Fil' ÇÃèÍçá 16384 ÉoÉCÉgÇ≈Ç∑ÅBÉzÅ[ÉXÇÕÅAïKóvç≈è¨å¿ÇÃÉoÉbÉtÉ@êîÇ minBufs Ç…éwíËǵNjÇ∑ÅBminBufs ÉtÉBÅ[ÉãÉhÇ…ÇÕÅAëoï˚å¸ÉzÅ[ÉXÇ≈ÇÕè≠Ç»Ç≠ÇΔLJ 4ÅAíPï˚å¸ÉzÅ[ÉXÇ≈ÇÕè≠Ç»Ç≠ÇΔLJ 2 Çê›íËÇ∑ÇÈDZÇΔÇÇ®ä©ÇflǵNjÇ∑ÅBäÑÇËìñǃÇÈDZÇΔÇÃÇ≈Ç´ÇÈÉoÉbÉtÉ@ÇÃç≈ëÂêîÇÕÅAÉzÅ[ÉXÇ…ÇÊǡǃ maxBufs ÉtÉBÅ[ÉãÉhÇ…ê›íËÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃÉtÉBÅ[ÉãÉhÇ…ìKópÇ≥ÇÍÇÈÉTÉÄÇÃåªç›ÇÃãKë•ÇÕÅA256K ëäìñÇí¥Ç¶ÇÈÉÅÉÇÉäÇéwíËǵǃÇÕÇ¢ÇØÇ»Ç¢ÇΔǢǧDZÇΔÇ≈Ç∑ÅBǬNjÇËÅA(262144 / bufSize) Çí¥Ç¶ÇƒÇÕÇ¢ÇØÇ»Ç¢ÇΔǢǧDZÇΔÇ≈Ç∑ÅBDZÇÍÇÕÉTÉÄÇÃàÍî ìIÇ»ãKë•Ç≈džÇËÅAÉzÅ[ÉXÇ…ÇÊǡǃÇÕÅAÇÊÇËëÂÇ´Ç» maxBufs ÇÃê›íËílÇïKóvÇΔÇ∑ÇÈLJÇÃLJdžÇÍÇŒÅAÇÊÇËè¨Ç≥Ç»ê›íËílÇégópÇ∑ÇÈLJÇÃLJdžÇËÇ‹Ç∑ÅB
hoseOpen Ç÷ÇÃÉRÅ[ÉãÉoÉbÉNÉpÉâÉÅÅ[É^ÇÕÅAÉzÅ[ÉXÉNÉâÉCÉAÉìÉgÇ…ÇÊǡǃê›íËÇ≥ÇÍÇΩ BufCallbacks ç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^Ç≈Ç∑ÅB
typedef void (*FinishedWriteProc)(MemQElemPtr memElem, OSStatus err);
typedef void (*FinishedReadProc)(MemQElemPtr memElem, OSStatus err);
typedef struct{
FinishedWriteProc finishedWrite;
FinishedReadProc finishedRead;
}BufCallbacks;
ÉzÅ[ÉXÇÃÉNÉâÉCÉAÉìÉgÇÕÅADZÇÃç\ë¢ëÃì‡Ç…ÉlÉCÉeÉBÉuä÷êîÇ÷Çà 2 ǬÇÃÉ|ÉCÉìÉ^ÇíuÇ´Ç‹Ç∑ÅBDZÇÍÇÁÇÃä÷êîÇÕÅAì«Ç›çûǛNjÇΩÇÕèëÇ´çûǛǙäÆóπǵÇΩéûì_Ç≈ÉzÅ[ÉXÇ…ÇÊǡǃåƒÇ—èoÇ≥ÇÍÇÈDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅBDZÇÍÇÁÇÃä÷êîÉ|ÉCÉìÉ^ÇÃè⁄ç◊DžǬǢǃÇÕÅAå„èqÇÃÅuHoseOutProcÅvÇ®ÇÊÇ—ÅuHoseInProcÅvÇÃê‡ñæÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅBÉzÅ[ÉXÇ≈ÇÕDZÇÃç\ë¢ëÃÇÃÉRÉsÅ[ÇÉvÉâÉCÉxÅ[ÉgÉfÅ[É^ÇΔǵǃäiî[ǵǃÇ≠ÇæÇ≥Ç¢ÅB
hoseOpen åƒÇ—èoǵÇÃàÍïîÇΔǵǃÅAÉzÅ[ÉXÇÕÉzÅ[ÉXåoóRÇ≈ì]ëóÇ≥ÇÍÇÈÉWÉáÉuÇä¬ã´ê›íËÇ∑ÇÈÇΩÇflÇÃÉqÉìÉgÇä‹ÇÒÇæ Collection Manager ÉRÉåÉNÉVÉáÉìÇ…ìnÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃÉRÉåÉNÉVÉáÉìÇ…ä‹Ç‹ÇÍÇÈÉqÉìÉgÇÕÅAQuickDraw Ç©ÇÁ PostScript Ç÷ÇÃÉRÉìÉoÅ[É^ÇΔÇ»ÇÈÉzÅ[ÉXÉNÉâÉCÉAÉìÉgÇ…ÇÊǡǃégópÇ≥ÇÍÅAPostScript åæåÍÇÃèoóÕÇê∂ê¨Ç∑ÇÈÇΩÇflÇ…égópâ¬î\Ç»ÉoÉCÉgÉRÅ[ÉhÇä¬ã´ê›íËǵNjÇ∑ÅBì¡Ç…ÅALaserWriter 8.6 Ç≈íËã`Ç≥ÇÍǃǢÇÈ kHintEighthBitTag Ç®ÇÊÇ— kHintTransparentChannelTag ÉqÉìÉgÇÕÅAÉzÅ[ÉXÉNÉâÉCÉAÉìÉgÇ™ïWèÄ PostScript åæåÍÇÃàÛç¸â¬î\Ç» ASCII ï∂éöÉZÉbÉgÇÃîÕàÕÇí¥Ç¶ÇÈÉoÉCÉgílÇégǡǃÉfÅ[É^Çê∂ê¨Ç≈Ç´ÇÈǩǫǧǩÇä¬ã´ê›íËǵNjÇ∑ÅBDZÇÍÇÁÇÃÉqÉìÉgÇÕéüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB
/* èoóÕÉXÉgÉäÅ[ÉÄÇΔǵǃ PostScript Çê∂ê¨Ç∑ÇÈÇΔÇ´ÅAÉfÉtÉHÉãÉgÇÃê›íËÇ≈ PostScript ÉRÉìÉoÅ[É^ÇÕïKóvÇ»ÇΔÇ´Ç… 0x80-0xFF ÇÃîÕàÕÇÃï∂éöÇégópǵNjÇ∑ÅB'kHintEighthBitTag' ÇÃílÇΔǵǃ 'false' ÇégópÇ∑ÇÈÇΔÅAÉRÉìÉoÅ[É^ÇÕè„à ÉrÉbÉgÉZÉbÉgÇä‹ÇfiÉoÉCÉgÇëóêMǵǻÇ≠Ç»ÇËÇ‹Ç∑ÅB
*/
#define kHintEighthBitTag 'bit8'
#define kHintEighthBitId 1
#define kHintEighthBitVariableType Boolean
#define kHintEighthBitDefault true
/* èoóÕÉXÉgÉäÅ[ÉÄÇΔǵǃ PostScript Çê∂ê¨Ç∑ÇÈÇΔÇ´ÅAÉfÉtÉHÉãÉgÇÃê›íËÇ≈ PostScript ÉRÉìÉoÅ[É^ÇÕïKóvÇ»ÇΔÇ´Ç… 0x00-0x1F ÇÃîÕàÕÇÃï∂éöÇégópǵNjÇ∑ÅB'kHintTransparentChannelTag' ÇÃílÇΔǵǃ 'false' ÇégópÇ∑ÇÈÇΔÅAÉRÉìÉoÅ[É^ÇÕ 0x20 ñ¢ñûÇÃÉoÉCÉgÇëóêMǵǻÇ≠Ç»ÇËÇ‹Ç∑ÅB
*/
#define kHintTransparentChannelTag 'trns'
#define kHintTransparentChannelId 1
#define kHintTransparentChannelVariableType Boolean
#define kHintTransparentChannelDefault true
í èÌÅAhoseOpen Ç…ìnÇ≥ÇÍÇÈÉqÉìÉgÉRÉåÉNÉVÉáÉìÇ…ÇÕÅADZÇÍÇÁÇÃÉ^ÉO/IDÉyÉAÇ…ëŒâûÇ∑ÇÈÉRÉåÉNÉVÉáÉìçÄñ⁄ÇÕä‹Ç‹ÇÍÇ‹ÇπÇÒÅBDZÇÍÇÕÅAkHintEighthBitTag Ç®ÇÊÇ— kHintTransparentChannelTag ÉqÉìÉgÇ… true Çê›íËǵǃǢÇÈDZÇΔÇ…ëäìñǵNjÇ∑ÅBǬNjÇËÅA0x00-0xFF ÇÃîÕàÕÇÃÉoÉCÉgÇ™Ç∑Ç◊ǃégópâ¬î\Ç≈Ç∑ÅB
DZÇÃÇÊǧǻÉfÉtÉHÉãÉgÇÃê›íËÇÊÇËLJêßå¿ÇÃdžÇÈëÆê´ÇéùÇ¡ÇΩÉ`ÉÉÉlÉãÇâÓǵǃÉfÅ[É^ÇÇ‚ÇËéÊÇËÇ∑ÇÈÉzÅ[ÉXÇÃèÍçáÇÕÅAÉqÉìÉgÉRÉåÉNÉVÉáÉìÇ…ìKêÿÇ»ÉRÉåÉNÉVÉáÉìçÄñ⁄Çí«â¡ÇµÇƒÅAÉzÅ[ÉXÉNÉâÉCÉAÉìÉgÇ™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢÇÈîÕàÕÇæÇØÇ≈ÉoÉCÉgÇèëÇ´çûÇfiÇÊǧDžÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBǻǮÅAí«â¡Ç∑ÇÈïKóvǙdžÇÈÇÃÇÕÉfÉtÉHÉãÉgÇÊÇËLJêßå¿Ç≥ÇÍÇΩÉqÉìÉgÇÃÇ›Ç≈Ç∑ÅBÉzÅ[ÉXÇ™ÉtÉã 8 ÉrÉbÉgÇÃÉfÅ[É^í êMÇÉTÉ|Å[ÉgǵǃǢÇÈèÍçáÅAìnÇ≥ÇÍÇÈÉqÉìÉgÉRÉåÉNÉVÉáÉìDžDZÇÍÇÁÇÃÉqÉìÉgÇí«â¡Ç∑ÇÈïKóvÇÕdžÇËÇ‹ÇπÇÒÅB
èÍçáÇ…ÇÊǡǃÅAhoseOpen Ç…ìnÇ≥ÇÍÇÈÉqÉìÉgÉRÉåÉNÉVÉáÉìÇ…ÇÕ kHintEighthBitTag Ç®ÇÊÇ— kHintTransparentChannelTag ÉRÉåÉNÉVÉáÉìçÄñ⁄ÇÃàÍï˚Ç‹ÇΩÇÕóºï˚Ç™Ç∑Ç≈Ç…ä‹Ç‹ÇÍǃǢǃÅAÉRÉåÉNÉVÉáÉìçÄñ⁄Ç™ÉçÉbÉNÇ≥ÇÍǃǢÇÈDZÇΔǙdžÇËÇ‹Ç∑ÅBÉzÅ[ÉXÉNÉâÉCÉAÉìÉgÇ™åªç›ÇÊÇËLJêßå¿ÇÃdžÇÈê›íËÇïKóvÇΔÇ∑ÇÈèÍçáÇÕÅAÉqÉìÉgÇ™Ç∑Ç≈Ç…ÉçÉbÉNÇ≥ÇÍǃǢÇÈǩǫǧǩDžä÷åWÇ»Ç≠ÅAÉRÉåÉNÉVÉáÉìÇ…ÉqÉìÉgÇí«â¡Ç∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
OSErr err;
// ÇΩÇΔǶnjÅADZÇÃÉzÅ[ÉXÇÕè„à 8 ÉrÉbÉgÇì]ëóÇ≈Ç´Ç‹ÇπÇÒ
kHintEighthBitVariableType eightBit = false;
// ÉqÉìÉgÇ™Ç∑Ç≈Ç…ë∂ç›Ç∑ÇÈèÍçáÇÕÉqÉìÉgÇÃÉçÉbÉNÇâèúǵNjÇ∑ÅB
// ÉqÉìÉgÇÃÉçÉbÉNÇ™Ç∑Ç≈Ç…âèúÇ≥ÇÍǃǢÇÈèÍçáÇÕDZÇÍÇ≈ OK Ç≈Ç∑ÅB
err = SetCollectionItemInfo(hints, kHintEighthBitTag,
kHintEighthBitId, collectionLockMask,
0);
// ÉqÉìÉgÇ™Ç∑Ç≈Ç…ë∂ç›ÇµÇ»Ç¢èÍçáÇÕñ‚ëËdžÇËÇ‹ÇπÇÒÅB
if(err == collectionItemNotFoundErr)
err = noErr;
if(!err){
err = AddCollectionItem(hints, kHintEighthBitTag,
kHintEighthBitId, sizeof(eightBit),
&eightBit;);
if(!err)
err = SetCollectionItemInfo(hints,
kHintEighthBitTag, kHintEighthBitId,
collectionLockMask, collectionLockMask);
}
Collection Manager ÇÃè⁄ç◊DžǬǢǃÇÕÅAÅwInside Macintosh: QuickDraw GX Environment and UtilitiesÅxÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB
hoseOpen ÇÃç≈å„ÇÃÉpÉâÉÅÅ[É^Ç≈džÇÈ papa ÇÕägí£ 'PAPA' ç\ë¢ëÃÇ÷ÇÃÉnÉìÉhÉãÇ≈Ç∑ÅBDZÇÃç\ë¢ëÃÇÃè⁄ç◊DžǬǢǃÇÕÅAÅuTechnote 1115: LaserWriter 8.5.1: ägí£ 'PAPA' ÉäÉ\Å[ÉXÅvÇÅAÇ‹ÇΩ 'PAPA' ÉAÉNÉZÉbÉTÉãÅ[É`ÉìÇà psPapaToCollection ÇΔ psCollectionToPapa DžǬǢǃÇÕÅAÅuTechnote 1129: LaserWriter 8.5.1: ÉvÉäÉìÉ^ê›íËÉâÉCÉuÉâÉä (SettingsLib)ÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅBäeÉ^ÉCÉvÇÃÉzÅ[ÉXÇÕÅAÉ^Å[ÉQÉbÉgÇΔÇ»ÇÈèoóÕÉfÉoÉCÉXÇΔÅAí êMÉ`ÉÉÉlÉãÇä¬ã´ê›íËÇ∑ÇÈï˚ñ@ÇéwíËÇ∑ÇÈǪÇÍǺÇÍàŸÇ»Ç¡ÇΩí êMÉpÉâÉÅÅ[É^ÇéùÇøÇ‹Ç∑ÅB'PAPA' ÉnÉìÉhÉãÇÕÉzÅ[ÉXÇ…ëŒâûÇ∑ÇÈDZÇÍÇÁÇÃí êMê›íËÇíÒãüǵÅAÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÇÃÉNÉäÉGÅ[É^Ç…ÇÊǡǃê›íËÇ≥ÇÍÇ‹Ç∑ÅB
hoseOpen ÉãÅ[É`ÉìÇÃíÜÇ≈ÅAÉzÅ[ÉXÇÕïKóvÇΔÇ»ÇÈîCà”ÇÃÉÅÉÇÉäÇäÑÇËìñǃÅAÉvÉäÉìÉ^ÇΔÇÃê⁄ë±ÇÃÉIÅ[ÉvÉìÇäJénÇµÇ»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBÉzÅ[ÉXÅiëÂïîï™ÇÃê⁄ë±É^ÉCÉvÇÃèÍçáÅjÇÕ hoseOpen åƒÇ—èoǵÇÃíÜÇ≈ê⁄ë±ÇäÆóπÇ∑ÇÈïKóvÇÕdžÇËÇ‹ÇπÇÒÅBëÂïîï™ÇÃí êMãZèpÇ≈ÇÕê⁄ë±Ç…í∑Ç¢éûä‘ÇóvÇ∑ÇÈÇΩÇflÅAÉvÉäÉìÉ^ÇΔÇÃê⁄ë±ÇÃÉIÅ[ÉvÉìÇÕîÒìØä˙ìIÇ…çsǡǃÇ≠ÇæÇ≥Ç¢ÅBÉzÅ[ÉXÇÕê⁄ë±ÉvÉçÉZÉXÇäJénǵÅAhoseOpen Ç©ÇÁ noErr ÇéÛÇØéÊÇËÇ‹Ç∑ÅBÉNÉâÉCÉAÉìÉgÇ≈ÇÕ hoseConnProc Çé¸ä˙ìIÇ…åƒÇ—èoǵǃÅAê⁄ë±Ç…ä÷Ç∑ÇÈåªç›ÇÃÉXÉeÅ[É^ÉXÇóvãÅǵNjÇ∑ÅBhoseConnProc ÇÕà»â∫ÇÃÇÊǧDžǻÇËÇ‹Ç∑ÅB
typedef enum{
kConnClosed = 0, // DZÇÃÉXÉeÅ[É^ÉXÇ≈äJénǵNjÇ∑ÅB
kConnOpening, // DZÇÍÇÕÅAÉvÉäÉìÉ^Ç™ê⁄ë±ÇéÛÇØïtÇØÇÈÇÃÇë“ǡǃǢÇÈÉXÉeÅ[É^ÉXÇ≈Ç∑ÅB
kConnOpen, // DZÇÍÇÕÅAÉvÉäÉìÉ^Ç÷ÇÃì«Ç›èëÇ´ÇçsǡǃǢÇÈÉXÉeÅ[É^ÉXÇ≈Ç∑ÅB
kConnClosing // DZÇÍÇÕÅAê⁄ë±ÇÃÉNÉçÅ[ÉYÇë“ǡǃǢÇÈÉXÉeÅ[É^ÉXÇ≈Ç∑ÅB
}ConnState;
typedef ConnState (*HoseConnProc)(void *refcon);
ê⁄ë±ÇämóßǵǃǢÇÈä‘ÅAÉzÅ[ÉXÇÃê⁄ë±ÉvÉçÉVÅ[ÉWÉÉÇÕíËêî kConnOpening Çï‘ǵNjÇ∑ÅBÉIÅ[ÉvÉìÇ™ê≥èÌÇ…äÆóπǵÇΩÇÁÅAÉzÅ[ÉXÇÃê⁄ë±ÉvÉçÉVÅ[ÉWÉÉåƒÇ—èoǵÇÕ kConnOpen Çï‘ǵNjÇ∑ÅBÉzÅ[ÉXÇÉIÅ[ÉvÉìǵǃǢǃâΩÇÁÇ©ÇÃÉGÉâÅ[Ç™î≠ê∂ǵÇΩèÍçáÅAÉzÅ[ÉXÇÃê⁄ë±ÉvÉçÉVÅ[ÉWÉÉÇÕ kConnClosed Çï‘ǵNjÇ∑ÅBDZÇÃéûì_Ç≈ÉzÅ[ÉXÉNÉâÉCÉAÉìÉgÇÕÉzÅ[ÉXÇà HoseCloseProc ÇåƒÇ—èoÇ∑DZÇΔÇ…Ç»ÇËÅAHoseCloseProc Ç≈ÇÕÉzÅ[ÉXÇÉIÅ[ÉvÉìÇ≈ǴǻǩǡÇΩóùóRÇé¶Ç∑ìKêÿÇ»ÉGÉâÅ[ÉRÅ[ÉhÇï‘Ç∑ïKóvǙdžÇËÇ‹Ç∑ÅB
HoseOutProc
ÉzÅ[ÉXÇÃéÂóvÇ»ñ⁄ìIÇÕÉfÅ[É^ÇÃì]ëóÇ≈Ç∑ÅBDZÇÍÇÕÅAHoseOutProc åƒÇ—èoǵÇâÓǵǃÉzÅ[ÉXÇÃÉNÉâÉCÉAÉìÉgÇ…ÇÊǡǃé¿åªÇ≥ÇÍÇ‹Ç∑ÅBHoseOutProc ÇÕà»â∫ÇÃÇΔÇ®ÇËÇ≈džÇËÅA
typedef OSStatus (*HoseOutProc)(void *refcon, MemQElem *memElem);
ÉzÅ[ÉXÇÃä÷êîÇÕà»â∫ÇÃÇÊǧDžǻÇËÇ‹Ç∑ÅB
OSStatus hoseOut(void *refcon, MemQElem *memElem);
HoseOutProc Ç…ìnÇ≥ÇÍÇÈ refcon ÉpÉâÉÅÅ[É^ÇÕÅAhoseOpen ÉãÅ[É`ÉìÇ…ÇÊǡǃê›íËÇ≥ÇÍÇΩ HoseInfo ç\ë¢ëÃÇà refcon ÉtÉBÅ[ÉãÉhÇ©ÇÁéÊìæÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃílÇÕÅAÉzÅ[ÉXÇÃÉvÉâÉCÉxÅ[ÉgÉfÅ[É^Ç÷ÇÃÉ|ÉCÉìÉ^Ç‹ÇΩÇÕÉnÉìÉhÉãÇ≈Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅB
HoseOutProc Çà 2 î‘ñ⁄ÇÃÉpÉâÉÅÅ[É^Ç≈džÇÈ memElem ÇÕÅAèëÇ´çûÇ‹ÇÍÇÈÉfÅ[É^ÇãLèqÇ∑ÇÈ MemQElem ç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^Ç≈Ç∑ÅB
typedef struct MemQElem{
QElemPtr qLink; // Enqueue Ç®ÇÊÇ— Dequeue Ç…ÇÊǡǃégópÇ≥ÇÍÇ‹Ç∑ - ÉvÉâÉCÉxÅ[ÉgÅB
short qType; // ÉLÉÖÅ[ÇéØï Ç∑ÇÈíËêî (kMemQueueType) - ÉvÉâÉCÉxÅ[ÉgÅB
struct BufIO *bufIO; // DZǧǵǃÉoÉbÉtÉ@èÓïÒÇâÒïúÇ≈Ç´Ç‹Ç∑ - ÉvÉâÉCÉxÅ[ÉgÅB
Byte *buf; // äÑÇËìñǃÇÁÇÍÇΩÉoÉbÉtÉ@Ç÷ÇÃÉ|ÉCÉìÉ^ÅB
SInt32 maxBytes; // 'buf' Ç™éwÇ∑ÉuÉçÉbÉNÇÃÉTÉCÉYÅB
SInt32 nBytes; // 'buf' Ç…ä‹Ç‹ÇÍÇÈóLå¯Ç»ÉoÉCÉgÇÃêîÅB
Boolean eoj; // ÉfÅ[É^ÇÃå„Ç… end of job Ç™ë±Ç≠èÍçáÇÕ trueÅB
Boolean inQOnly; // DZÇÃÉoÉbÉtÉ@ÇÕì¸óÕÉãÅ[É`ÉìÇ…ëŒÇµÇƒÇÃÇ›égópǵǃÇ≠ÇæÇ≥Ç¢ - ÉvÉâÉCÉxÅ[ÉgÅB
}MemQElem, *MemQElemPtr;
íçà”ÅF
MemQElem ç\ë¢ëÃÇÃëΩÇ≠ÇÃÉtÉBÅ[ÉãÉhÇÕÉvÉâÉCÉxÅ[ÉgÇ≈džÇËÅAÉzÅ[ÉXÉNÉâÉCÉAÉìÉgÇ…ÇÊǡǃégópÇ≥ÇÍÇ‹Ç∑ÅBDZÇÍÇÁÇÃÉtÉBÅ[ÉãÉhÇÃÉRÉÅÉìÉgÇ…ÇÕÅuÉvÉâÉCÉxÅ[ÉgÅvÇΔãLç⁄ǵǃdžÇËÇ‹Ç∑ÅBÉzÅ[ÉXǙDZÇÍÇÁÇÃÉtÉBÅ[ÉãÉhÇégópǵǃÇÕÇ¢ÇØÇ‹ÇπÇÒÅB |
ÉzÅ[ÉXÉNÉâÉCÉAÉìÉgÇÕ MemQElem ç\ë¢ëÃÇà 'eoj' ÉtÉBÅ[ÉãÉhÇégǡǃÅAPostScript Çà end of job ÇÉvÉäÉìÉ^Ç…ì]ëóÇ∑ÇÈïKóvǙdžÇÈÇΔÇ´Ç…ÅAǪÇÃDZÇΔÇÉzÅ[ÉXÇ…í ímǵNjÇ∑ÅBMemQElem ç\ë¢ëÃÇà 'eoj' ÉtÉBÅ[ÉãÉhÇ™ true ÇÃèÍçáÅAPostScript Çà end of job ÇÃí ímÇÕÅADZÇà MemQElem ç\ë¢ëÃÇ…ä‹Ç‹ÇÍÇÈÉfÅ[É^ÇÃÉoÉbÉtÉ@ÇÃå„Ç‹ÇΩÇÕÉfÅ[É^ÇÃÉoÉbÉtÉ@ÇΔÇΔLJDžëóêMÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBÉVÉäÉAÉãê⁄ë±Ç≈Çà control-D ÇÃÇÊǧDžÅAí êMÉ`ÉÉÉlÉãÇ…ÇÊǡǃÇÕDZÇà 'eoj' ÇÕÉfÅ[É^ÇÃå„Ç…ëóêMÇ≥ÇÍÇÈÉfÅ[É^ÉoÉCÉgÇ…Ç»ÇËÇ‹Ç∑ÅBÇ‹ÇΩÅAPAP ǻǫÇÃëºÇÃí êMÉ`ÉÉÉlÉãÇ≈ÇÕÅAend of job ÉCÉìÉWÉPÅ[É^ÇÕÉfÅ[É^ǪÇÃLJÇÃÇä‹ÇfiÉoÉìÉhÇÃäOïîDždžÇËÇ‹Ç∑ÅB
åJÇËï‘ǵDžǻÇËÇ‹Ç∑Ç™ÅAÉzÅ[ÉXÇÕǪÇÃì«Ç›èëÇ´ÇîÒìØä˙ìIÇ»ï˚ñ@Ç≈é¿çsÇ∑ÇÈDZÇΔÇÇ®ä©ÇflǵNjÇ∑ÅBDZÇÃèÍçáÅAHoseOutProc ÇÕ buf Ç™éwÇ∑ nBytes ÇÃèëÇ´çûÇ›ÇäJénǵÇΩå„ÅAåƒÇ—èoǵå≥Ç…êßå‰ÇñflǵNjÇ∑ÅBèëÇ´çûǛǙäÆóπÇ∑ÇÈÇΔÅAÉzÅ[ÉXÇÕ BufCallbacks ç\ë¢ëÃÇΔǵǃ hoseOpen Ç…ìnÇ≥ÇÍÇΩ finishedWrite ä÷êîÉ|ÉCÉìÉ^ÇåƒÇ—èoǵǃÅAåƒÇ—èoǵå≥Ç…í ímǵNjÇ∑ÅB
typedef void (*FinishedWriteProc)(MemQElem *memElem, OSStatus err);
FinishedWriteProc ÇåƒÇ—èoÇ∑ÇΔÇ´ÅAÉzÅ[ÉXÇÕÉGÉâÅ[ÉRÅ[ÉhÇΔÇΔLJDž MemQElem ÇΔǵǃ hoseOut Ç…ìnÇ≥ÇÍÇΩÉ|ÉCÉìÉ^ÇìnǵNjÇ∑ÅBèëÇ´çûǛǙê≥èÌÇ…èIóπǵÇΩèÍçáÅAÉGÉâÅ[ÉRÅ[ÉhÇÕ noErr Ç…Ç»ÇËÇ‹Ç∑ÅBèëÇ´çûÇ›íÜÇ…ÉGÉâÅ[Ç™î≠ê∂ǵÇΩèÍçáÇÕÅAǪÇÃÉRÅ[ÉhÇ FinishedWriteProc Ç…ìnǵNjÇ∑ÅB
FinishedWriteProc ÇÃåƒÇ—èoǵÇÕÅAÉzÅ[ÉXÇ™ MemQElem ç\ë¢ëÃÇÃèàóùÇäÆóπǵÅAï Çà hoseOut åƒÇ—èoǵÇéÛÇØïtÇØÇÈèÄîıÇ™êÆÇ¡ÇΩDZÇΔÇÉzÅ[ÉXÇ©ÇÁÉNÉâÉCÉAÉìÉgÇ…í ímǵNjÇ∑ÅBé¿ç€ÅAFinishedWriteProc ÇâÓǵǃåƒÇ—èoÇ≥ÇÍÇÈÉãÅ[É`ÉìÇÕÅAÉzÅ[ÉXÇ…ñflÇÈëOÇ…Ç∑ÇÆÇ…ï Çà hoseOut ÇåƒÇ—èoÇ∑DZÇΔǙdžÇËÇ‹Ç∑ÅBDZÇÃÇΩÇflÅAÇ‹ÇæîÒìØä˙ìIÇ»äÆóπÉãÅ[É`Éìì‡Ç…džÇÈÇΔÇ´Ç≈LJÅAÉzÅ[ÉXÇÕéüÇ…åƒÇ—èoÇ≥ÇÍÇÈ hoseOut ÉãÅ[É`ÉìÇÃèÄîıÇêÆÇ¶ÇƒÇ®Ç≠ïKóvǙdžÇËÇ‹Ç∑ÅBÇ≥ÇÁÇ…ÅAMemQElem É|ÉCÉìÉ^Ç™ FinishedWriteProc Ç…ìnÇ≥ÇÍÇΩå„ÇÕÅAÉzÅ[ÉXǙǪÇÍÇéQèΔǵǻǢÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ÅBFinishedWriteProc ÇåƒÇ—èoÇ∑ëOÇ…ç\ë¢ëÃÇ©ÇÁÉRÉsÅ[ǵÇΩÉfÅ[É^ÇÕLJÇÕÇ‚óLå¯Ç»Ç‡ÇÃÇ≈ÇÕÇ»Ç≠Ç»ÇËÇ‹Ç∑ (ì¡Ç… 'buf' )ÅBǬNjÇËÅAç\ë¢ëÃǪÇÃLJÇÃÇ™óLå¯Ç≈Ç»Ç¢ÇæÇØÇ≈Ç»Ç≠ÅAǪÇÍà»ëOÇ…égópÇ≥ÇÍǃǢÇΩç\ë¢ëÃÇ…ä‹Ç‹ÇÍÇÈÉfÅ[É^LJóLå¯Ç»Ç‡ÇÃÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅB
HoseInProc
íPï˚å¸í êMÉ`ÉÉÉlÉãÇä«óùǵǃǢÇÈèÍçáÅAÉzÅ[ÉXÇÕÉfÅ[É^Çì«Ç›çûÇfiÉãÅ[É`ÉìÇïKóvÇΔǵNjÇπÇÒÅBDZÇÃèÍçáÅAhoseOpen ÉãÅ[É`ÉìÇÃé¿çséûÇ… HoseInfo ç\ë¢ëÃÇà 'in' ÉtÉBÅ[ÉãÉhÇ… NULL Çê›íËǵǃÇ≠ÇæÇ≥Ç¢ÅB ÉvÉäÉìÉ^Ç©ÇÁÉfÅ[É^Çì«Ç›çûÇflÇÈèÍçáÅAÉzÅ[ÉXÇÕ HoseInfo ç\ë¢ëÃÇà in ÉtÉBÅ[ÉãÉhÇ…ÉfÅ[É^Çì«Ç›çûÇfiÉãÅ[É`ÉìÇ÷ÇÃÉ|ÉCÉìÉ^Çê›íËǵNjÇ∑ÅB
typedef OSStatus (*HoseInProc)(void *refcon, MemQElem memElem);
HoseOutProc ÇΔìØólÅAHoseInProc LJîÒìØä˙ìIÇ…é¿çsǵǃÇ≠ÇæÇ≥Ç¢ÅBåƒÇ—èoÇ≥ÇÍÇΩÇΔÇ´Ç… HoseInProc Ç™ì«Ç›çûÇ›ÇäJénÇ∑ÇÈÇÊǧDžǵNjÇ∑ÅBÉfÅ[É^Ç™égópâ¬î\Ç≈ÅAÉzÅ[ÉXÇÃîÒìØä˙äÆóπÉãÅ[É`ÉìÇ™åƒÇ—èoÇ≥ÇÍÇÈÇΔÇ´ÅAÉzÅ[ÉXÇÕÉNÉâÉCÉAÉìÉgÇà FinishedReadProc ÇåƒÇ—èoǵÅAHoseInProc Ç…ìnÇ≥ÇÍÇΩ MemQElem É|ÉCÉìÉ^ÇΔÉGÉâÅ[ÉRÅ[ÉhÇìnǵNjÇ∑ÅBÉzÅ[ÉXÇÕ memElem->maxBytes Çí¥Ç¶ÇÈÉoÉCÉgÇì«Ç›çûÇfiDZÇΔÇÕÇ≈Ç´Ç‹ÇπÇÒÅBÇ‹ÇΩÅAÉzÅ[ÉXÇÕ memElem->buf Ç…ì«Ç›çûÇ‹ÇÍÇΩÉoÉCÉgêîÇ memElem->nBytes Ç…ê›íËÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
typedef void (*FinishedReadProc)(MemQElem memElem, OSStatus err);
ÉfÅ[É^ÇÃèëÇ´çûÇ›ÇΔìØólÅAFinishedReadProc Ç™åƒÇ—èoÇ≥ÇÍÇΩå„ÅAÉzÅ[ÉXÇÕ FinishedReadProc Ç™êßå‰ÇñflÇ∑ëOÇ…ï Çà HoseInProc ÇåƒÇ—èoÇ∑èÄîıÇêÆÇ¶ÇƒÇ®Ç≠ïKóvǙdžÇËÇ‹Ç∑ÅBFinishedWriteProc ÇÃèÍçáÇΔìØólÅAFinishedReadProc Ç™ÉzÅ[ÉXÇ…ÇÊǡǃåƒÇ—èoÇ≥ÇÍÇΩå„ÅAMemQElem ÇÃÉfÅ[É^ÇÕñ≥å¯Ç≈džÇÈÇΔå©Ç»ÇµÇƒÇ≠ÇæÇ≥Ç¢ÅB
HoseIdleProc
Ç∑Ç◊ǃÇÃÉzÅ[ÉXÇ™îÒìØä˙äÆóπÉãÅ[É`ÉìÇégǡǃì«Ç›çûǛNjÇΩÇÕèëÇ´çûÇ›ÇÃèIóπÇí ímÇ≈Ç´ÇÈÇÌÇØÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBDZÇÃÇÊǧǻÉzÅ[ÉXÇéxâáÇ∑ÇÈÇΩÇflÅAhoseOpen Ç©ÇÁï‘Ç≥ÇÍÇΩ HoseInfo ç\ë¢ëÃÇ… HoseIdleProc ÇéwíËÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBHoseInfo ç\ë¢ëÃÇà idle ÉtÉBÅ[ÉãÉhÇ™ NULL Ç≈ǻǢèÍçáÅAÉzÅ[ÉXÇÃÉNÉâÉCÉAÉìÉgÇÕé¸ä˙ìIÇ… HoseIdleProc ÇåƒÇ—èoÇ∑DZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅBDZÇÃÉAÉCÉhÉãÉvÉçÉVÅ[ÉWÉÉÇÕï€óØíÜÇÃì«Ç›çûÇ›ÇΔèëÇ´çûÇ›ÇÃÉXÉeÅ[É^ÉXÇÉ`ÉFÉbÉNǵÅAïKóvÇ…âûÇ∂ǃÅAFinishedWriteProc ÇΔ FinishedReadProc ÇåƒÇ—èoǵNjÇ∑ÅBëÂïîï™ÇÃÉzÅ[ÉXÇÕ HoseIdleProc ÇïKóvÇΔǵNjÇπÇÒÇ™ÅAïKóvÇ»èÍçáÇÕÅAéüÇÃÉVÉOÉlÉ`ÉÉÇéùÇøÇ‹Ç∑ÅB
typedef OSStatus (*HoseIdleProc)(void *refcon);
HoseStatusProc
ÉzÅ[ÉXÇ™ÉIÅ[ÉvÉìǵǃǢÇÈä‘ÅAÉzÅ[ÉXÇÃÉNÉâÉCÉAÉìÉgÇÕÉzÅ[ÉXÇ™ÉvÉäÉìÉ^Ç…ÉXÉeÅ[É^ÉXÇñ‚Ç¢çáÇÌÇπÇÈDZÇΔÇé¸ä˙ìIÇ…óvãÅǵNjÇ∑ÅBåƒÇ—èoǵǙçsÇÌÇÍÇÈÇΔÇ´ÅAÉzÅ[ÉXÇÕÉvÉäÉìÉ^ÇÃç≈êVÇÃÉXÉeÅ[É^ÉXÇãLèqÇ∑ÇÈ Pascal ï∂éöóÒÇ statusStr Ç™éwÇ∑ÉoÉbÉtÉ@Ç…ÉRÉsÅ[ǵNjÇ∑ÅBÇ‹ÇΩÅAÉzÅ[ÉXÇÕÉvÉäÉìÉ^Ç÷ÇÃîÒìØä˙ÉXÉeÅ[É^ÉXÉäÉNÉGÉXÉgÇäJénÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBîÒìØä˙ÉXÉeÅ[É^ÉXÉäÉNÉGÉXÉgÇ™ï‘Ç≥ÇÍÇΩÇΔÇ´ÅAÉzÅ[ÉXÇÕéüÇÃÉXÉeÅ[É^ÉXÉvÉçÉVÅ[ÉWÉÉÇ™åƒÇ—èoÇ≥ÇÍÇÈÇ‹Ç≈ÅAǪÇÃÉXÉeÅ[É^ÉXÇï€éùÇµÇƒÇ¢Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅB
typedef OSStatus (*HoseStatusProc)(void *refcon, StringPtr statusStr);
íçà”ÅF
StringPtr ǙǬÇÀÇ…óLå¯Ç» Pascal ï∂éöóÒÇéwǵǃǢÇÈDZÇΔÇämîFǵǃÇ≠ÇæÇ≥Ç¢ (ǬNjÇËÅAï∂éöóÒëSëÃÇ™èëÇ´çûÇ‹ÇÍÇÈÇ‹Ç≈ length ÉoÉCÉgÇ 0 DžǵǃǮǴNjÇ∑ÅBǪǧÇ∑ÇÍÇŒÅAÉ^ÉCÉ~ÉìÉOÇ™à´Ç¢èÍçáDžLJÉNÉâÉCÉAÉìÉgÇ™à”ñ°ïsñæÇÃï∂éöÇï\é¶Ç∑ÇÈDZÇΔǙǻÇ≠Ç»ÇËÇ‹Ç∑)ÅB |
ÉVÉäÉAÉãÉ`ÉÉÉlÉãǻǫÇÃàÍïîÇÃí êMÉ`ÉÉÉlÉãÇ≈ÇÕÅAÉvÉäÉìÉ^ÇÃÉXÉeÅ[É^ÉXÇ™ HoseInProc Ç…ÇÊǡǃì«Ç›çûÇ‹ÇÍÇΩÉoÉbÉNÉ`ÉÉÉlÉãÇ…ï‘Ç≥ÇÍÇ‹Ç∑ÅBDZÇÃÇÊǧǻèÍçáÇÕÅAÉzÅ[ÉXÇÃÉNÉâÉCÉAÉìÉgÇ™ÉoÉbÉNÉ`ÉÉÉlÉãÇ©ÇÁÉXÉeÅ[É^ÉXÇéÊÇËèoǵÅAÉzÅ[ÉXÇÕèoóÕÉfÉoÉCÉXÇ…ÉXÉeÅ[É^ÉXÉäÉNÉGÉXÉgÇì]ëóÇ∑ÇÈDZÇΔà»äOÇ…ëºÇÃèàóùÇçsǧïKóvÇÕÇ»Ç≠Ç»ÇËÇ‹Ç∑ÅB
HoseCloseProc
ÉzÅ[ÉXÇÃèàóùÇèIóπÇ∑ÇÈÇΔÇ´ÅAÉNÉâÉCÉAÉìÉgÇÕÉzÅ[ÉXÇà HoseCloseProc ÇåƒÇ—èoǵǃê⁄ë±ÇêÿífǵNjÇ∑ÅBDZÇÃÇΔÇ´ÅAÉzÅ[ÉXÇÕï€óØíÜÇÃì«Ç›çûÇ›ÇΔèëÇ´çûÇ›ÇíÜé~ǵǃÅAê⁄ë±ÇÃêÿífÇäJénÇµÇ»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBDZÇÃêÿífÉvÉçÉVÅ[ÉWÉÉÇ™ë¶ç¿Ç…é¿çsÇ≥ÇÍÇΩèÍçáÇÕÅADZÇÃÉãÅ[É`ÉìÇ™êßå‰ÇñflÇ∑ëOÇ…êÿífÇäÆóπÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBêÿífÉvÉçÉVÅ[ÉWÉÉÇÃé¿çsÇ…éûä‘ÇóvÇ∑ÇÈèÍçáÅADZÇÃÉãÅ[É`ÉìÇÕèàóùÇäJénǵǃêßå‰ÇñflÇ∑DZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
typedef OSStatus (*HoseCloseProc)(void *refcon);
HoseDisposeProc
HoseCloseProc Ç™åƒÇ—èoÇ≥ÇÍÇΩå„ÅAkConnClosed Ç™ï‘Ç≥ÇÍÇÈÇ‹Ç≈ HoseConnProc Ç™åJÇËï‘ǵåƒÇ—èoÇ≥ÇÍÇ‹Ç∑ÅBÉzÅ[ÉXÇ™ê⁄ë±ÇÃêÿífÇí ímÇ∑ÇÈÇΔÇ´ÅAHoseDisposeProc Ç™åƒÇ—èoÇ≥ÇÍÅAÉzÅ[ÉXÇ™Ç‹Çæï€éùǵǃǢÇÈÉÅÉÇÉäÇÃâï˙Ç™â¬î\Ç…Ç»ÇËÇ‹Ç∑ÅB
typedef OSStatus (*HoseDisposeProc)(void *refcon);
îÒìØä˙ÉNÉçÅ[ÉYÇçsǡǃǢÇÈÇΔÇ´Ç…âΩÇÁÇ©ÇÃÉGÉâÅ[Ç™î≠ê∂ǵÇΩèÍçáÇÕÅAHoseDisposeProc Ç™É[ÉçÇ≈ǻǢÉGÉâÅ[ílÇï‘Ç∑ÇÊǧDžǵNjÇ∑ÅB
ÉzÅ[ÉXÉ^ÉCÉvÇÃìoò^
ÉzÅ[ÉXÉ^ÉCÉvÇÃèdï°ÇîÇØÇÈÇΩÇflÅAApple Ç≈ÇÕÅAdevprograms@apple.com Ç‹Ç≈ìdéqÉÅÅ[ÉãÇÇ®äÒÇπÇ¢ÇΩÇæÇ´ÅA4 ÉoÉCÉgÇÃÉJÉXÉ^ÉÄÉzÅ[ÉXÉ^ÉCÉvÇìoò^ǵǃǢÇΩÇæÇ≠DZÇΔÇÇ®äËǢǵǃǢNjÇ∑ÅBÉJÉXÉ^ÉÄÉzÅ[ÉXÉ^ÉCÉvÇìoò^Ç∑ÇÈÇ…ÇÕÅAéüÇÃèÓïÒÇÇ®ímÇÁÇπÇ≠ÇæÇ≥Ç¢ÅB
- íSìñé“ñº
- âÔé–ñº
- èZèä
- ìdòbî‘çÜ
- ìdéqÉÅÅ[ÉãÉAÉhÉåÉX
- ÉfÉoÉCÉXÇÃå^éÆ
- í êMï˚ñ@ÇÃê‡ñæ
- 4 ÉoÉCÉgÇÃÉ^ÉCÉvÅi
'=XXX' ÇÃå`éÆÅj
óvñÒ
DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈äTê‡ÇµÇΩÇÊǧDžÅALaserWriter 8.6 Ç…ëŒâûǵÇΩÉJÉXÉ^ÉÄÉzÅ[ÉXÇÃçÏê¨ÇÕǩǻÇËíPèÉÇ≈džÇËÅAÇÌÇ©ÇËÇ‚Ç∑ǢLJÇÃÇΔǢǶNjÇ∑ÅBÇΩÇæÇµÅAÉJÉXÉ^ÉÄÉzÅ[ÉXÇÃçÏê¨Çé¿ç€Ç…énÇflÇÈëOÇ…ÅADZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈åæãyÇ≥ÇÍǃǢÇÈéQçlï∂å£Çì«ÇÒÇ≈Ç›ÇÈDZÇΔÇÇ®ä©ÇflǵNjÇ∑ÅB
éQçlï∂å£
Technote 1113: ÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÃÉJÉXÉ^É}ÉCÉY
Technote 1115: LaserWriter 8.5.1: ägí£ 'PAPA' ÉäÉ\Å[ÉX
Technote 1129: LaserWriter 8.5.1: ÉvÉäÉìÉ^ê›íËÉâÉCÉuÉâÉä (SettingsLib)
Technote 11XX: Printing Plug-ins Manager Specification (ãfläß)
Inside Macintosh: QuickDraw GX Environment and Utilities
ä÷òAÉtÉ@ÉCÉãÇÃÉ_ÉEÉìÉçÅ[Éh
Hose.h (9K) - binhex å`éÆ -âpåÍî≈
|