Leaked source code of windows server 2003
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

/*++
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_