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.

48 lines
1.5 KiB

  1. //
  2. // Copyright 2001 - Microsoft Corporation
  3. //
  4. //
  5. // Created By:
  6. // Geoff Pease (GPease) 23-JAN-2001
  7. //
  8. // Maintained By:
  9. // Geoff Pease (GPease) 23-JAN-2001
  10. //
  11. #pragma once
  12. class
  13. CPropertyCache
  14. {
  15. private: // data
  16. CPropertyCacheItem * _pPropertyCacheList; // pointer to property cache linked list's first entry
  17. IPropertyUI * _ppui; // Shell IPropertyUI helper
  18. private: // methods
  19. explicit CPropertyCache( void );
  20. ~CPropertyCache( void );
  21. HRESULT
  22. Init( void );
  23. public: // methods
  24. static HRESULT
  25. CreateInstance( CPropertyCache ** ppOut );
  26. HRESULT
  27. Destroy( void );
  28. HRESULT
  29. AddNewPropertyCacheItem( const FMTID * pFmtIdIn
  30. , PROPID propidIn
  31. , VARTYPE vtIn
  32. , UINT uCodePageIn
  33. , BOOL fForceReadOnlyIn
  34. , IPropertyStorage * ppssIn // optional - can be NULL
  35. , CPropertyCacheItem ** ppItemOut // optional - can be NULL
  36. );
  37. HRESULT
  38. AddExistingItem( CPropertyCacheItem* pItemIn );
  39. HRESULT
  40. GetNextItem( CPropertyCacheItem * pItemIn, CPropertyCacheItem ** ppItemOut );
  41. HRESULT
  42. FindItemEntry( const FMTID * pFmtIdIn, PROPID propIdIn, CPropertyCacheItem ** ppItemOut );
  43. HRESULT
  44. RemoveItem( CPropertyCacheItem * pItemIn );
  45. };