server/dep/include/g3dlite/G3D/RegistryUtil.h
Lynx3d ae3ad10bcf [10097] Update G3D up to v8.0b4
+ Got rid of zip lib requirement in G3D...
  Still can re-enable code by defining _HAVE_ZIP...

+ Remove silly X11 lib dependency from G3D
  Code doesn't seem to do anything yet anyway, and even if, we don't want it :p

+ Fix another weird G3D build problem...

+ Remove some __asm usage in g3d, which is not available on Win64
  My editor also decided to remove a ton of trailing white spaces...tss...

+ Reapply G3D fixes for 64bit VC

+ not use SSE specific header when SSE not enabled in *nix

+ Updated project files

+ New vmap_assembler VC90/VC80 Project

+ vmap assembler binaries updates

NOTE: Old vmap fikes expected work (as tests show) with new library version.
      But better use new generated versions. Its different in small parts to bad or good...

(based on Lynx3d's repo commit 44798d3)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-06-23 06:45:25 +04:00

97 lines
3.2 KiB
C++

/**
@file RegistryUtil.h
@created 2006-04-06
@edited 2006-04-06
Copyright 2000-2006, Morgan McGuire.
All rights reserved.
*/
#ifndef G3D_REGISTRYUTIL_H
#define G3D_REGISTRYUTIL_H
#include "G3D/platform.h"
#include "G3D/g3dmath.h"
// This file is only used on Windows
#ifdef G3D_WIN32
#include <string>
namespace G3D {
/**
Provides generalized Windows registry querying.
All key names are one string in the format:
"[base key]\[sub-keys]"
A value must now be provided for every query.
An empty value string will use the (Default) value.
[base key] can be any of the following:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_PERFORMANCE_NLSTEXT
HKEY_PERFORMANCE_TEXT
HKEY_USERS
valueExists() should be used to validate a key+value before reading or writing
to ensure that a debug assert or false return is for a different error during
reads and writes.
All read and write calls will assert when a key will not open for reasons other
that it does not exist. All read and write calls will assert when the value cannot
be read or written for any reason.
*/
class RegistryUtil {
public:
/** returns true if the key exists and the current user has permission to read */
static bool keyExists(const std::string& key);
/** returns true if the key exists and the current user has permission to read */
static bool valueExists(const std::string& key, const std::string& value);
/** returns false if the key could not be read for any reason. */
static bool readInt32(const std::string& key, const std::string& value, int32& data);
/**
Reads an arbitrary amount of data from a binary registry key.
returns false if the key could not be read for any reason.
@beta
@param data pointer to the output buffer of sufficient size. Pass NULL as data in order to have available data size returned in dataSize.
@param dataSize size of the output buffer. When NULL is passed for data, contains the size of available data on successful return.
*/
static bool readBytes(const std::string& key, const std::string& value, uint8* data, uint32& dataSize);
/** returns false if the key could not be read for any reason. */
static bool readString(const std::string& key, const std::string& value, std::string& data);
/** returns false if the key could not be written for any reason. */
static bool writeInt32(const std::string& key, const std::string& value, int32 data);
/**
Writes an arbitrary amount of data to a binary registry key.
returns false if the key could not be written for any reason.
@param data pointer to the input buffer
@param dataSize size of the input buffer that should be written
*/
static bool writeBytes(const std::string& key, const std::string& value, const uint8* data, uint32 dataSize);
/** returns false if the key could not be written for any reason. */
static bool writeString(const std::string& key, const std::string& value, const std::string& data);
};
} // namespace G3D
#endif // G3D_WIN32
#endif // G3D_REGISTRYTUIL_H