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.

40 lines
1.1 KiB

  1. #ifndef FTASCSTR_H
  2. #define FTASCSTR_H
  3. #include "ascstr.h"
  4. class CFTAssocStore : public IAssocStore
  5. {
  6. public:
  7. CFTAssocStore();
  8. ~CFTAssocStore();
  9. public:
  10. //IUnknown methods
  11. STDMETHOD(QueryInterface)(REFIID riid, PVOID* ppv);
  12. STDMETHOD_(ULONG, AddRef)();
  13. STDMETHOD_(ULONG, Release)();
  14. //IAssocStore methods
  15. // Enum
  16. STDMETHOD(EnumAssocInfo)(ASENUM asenumFlags, LPTSTR pszStr,
  17. AIINIT aiinitFlags, IEnumAssocInfo** ppEnum);
  18. // Get/Set
  19. STDMETHOD(GetAssocInfo)(LPTSTR pszStr, AIINIT aiinitFlags,
  20. IAssocInfo** ppAI);
  21. STDMETHOD(GetComplexAssocInfo)(LPTSTR pszStr1, AIINIT aiinitFlags1,
  22. LPTSTR pszStr2, AIINIT aiinitFlags2, IAssocInfo** ppAI);
  23. // S_OK: We have create/delete access,
  24. // S_FALSE: we do not have create and/or delete access to HKCR
  25. STDMETHOD(CheckAccess)();
  26. private:
  27. friend class CFTEnumAssocInfo;
  28. static HRESULT __GetProgIDDescr(LPTSTR pszProgID, LPTSTR pszProgIDdescr,
  29. DWORD cchProgIDdescr);
  30. private:
  31. HRESULT _hresCoInit;
  32. LONG _cRef;
  33. static HRESULT _hresAccess;
  34. };
  35. #endif //FTASCSTR_H