Windows2003-3790/termsrv/newclient/clshell/setstore.h
2020-09-30 16:53:55 +02:00

76 lines
2.4 KiB
C++

//
// setstore.h
//
// Interface definition for an abstract settings store
//
// This abstraction is meant to allow different store types
// to be plugged in to update the persistence model
//
// Copyright(C) Microsoft Corporation 2000
// Author: Nadim Abdo (nadima)
//
#ifndef _SETSTORE_H_
#define _SETSTORE_H_
class ISettingsStore : public IUnknown
{
public:
typedef enum {
storeOpenReadOnly = 0,
storeOpenWriteOnly = 1,
storeOpenRW = 2,
} storeOpenState;
//
// Open a store..Moniker is store specific info that points to the store
//
virtual BOOL OpenStore(LPCTSTR szStoreMoniker, BOOL bReadOnly=FALSE) = 0;
//
// Commit the current in-memory contents of the store
//
virtual BOOL CommitStore() = 0;
//
// Close the store
//
virtual BOOL CloseStore() = 0;
//
// State access functions
//
virtual BOOL IsOpenForRead() = 0;
virtual BOOL IsOpenForWrite() = 0;
virtual BOOL IsDirty() = 0;
virtual BOOL SetDirtyFlag(BOOL bIsDirty) = 0;
//
// Typed read and write functions, writes are not commited until a ComitStore()
// Values equal to the default are not persisted out
// On read error (e.g if Name key is not found, the specified default value is returned)
//
virtual BOOL ReadString(LPCTSTR szName, LPTSTR szDefault,
LPTSTR szOutBuf, UINT strLen) = 0;
virtual BOOL WriteString(LPCTSTR szName, LPTSTR szDefault,
LPTSTR szValue, BOOL fIgnoreDefault=FALSE) = 0;
virtual BOOL ReadBinary(LPCTSTR szName, PBYTE pOutuf, UINT cbBufLen) = 0;
virtual BOOL WriteBinary(LPCTSTR szName,PBYTE pBuf, UINT cbBufLen) = 0;
virtual BOOL ReadInt(LPCTSTR szName, UINT defaultVal, PUINT pval) = 0;
virtual BOOL WriteInt(LPCTSTR szName, UINT defaultVal, UINT val,
BOOL fIgnoreDefault=FALSE) = 0;
virtual BOOL ReadBool(LPCTSTR szName, UINT defaultVal, PBOOL pbVal) = 0;
virtual BOOL WriteBool(LPCTSTR szName, UINT defaultVal, BOOL bVal,
BOOL fIgnoreDefault=FALSE) = 0;
virtual BOOL DeleteValueIfPresent(LPCTSTR szName) = 0;
virtual BOOL IsValuePresent(LPTSTR szName) = 0;
virtual DWORD GetDataLength(LPCTSTR szName) = 0;
};
#endif //_SETSTORE_H_