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.
 
 
 
 
 
 

211 lines
4.2 KiB

typedef struct _property{
LPWSTR szPropertyName;
DWORD dwFlags;
DWORD dwNumValues; // Number of values
DWORD dwSyntaxId; // NDS Syntax Id
PNDSOBJECT pNdsObject; // Pointer to the NDS Object
}PROPERTY, *PPROPERTY;
#define PROPERTY_NAME(pProperty) pProperty->szPropertyName
#define PROPERTY_VALUES(pProperty) pProperty->lpValues
#define PROPERTY_NUMVALUES(pProperty) pProperty->dwNumValues
#define PROPERTY_SYNTAX(pProperty) pProperty->dwSyntaxId
#define PROPERTY_NDSOBJECT(pProperty) pProperty->pNdsObject
#define PROPERTY_FLAGS(pProperty) pProperty->dwFlags
#define CACHE_PROPERTY_INITIALIZED 0x0
#define CACHE_PROPERTY_MODIFIED 0x1
#define CACHE_PROPERTY_CLEARED 0x2
#define CACHE_PROPERTY_APPENDED 0x3
#define CACHE_PROPERTY_DELETED 0x4
class CPropertyCache {
public:
HRESULT
CPropertyCache::
addproperty(
LPWSTR szPropertyName,
DWORD dwSyntaxId,
DWORD dwNumValues,
PNDSOBJECT pNdsObject
);
HRESULT
CPropertyCache::
updateproperty(
LPWSTR szPropertyName,
DWORD dwSyntaxId,
DWORD dwNumValues,
PNDSOBJECT pNdsObject,
BOOL fExplicit
);
HRESULT
CPropertyCache::
findproperty(
LPWSTR szPropertyName,
PDWORD pdwIndex
);
HRESULT
CPropertyCache::
deleteproperty(
DWORD dwIndex
);
HRESULT
CPropertyCache::
getproperty(
LPWSTR szPropertyName,
PDWORD pdwSyntaxId,
PDWORD pdwNumValues,
PNDSOBJECT * ppNdsObject
);
HRESULT
CPropertyCache::
unboundgetproperty(
LPWSTR szPropertyName,
PDWORD pdwSyntaxId,
PDWORD pdwNumValues,
PNDSOBJECT * ppNdsObject
);
HRESULT
CPropertyCache::
unboundgetproperty(
DWORD dwIndex,
PDWORD pdwSyntaxId,
PDWORD pdwNumValues,
PNDSOBJECT * ppNdsObject
);
HRESULT
CPropertyCache::
putproperty(
LPWSTR szPropertyName,
DWORD dwFlags,
DWORD dwSyntaxId,
DWORD dwNumValues,
PNDSOBJECT pNdsObject
);
void
CPropertyCache::
flushpropcache();
void
CPropertyCache::
reset_propindex(
);
BOOL
CPropertyCache::
index_valid(
);
BOOL
CPropertyCache::
index_valid(
DWORD dwIndex
);
HRESULT
CPropertyCache::
skip_propindex(
DWORD dwElements
);
HRESULT
CPropertyCache::
get_PropertyCount(
PDWORD pdwMaxProperties
);
DWORD
CPropertyCache::
get_CurrentIndex(
);
LPWSTR
CPropertyCache::
get_CurrentPropName(
);
LPWSTR
CPropertyCache::
get_PropName(
DWORD dwIndex
);
CPropertyCache::
CPropertyCache();
CPropertyCache::
~CPropertyCache();
static
HRESULT
CPropertyCache::
createpropertycache(
CCoreADsObject FAR * pCoreADsObject,
CPropertyCache FAR * FAR * ppPropertyCache
);
HRESULT
CPropertyCache::
unmarshallproperty(
LPWSTR szPropertyName,
PNDSOBJECT pNdsObject,
DWORD dwNumValues,
DWORD dwSyntaxId,
BOOL fExplicit
);
HRESULT
CPropertyCache::
NDSUnMarshallProperties(
HANDLE hOperationData,
BOOL fExplicit
);
HRESULT
CPropertyCache::
marshallproperty(
NDS_CONTEXT_HANDLE hADsContext,
NDS_BUFFER_HANDLE hOperationData,
LPWSTR szPropertyName,
DWORD dwFlags,
PNDSOBJECT lpValues,
DWORD dwNumValues,
DWORD dwSyntaxId
);
HRESULT
CPropertyCache::
NDSMarshallProperties(
NDS_CONTEXT_HANDLE hADsContext,
NDS_BUFFER_HANDLE hOperationData
);
protected:
DWORD _dwMaxProperties;
DWORD _dwCurrentIndex;
PPROPERTY _pProperties;
DWORD _cb;
CCoreADsObject FAR * _pCoreADsObject;
};