Source code of Windows XP (NT5)
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.
|
|
#ifndef __REGUTIL_HXX__
#define __REGUTIL_HXX__
#define INC_OLE2
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <assert.h>
typedef enum tagKEY_CLASS { KEY_UNKNOWN, KEY_FILEEXT, KEY_PROGID, KEY_CLSID, KEY_IID, KEY_APPID } KEY_CLASS;
#define MAX_KEY_NAME_LENGTH 256
class BasicRegistry { public: char StoredKeyName[MAX_KEY_NAME_LENGTH]; public: BasicRegistry( HKEY hKey ) { Key = hKey; KeyIndex = 0; }
BasicRegistry( HKEY ParentKey, char * KeyName ); ~BasicRegistry() { RegCloseKey( Key ); }
HKEY GetKey() { return Key; };
// Initialize for enumeration.
void InitForEnumeration( DWORD Index ) { KeyIndex = Index; }
// Next in enumeration.
LONG NextKey( char * pNameOfKeyToEnumUnderParent, DWORD * pSizeOfKeyNameBuffer, BasicRegistry ** pNewChildKey, FILETIME ftLow, FILETIME ftHigh );
LONG BasicRegistry::NextNumericKey( char * pBufferForKeyName, DWORD * pSizeOfKeyNameBuffer, BasicRegistry ** ppNewChildKey, FILETIME ftLow, FILETIME ftHigh );
// Find Key
LONG Find( char * SubKeyName, BasicRegistry ** pSubKey );
// Get value.
LONG QueryValue( char * ValueName, char * ValueResult, DWORD * SizeofValueResult );
LONG QueryValueEx( char * ValueName, char * ValueResult, DWORD * SizeofValueResult );
KEY_CLASS ClassifyKey( char * KeyName );
private: HKEY Key; DWORD KeyIndex; };
#endif // __REGUTIL_HXX__
|