#include <oedbx/dbxCommon.h>

const int4 FileHeaderSize = 0x24bc;
const int4 FileHeaderEntries = FileHeaderSize>>2;
const int4 fhFileInfoLength = 0x07,
fhFirstFolderListNode = 0x1b, fhLastFolderListNode = 0x1c,
fhMessageConditionsPtr = 0x22, fhFolderConditionsPtr = 0x23,
fhEntries = 0x31, fhTreeRootNodePtr = 0x39 ;
class AS_EXPORT DbxFileHeader
{ public :
DbxFileHeader(InStream ins);
int4 GetValue(int4 index) const{return Buffer[index]; }
bool isFolders() const { return (Buffer && (Buffer[1]==0x6f74fdc6)); }
void ShowResults(OutStream outs) const;
private :
// this function is called from the constructor
void readFileHeader(InStream ins);
// stores the data
int4 Buffer[FileHeaderEntries];


DbxFileHeader(InStream ins)

Reads in the file header. If an error occurs, an exception is thrown.

int4 GetValue(int4 index)

Returns the int4 value stored at position index stored in the file header. Some const values are predefined to simplify the access ( value = fileHeader.GetValue(fhEntries) ).

bool isFolders()

This function checks if the first four bytes of the file header are equal to a folders.dbx file.

void ShowResults(OutStream outs)

I used this function to log my results while I tried to decode the dbx file format.

Home of OE dbx file format