176 lines
2.5 KiB
C
176 lines
2.5 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1994-1999 Microsoft Corporation
|
||
|
|
||
|
Module Name :
|
||
|
|
||
|
utcls.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Some utility functions and classes.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Ronald Meijer (ronaldm)
|
||
|
|
||
|
Project:
|
||
|
|
||
|
Internet Services Manager
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _UTCLS_H_
|
||
|
#define _UTCLS_H_
|
||
|
|
||
|
//
|
||
|
// CDialog parameters
|
||
|
//
|
||
|
#define USE_DEFAULT_CAPTION (0)
|
||
|
|
||
|
//
|
||
|
// Determine if the given server name refers to the local machine
|
||
|
//
|
||
|
BOOL
|
||
|
COMDLL
|
||
|
IsServerLocal(
|
||
|
IN LPCTSTR lpszServer
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Get volume information system flags for the given path
|
||
|
//
|
||
|
BOOL
|
||
|
COMDLL
|
||
|
GetVolumeInformationSystemFlags(
|
||
|
IN LPCTSTR lpszPath,
|
||
|
OUT DWORD * pdwSystemFlags
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Build registry key name
|
||
|
//
|
||
|
LPCTSTR COMDLL GenerateRegistryKey(
|
||
|
OUT CString & strBuffer,
|
||
|
IN LPCTSTR lpszSubKey = NULL
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
class COMDLL CBlob
|
||
|
/*++
|
||
|
|
||
|
Class Description:
|
||
|
|
||
|
Binary large object class, which owns its pointer
|
||
|
|
||
|
Public Interface:
|
||
|
|
||
|
CBlob : Constructors
|
||
|
~CBlob : Destructor
|
||
|
|
||
|
SetValue : Assign the value
|
||
|
GetSize : Get the byte size
|
||
|
GetData : Get pointer to the byte stream
|
||
|
|
||
|
--*/
|
||
|
{
|
||
|
//
|
||
|
// Constructors/Destructor
|
||
|
//
|
||
|
public:
|
||
|
//
|
||
|
// Initialize empty blob
|
||
|
//
|
||
|
CBlob();
|
||
|
|
||
|
//
|
||
|
// Initialize with binary data
|
||
|
//
|
||
|
CBlob(
|
||
|
IN DWORD dwSize,
|
||
|
IN PBYTE pbItem,
|
||
|
IN BOOL fMakeCopy = TRUE
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Copy constructor
|
||
|
//
|
||
|
CBlob(IN const CBlob & blob);
|
||
|
|
||
|
//
|
||
|
// Destructor destroys the pointer
|
||
|
//
|
||
|
~CBlob();
|
||
|
|
||
|
//
|
||
|
// Operators
|
||
|
//
|
||
|
public:
|
||
|
CBlob & operator =(const CBlob & blob);
|
||
|
BOOL operator ==(const CBlob & blob) const;
|
||
|
BOOL operator !=(const CBlob & blob) const { return !operator ==(blob); }
|
||
|
|
||
|
//
|
||
|
// Access
|
||
|
//
|
||
|
public:
|
||
|
//
|
||
|
// Clean up internal data
|
||
|
//
|
||
|
void CleanUp();
|
||
|
|
||
|
//
|
||
|
// Set the current value of the blob
|
||
|
//
|
||
|
void SetValue(
|
||
|
IN DWORD dwSize,
|
||
|
IN PBYTE pbItem,
|
||
|
IN BOOL fMakeCopy = TRUE
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// TRUE if the blob is currently empty
|
||
|
//
|
||
|
BOOL IsEmpty() const { return m_dwSize == 0L; }
|
||
|
|
||
|
//
|
||
|
// Return the size of the blob in bytes
|
||
|
//
|
||
|
DWORD GetSize() const { return m_dwSize; }
|
||
|
|
||
|
//
|
||
|
// Get a pointer to the byte stream
|
||
|
//
|
||
|
PBYTE GetData();
|
||
|
|
||
|
private:
|
||
|
DWORD m_dwSize;
|
||
|
PBYTE m_pbItem;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
//
|
||
|
// Inline Expansion
|
||
|
//
|
||
|
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
|
||
|
inline CBlob::~CBlob()
|
||
|
{
|
||
|
CleanUp();
|
||
|
}
|
||
|
|
||
|
inline PBYTE CBlob::GetData()
|
||
|
{
|
||
|
return m_pbItem;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#endif // _UTCLS_H_
|