text: //+--------------------------------------------------------------------------
  // File:        config.h
  // Contents:    CConfigStorage implements read/write to CA configuration data 
  //              currently stored under HKLM\System\CCS\Services\Certsvc\
  //              Configuration
  //---------------------------------------------------------------------------
  
  namespace CertSrv
  {
  class CConfigStorage
  {
  public:
  
      CConfigStorage() : 
        m_hRemoteHKLM(NULL),
        m_hRootConfigKey(NULL), 
        m_hCAKey(NULL),
        m_pwszMachine(NULL) {};
  
     ~CConfigStorage();
  
      HRESULT InitMachine(LPCWSTR pcwszMachine);
  
      HRESULT GetEntry(
          LPCWSTR pcwszAuthorityName,
          LPCWSTR pcwszRelativeNodePath,
          LPCWSTR pcwszValue,
          VARIANT *pVariant);
  
      HRESULT SetEntry(
          LPCWSTR pwszAuthorityName,
          LPCWSTR pcwszRelativeNodePath,
          LPCWSTR pwszEntry,
          VARIANT *pVariant);
  
  private:
  
      HRESULT InitRootKey();
      HRESULT InitCAKey(LPCWSTR pcwszAuthority);
      
      HKEY m_hRemoteHKLM; // HKLM if connecting to remote machine
      HKEY m_hRootConfigKey; // HKLM\System\CCS\Services\CertSvc\Configuration
      HKEY m_hCAKey; // ...Configuration\CAName
      LPWSTR m_pwszMachine;
  
  }; // class CConfigStorage
  
  }; // namespace CertSrv