FileTypesAndCreators.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:39k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /*
  2.      File:       FileTypesAndCreators.h
  3.  
  4.      Contains:   Symbolic constants for FileTypes and signatures of popular documents.
  5.  
  6.      Version:    Technology: Macintosh Easy Open 1.1
  7.                  Release:    QuickTime 6.0.2
  8.  
  9.      Copyright:  (c) 1992-2001 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:      For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __FILETYPESANDCREATORS__
  18. #define __FILETYPESANDCREATORS__
  19. #ifndef __CONDITIONALMACROS__
  20. #include "ConditionalMacros.h"
  21. #endif
  22. #if PRAGMA_ONCE
  23. #pragma once
  24. #endif
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif
  28. #if PRAGMA_IMPORT
  29. #pragma import on
  30. #endif
  31. #if PRAGMA_STRUCT_ALIGN
  32.     #pragma options align=mac68k
  33. #elif PRAGMA_STRUCT_PACKPUSH
  34.     #pragma pack(push, 2)
  35. #elif PRAGMA_STRUCT_PACK
  36.     #pragma pack(2)
  37. #endif
  38. /*
  39. Motivation for FileTypesAndCreators.h
  40.     The TranslationMgr (Macintosh Easy Open) uses "FileTypes" to express and manage
  41.     translation capabilities.  This works well for most Macintosh applications.  It
  42.     simply uses the file type stored in the catalog info by HFS.  But, the TranslationMgr
  43.     needs to work with non-Macintosh files.  These do not have file types (or creators).
  44.     Another problem is some Macintosh applications keep the same file type for a file
  45.     after changing the file format from one version to the next.  Thus, the HFS file type
  46.     cannot be used to distinguish between formats.
  47.     This file is an effort to define FileTypes and creator codes for non-Macintosh file
  48.     formats and define FileTypes that distinguish between formats.
  49. There are two main categories of constants defined in FileTypesAndCreators.h.  One is
  50. creator signatures of applications the other is file types.  To make this easier to use,
  51. some style guidelines are provided.
  52. Creators:
  53.     The symbolic constant for all creator codes begin with "sig". Following "sig" is the
  54.     application name.  Example:
  55.         sigSurfWriter = 'SURF'
  56.     If the application name is localized for different markets, the name of the U.S.
  57.     version is always used. It is optional to make symbolic constants for localized names.
  58.     If a U.S. is not available, another Roman name is used (this is for ease of editing
  59.     in MPW.)  Example:
  60.         sigSurfWriter = 'SURF',
  61.         sigSkiWriter =  'SURF'  // optional definition of Canadian name of app
  62.     If multiple versions of an application exist, and the creator codes are different,
  63.     then the version number is added to the end of the symbolic name, for the first version
  64.     in which the signature changed.  Example:
  65.         sigDirtWriter =     'DIRT', // version 1 and 2 used same signature
  66.         sigDirtWriter3 =    'DRT3'
  67.     If a developer has the same application on another platform as is on the Mac, then the
  68.     creator for a file from the other platform should be the same as the creator of the
  69.     Macintosh application.   Example:
  70.         sigMicrosoftWord =  'MSWD'  // used for Mac and Windows documents
  71.     If there is no similar Macintosh product, then the signature of the platform is used.
  72.     Example:
  73.         sigPCDOS =          'mdos', // for DOS and Windows
  74.         sigAppleProDos =    'pdos'
  75. FileTypes:
  76.     The symbolic constant for all file types begin with "ft". Following "ft" is the ideal
  77.     kind for that document.  Example:
  78.         ftSurfWriterDocument =  'SRFD'
  79.     If the application name is localized for different markets, the kind string of the U.S.
  80.     version is always used. It is optional to make symbolic constants for localized kind
  81.     strings.  If a U.S. is not available, another Roman kind string is used (this is for
  82.     ease of editing in MPW.)  Example:
  83.         ftSurfWriterDocument =  'SRFD,
  84.         ftSkiWriterDocument =   'SRFD'  // optional Canadian name
  85.     If multiple versions of an application exist, and the document for files created by each
  86.     are different (meaning one version of the app can not read the documents of a newer
  87.     version), then the version number is added to the end of the symbolic name, for the
  88.     first version in which the format changed.  Example:
  89.        // version 1 and 2 docs have same format, version 3 has a different format
  90.         ftDirtWriterDocument =          'DDRT',
  91.         ftDirtWriter3Document =         '3DRT'
  92.     If multiple versions of an application exist, and the document for files created by each
  93.     are different, but the catInfo file type has always been the same, then constants are
  94.     made for each unique format and one is made for the catInfo type actually used.
  95.         ftWordDocument =        'WDBN',
  96.         ftWord3Document =       'WDB3',
  97.         ftWord4Document =       'WDB4',
  98.         ftWord5Document =       'WDB5'
  99.     If a developer has the same application on another platform as is on the Mac and the file
  100.     formats are the same (binary interchangeable), then the file type for a file from the other
  101.     platform should be the same as the file type of the Macintosh document.   Example:
  102.         ftPageMakerPublication = 'ALB4' // used for Mac and PC documents
  103.     If there is no similar Macintosh document format, then a file type is made up.  If the
  104.     program is used on two different non-Mac platforms and their file formats are not the
  105.     same, the platform name is added to the name.  Typically after the program name and before
  106.     document.  Example:
  107.         ftXyWriteIIIDocument =  'XyWr'  // XyWriteIII only has a PC format
  108.         ftSurfWindowsDocument = 'SRFW'  // Surf Windows file format
  109.         ftSurfPCDocument =      'SRFP'  // Surf PC file format
  110. */
  111. /************** Macintosh applications and FileTypes **************/
  112. enum {
  113.                                                                 /* Mac word processors */
  114.     sigWord                     = FOUR_CHAR_CODE('MSWD'),
  115.     ftWord3Document             = FOUR_CHAR_CODE('MSW3'),
  116.     ftWord4Document             = FOUR_CHAR_CODE('MSW4'),
  117.     ftWord5Document             = FOUR_CHAR_CODE('MSW5'),
  118.     ftWordDocument              = FOUR_CHAR_CODE('WDBN'),
  119.     ftWordDocumentPC            = FOUR_CHAR_CODE('MWPC'),       /* not registered */
  120.     ftWord1DocumentWindows      = FOUR_CHAR_CODE('WW1 '),       /* not registered */
  121.     ftWord2DocumentWindows      = FOUR_CHAR_CODE('WW2 '),       /* not registered */
  122.     ftRTFDocument               = FOUR_CHAR_CODE('RTF '),       /* not registered */
  123.     sigWordPerfect              = FOUR_CHAR_CODE('SSIW'),
  124.     ftWordPerfectDocument       = FOUR_CHAR_CODE('WPD0'),
  125.     sigWordPerfect2             = FOUR_CHAR_CODE('WPC2'),
  126.     ftWordPerfect2Document      = FOUR_CHAR_CODE('WPD1'),
  127.     ftWordPerfect21Document     = FOUR_CHAR_CODE('WPD2'),
  128.     ftWordPerfect42DocumentPC   = FOUR_CHAR_CODE('.WP4'),       /* not registered */
  129.     ftWordPerfect50DocumentPC   = FOUR_CHAR_CODE('.WP5'),       /* not registered */
  130.     ftWordPerfect51DocumentPC   = FOUR_CHAR_CODE('WP51'),       /* not registered */
  131.     ftWordPerfectGraphicsPC     = FOUR_CHAR_CODE('WPGf'),       /* not registered */
  132.     sigMacWriteII               = FOUR_CHAR_CODE('MWII'),
  133.     ftMacWriteIIDocument        = FOUR_CHAR_CODE('MW2D'),
  134.     sigWriteNow                 = FOUR_CHAR_CODE('nX^n'),
  135.     ftWriteNow2Document         = FOUR_CHAR_CODE('nX^d'),
  136.     ftWriteNow3Document         = FOUR_CHAR_CODE('nX^2'),
  137.     sigMacWrite                 = FOUR_CHAR_CODE('MACA'),
  138.     ftMacWrite5Document         = FOUR_CHAR_CODE('WORD'),
  139.     sigFrameMaker               = FOUR_CHAR_CODE('Fram'),
  140.     ftFrameMakerDocument        = FOUR_CHAR_CODE('FASL'),
  141.     ftFrameMakerMIFDocument     = FOUR_CHAR_CODE('MIF '),
  142.     ftFrameMakerMIF2Document    = FOUR_CHAR_CODE('MIF2'),
  143.     ftFrameMakerMIF3Document    = FOUR_CHAR_CODE('MIF3'),
  144.     sigMSWrite                  = FOUR_CHAR_CODE('MSWT'),
  145.     sigActa                     = FOUR_CHAR_CODE('ACTA'),
  146.     sigTHINKPascal              = FOUR_CHAR_CODE('PJMM'),
  147.     sigTHINKC                   = FOUR_CHAR_CODE('KAHL'),
  148.     sigFullWrite                = FOUR_CHAR_CODE('FWRT'),
  149.     sigTeachText                = FOUR_CHAR_CODE('ttxt'),
  150.     ftTeachTextDocument         = FOUR_CHAR_CODE('ttro'),
  151.     sigSimpleText               = FOUR_CHAR_CODE('ttxt'),
  152.     ftSimpleTextDocument        = FOUR_CHAR_CODE('ttro'),
  153.     sigMPWShell                 = FOUR_CHAR_CODE('MPS '),
  154.     sigQuarkXPress              = FOUR_CHAR_CODE('XPR3'),
  155.     sigNisus                    = FOUR_CHAR_CODE('NISI'),
  156.     sigOmniPage                 = FOUR_CHAR_CODE('PRTC'),
  157.     sigPersonalPress            = FOUR_CHAR_CODE('SCPG'),
  158.     sigPublishItEZ              = FOUR_CHAR_CODE('2CTY'),
  159.     sigReadySetGo               = FOUR_CHAR_CODE('MEMR'),
  160.     sigRagTime                  = FOUR_CHAR_CODE('R#+A'),
  161.     sigLetraStudio              = FOUR_CHAR_CODE('LSTP'),
  162.     sigLetterPerfect            = FOUR_CHAR_CODE('WPCI'),
  163.     sigTheWritingCenter         = 0x0A1A5750,                   /* this 'unprintable unprintable WP' One of the unprintables is a line feed.  */
  164.     sigInstantUpdate            = FOUR_CHAR_CODE('IUA0')
  165. };
  166. enum {
  167.                                                                 /* databases */
  168.     sig4thDimension             = FOUR_CHAR_CODE('4D03'),
  169.     ft4thDimensionDB            = FOUR_CHAR_CODE('BAS3'),
  170.     sigFileMakerPro             = FOUR_CHAR_CODE('FMPR'),
  171.     ftFileMakerProDatabase      = FOUR_CHAR_CODE('FMPR'),
  172.     sigHyperCard                = FOUR_CHAR_CODE('WILD'),
  173.     ftHyperCard                 = FOUR_CHAR_CODE('STAK'),
  174.     sigSmartFormAsst            = FOUR_CHAR_CODE('KCFM'),
  175.     ftSmartFormAsst             = FOUR_CHAR_CODE('STCK'),
  176.     sigSmartFormDesign          = FOUR_CHAR_CODE('KCFD'),
  177.     ftSmartFormDesign           = FOUR_CHAR_CODE('CFRM'),
  178.     sigFileForce                = FOUR_CHAR_CODE('4D93'),
  179.     ftFileForceDatabase         = FOUR_CHAR_CODE('FIL3'),
  180.     sigFileMaker2               = FOUR_CHAR_CODE('FMK4'),
  181.     ftFileMaker2Database        = FOUR_CHAR_CODE('FMK$'),
  182.     sigSuperCard                = FOUR_CHAR_CODE('RUNT'),
  183.     sigDoubleHelix              = FOUR_CHAR_CODE('HELX'),
  184.     sigGeoQuery                 = FOUR_CHAR_CODE('RGgq'),
  185.     sigFoxBASE                  = FOUR_CHAR_CODE('FOX+'),
  186.     sigINSPIRATION              = FOUR_CHAR_CODE('CER3'),
  187.     sigPanorama                 = FOUR_CHAR_CODE('KAS1'),
  188.     sigSilverrunLDM             = FOUR_CHAR_CODE('CDML'),
  189.     sigSilverrunDFD             = FOUR_CHAR_CODE('CDDF'),       /* finance */
  190.     sigQuicken                  = FOUR_CHAR_CODE('INTU'),
  191.     sigMacInTax91               = FOUR_CHAR_CODE('MIT1'),
  192.     ftMacInTax91                = FOUR_CHAR_CODE('MITF'),
  193.     sigAccountantInc            = FOUR_CHAR_CODE('APRO'),
  194.     sigAtOnce                   = FOUR_CHAR_CODE('KISS'),
  195.     sigCAT3                     = FOUR_CHAR_CODE('tCat'),
  196.     sigDollarsNSense            = FOUR_CHAR_CODE('EAGP'),
  197.     sigInsightExpert            = FOUR_CHAR_CODE('LSGL'),
  198.     sigMYOB                     = FOUR_CHAR_CODE('MYOB'),
  199.     sigMacMoney                 = FOUR_CHAR_CODE('SSLA'),
  200.     sigManagingYourMoney        = FOUR_CHAR_CODE('MYMC'),
  201.     sigPlainsAndSimple          = FOUR_CHAR_CODE('PEGG'),       /* scheduling */
  202.     sigMacProject2              = FOUR_CHAR_CODE('MPRX'),
  203.     ftMacProject                = FOUR_CHAR_CODE('MPRD'),
  204.     sigMSProject                = FOUR_CHAR_CODE('MSPJ'),
  205.     sigMacProjectPro            = FOUR_CHAR_CODE('MPRP'),       /* utilities */
  206.     sigStuffIt                  = FOUR_CHAR_CODE('SIT!'),
  207.     ftStuffItArchive            = FOUR_CHAR_CODE('SIT!'),
  208.     sigCompactPro               = FOUR_CHAR_CODE('CPCT'),
  209.     ftCompactProArchive         = FOUR_CHAR_CODE('PACT'),
  210.     sigFontographer             = FOUR_CHAR_CODE('aCa2'),
  211.     sigMetamorphosis            = FOUR_CHAR_CODE('MEtP'),
  212.     sigCorrectGrammar           = FOUR_CHAR_CODE('LsCG'),
  213.     sigDynodex                  = FOUR_CHAR_CODE('DYNO'),
  214.     sigMariah                   = FOUR_CHAR_CODE('MarH'),
  215.     sigAddressBook              = FOUR_CHAR_CODE('AdBk'),
  216.     sigThePrintShop             = FOUR_CHAR_CODE('PSHP'),
  217.     sigQuicKeys2                = FOUR_CHAR_CODE('Qky2'),
  218.     sigReadStar2Plus            = FOUR_CHAR_CODE('INOV'),
  219.     sigSoftPC                   = FOUR_CHAR_CODE('PCXT'),
  220.     sigMacMenlo                 = FOUR_CHAR_CODE('MNLO'),
  221.     sigDisinfectant             = FOUR_CHAR_CODE('D2CT'),       /* communications */
  222.     sigSmartcom2                = FOUR_CHAR_CODE('SCOM'),
  223.     sigVersaTermPRO             = FOUR_CHAR_CODE('VPRO'),
  224.     sigVersaTerm                = FOUR_CHAR_CODE('VATM'),
  225.     sigWhiteKnight              = FOUR_CHAR_CODE('WK11'),
  226.     sigNCSATelnet               = FOUR_CHAR_CODE('NCSA'),
  227.     sigDynaComm                 = FOUR_CHAR_CODE('PAR2'),
  228.     sigQMForms                  = FOUR_CHAR_CODE('MLTM'),       /* math and statistics */
  229.     sigMathematica              = FOUR_CHAR_CODE('OMEG'),
  230.     sigMathCAD                  = FOUR_CHAR_CODE('MCAD'),
  231.     sigStatView2                = FOUR_CHAR_CODE('STAT'),
  232.     sigDataDesk                 = FOUR_CHAR_CODE('DDSK'),
  233.     sigPowerMath2               = FOUR_CHAR_CODE('MATH'),
  234.     sigSuperANOVA               = FOUR_CHAR_CODE('SupA'),
  235.     sigSystat                   = FOUR_CHAR_CODE('SYT1'),
  236.     sigTheorist                 = FOUR_CHAR_CODE('Theo')
  237. };
  238. enum {
  239.                                                                 /* spreadsheets */
  240.     sigExcel                    = FOUR_CHAR_CODE('XCEL'),
  241.     ftExcel2Spreadsheet         = FOUR_CHAR_CODE('XLS '),
  242.     ftExcel2Macro               = FOUR_CHAR_CODE('XLM '),
  243.     ftExcel2Chart               = FOUR_CHAR_CODE('XLC '),
  244.     ftExcel3Spreadsheet         = FOUR_CHAR_CODE('XLS3'),
  245.     ftExcel3Macro               = FOUR_CHAR_CODE('XLM3'),
  246.     ftExcel3Chart               = FOUR_CHAR_CODE('XLC3'),
  247.     ftExcel4Spreadsheet         = FOUR_CHAR_CODE('XLS4'),
  248.     ftExcel4Macro               = FOUR_CHAR_CODE('XLM4'),
  249.     ftSYLKSpreadsheet           = FOUR_CHAR_CODE('SYLK'),
  250.     sigLotus123                 = FOUR_CHAR_CODE('L123'),
  251.     ft123Spreadsheet            = FOUR_CHAR_CODE('LWKS'),
  252.     sigWingz                    = FOUR_CHAR_CODE('WNGZ'),
  253.     ftWingzSpreadsheet          = FOUR_CHAR_CODE('WZSS'),
  254.     ftWingzScript               = FOUR_CHAR_CODE('WZSC'),
  255.     sigResolve                  = FOUR_CHAR_CODE('Rslv'),
  256.     ftResolve                   = FOUR_CHAR_CODE('RsWs'),
  257.     ftResolveScript             = FOUR_CHAR_CODE('RsWc'),
  258.     sigFullImpact2              = FOUR_CHAR_CODE('Flv2')
  259. };
  260. enum {
  261.                                                                 /* graphics */
  262.     sigIllustrator              = FOUR_CHAR_CODE('ART3'),
  263.     ftPostScriptMac             = FOUR_CHAR_CODE('EPSF'),
  264.     sigMacPaint                 = FOUR_CHAR_CODE('MPNT'),
  265.     ftMacPaintGraphic           = FOUR_CHAR_CODE('PNTG'),
  266.     sigSuperPaint               = FOUR_CHAR_CODE('SPNT'),
  267.     ftSuperPaintGraphic         = FOUR_CHAR_CODE('SPTG'),
  268.     sigCanvas                   = FOUR_CHAR_CODE('DAD2'),
  269.     ftCanvasGraphic             = FOUR_CHAR_CODE('drw2'),
  270.     sigUltraPaint               = FOUR_CHAR_CODE('ULTR'),
  271.     ftUltraPaint                = FOUR_CHAR_CODE('UPNT'),
  272.     sigPhotoshop                = FOUR_CHAR_CODE('8BIM'),
  273.     ftPhotoshopGraphic          = FOUR_CHAR_CODE('8BIM'),
  274.     sigMacDrawPro               = FOUR_CHAR_CODE('dPro'),
  275.     ftMacDrawProDrawing         = FOUR_CHAR_CODE('dDoc'),
  276.     sigPageMaker                = FOUR_CHAR_CODE('ALD4'),
  277.     ftPageMakerPublication      = FOUR_CHAR_CODE('ALB4'),
  278.     sigFreeHand                 = FOUR_CHAR_CODE('FHA3'),
  279.     ftFreeHandDrawing           = FOUR_CHAR_CODE('FHD3'),
  280.     sigClarisCAD                = FOUR_CHAR_CODE('CCAD'),
  281.     ftClarisCAD                 = FOUR_CHAR_CODE('CAD2'),
  282.     sigMacDrawII                = FOUR_CHAR_CODE('MDPL'),
  283.     ftMacDrawIIDrawing          = FOUR_CHAR_CODE('DRWG'),
  284.     sigMacroMindDirector        = FOUR_CHAR_CODE('MMDR'),
  285.     ftMMDirectorMovie           = FOUR_CHAR_CODE('VWMD'),
  286.     ftMMDirectorSound           = FOUR_CHAR_CODE('MMSD'),
  287.     sigOptix                    = FOUR_CHAR_CODE('PIXL'),       /* was previously PixelPerfect */
  288.     sigPixelPaint               = FOUR_CHAR_CODE('PIXR'),
  289.     ftPixelPaint                = FOUR_CHAR_CODE('PX01'),
  290.     sigAldusSuper3D             = FOUR_CHAR_CODE('SP3D'),
  291.     ftSuper3DDrawing            = FOUR_CHAR_CODE('3DBX'),
  292.     sigSwivel3D                 = FOUR_CHAR_CODE('SWVL'),
  293.     ftSwivel3DDrawing           = FOUR_CHAR_CODE('SMDL'),
  294.     sigCricketDraw              = FOUR_CHAR_CODE('CRDW'),
  295.     ftCricketDrawing            = FOUR_CHAR_CODE('CKDT'),
  296.     sigCricketGraph             = FOUR_CHAR_CODE('CGRF'),
  297.     ftCricketChart              = FOUR_CHAR_CODE('CGPC'),
  298.     sigDesignCAD                = FOUR_CHAR_CODE('ASBC'),
  299.     ftDesignCADDrawing          = FOUR_CHAR_CODE('DCAD'),
  300.     sigImageStudio              = FOUR_CHAR_CODE('FSPE'),
  301.     ftImageStudioGraphic        = FOUR_CHAR_CODE('RIFF'),
  302.     sigVersaCad                 = FOUR_CHAR_CODE('VCAD'),
  303.     ftVersaCADDrawing           = FOUR_CHAR_CODE('2D  '),
  304.     sigAdobePremier             = FOUR_CHAR_CODE('PrMr'),
  305.     ftAdobePremierMovie         = FOUR_CHAR_CODE('MooV'),
  306.     sigAfterDark                = FOUR_CHAR_CODE('ADrk'),
  307.     ftAfterDarkModule           = FOUR_CHAR_CODE('ADgm'),
  308.     sigClip3D                   = FOUR_CHAR_CODE('EZ3E'),
  309.     ftClip3Dgraphic             = FOUR_CHAR_CODE('EZ3D'),
  310.     sigKaleidaGraph             = FOUR_CHAR_CODE('QKPT'),
  311.     ftKaleidaGraphGraphic       = FOUR_CHAR_CODE('QPCT'),
  312.     sigMacFlow                  = FOUR_CHAR_CODE('MCFL'),
  313.     ftMacFlowChart              = FOUR_CHAR_CODE('FLCH'),
  314.     sigMoviePlayer              = FOUR_CHAR_CODE('TVOD'),
  315.     ftMoviePlayerMovie          = FOUR_CHAR_CODE('MooV'),
  316.     sigMacSpin                  = FOUR_CHAR_CODE('D2SP'),
  317.     ftMacSpinDataSet            = FOUR_CHAR_CODE('D2BN'),
  318.     sigAutoCAD                  = FOUR_CHAR_CODE('ACAD'),
  319.     sigLabVIEW                  = FOUR_CHAR_CODE('LBVW'),
  320.     sigColorMacCheese           = FOUR_CHAR_CODE('CMC