| 1 | 
 | 
|---|
| 2 | typedef struct _wpInstanceDataLong
 | 
|---|
| 3 | {
 | 
|---|
| 4 | USHORT  usType;                         /* 0x0002 */
 | 
|---|
| 5 | USHORT  usKey;                          /* key used in wpSaveLong() */
 | 
|---|
| 6 | USHORT  usLength;                       /* size of value, always 0x0004 */
 | 
|---|
| 7 | ULONG   ulValue;
 | 
|---|
| 8 | }INSTANCEDATALONG;
 | 
|---|
| 9 | 
 | 
|---|
| 10 | 
 | 
|---|
| 11 | typedef struct _wpInstanceDataString
 | 
|---|
| 12 | {
 | 
|---|
| 13 | USHORT  usType;                         /* 0x0003 */
 | 
|---|
| 14 | USHORT  usKey;                          /* key used in wpSaveString() */
 | 
|---|
| 15 | USHORT  usLength;                       /* String length including terminating 0 */
 | 
|---|
| 16 | UCHAR   ucData[];                       /* The string including a terminating 0 */
 | 
|---|
| 17 | }INSTANCEDATASTRING;
 | 
|---|
| 18 | 
 | 
|---|
| 19 | 
 | 
|---|
| 20 | typedef struct _wpInstanceDataBinary
 | 
|---|
| 21 | {
 | 
|---|
| 22 | USHORT  usType;                         /* 0x0004 */
 | 
|---|
| 23 | USHORT  usKey;                          /* key used in wpSaveData() */
 | 
|---|
| 24 | USHORT  usLength;                       /* Size of data block */
 | 
|---|
| 25 | BYTE    data[];
 | 
|---|
| 26 | }INSTANCEDATABINARY;
 | 
|---|
| 27 | 
 | 
|---|
| 28 | 
 | 
|---|
| 29 | /* Instance data block for a class. For every class in the chain of classes
 | 
|---|
| 30 | there may be one of these blocks. The current class is the first, the parent class
 | 
|---|
| 31 | instance data follows, then the grand parent class instance data etc. */
 | 
|---|
| 32 | typedef struct _InstanceDataBlockHead
 | 
|---|
| 33 | {
 | 
|---|
| 34 | USHORT  usClassNameLength;                      /* Length of class name including terminating 0 */
 | 
|---|
| 35 | USHORT  usDataSize;                             /* Size of data block starting after this structure */
 | 
|---|
| 36 | UCHAR   ucClassName[];                          /* Array holding classname with terminating 0 */
 | 
|---|
| 37 | }INSTANCEDATABLOCK;
 | 
|---|
| 38 |                                                 /* Data block with variable length is immediately following. 
 | 
|---|
| 39 |                                                    This data block consist of several INSTANCEDATALONG/STRING/BINARY */
 | 
|---|
| 40 | 
 | 
|---|
| 41 | struct CLASSINFO
 | 
|---|
| 42 | {
 | 
|---|
| 43 | const USHORT    usEAType;                       /* EAT_BINARY: 0xFFFE */
 | 
|---|
| 44 | USHORT          usSize;                         /* Size of data following starting with usUnknown1 */
 | 
|---|
| 45 | USHORT          usUnknown1;
 | 
|---|
| 46 | USHORT          usUnknown2;
 | 
|---|
| 47 | USHORT          usDataSize;                     /* Data size following the class name (starting with usOffset) */
 | 
|---|
| 48 | USHORT          usUnknown3;
 | 
|---|
| 49 | UCHAR           ucClassName[];                  /* The class of this object including the terminating 0, e.g. WPDataFile */
 | 
|---|
| 50 | USHORT          usOffset;                       /* Offset to WPObject instance data block starting at usOffset */
 | 
|---|
| 51 | USHORT          usUnknown4;
 | 
|---|
| 52 | USHORT          usUnknown5;
 | 
|---|
| 53 | USHORT          usSizeInstanceData;             /* Size of all INSTANCEDATABLOCKs + sizeof(usSizeInstanceData2) + sizeof(usUnknown7)
 | 
|---|
| 54 |                                                    + sizeof(usUnknown6) + sizeof(usUnknown5) + sizeof(usSizeInstanceData) */
 | 
|---|
| 55 | USHORT          usUnknown6;
 | 
|---|
| 56 | USHORT          usSizeInstanceData2;            /* Size of all INSTANCEDATABLOCKs including 6 terminating zero bytes.
 | 
|---|
| 57 |                                                    Each INSTANCEDATABLOCK structure is followed by a data block of variable length. */
 | 
|---|
| 58 | USHORT          usUnknown7;
 | 
|---|
| 59 | INSTANCEDATABLOCK       instanceDataBlocks[];   /* One or more instance data blocks. At least the WPObject data block is present. */
 | 
|---|
| 60 |                                                 /* The WPObject instance data block is always the last one. Attention: the instance
 | 
|---|
| 61 |                                                    data blocks may have different sizes! */
 | 
|---|
| 62 | const UCHAR             ucZero[6];              /* Terminating zero bytes */
 | 
|---|
| 63 | }
 | 
