98 lines
3.4 KiB
C
98 lines
3.4 KiB
C
////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// stmio.h
|
|
//
|
|
// Property Set Stream I/O and other common Property Set routines.
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __stmio_h__
|
|
#define __stmio_h__
|
|
|
|
#include "offcapi.h"
|
|
#include "proptype.h"
|
|
|
|
// Read a VT_LPSTR from the stream.
|
|
BOOL PASCAL FLpstmReadVT_LPTSTR (LPSTREAM lpStm,
|
|
LPTSTR FAR *lplpstz,
|
|
BOOL (*lpfnFCPConvert)(LPTSTR, DWORD, DWORD, BOOL),
|
|
DWORD dwType);
|
|
|
|
// Write a VT_LPSTR to the stream.
|
|
BOOL PASCAL FLpstmWriteVT_LPTSTR (LPSTREAM lpStm,
|
|
LPTSTR lpstz,
|
|
BOOL fAlign,
|
|
DWORD dwType);
|
|
|
|
// Write a VT_FILETIME to the stream
|
|
BOOL PASCAL FLpstmWriteVT_FILETIME (LPSTREAM lpStm, LPFILETIME lpFt);
|
|
|
|
// Write a VT_I4 to the stream
|
|
BOOL PASCAL FLpstmWriteVT_I4 (LPSTREAM lpStm, DWORD dwI4);
|
|
|
|
// Read a VT_CF from the stream.
|
|
BOOL PASCAL FLpstmReadVT_CF (LPSTREAM lpStm, LPSINAIL lpSINail);
|
|
|
|
// Write a VT_CF from to the stream.
|
|
BOOL PASCAL FLpstmWriteVT_CF (LPSTREAM lpStm, LPSINAIL lpSINail);
|
|
|
|
// Read a VT_I2 from the stream
|
|
BOOL PASCAL FLpstmReadVT_I2 (LPSTREAM lpStm, WORD *pw);
|
|
|
|
// Write a VT_I2 to the stream
|
|
BOOL PASCAL FLpstmWriteVT_I2 (LPSTREAM lpStm, WORD w);
|
|
|
|
// Read a VT_BOOL from the stream
|
|
BOOL PASCAL FLpstmReadVT_BOOL (LPSTREAM lpStm, WORD *fBool);
|
|
|
|
// Write a VT_BOOL to the stream
|
|
BOOL PASCAL FLpstmWriteVT_BOOL (LPSTREAM lpStm, WORD fBool);
|
|
|
|
// Read a VT_R8 or VT_DATE from the stream
|
|
BOOL PASCAL FLpstmReadVT_R8_DATE (LPSTREAM lpStm, NUM *dbl);
|
|
|
|
// Write a VT_R8 or VT_DATE to the stream
|
|
BOOL PASCAL FLpstmWriteVT_R8_DATE (LPSTREAM lpStm, NUM *dbl, BOOL fDate);
|
|
|
|
// Read a VT_BLOB from the stream.
|
|
BOOL PASCAL FLpstmReadVT_BLOB (LPSTREAM lpStm,
|
|
DWORD *pcb,
|
|
BYTE FAR * FAR *ppbData);
|
|
|
|
// Write a VT_BLOB to the stream
|
|
BOOL PASCAL FLpstmWriteVT_BLOB (LPSTREAM lpStm,
|
|
DWORD cb,
|
|
BYTE *bData);
|
|
|
|
// Read a VT_CLSID from the stream
|
|
BOOL PASCAL FLpstmReadVT_CLSID (LPSTREAM lpStm, CLSID *pClsId);
|
|
|
|
// Write a VT_CLSID to the stream
|
|
BOOL PASCAL FLpstmWriteVT_CLSID (LPSTREAM lpStm, CLSID *pClsId);
|
|
|
|
// Read in unknown data into the array
|
|
BOOL PASCAL FLpstmReadUnknown (LPSTREAM lpStm,
|
|
DWORD dwType,
|
|
DWORD dwId,
|
|
DWORD *pirglpUnk,
|
|
LPPROPIDTYPELP rglpUnk);
|
|
|
|
// Write out the unknown data in the array.
|
|
BOOL PASCAL FLpstmWriteUnknowns (LPSTREAM lpStm,
|
|
DWORD dwcUnk,
|
|
LPPROPIDTYPELP rglpUnk);
|
|
|
|
// Destroy any unknown data
|
|
BOOL PASCAL FDestoryUnknowns (DWORD dwcUnk, LPPROPIDTYPELP rglpUnk);
|
|
|
|
// Write data to the buffer, flushing as needed
|
|
BOOL PASCAL FLpstmWrite (LPSTREAM lpStm,
|
|
LPVOID lpv,
|
|
DWORD cb);
|
|
|
|
void VAllocWriteBuf(void);
|
|
void VFreeWriteBuf(void);
|
|
BOOL FFlushWriteBuf(LPSTREAM lpStm);
|
|
void VSetRealStmSize(LPSTREAM lpStm);
|
|
#endif // __stmio_h__
|