CPROPS.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*++
  2. Copyright (c) 1996 Microsoft Corporation
  3. Module Name:
  4.     CProps.h
  5. Abstract:
  6.     Property Cache Object
  7.     
  8. Author:
  9. Environment:
  10.     User mode
  11. Revision History :
  12. --*/
  13. #ifndef _CPROPS_H_
  14. #define _CPROPS_H_
  15. typedef struct _property{
  16.     WCHAR   szPropertyName[MAX_PATH];
  17.     DWORD   dwFlags;
  18.     DWORD   dwNumValues;        
  19.     DWORD   dwSyntaxId;         
  20.     PSampleDSOBJECT pSampleDSObject;      // Pointer to the SampleDS Object
  21. }PROPERTY, *PPROPERTY;
  22. #define PROPERTY_NAME(pProperty)            pProperty->szPropertyName
  23. #define PROPERTY_VALUES(pProperty)          pProperty->lpValues
  24. #define PROPERTY_NUMVALUES(pProperty)       pProperty->dwNumValues
  25. #define PROPERTY_SYNTAX(pProperty)          pProperty->dwSyntaxId
  26. #define PROPERTY_SampleDSOBJECT(pProperty)  pProperty->pSampleDSObject
  27. #define PROPERTY_FLAGS(pProperty)           pProperty->dwFlags
  28. #define CACHE_PROPERTY_MODIFIED        0x1
  29. class CPropertyCache {
  30. public:
  31.     HRESULT
  32.     CPropertyCache::
  33.     addproperty(
  34.         LPWSTR szPropertyName,
  35.         DWORD  dwSyntaxId,
  36.         DWORD  dwNumValues,
  37.         PSampleDSOBJECT pSampleDSObject
  38.         );
  39.     HRESULT
  40.     CPropertyCache::
  41.     updateproperty(
  42.         LPWSTR szPropertyName,
  43.         DWORD  dwSyntaxId,
  44.         DWORD  dwNumValues,
  45.         PSampleDSOBJECT pSampleDSObject,
  46.         BOOL fExplicit
  47.         );
  48.     HRESULT
  49.     CPropertyCache::
  50.     findproperty(
  51.         LPWSTR szPropertyName,
  52.         PDWORD pdwIndex
  53.         );
  54.     HRESULT
  55.     CPropertyCache::
  56.     getproperty(
  57.         LPWSTR szPropertyName,
  58.         PDWORD  pdwSyntaxId,
  59.         PDWORD  pdwNumValues,
  60.         PSampleDSOBJECT * ppSampleDSObject
  61.         );
  62.     HRESULT
  63.     CPropertyCache::
  64.     unboundgetproperty(
  65.         LPWSTR szPropertyName,
  66.         PDWORD  pdwSyntaxId,
  67.         PDWORD  pdwNumValues,
  68.         PSampleDSOBJECT * ppSampleDSObject
  69.         );
  70.     HRESULT
  71.     CPropertyCache::
  72.     putproperty(
  73.         LPWSTR szPropertyName,
  74.         DWORD  dwSyntaxId,
  75.         DWORD  dwNumValues,
  76.         PSampleDSOBJECT pSampleDSObject
  77.         );
  78.     CPropertyCache::
  79.     CPropertyCache();
  80.     CPropertyCache::
  81.     ~CPropertyCache();
  82.     static
  83.     HRESULT
  84.     CPropertyCache::
  85.     createpropertycache(
  86.         CCoreADsObject FAR * pCoreADsObject,
  87.         CPropertyCache FAR * FAR * ppPropertyCache
  88.         );
  89.     HRESULT
  90.     CPropertyCache::
  91.     unmarshallproperty(
  92.         LPWSTR szPropertyName,
  93.         LPBYTE lpValue,
  94.         DWORD  dwNumValues,
  95.         DWORD  dwSyntaxId,
  96.         BOOL fExplicit
  97.         );
  98.     HRESULT
  99.     CPropertyCache::
  100.     SampleDSUnMarshallProperties(
  101.         HANDLE hOperationData,
  102.         BOOL fExplicit
  103.         );
  104.     HRESULT
  105.     CPropertyCache::
  106.     marshallproperty(
  107.         LPSampleDS_ATTR_INFO pAttrInfo,
  108.         LPWSTR szPropertyName,
  109.         LPBYTE lpValues,
  110.         DWORD  dwNumValues,
  111.         DWORD  dwSyntaxId
  112.         );
  113.     HRESULT
  114.     CPropertyCache::
  115.     SampleDSMarshallProperties(
  116.        HANDLE hOperationData
  117.     );
  118. protected:
  119.     DWORD _dwMaxProperties;
  120.     PPROPERTY _pProperties;
  121.     DWORD   _cb;
  122.     CCoreADsObject FAR * _pCoreADsObject;
  123. };
  124. #endif