|---|
| 64 | 
 | 
|---|
| 65 | ------------------------------------
 | 
|---|
| 66 | 
 | 
|---|
| 67 | 
 | 
|---|
| 68 | 1:
 | 
|---|
| 69 | 
 | 
|---|
| 70 | FE FF E9 00 10 00 00 00 D3 00 00 00 57 50 43 6F  þÿé.....Ó...WPCo
 | 
|---|
| 71 | 6D 6D 61 6E 64 46 69 6C 65 00
 | 
|---|
| 72 |                              --> 6E 00 2D 15 10 00  mmandFile.n.-...
 | 
|---|
| 73 |                                  ^^^^^
 | 
|---|
| 74 |                                  |
 | 
|---|
| 75 |                                  110 Offset to WPObject
 | 
|---|
| 76 | 
 | 
|---|
| 77 |     2D 15 CD 00 2D 15 C3 00 00 00 0E 00 4C 00 57 50  -.Í.-.Ã.....L.WP
 | 
|---|
| 78 |     50 72 6F 67 72 61 6D 46 69 6C 65 00 04 00 0A 00  ProgramFile.....
 | 
|---|
| 79 |     14 00 00 00 00 00 02 00 00 00 00 00 00 00 10 00  ................
 | 
|---|
| 80 |     00 00 01 00 00 00 04 00 0B 00 02 00 FF FF 04 00  ............ÿÿ..
 | 
|---|
| 81 |     06 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00  ..$.............
 | 
|---|
| 82 |     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
 | 
|---|
| 83 |     00 00 00 00 00 00 00 00 <--
 | 
|---|
| 84 | 
 | 
|---|
| 85 |                             09 00 52 00 57 50 4F 62  ..........R.WPOb
 | 
|---|
| 86 |                             ^^^^^
 | 
|---|
| 87 |                             |
 | 
|---|
| 88 |                             WPObject class name length
 | 
|---|
| 89 | 
 | 
|---|
| 90 |     6A 65 63 74 00 04 00 0B 00 20 00 04 00 00 00 00  ject..... ......
 | 
|---|
| 91 | 
 | 
|---|
| 92 | 
 | 
|---|
| 93 | 00 00 00 0B 00 00 00 10 00 00 00 00 00 00 00 00  ................
 | 
|---|
| 94 | 00 00 00 03 00 00 00 02 00 00 00 04 00 0C 00 18  ................
 | 
|---|
| 95 | 00 02 00 32 30 37 30 39 34 40 32 30 2C 32 31 37  ...207094@20,217
 | 
|---|
| 96 | 32 33 33 40 32 30 00 FF FF 04 00 04 00 08 00 FF  233@20.ÿÿ......ÿ
 | 
|---|
| 97 | FF FF FF FF FF FF FF 00 00 00 00 00 00           ÿÿÿÿÿÿÿ......   
 | 
|---|
| 98 | 
 | 
|---|
| 99 | ------------------
 | 
|---|
| 100 | 
 | 
|---|
| 101 | 2:
 | 
