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