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.
 
 
 
 
 
 

105 lines
2.6 KiB

//-----------------------------------------------------------------------------
//
// File: locvar.h
// Copyright (C) 1994-1997 Microsoft Corporation
// All rights reserved.
//
// Declaration of CLocVariant, our variant class.
//
//-----------------------------------------------------------------------------
#ifndef ESPUTIL_LOCVAR_H
#define ESPUTIL_LOCVAR_H
enum LocVariantType
{
lvtNone,
lvtInteger,
lvtString,
lvtIntPlusString,
lvtBOOL,
lvtBlob,
lvtStringList,
lvtFileName, // stores file name and editing extension string
};
typedef CLocThingList<CPascalString> CPasStringList;
UINT StoreToBlob(const CPasStringList &, CLocCOWBlob &, UINT uiOffset);
UINT LoadFromBlob(CPasStringList &, const CLocCOWBlob &, UINT uiOffset);
#pragma warning(disable : 4275 4251)
class LTAPIENTRY CLocVariant : public CObject
{
public:
NOTHROW CLocVariant();
void AssertValid(void) const;
NOTHROW LocVariantType GetVariantType(void) const;
NOTHROW DWORD GetDword(void) const;
NOTHROW BOOL GetBOOL(void) const;
NOTHROW const CPascalString & GetString(void) const;
NOTHROW const CLocId & GetIntPlusString(void) const;
NOTHROW const CLocCOWBlob & GetBlob(void) const;
NOTHROW const CPasStringList & GetStringList(void) const;
NOTHROW const CLString & GetFileExtensions(void) const;
NOTHROW int operator==(const CLocVariant &) const;
NOTHROW int operator!=(const CLocVariant &) const;
NOTHROW void SetDword(const DWORD);
NOTHROW void SetBOOL(const BOOL);
NOTHROW void SetString(const CPascalString &);
NOTHROW void SetIntPlusString(const CLocId &);
NOTHROW void SetBlob(const CLocCOWBlob &);
NOTHROW void SetStringList(const CPasStringList &);
NOTHROW void SetFileName(const CPascalString &, const CLString &);
NOTHROW const CLocVariant & operator=(const CLocVariant &);
BOOL ImportVariant(const VARIANT& var);
BOOL ExportVariant(VARIANT& var) const;
void Serialize(CArchive &);
void Load(CArchive &);
void Store(CArchive &) const;
protected:
NOTHROW BOOL IsEqualTo(const CLocVariant &) const;
private:
CLocVariant(const CLocVariant &);
LocVariantType m_VarType;
//
// Class objects can't be in a union.
//
union
{
DWORD m_dwInteger;
BOOL m_fBOOL;
};
CPascalString m_psString;
CLocId m_IntPlusString;
CLocCOWBlob m_Blob;
CPasStringList m_StringList;
CLString m_strFileExtensions;
};
#pragma warning(default : 4275 4251)
void Store(CArchive &, const CPasStringList &);
void Load(CArchive &, CPasStringList &);
#if !defined(_DEBUG) || defined(IMPLEMENT)
#include "locvar.inl"
#endif
#endif