windows-nt/Source/XPSP1/NT/base/win32/fusion/settings/settingsp.h

93 lines
2 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
#if !defined(_FUSION_SETTINGS_SETTINGSP_H_INCLUDED_)
#define _FUSION_SETTINGS_SETTINGSP_H_INCLUDED_
#pragma once
typedef struct _SXSP_SETTINGS_KEY SXSP_SETTINGS_KEY;
typedef struct _SXSP_SETTINGS_KEY *PSXSP_SETTINGS_KEY;
typedef const struct _SXSP_SETTINGS_KEY *PCSXSP_SETTINGS_KEY;
typedef struct _SXSP_SETTINGS_VALUE SXSP_SETTINGS_VALUE;
typedef struct _SXSP_SETTINGS_VALUE *PSXSP_SETTINGS_VALUE;
typedef const struct _SXSP_SETTINGS_VALUE *PCSXSP_SETTINGS_VALUE;
typedef struct _SXSP_SETTINGS_VALUE
{
PCWSTR m_pszValueName;
BYTE *m_pbValue;
ULONG m_cchValueName;
ULONG m_cbValue;
DWORD m_dwValueType;
} SXSP_SETTINGS_VALUE, *PSXSP_SETTINGS_VALUE;
#define SXSP_SETTINGS_KEY_FLAG_DETACHED (0x00000001)
typedef struct _SXSP_SETTINGS_KEY
{
PSXSP_SETTINGS_KEY m_Parent;
PSXSP_SETTINGS_KEY *m_prgSubKeys;
PSXSP_SETTINGS_VALUE *m_prgValues;
PCWSTR m_pszKeyName;
PCWSTR m_pszClassName;
LONG m_cRef;
DWORD m_dwFlags;
ULONG m_cchKeyName;
ULONG m_cchClassName;
ULONG m_cSubKeys;
ULONG m_cSubKeyArraySize;
ULONG m_cValues;
ULONG m_cValueArraySize;
} SXSP_SETTINGS_KEY, *PSXSP_SETTINGS_KEY;
typedef const struct _SXSP_SETTINGS_KEY *PCSXSP_SETTINGS_KEY;
typedef struct _SXS_SETTINGS_KEY
{
PSXSP_SETTINGS_KEY m_InternalKey;
REGSAM m_SamGranted;
} SXS_SETTINGS_KEY;
void
SxspAddRefSettingsKey(
PSXSP_SETTINGS_KEY Key
);
void
SxspReleaseSettingsKey(
PSXSP_SETTINGS_KEY Key
);
int __cdecl
SxspCompareKeys(
const void *pv1,
const void *pv2
);
LONG
SxspInternalKeyToExternalKey(
PSXSP_SETTINGS_KEY KeyIn,
REGSAM samGranted,
PSXS_SETTINGS_KEY &KeyOut
);
LONG
SxspNavigateKey(
DWORD Flags,
PSXSP_SETTINGS_KEY KeyIn,
PCWSTR SubKeyPath,
ULONG &SubKeyPathConsumed,
PSXSP_SETTINGS_KEY &KeyOut
);
void
SxspDestroySettingsValue(
PSXSP_SETTINGS_VALUE Value
);
void
SxspDetachSettingsKey(
PSXSP_SETTINGS_KEY Key
);
#endif // !defined(_FUSION_SETTINGS_SETTINGSP_H_INCLUDED_)