|---|
| 102 | 
 | 
|---|
| 103 | FE FF 7E 00 00 00 00 00 6B 00 00 00 57 50 44 61  þÿ~.....k...WPDa
 | 
|---|
| 104 | 74 61 46 69 6C 65 00
 | 
|---|
| 105 |                     --> 10 00 BE 14 10 00 BE 14 65  taFile...Ÿ...Ÿ.e
 | 
|---|
| 106 |                         ^^^^^
 | 
|---|
| 107 |                         |
 | 
|---|
| 108 |                         16 Offset to WPObject starting from this word
 | 
|---|
| 109 | 
 | 
|---|
| 110 | 00 BE 14 5B 00 00 00 <--
 | 
|---|
| 111 | 
 | 
|---|
| 112 |                         09 00 48 00 57 50 4F 62 6A  .Ÿ.[.....H.WPObj
 | 
|---|
| 113 |                         ^^^^^
 | 
|---|
| 114 |                         |
 | 
|---|
| 115 |                         WPObject class name length
 | 
|---|
| 116 | 
 | 
|---|
| 117 | 65 63 74 00 04 00 0B 00 20 00 00 10 00 00 00 00  ect..... .......
 | 
|---|
| 118 | 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
 | 
|---|
| 119 | 00 00 03 00 00 00 02 00 00 00 04 00 0C 00 0E 00  ................
 | 
|---|
| 120 | 02 00 32 30 39 31 32 37 40 32 30 00 FF FF 04 00  ..209127@20.ÿÿ..
 | 
|---|
| 121 | 04 00 08 00 FF FF FF FF FF FF FF FF 00 00 00 00  ....ÿÿÿÿÿÿÿÿ....
 | 
|---|
| 122 | 00 00                                            ..              
 | 
|---|
| 123 | 
 | 
|---|
| 124 | 
 | 
|---|
| 125 | ----------------------------------------
 | 
|---|
| 126 | 
 | 
|---|
| 127 | 
 | 
|---|
| 128 | E FF 8C 02 80 00 00 00 7B 02 00 00 57 50 46 6F  þÿ....{...WPFo
 | 
|---|
| 129 | 6C 64 65 72 00 20 02 CB 19 10 00 CB 19 75 02 CB  lder. .Ë...Ë.u.Ë
 | 
|---|
| 130 | 19 6B 02 00 00 0C 00 28 00 43 61 6E 64 79 46 6F  .k.....(.CandyFo
 | 
|---|
| 131 | 6C 64 65 72 00 02 00 94 11 04 00 00 00 00 00 02  lder...........
 | 
|---|
| 132 | 00 95 11 04 00 64 00 00 00 02 00 96 11 04 00 64  ....d........d
 | 
|---|
| 133 | 00 00 00 02 00 97 11 04 00 64 00 00 00 09 00 32  ........d.....2
 | 
|---|
| 134 | 00 43 57 46 6F 6C 64 65 72 00 02 00 E8 03 04 00  .CWFolder...è...
 | 
|---|
| 135 | 00 00 00 00 02 00 E9 03 04 00 00 00 00 00 02 00  ......é.........
 | 
|---|
| 136 | EA 03 04 00 00 00 00 00 02 00 EB 03 04 00 96 00  ê.........ë....
 | 
|---|
| 137 | 00 00 02 00 EC 03 04 00 03 00 00 00 08 00 1E 00  ....ì...........
 | 
|---|
| 138 | 58 46 6F 6C 64 65 72 00 02 00 0B 00 04 00 FF 00  XFolder.......ÿ.
 | 
|---|
| 139 | 00 00 02 00 0C 00 04 00 FF 00 00 00 02 00 0D 00  ........ÿ.......
 | 
|---|
| 140 | 04 00 FF 00 00 00 09 00 62 01 57 50 46 6F 6C 64  ..ÿ.....b.WPFold
 | 
|---|
| 141 | 65 72 00 04 00 6D 0B B6 00 43 4C 41 53 43 57 41  er...m.¶.CLASCWA
 | 
|---|
| 142 | 75 64 69 6F 53 68 61 64 6F 77 00 43 4C 41 53 4D  udioShadow.CLASM
 | 
|---|
| 143 | 4D 49 6D 61 67 65 00 43 4C 41 53 4D 4D 41 75 64  MImage.CLASMMAud
 | 
|---|
| 144 | 69 6F 00 43 4C 41 53 58 57 50 46 6F 6E 74 4F 62  io.CLASXWPFontOb
 | 
|---|
| 145 | 6A 65 63 74 00 43 4C 41 53 58 57 50 54 72 61 73  ject.CLASXWPTras
 | 
|---|
| 146 | 68 4F 62 6A 65 63 74 00 43 4C 41 53 43 57 4D 61  hObject.CLASCWMa
 | 
|---|
| 147 | 69 6C 46 69 6C 65 00 43 4C 41 53 57 50 46 74 70  ilFile.CLASWPFtp
 | 
|---|
| 148 | 4F 62 6A 00 43 4C 41 53 57 50 55 72 6C 00 43 4C  Obj.CLASWPUrl.CL
 | 
|---|
| 149 | 41 53 57 50 4F 62 6A 65 63 74 00 43 4C 41 53 57  ASWPObject.CLASW
 | 
|---|
| 150 | 50 46 69 6C 65 53 79 73 74 65 6D 00 43 52 49 54  PFileSystem.CRIT
 | 
|---|
| 151 | BC F8 F7 13 00 00 00 00 00 00 00 00 08 00 00 00  Œø÷.............
 | 
|---|
| 152 | 00 00 00 00 02 00 00 00 04 00 00 00 02 00 00 04  ................
 | 
|---|
| 153 | 00 73 0B 54 00 04 00 30 00 64 00 50 00 28 80 30  .s.T...0.d.P.(0
 | 
|---|
| 154 | 00 02 00 00 00 00 00 00 00 FF FF FF FF 00 00 00  .........ÿÿÿÿ...
 | 
|---|
| 155 | 40 EF FF FF FF EF FF FF FF DD FF FF FF EF FF FF  @ïÿÿÿïÿÿÿÝÿÿÿïÿÿ
 | 
|---|
| 156 | FF EF FF FF FF DD FF FF FF 00 00 00 40 00 00 00  ÿïÿÿÿÝÿÿÿ...@...
 | 
|---|
| 157 | 40 00 00 00 40 00 00 00 00 02 00 00 00 D0 FF FF  @...@........Ðÿÿ
 | 
|---|
| 158 | FF D0 FF FF FF D0 FF FF FF 04 00 74 0B 10 00 08  ÿÐÿÿÿÐÿÿÿ..t....
 | 
|---|
| 159 | 00 57 50 49 6D 61 67 65 46 69 6C 65 00 FF FF 04  .WPImageFile.ÿÿ.
 | 
|---|
| 160 | 00 71 0B 18 00 FE FF FF FF 00 00 00 00 FE FF FF  .q...þÿÿÿ....þÿÿ
 | 
|---|
| 161 | FF 00 00 00 00 00 00 00 00 00 00 00 00 04 00 7A  ÿ..............z
 | 
|---|
| 162 | 0B 08 00 00 00 00 00 00 00 00 00 02 00 7B 0B 04  .............{..
 | 
|---|
| 163 | 00 00 00 00 00 09 00 48 00 57 50 4F 62 6A 65 63  .......H.WPObjec
 | 
|---|
| 164 | 74 00 04 00 0B 00 20 00 01 00 00 00 00 00 00 00  t..... .........
 | 
|---|
| 165 | 09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00  ...............
 | 
|---|
| 166 | 03 00 00 00 02 00 00 00 04 00 0C 00 0E 00 02 00  ................
 | 
|---|
| 167 | 32 31 37 33 36 34 40 32 30 00 FF FF 04 00 04 00  217364@20.ÿÿ....
 | 
|---|
| 168 | 08 00 FF FF FF FF FF FF FF FF 00 00 00 00 00 00  ..ÿÿÿÿÿÿÿÿ......
 | 
|---|
| 169 | 
 | 
|---|