mirror of https://github.com/tongzx/nt5src
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.
143 lines
2.2 KiB
143 lines
2.2 KiB
#define MAX_ENTRIES 20
|
|
|
|
typedef struct _propentry{
|
|
DWORD dwSyntaxId;
|
|
LPWSTR pszPropName;
|
|
struct _propentry *pNext;
|
|
} PROPENTRY, *PPROPENTRY;
|
|
|
|
PPROPENTRY
|
|
CopyPropList(
|
|
PPROPENTRY pPropList
|
|
);
|
|
|
|
HRESULT
|
|
FindProperty(
|
|
PPROPENTRY pPropList,
|
|
LPWSTR pszPropName,
|
|
PDWORD pdwSyntaxId
|
|
);
|
|
|
|
|
|
PPROPENTRY
|
|
CreatePropertyEntry(
|
|
LPWSTR pszPropertyName,
|
|
DWORD dwSyntaxId
|
|
);
|
|
|
|
void
|
|
FreePropertyEntry(
|
|
PPROPENTRY pPropName
|
|
);
|
|
|
|
void
|
|
FreePropertyList(
|
|
PPROPENTRY pPropList
|
|
);
|
|
|
|
PPROPENTRY
|
|
GeneratePropertyList(
|
|
LPWSTR_LIST lpMandatoryProps,
|
|
LPWSTR_LIST lpOptionalProps
|
|
);
|
|
|
|
|
|
PPROPENTRY
|
|
GenerateAttrIdList(
|
|
HANDLE hTree,
|
|
LPWSTR_LIST lpMandatoryProps,
|
|
LPWSTR_LIST lpOptionalProps
|
|
);
|
|
|
|
PPROPENTRY
|
|
GeneratePropertyAndIdList(
|
|
LPWSTR pszTreeName,
|
|
CCredentials& Credentials,
|
|
LPWSTR_LIST lpMandatoryProps,
|
|
LPWSTR_LIST lpOptionalProps
|
|
);
|
|
|
|
typedef struct _classentry{
|
|
BOOL bInUse;
|
|
SYSTEMTIME st;
|
|
WCHAR szTreeName[MAX_PATH];
|
|
WCHAR szClassName[MAX_PATH];
|
|
PPROPENTRY pPropList;
|
|
}CLASSENTRY, *PCLASSENTRY;
|
|
|
|
class CClassCache {
|
|
|
|
public:
|
|
|
|
HRESULT
|
|
CClassCache::
|
|
addentry(
|
|
LPWSTR pszTreeName,
|
|
LPWSTR pszClassName,
|
|
PPROPENTRY pPropList
|
|
);
|
|
|
|
HRESULT
|
|
CClassCache::
|
|
findentry(
|
|
LPWSTR pszTreeName,
|
|
LPWSTR pszClassName,
|
|
PDWORD pdwIndex
|
|
);
|
|
|
|
HRESULT
|
|
CClassCache::
|
|
getentry(
|
|
LPWSTR pszTreeName,
|
|
LPWSTR pszClassName,
|
|
PPROPENTRY * ppPropList
|
|
);
|
|
|
|
CClassCache::
|
|
CClassCache();
|
|
|
|
CClassCache::
|
|
~CClassCache();
|
|
|
|
static
|
|
HRESULT
|
|
CClassCache::
|
|
CreateClassCache(
|
|
CClassCache FAR * FAR * ppClassCache
|
|
);
|
|
|
|
DWORD
|
|
CClassCache::
|
|
IsOlderThan(
|
|
DWORD i,
|
|
DWORD j
|
|
);
|
|
|
|
|
|
protected:
|
|
|
|
DWORD _dwMaxCacheSize;
|
|
|
|
CLASSENTRY _ClassEntries[MAX_ENTRIES];
|
|
|
|
CRITICAL_SECTION _cs;
|
|
|
|
};
|
|
|
|
HRESULT
|
|
ValidatePropertyinCache(
|
|
LPWSTR pszTreeName,
|
|
LPWSTR pszClassName,
|
|
LPWSTR pszPropName,
|
|
CCredentials& Credentials,
|
|
PDWORD pdwSyntaxId
|
|
);
|
|
|
|
|
|
HRESULT
|
|
NdsGetClassInformation(
|
|
LPWSTR pszTreeName,
|
|
LPWSTR pszClassName,
|
|
CCredentials& Credentials,
|
|
PPROPENTRY * ppPropList
|
|
);
|