/* header auto-generated by pidl */

#ifndef _PIDL_HEADER_cab
#define _PIDL_HEADER_cab

#include <stdint.h>


#include "librpc/gen_ndr/misc.h"
#ifndef _HEADER_cab
#define _HEADER_cab

#define ifoldCONTINUED_FROM_PREV	( 0xFFFD )
#define ifoldCONTINUED_TO_NEXT	( 0xFFFE )
#define ifoldCONTINUED_PREV_AND_NEXT	( 0xFFFF )
/* bitmap cf_flags */
#define cfhdrPREV_CABINET ( 0x0001 )
#define cfhdrNEXT_CABINET ( 0x0002 )
#define cfhdrRESERVE_PRESENT ( 0x0004 )

struct CFHEADER {
	const char *signature;/* [charset(DOS),value("MSCF")] */
	uint32_t reserved1;/* [value(0)] */
	uint32_t cbCabinet;
	uint32_t reserved2;/* [value(0)] */
	uint32_t coffFiles;/* [value(cFolders*8+36)] */
	uint32_t reserved3;/* [value(0)] */
	uint8_t versionMinor;/* [value(3)] */
	uint8_t versionMajor;/* [value] */
	uint16_t cFolders;
	uint16_t cFiles;
	uint16_t flags;
	uint16_t setID;
	uint16_t iCabinet;
}/* [flag(LIBNDR_PRINT_ARRAY_HEX|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_FLAG_NOALIGN),public] */;

enum cf_compress_type
#ifndef USE_UINT_ENUMS
 {
	CF_COMPRESS_NONE=(int)(0),
	CF_COMPRESS_MSZIP=(int)(1),
	CF_COMPRESS_LZX=(int)(4611)
}
#else
 { __do_not_use_enum_cf_compress_type=INT_MAX}
#define CF_COMPRESS_NONE ( 0 )
#define CF_COMPRESS_MSZIP ( 1 )
#define CF_COMPRESS_LZX ( 4611 )
#endif
;

struct CFFOLDER {
	uint32_t coffCabStart;
	uint16_t cCFData;
	enum cf_compress_type typeCompress;
}/* [flag(LIBNDR_PRINT_ARRAY_HEX|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_FLAG_NOALIGN),public] */;

/* bitmap cf_attributes */
#define _A_RDONLY ( 0x01 )
#define _A_HIDDEN ( 0x02 )
#define _A_SYSTEM ( 0x04 )
#define _A_ARCH ( 0x20 )
#define _A_EXEC ( 0x40 )
#define _A_NAME_IS_UTF ( 0x80 )

struct cf_date {
	uint16_t date;
}/* [flag(LIBNDR_FLAG_NOALIGN),noprint] */;

struct cf_time {
	uint16_t time;
}/* [flag(LIBNDR_FLAG_NOALIGN),noprint] */;

struct CFFILE {
	uint32_t cbFile;
	uint32_t uoffFolderStart;
	uint16_t iFolder;
	struct cf_date date;
	struct cf_time time;
	uint16_t attribs;
	const char * szName;/* [flag(r->attribs&_A_NAME_IS_UTF?LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM:LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
}/* [flag(LIBNDR_PRINT_ARRAY_HEX|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_FLAG_NOALIGN),gensize,public] */;

struct CFDATA {
	uint32_t csum;
	uint16_t cbData;
	uint16_t cbUncomp;
	DATA_BLOB ab;
}/* [flag(LIBNDR_PRINT_ARRAY_HEX|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_FLAG_NOALIGN),nopull,nopush] */;

struct cab_file {
	struct CFHEADER cfheader;
	struct CFFOLDER *cffolders;
	struct CFFILE *cffiles;
	uint32_t cfdata_count;/* [noprint,value(ndr_count_cfdata(r))] */
	struct CFDATA *cfdata;
}/* [flag(LIBNDR_PRINT_ARRAY_HEX|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_FLAG_NOALIGN),nopull,nopush,public] */;

#endif /* _HEADER_cab */
#endif /* _PIDL_HEADER_cab */
