|
|
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; };
|