⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registry.hpp

📁 cab文件压缩、解压程序源代码
💻 HPP
字号:
//---------------------------------------------------------------------------
// Copyright (C) 1998, Interscope Ltd. All rights reserved.
// Reproduction or distribution of this program, or any portion of it, 
// is permitted only if this header is kept as it is.
// For more information, contact:
//
// Interscope Ltd., 5 Culturii St., 5th Floor, 4800 Baia Mare, RO
//    Phone/Fax: +40-62-215023
//    E-mail: office@interscope.ro
//
//   $Author: Levente Farkas $
//     $Date: 5/13/98 12:03a $
//  $Modtime: 4/27/98 6:50a $
// $Revision: 30 $
//  $Archive: /Interscope/Thebe/InstallMaster/Registry.Hpp $
// $Workfile: Registry.Hpp $
//-----------------------------------------------------------------------

#ifndef __Registry_Hpp__
#define __Registry_Hpp__

// Define the following symbol if compiling using precompiled headers through 
// header file StdAfx.H
// #define __STDAFX__
//
// Define the following symbol if used in a MFC project
// #define __MFC__

#ifdef __MFC__
#undef __STDAFX__
#define __STDAFX__
#endif

#if !defined(__WIN32__) && !defined(_WIN32)
#ifndef STRICT
#define STRICT
#endif
#endif // __WIN32__

#include <Windows.H>
#include <WinReg.H>
#include <RegStr.H>
#include <WinError.H>
#include <TChar.H>


//--- Registry key handler ------------------------------------------

class CRegistry
{
private:
    HKEY  m_hKey;
    BOOL  m_bStatus;
    LONG  m_nErrorCode;

#ifdef _DEBUG 
    HKEY  m_hKeyParent;
    TCHAR m_hKeyPath[MAX_PATH];
#endif

public:
    // Construction
    CRegistry();
    CRegistry(HKEY    hKey,         // A previously open key or a section
              LPCTSTR lpcszSubKey,  // Path relative 2 hKey
              REGSAM  dwDesiredSecurityAccessMask        =KEY_ALL_ACCESS,          // Desired open/create access
              BOOL    bAllowCreate                       =FALSE,                   // Create new, if does not exist
              DWORD   dwOptions                          =REG_OPTION_NON_VOLATILE, // New key options
              LPSECURITY_ATTRIBUTES lpSecurityAttributes =NULL,                    // New key security
              LPDWORD lpdwDisposition                    =NULL);                   // Cretion disposition (created or opened)
    
    BOOL Open(HKEY    hKey,         // A previously open key or a section
              LPCTSTR lpcszSubKey,  // Path relative 2 hKey
              REGSAM  dwDesiredSecurityAccessMask        =KEY_ALL_ACCESS,          // Desired open/create access
              BOOL    bAllowCreate                       =FALSE,                   // Create new, if does not exist
              DWORD   dwOptions                          =REG_OPTION_NON_VOLATILE, // New key options
              LPSECURITY_ATTRIBUTES lpSecurityAttributes =NULL,                    // New key security
              LPDWORD lpdwDisposition                    =NULL);                   // Cretion disposition (created or opened)

    // Value functions
    DWORD GetValueSize(LPCTSTR name);
    BOOL  GetValue(LPCTSTR name,       BYTE *data, DWORD &data_size, DWORD *type=NULL);
    BOOL  SetValue(LPCTSTR name, const BYTE *data, DWORD  data_size, DWORD  type);
    BOOL  GetDefaultValue(LPTSTR  def_value_buff, DWORD &buffsize);
    BOOL  SetDefaultValue(LPCTSTR def_value);
    BOOL  DeleteValue(LPCTSTR name);

    // Enumerators
    BOOL  EnumerateSubKeys(DWORD index, LPTSTR name, DWORD &name_size);
    BOOL  EnumerateValues (DWORD index, LPTSTR name, DWORD &name_size, DWORD *type=NULL, BYTE *data=NULL, DWORD *data_size=NULL);

    // Conversions
    operator HKEY() const { return m_bStatus ? m_hKey : NULL; }

    // Remote registry functions
    BOOL  Connect_HKEY_LOCAL_MACHINE(LPCTSTR machine);
    BOOL  Connect_HKEY_USERS(LPCTSTR machine);

    // Miscellaneous
    LONG  GetLastError() const { return m_nErrorCode; } // Retruns ERROR_SUCCESS when inited OK and everything is fine
    DWORD CountSubKeys();
    DWORD CountValues();
    BOOL  GetInfo(LPTSTR  lpszKeyClass =NULL, LPDWORD lpcKeyClassSize =NULL, // Must supply non-NULL values 4 at least
                  LPDWORD lpcSubKeyCount         =NULL,                      // parameters from one line
                  LPDWORD lpcbLongestSubKeyName  =NULL,
                  LPDWORD lpcbLargestSubKeyClass =NULL,
                  LPDWORD lpcValueCount          =NULL,
                  LPDWORD lpcbLongestValueName   =NULL,
                  LPDWORD lpcbLargestValueData   =NULL,
                  LPDWORD lpcbSecurityDescriptorSize =NULL,
                  PFILETIME lpLastWriteTime =NULL); // NT only

    // Cleanup
    BOOL Delete(BOOL bDeleteSubkeys =TRUE);
    BOOL Flush();
    void Close();
    virtual ~CRegistry();
};


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -