Leaked source code of windows server 2003
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.
 
 
 
 
 
 

41 lines
1.1 KiB

class CFusionInMemoryRegValue
{
public:
DWORD Type;
F::CSmallStringBuffer Name;
// conceptually a union
F::CTinyStringBuffer StringData;
DWORD DwordData;
F::CByteBuffer BinaryData;
F::CByteBuffer ResourceListData;
CFusionArray<F::CTinyStringBuffer> MultiStringData;
void TakeValue(CFusionInMemoryRegValue& x);
BOOL Win32Assign(const CFusionInMemoryRegValue& x);
};
MAKE_CFUSIONARRAY_READY(CFusionInMemoryRegValue, Win32Assign);
class CFusionInMemoryRegKey
{
//union
CFusionInMemoryRegKey& Parent;
HKEY Hkey; // HKLM, HKCU
COwnedPtrArray<CFusionInMemoryRegKey> ChildKeys; // make this is hash table
CFusionArray<CFusionInMemoryRegValue> ChildValues; // make this is hash table
};
class CFusionRegistryTextFile : public CFusionInMemoryRegKey
{
public:
BOOL Read(PCWSTR);
void Dump(void) const;
protected:
BOOL DetermineType(PVOID, SIZE_T cb, PCSTR& a, PCWSTR& w, SIZE_T& cch);
BOOL ReadA(PCSTR, SIZE_T cch);
BOOL ReadW(PCWSTR, SIZE_T cch);
};