/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
CProps.h
Abstract:
Property Cache Object
Author:
Environment:
User mode
Revision History :
--*/
#ifndef _CPROPS_H_
#define _CPROPS_H_
typedef struct _property{
WCHAR szPropertyName[MAX_PATH];
DWORD dwFlags;
DWORD dwNumValues;
DWORD dwSyntaxId;
PSampleDSOBJECT pSampleDSObject; // Pointer to the SampleDS 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_SampleDSOBJECT(pProperty) pProperty->pSampleDSObject
#define PROPERTY_FLAGS(pProperty) pProperty->dwFlags
#define CACHE_PROPERTY_MODIFIED 0x1
class CPropertyCache {
public:
HRESULT
CPropertyCache::
addproperty(
LPWSTR szPropertyName,
DWORD dwSyntaxId,
DWORD dwNumValues,
PSampleDSOBJECT pSampleDSObject
);
HRESULT
CPropertyCache::
updateproperty(
LPWSTR szPropertyName,
DWORD dwSyntaxId,
DWORD dwNumValues,
PSampleDSOBJECT pSampleDSObject,
BOOL fExplicit
);
HRESULT
CPropertyCache::
findproperty(
LPWSTR szPropertyName,
PDWORD pdwIndex
);
HRESULT
CPropertyCache::
getproperty(
LPWSTR szPropertyName,
PDWORD pdwSyntaxId,
PDWORD pdwNumValues,
PSampleDSOBJECT * ppSampleDSObject
);
HRESULT
CPropertyCache::
unboundgetproperty(
LPWSTR szPropertyName,
PDWORD pdwSyntaxId,
PDWORD pdwNumValues,
PSampleDSOBJECT * ppSampleDSObject
);
HRESULT
CPropertyCache::
putproperty(
LPWSTR szPropertyName,
DWORD dwSyntaxId,
DWORD dwNumValues,
PSampleDSOBJECT pSampleDSObject
);
CPropertyCache::
CPropertyCache();
CPropertyCache::
~CPropertyCache();
static
HRESULT
CPropertyCache::
createpropertycache(
CCoreADsObject FAR * pCoreADsObject,
CPropertyCache FAR * FAR * ppPropertyCache
);
HRESULT
CPropertyCache::
unmarshallproperty(
LPWSTR szPropertyName,
LPBYTE lpValue,
DWORD dwNumValues,
DWORD dwSyntaxId,
BOOL fExplicit
);
HRESULT
CPropertyCache::
SampleDSUnMarshallProperties(
HANDLE hOperationData,
BOOL fExplicit
);
HRESULT
CPropertyCache::
marshallproperty(
LPSampleDS_ATTR_INFO pAttrInfo,
LPWSTR szPropertyName,
LPBYTE lpValues,
DWORD dwNumValues,
DWORD dwSyntaxId
);
HRESULT
CPropertyCache::
SampleDSMarshallProperties(
HANDLE hOperationData
);
protected:
DWORD _dwMaxProperties;
PPROPERTY _pProperties;
DWORD _cb;
CCoreADsObject FAR * _pCoreADsObject;
};
#endif