You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.1 KiB
92 lines
2.1 KiB
/**********************************************************************/
|
|
/** Microsoft Windows NT **/
|
|
/** Copyright(c) Microsoft Corp., 1994 **/
|
|
/**********************************************************************/
|
|
|
|
/*
|
|
cbin.hxx
|
|
|
|
This module contains a light weight binary buffer class
|
|
|
|
|
|
FILE HISTORY:
|
|
17-May-1996 MichTh Created from string.hxx
|
|
*/
|
|
|
|
|
|
#ifndef _CBIN_HXX_
|
|
#define _CBIN_HXX_
|
|
|
|
class CBIN;
|
|
|
|
class CBIN : public BUFFER
|
|
{
|
|
public:
|
|
|
|
dllexp CBIN()
|
|
{
|
|
}
|
|
|
|
dllexp CBIN( DWORD cbLen, const PVOID pbInit );
|
|
dllexp CBIN( const CBIN & cbin );
|
|
|
|
dllexp BOOL Append( DWORD cbLen, const PVOID pbInit );
|
|
dllexp BOOL Append( const CBIN & cbin );
|
|
|
|
dllexp BOOL Copy( DWORD cbLen, const PVOID pbInit );
|
|
dllexp BOOL Copy( const CBIN & cbin );
|
|
|
|
dllexp BOOL Resize( UINT cbNewReqestedSize );
|
|
|
|
//
|
|
// Returns the number of bytes in the buffer
|
|
//
|
|
|
|
dllexp UINT QueryCB( VOID ) const
|
|
{ return _cbLen; }
|
|
|
|
dllexp VOID SetCB( UINT cbLen )
|
|
{ _cbLen = cbLen; }
|
|
|
|
dllexp PVOID QueryBuf( VOID ) const
|
|
{ return QueryPtr(); }
|
|
|
|
dllexp BOOL IsValid( VOID ) const
|
|
{ return _fValid; }
|
|
|
|
//
|
|
// Checks and returns TRUE if this string has no valid data else FALSE
|
|
//
|
|
dllexp BOOL IsEmpty( VOID) const
|
|
{ return ( QueryCB() == 0); }
|
|
|
|
//
|
|
// Makes a clone of the current buffer in the CBIN pointer passed in.
|
|
//
|
|
dllexp BOOL
|
|
Clone( OUT CBIN * pstrClone) const
|
|
{
|
|
if ( pstrClone == NULL) {
|
|
SetLastError( ERROR_INVALID_PARAMETER);
|
|
return ( FALSE);
|
|
} else {
|
|
|
|
return ( pstrClone->Copy( *this));
|
|
}
|
|
} // CBIN::Clone()
|
|
|
|
private:
|
|
|
|
//
|
|
// Returned when our buffer is empty
|
|
//
|
|
DWORD _cbLen;
|
|
BOOL _fValid;
|
|
|
|
VOID AuxInit( DWORD cbLen, PVOID pbInit);
|
|
BOOL AuxAppend( PVOID pbInit, UINT cbBuf, BOOL fAddSlop = TRUE );
|
|
|
|
};
|
|
|
|
#endif // !_CBIN_HXX_
|
|
|