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.
175 lines
2.7 KiB
175 lines
2.7 KiB
/*++
|
|
|
|
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_
|