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.
74 lines
2.5 KiB
74 lines
2.5 KiB
/////////////////////////////////////////////////////////////////////////////
|
|
// Copyright (C) 1993-1998 Microsoft Corporation. All Rights Reserved.
|
|
//
|
|
// MODULE: mru.h
|
|
//
|
|
// PURPOSE:
|
|
//
|
|
|
|
#pragma once
|
|
|
|
class CMRUList;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Types
|
|
|
|
// Flags
|
|
#define MRU_CACHEWRITE 0x0002
|
|
#define MRU_ANSI 0x0004
|
|
#define MRU_ORDERDIRTY 0x0008
|
|
#define MRU_LAZY 0x8000
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// class MRU List definition
|
|
//
|
|
class CMRUList
|
|
{
|
|
public:
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Construction and Initialization
|
|
//
|
|
CMRUList();
|
|
~CMRUList();
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// public MRU List functions
|
|
//
|
|
BOOL CreateList(UINT uMaxEntries, UINT fFlags, LPCSTR pszSubKey);
|
|
void FreeList(void);
|
|
int AddString(LPCSTR psz);
|
|
int RemoveString(LPCSTR psz);
|
|
int EnumList(int nItem, LPTSTR psz, UINT uLen);
|
|
int AddData(const void *pData, UINT cbData);
|
|
int FindData(const void *pData, UINT cbData, LPINT piSlot);
|
|
BOOL CreateListLazy(UINT uMaxEntries, UINT fFlags, LPCSTR pszSubKey, const void *pData, UINT cbData, LPINT piSlot);
|
|
|
|
private:
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Utility Functions
|
|
//
|
|
void _GetIndexStrFromIndex(DWORD dwIndex, LPTSTR pszIndexStr, DWORD cchIndexStrSize)
|
|
{
|
|
wnsprintf(pszIndexStr, cchIndexStrSize, TEXT("%d"), dwIndex);
|
|
}
|
|
|
|
int CDECL _IMemCmp(const void *pBuf1, const void *pBuf2, size_t cb);
|
|
BOOL _IsSameData(BYTE FAR *pVal, const void FAR *pData, UINT cbData);
|
|
LPDWORD _GetMRUValue(HKEY hkeySubKey, LPCTSTR pszRegValue);
|
|
HRESULT _SetMRUValue(HKEY hkeySubKey, LPCTSTR pszRegValue, LPDWORD pData);
|
|
BOOL _SetPtr(LPSTR * ppszCurrent, LPCSTR pszNew);
|
|
|
|
|
|
private:
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Class data
|
|
//
|
|
UINT m_uMax; // Maxiumum number of entries in the MRU list
|
|
UINT m_fFlags; // Flags
|
|
HKEY m_hKey; // Reg key where we write
|
|
LPSTR m_pszSubKey; // Sub key where the MRU data is stashed
|
|
LPTSTR *m_rgpszMRU; // List of entries
|
|
LPTSTR m_pszOrder; // Order array
|
|
|
|
};
|
|
|