home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************/
- /* MacResourcen */
- /* Alle dokumentierten Strukturen des Resource Managers. */
- /*-----------------------------------------------------------------------*/
- /* 05.02.1992 Andre geschrieben. */
- /* 08.02.1992 Andre Aufgeraeumt und umbenannt. */
- /* 22.03.1992 Andre an C++ angepaâ–€t. */
- /*************************************************************************/
-
- /* Die folgenden Typen muessen die angegebene */
- /* Laenge haben! */
-
- typedef char mbyte; /* 1 Byte */
- typedef short mshort; /* 2 Byte */
- typedef long mlong; /* 4 Byte */
- typedef unsigned long Pack; /* 4 Byte gepackt! */
-
- /* Eine Reference List. */
- typedef struct MacResIDStr
- {
- mshort ID; /* Die ID dieser Resource. */
- mshort NameOffset; /* Der Offset zum Namen (oder -1). */
- mlong Attrs:8; /* Die Attribute dieser Resource. */
- mlong DataOffset:24; /* Dort beginnt die Resource. */
- mlong privat;
- }
- MacResID;
-
- /* Ein Resource Type. */
- typedef struct MacResTypeStr
- {
- Pack theResType; /* Der Type der Resource. */
- mshort NumberOfResRef; /* Anzahl der Res.Referenzen dieses Typs*/
- mshort RefListOffset; /* Hier faengt das Feld der Refs an. */
- }
- MacResType;
-
- /* Die Typeliste. */
- typedef struct MacResFileStr
- {
- mshort Number; /* Anzahl der Feldeintraege. */
- MacResType Type[1]; /* Das Datenfeld. */
- }
- MacResFile;
-
- /* Der Header einer MAC Resource Datei. */
- typedef struct MacResHeaderStr
- {
- mlong DataOffset; /* Da fangen die Daten im Resourcefile an.*/
- mlong MapOffset; /* Da faengt die Resourcemap an. */
- mlong DataLength; /* Laenge der Daten. */
- mlong MapLength; /* Laenge der Resourcemap. */
- }
- MacResHeader;
-
- /* Das Aussehen der Resource Daten. */
- typedef struct MacResDataStr
- {
- mlong Length; /* Die Laenge der Daten. */
- mbyte Data[1]; /* Die Daten in Feld [0,..,mrd_Length-1]. */
- }
- MacResData;
-
- /* Die Recource Map. */
- /* Private Felder nicht benutzen! */
- typedef struct MacResMapHeaderStr
- {
- MacResHeader privat1;
- mlong privat2;
- mshort privat3;
- mshort Attrs; /* Die Attribute des Files. */
- mshort TypeListOffset; /* Offset zur Liste der Resourcetypen. */
- mshort NameListOffset; /* Offset zur Liste der Namen. */
- }
- MacResMapHeader;
-
- /* Die Fileattribute: */
- #define resSysHeap 64
- #define resPurgeable 32
- #define resLocked 16
- #define resProtected 8
- #define resPreload 4
- #define resChanged 2
-
- /* Die Resourcetype Attribute: */
- #define mapReadOnly 128
- #define mapCompact 64
- #define mapChanged 32
-
- /* Dann noch die Fehlercodes: */
- #define resNotFound -192
- #define resFNotFound -193
- #define addResFailed -194
- #define rmvResFailed -195
-
- #define resNoMemory -196
- #define resToManyFiles -197
- #define resFileCorrupted -198
-
-