#ifndef FTASSOC_H #define FTASSOC_H #include "ascstr.h" #include "regsprtb.h" class CFTAssocInfo : public IAssocInfo, private CRegSupportBuf { public: CFTAssocInfo(); // IUnknown methods STDMETHOD(QueryInterface)(REFIID riid, PVOID* ppv); STDMETHOD_(ULONG, AddRef)(); STDMETHOD_(ULONG,Release)(); // IAssocInfo methods // Init STDMETHOD(Init)(AIINIT aiinitFlags, LPTSTR pszStr); STDMETHOD(InitComplex)(AIINIT aiinitFlags1, LPTSTR pszStr1, AIINIT aiinitFlags2, LPTSTR pszStr2); // Get STDMETHOD(GetString)(AISTR aistrFlags, LPTSTR pszStr, DWORD* cchStr); STDMETHOD(GetDWORD)(AIDWORD aidwordFlags, DWORD* pdwdata); STDMETHOD(GetBOOL)(AIDWORD aidwordFlags, BOOL* pBool); STDMETHOD(GetData)(AIDWORD aidataFlags, PBYTE pbData, DWORD* pcbData); // Set STDMETHOD(SetString)(AISTR aistrFlags, LPTSTR pszStr); STDMETHOD(SetDWORD)(AIDWORD aidwordFlags, DWORD dwData); STDMETHOD(SetBOOL)(AIDWORD aiboolFlags, BOOL fBool); STDMETHOD(SetData)(AIDWORD aidataFlags, PBYTE pbData, DWORD cbData); // Create STDMETHOD(Create)(); // Delete STDMETHOD(DelString)(AISTR aistrFlags); STDMETHOD(Delete)(AIALL aiallFlags); protected: HRESULT _IsBrowseInPlace(BOOL* pfBool); HRESULT _SetBrowseInPlace(BOOL fBool); HRESULT _IsBrowseInPlaceEnabled(BOOL* pfBool); HRESULT _IsEditFlagSet(DWORD dwMask, BOOL* pfBool); HRESULT _SetEditFlagSet(DWORD dwMask, BOOL fBool); HRESULT _CreateProgID(); HRESULT _GetProgIDActionAttributes(DWORD* pdwAttributes); HRESULT _GetProgIDEditFlags(DWORD* pdwEditFlags); HRESULT _GetOpenWithInfo(LPTSTR pszStr, DWORD* pcchStr); HRESULT _ExtIsAssociated(BOOL* pfIsAssociated); HRESULT _GetExtDocIcon(LPTSTR pszExt, BOOL fSmall, int* piIcon); HRESULT _GetProgIDDocIcon(BOOL fSmall, int* piIcon); HRESULT _GetAppIcon(BOOL fSmall, int* piIcon); HRESULT _GetIconLocation(LPTSTR pszStr, DWORD* pcchStr); HRESULT _SetIconLocation(LPTSTR pszStr); HRESULT _GetProgIDDefaultAction(LPTSTR pszStr, DWORD* pcchStr); HRESULT _SetProgIDDefaultAction(LPTSTR pszStr); HRESULT _GetProgIDDescr(LPTSTR pszProgIDDescr, DWORD* pcchProgIDdescr); HRESULT __InitImageLists(); protected: HRESULT _OpenSubKey(LPTSTR pszSubKey, REGSAM samDesired, HKEY* phKey); protected: TCHAR _szInitStr1[MAX_FTMAX]; AIINIT _aiinitFlags1; TCHAR _szInitStr2[MAX_FTMAX]; AIINIT _aiinitFlags2; static HIMAGELIST _himlSysSmall; static HIMAGELIST _himlSysLarge; private: LONG _cRef; }; #endif //FTASSOC_H