blob: 019ee26e6f418455197b43e84c8a3c0fc444f6b9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
/*! @file compound-file-directory.h */
#ifndef COMPOUND_FILE_DIRECTORY_H
#define COMPOUND_FILE_DIRECTORY_H
#include "emb-time.h"
#include "emb-file.h"
#include "api-start.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _bcf_directory_entry
{
char directoryEntryName[32];
unsigned short directoryEntryNameLength;
unsigned char objectType;
unsigned char colorFlag;
unsigned int leftSiblingId;
unsigned int rightSiblingId;
unsigned int childId;
unsigned char CLSID[16];
unsigned int stateBits;
EmbTime creationTime;
EmbTime modifiedTime;
unsigned int startingSectorLocation;
unsigned long streamSize; /* should be long long but in our case we shouldn't need it, and hard to support on c89 cross platform */
unsigned int streamSizeHigh; /* store the high int of streamsize */
struct _bcf_directory_entry* next;
} bcf_directory_entry;
typedef struct _bcf_directory
{
bcf_directory_entry* dirEntries;
unsigned int maxNumberOfDirectoryEntries;
/* TODO: possibly add a directory tree in the future */
} bcf_directory;
extern EMB_PRIVATE bcf_directory_entry* EMB_CALL CompoundFileDirectoryEntry(EmbFile* file);
extern EMB_PRIVATE bcf_directory* EMB_CALL CompoundFileDirectory(const unsigned int maxNumberOfDirectoryEntries);
extern EMB_PRIVATE void EMB_CALL readNextSector(EmbFile* file, bcf_directory* dir);
extern EMB_PRIVATE void EMB_CALL bcf_directory_free(bcf_directory* dir);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#include "api-stop.h"
#endif /* COMPOUND_FILE_DIRECTORY_H */
/* kate: bom off; indent-mode cstyle; indent-width 4; replace-trailing-space-save on; */
|