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.

55 lines
1.2 KiB

  1. /*++
  2. Copyright (C) 1996-1999 Microsoft Corporation
  3. Module Name:
  4. ipropbag.h
  5. Abstract:
  6. <abstract>
  7. --*/
  8. #ifndef _PROPBAG_H_
  9. #define _PROPBAG_H_
  10. #include <oaidl.h>
  11. // Property Bag Class
  12. class CPropertyBag {
  13. public:
  14. CPropertyBag ( void );
  15. virtual ~CPropertyBag ( void );
  16. HRESULT Read ( LPCWSTR, VARIANT* );
  17. HRESULT Write ( LPCWSTR, VARIANT* );
  18. LPWSTR GetData ( void );
  19. DWORD LoadData ( LPCTSTR pszData, LPTSTR& rpszNextData );
  20. private:
  21. typedef struct _param_data {
  22. _param_data* pNextParam;
  23. WCHAR pszPropertyName[MAX_PATH];
  24. VARIANT vValue;
  25. } PARAM_DATA, *PPARAM_DATA;
  26. enum eConstants {
  27. eDefaultBufferLength = 0x010000 // 64K
  28. };
  29. PPARAM_DATA FindProperty ( LPCWSTR pszPropName );
  30. void DataListAddHead ( PPARAM_DATA );
  31. PPARAM_DATA DataListRemoveHead ( void );
  32. LPWSTR m_pszData;
  33. DWORD m_dwCurrentDataLength;
  34. PPARAM_DATA m_plistData;
  35. };
  36. typedef CPropertyBag *PCPropertyBag;
  37. #endif // _PROPBAG_H_