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

  1. class CFusionInMemoryRegValue
  2. {
  3. public:
  4. DWORD Type;
  5. F::CSmallStringBuffer Name;
  6. // conceptually a union
  7. F::CTinyStringBuffer StringData;
  8. DWORD DwordData;
  9. F::CByteBuffer BinaryData;
  10. F::CByteBuffer ResourceListData;
  11. CFusionArray<F::CTinyStringBuffer> MultiStringData;
  12. void TakeValue(CFusionInMemoryRegValue& x);
  13. BOOL Win32Assign(const CFusionInMemoryRegValue& x);
  14. };
  15. MAKE_CFUSIONARRAY_READY(CFusionInMemoryRegValue, Win32Assign);
  16. class CFusionInMemoryRegKey
  17. {
  18. //union
  19. CFusionInMemoryRegKey& Parent;
  20. HKEY Hkey; // HKLM, HKCU
  21. COwnedPtrArray<CFusionInMemoryRegKey> ChildKeys; // make this is hash table
  22. CFusionArray<CFusionInMemoryRegValue> ChildValues; // make this is hash table
  23. };
  24. class CFusionRegistryTextFile : public CFusionInMemoryRegKey
  25. {
  26. public:
  27. BOOL Read(PCWSTR);
  28. void Dump(void) const;
  29. protected:
  30. BOOL DetermineType(PVOID, SIZE_T cb, PCSTR& a, PCWSTR& w, SIZE_T& cch);
  31. BOOL ReadA(PCSTR, SIZE_T cch);
  32. BOOL ReadW(PCWSTR, SIZE_T cch);
  33. };