windows-nt/Source/XPSP1/NT/net/rras/cm/common/inc/cini.h
2020-09-26 16:20:57 +08:00

145 lines
5 KiB
C++

//+----------------------------------------------------------------------------
//
// File: cini.h
//
// Module: CMUTIL.DLL
//
// Synopsis: Definition of the CINIA and CINIW classes
//
// Copyright (c) 1997-1999 Microsoft Corporation
//
// Author: quintinb Created Header 08/19/99
//
//+----------------------------------------------------------------------------
#ifndef _CM_INI_INC
#define _CM_INI_INC
#ifdef UNICODE
#define CIni CIniW
#else
#define CIni CIniA
#endif
//
// Ansi Version
//
class CMUTILAPI_CLASS CIniA {
public:
CIniA(HINSTANCE hInst=NULL, LPCSTR pszFile=NULL, LPCSTR pszRegPath = NULL, LPCSTR pszSection=NULL, LPCSTR pszEntry=NULL);
~CIniA();
void Clear();
void SetHInst(HINSTANCE hInst);
void SetFile(LPCSTR pszFile);
void SetEntry(LPCSTR pszEntry);
void SetEntryFromIdx(DWORD dwEntry);
void SetPrimaryFile(LPCSTR pszFile);
void SetSection(LPCSTR pszSection);
void SetRegPath(LPCSTR pszRegPath);
void SetPrimaryRegPath(LPCSTR pszPrimaryRegPath);
void SetICSDataPath(LPCSTR pszICSPath);
void SetReadICSData(BOOL fValue);
void SetWriteICSData(BOOL fValue);
HINSTANCE GetHInst() const;
LPCSTR GetFile() const;
LPCSTR GetPrimaryFile() const;
LPCSTR GetRegPath() const;
LPCSTR GetPrimaryRegPath() const;
LPSTR GPPS(LPCSTR pszSection, LPCSTR pszEntry, LPCSTR pszDefault=NULL) const;
DWORD GPPI(LPCSTR pszSection, LPCSTR pszEntry, DWORD dwDefault=0) const;
BOOL GPPB(LPCSTR pszSection, LPCSTR pszEntry, BOOL bDefault=0) const;
void WPPS(LPCSTR pszSection, LPCSTR pszEntry, LPCSTR pszBuffer);
void WPPI(LPCSTR pszSection, LPCSTR pszEntry, DWORD dwBuffer);
void WPPB(LPCSTR pszSection, LPCSTR pszEntry, BOOL bBuffer);
LPSTR LoadSection(LPCSTR pszSection) const;
LPCSTR GetSection() const;
protected:
LPSTR LoadEntry(LPCSTR pszEntry) const;
static void CIni_SetFile(LPSTR *ppszDest, LPCSTR pszSrc);
BOOL CIniA_DeleteEntryFromReg(HKEY hKey, LPCSTR pszRegPathTmp, LPCSTR pszEntry) const;
LPBYTE CIniA_GetEntryFromReg(HKEY hKey, LPCSTR pszRegPathTmp, LPCSTR pszEntry, DWORD dwType, DWORD dwSize) const;
BOOL CIniA_WriteEntryToReg(HKEY hKey, LPCSTR pszRegPathTmp, LPCSTR pszEntry, CONST BYTE *lpData, DWORD dwType, DWORD dwSize) const;
private:
HINSTANCE m_hInst;
LPSTR m_pszFile;
LPSTR m_pszSection;
LPSTR m_pszEntry;
LPSTR m_pszPrimaryFile;
LPTSTR m_pszRegPath;
LPTSTR m_pszPrimaryRegPath;
LPTSTR m_pszICSDataPath;
BOOL m_fReadICSData;
BOOL m_fWriteICSData;
};
//
// UNICODE Version
//
class CMUTILAPI_CLASS CIniW {
public:
CIniW(HINSTANCE hInst=NULL, LPCWSTR pszFile=NULL, LPCWSTR pszRegPath = NULL, LPCWSTR pszSection=NULL, LPCWSTR pszEntry=NULL);
~CIniW();
void Clear();
void SetHInst(HINSTANCE hInst);
void SetFile(LPCWSTR pszFile);
void SetEntry(LPCWSTR pszEntry);
void SetEntryFromIdx(DWORD dwEntry);
void SetPrimaryFile(LPCWSTR pszFile);
void SetSection(LPCWSTR pszSection);
void SetRegPath(LPCWSTR pszRegPath);
void SetPrimaryRegPath(LPCWSTR pszRegPath);
void SetICSDataPath(LPCWSTR pszICSPath);
void SetReadICSData(BOOL fValue);
void SetWriteICSData(BOOL fValue);
HINSTANCE GetHInst() const;
LPCWSTR GetFile() const;
LPCWSTR GetPrimaryFile() const;
LPCWSTR GetRegPath() const;
LPCWSTR GetPrimaryRegPath() const;
LPWSTR GPPS(LPCWSTR pszSection, LPCWSTR pszEntry, LPCWSTR pszDefault=NULL) const;
DWORD GPPI(LPCWSTR pszSection, LPCWSTR pszEntry, DWORD dwDefault=0) const;
BOOL GPPB(LPCWSTR pszSection, LPCWSTR pszEntry, BOOL bDefault=0) const;
void WPPS(LPCWSTR pszSection, LPCWSTR pszEntry, LPCWSTR pszBuffer);
void WPPI(LPCWSTR pszSection, LPCWSTR pszEntry, DWORD dwBuffer);
void WPPB(LPCWSTR pszSection, LPCWSTR pszEntry, BOOL bBuffer);
LPWSTR LoadSection(UINT nSection) const;
LPWSTR LoadSection(LPCWSTR pszSection) const;
LPCWSTR GetSection() const;
protected:
LPWSTR LoadEntry(LPCWSTR pszEntry) const;
static void CIni_SetFile(LPWSTR *ppszDest, LPCWSTR pszSrc);
BOOL CIniW_DeleteEntryFromReg(HKEY hKey, LPCWSTR pszRegPathTmp, LPCWSTR pszEntry) const;
LPBYTE CIniW_GetEntryFromReg(HKEY hKey, LPCWSTR pszRegPathTmp, LPCWSTR pszEntry, DWORD dwType, DWORD dwSize) const;
BOOL CIniW_WriteEntryToReg(HKEY hKey, LPCWSTR pszRegPathTmp, LPCWSTR pszEntry, CONST BYTE *lpData, DWORD dwType, DWORD dwSize) const;
private:
HINSTANCE m_hInst;
LPWSTR m_pszFile;
LPWSTR m_pszSection;
LPWSTR m_pszEntry;
LPWSTR m_pszPrimaryFile;
LPWSTR m_pszRegPath;
LPWSTR m_pszPrimaryRegPath;
LPWSTR m_pszICSDataPath;
BOOL m_fReadICSData;
BOOL m_fWriteICSData;
};
#endif