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.

92 lines
2.0 KiB

  1. #if !defined(_FUSION_SETTINGS_SETTINGSP_H_INCLUDED_)
  2. #define _FUSION_SETTINGS_SETTINGSP_H_INCLUDED_
  3. #pragma once
  4. typedef struct _SXSP_SETTINGS_KEY SXSP_SETTINGS_KEY;
  5. typedef struct _SXSP_SETTINGS_KEY *PSXSP_SETTINGS_KEY;
  6. typedef const struct _SXSP_SETTINGS_KEY *PCSXSP_SETTINGS_KEY;
  7. typedef struct _SXSP_SETTINGS_VALUE SXSP_SETTINGS_VALUE;
  8. typedef struct _SXSP_SETTINGS_VALUE *PSXSP_SETTINGS_VALUE;
  9. typedef const struct _SXSP_SETTINGS_VALUE *PCSXSP_SETTINGS_VALUE;
  10. typedef struct _SXSP_SETTINGS_VALUE
  11. {
  12. PCWSTR m_pszValueName;
  13. BYTE *m_pbValue;
  14. ULONG m_cchValueName;
  15. ULONG m_cbValue;
  16. DWORD m_dwValueType;
  17. } SXSP_SETTINGS_VALUE, *PSXSP_SETTINGS_VALUE;
  18. #define SXSP_SETTINGS_KEY_FLAG_DETACHED (0x00000001)
  19. typedef struct _SXSP_SETTINGS_KEY
  20. {
  21. PSXSP_SETTINGS_KEY m_Parent;
  22. PSXSP_SETTINGS_KEY *m_prgSubKeys;
  23. PSXSP_SETTINGS_VALUE *m_prgValues;
  24. PCWSTR m_pszKeyName;
  25. PCWSTR m_pszClassName;
  26. LONG m_cRef;
  27. DWORD m_dwFlags;
  28. ULONG m_cchKeyName;
  29. ULONG m_cchClassName;
  30. ULONG m_cSubKeys;
  31. ULONG m_cSubKeyArraySize;
  32. ULONG m_cValues;
  33. ULONG m_cValueArraySize;
  34. } SXSP_SETTINGS_KEY, *PSXSP_SETTINGS_KEY;
  35. typedef const struct _SXSP_SETTINGS_KEY *PCSXSP_SETTINGS_KEY;
  36. typedef struct _SXS_SETTINGS_KEY
  37. {
  38. PSXSP_SETTINGS_KEY m_InternalKey;
  39. REGSAM m_SamGranted;
  40. } SXS_SETTINGS_KEY;
  41. void
  42. SxspAddRefSettingsKey(
  43. PSXSP_SETTINGS_KEY Key
  44. );
  45. void
  46. SxspReleaseSettingsKey(
  47. PSXSP_SETTINGS_KEY Key
  48. );
  49. int __cdecl
  50. SxspCompareKeys(
  51. const void *pv1,
  52. const void *pv2
  53. );
  54. LONG
  55. SxspInternalKeyToExternalKey(
  56. PSXSP_SETTINGS_KEY KeyIn,
  57. REGSAM samGranted,
  58. PSXS_SETTINGS_KEY &KeyOut
  59. );
  60. LONG
  61. SxspNavigateKey(
  62. DWORD Flags,
  63. PSXSP_SETTINGS_KEY KeyIn,
  64. PCWSTR SubKeyPath,
  65. ULONG &SubKeyPathConsumed,
  66. PSXSP_SETTINGS_KEY &KeyOut
  67. );
  68. void
  69. SxspDestroySettingsValue(
  70. PSXSP_SETTINGS_VALUE Value
  71. );
  72. void
  73. SxspDetachSettingsKey(
  74. PSXSP_SETTINGS_KEY Key
  75. );
  76. #endif // !defined(_FUSION_SETTINGS_SETTINGSP_H_INCLUDED_)