#ifndef _CIFTCHAR_H_ #define _CIFTCHAR_H_ // inseng tchar wrappers // wrapper for ICifComponent class CCifComponent_t { private: ICifRWComponent * pCifRWComponent; public: CCifComponent_t(ICifRWComponent *); ~CCifComponent_t() {}; STDMETHOD(GetID)(LPTSTR pszID, DWORD cchSize); STDMETHOD(GetGUID)(LPTSTR pszGUID, DWORD cchSize); STDMETHOD(GetDescription)(LPTSTR pszDesc, DWORD cchSize); STDMETHOD(GetDetails)(LPTSTR pszDetails, DWORD cchSize); STDMETHOD(GetUrl)(UINT uUrlNum, LPTSTR pszUrl, DWORD cchSize, LPDWORD pdwUrlFlags); STDMETHOD(GetCommand)(UINT uCmdNum, LPTSTR pszCmd, DWORD cchCmdSize, LPTSTR pszSwitches, DWORD cchSwitchSize, LPDWORD pdwType); STDMETHOD(GetVersion)(LPDWORD pdwVersion, LPDWORD pdwBuild); STDMETHOD_(DWORD, GetDownloadSize)(); STDMETHOD(GetDependency)(UINT uDepNum, LPTSTR pszID, DWORD cchSize, TCHAR *pchType, LPDWORD pdwVer, LPDWORD pdwBuild); STDMETHOD_(DWORD, GetPlatform)(); STDMETHOD(GetMode)(UINT uModeNum, LPTSTR pszModes, DWORD cchSize); STDMETHOD(GetGroup)(LPTSTR pszID, DWORD cchSize); STDMETHOD(IsUIVisible)(); STDMETHOD(GetCustomData)(LPTSTR pszKey, LPTSTR pszData, DWORD cchSize); }; // wrapper for ICifRWComponent class CCifRWComponent_t : public CCifComponent_t { private: ICifRWComponent * pCifRWComponent; public: CCifRWComponent_t(ICifRWComponent *); ~CCifRWComponent_t() {}; STDMETHOD(SetGUID)(LPCTSTR pszGUID); STDMETHOD(SetDescription)(LPCTSTR pszDesc); STDMETHOD(SetCommand)(UINT uCmdNum, LPCTSTR pszCmd, LPCTSTR pszSwitches, DWORD dwType); STDMETHOD(SetVersion)(LPCTSTR pszVersion); STDMETHOD(SetUninstallKey)(LPCTSTR pszKey); STDMETHOD(SetInstalledSize)(DWORD dwWin, DWORD dwApp); STDMETHOD(SetDownloadSize)(DWORD); STDMETHOD(SetExtractSize)(DWORD); STDMETHOD(DeleteDependency)(LPCTSTR pszID, TCHAR chType); STDMETHOD(AddDependency)(LPCTSTR pszID, TCHAR chType); STDMETHOD(SetUIVisible)(BOOL); STDMETHOD(SetGroup)(LPCTSTR pszID); STDMETHOD(SetPlatform)(DWORD); STDMETHOD(SetPriority)(DWORD); STDMETHOD(SetReboot)(BOOL); STDMETHOD(SetUrl)(UINT uUrlNum, LPCTSTR pszUrl, DWORD dwUrlFlags); STDMETHOD(DeleteFromModes)(LPCTSTR pszMode); STDMETHOD(AddToMode)(LPCTSTR pszMode); STDMETHOD(SetModes)(LPCTSTR pszMode); STDMETHOD(CopyComponent)(LPCTSTR pszCifFile); STDMETHOD(AddToTreatAsOne)(LPCTSTR pszCompID); STDMETHOD(SetDetails)(LPCTSTR pszDesc); }; // wrapper for ICifRWGroup class CCifRWGroup_t { private: ICifRWGroup * pCifRWGroup; public: CCifRWGroup_t(ICifRWGroup *); ~CCifRWGroup_t() {}; STDMETHOD(GetDescription)(LPTSTR pszDesc, DWORD cchSize); STDMETHOD_(DWORD, GetPriority)(); STDMETHOD(SetDescription)(LPCTSTR pszDesc); STDMETHOD(SetPriority)(DWORD); }; // wrapper for ICifMode class CCifMode_t { private: ICifRWMode * pCifRWMode; public: CCifMode_t(ICifRWMode *); ~CCifMode_t() {}; STDMETHOD(GetID)(LPTSTR pszID, DWORD cchSize); STDMETHOD(GetDescription)(LPTSTR pszDesc, DWORD cchSize); STDMETHOD(GetDetails)(LPTSTR pszDetails, DWORD cchSize); }; // wrapper for ICifRWMode class CCifRWMode_t : public CCifMode_t { private: ICifRWMode * pCifRWMode; public: CCifRWMode_t(ICifRWMode *); ~CCifRWMode_t() {}; STDMETHOD(SetDescription)(LPCTSTR pszDesc); STDMETHOD(SetDetails)(LPCTSTR pszDetails); }; // wrapper for ICifFile class CCifFile_t { private: ICifRWFile * pCifRWFile; public: CCifFile_t(ICifRWFile *); ~CCifFile_t(); STDMETHOD(EnumComponents)(IEnumCifComponents **, DWORD dwFilter, LPVOID pv); STDMETHOD(FindComponent)(LPCTSTR pszID, ICifComponent **p); STDMETHOD(EnumModes)(IEnumCifModes **, DWORD dwFilter, LPVOID pv); STDMETHOD(FindMode)(LPCTSTR pszID, ICifMode **p); STDMETHOD(GetDescription)(LPTSTR pszDesc, DWORD cchSize); }; // wrapper for ICifRWFile class CCifRWFile_t : public CCifFile_t { private: ICifRWFile * pCifRWFile; public: CCifRWFile_t(ICifRWFile *); ~CCifRWFile_t() {}; // release will be taken care of by CCifFile_t destructor // ICifRWFile methods STDMETHOD(SetDescription)(LPCTSTR pszDesc); STDMETHOD(CreateComponent)(LPCTSTR pszID, ICifRWComponent **p); STDMETHOD(CreateGroup)(LPCTSTR pszID, ICifRWGroup **p); STDMETHOD(CreateMode)(LPCTSTR pszID, ICifRWMode **p); STDMETHOD(DeleteComponent)(LPCTSTR pszID); STDMETHOD(DeleteGroup)(LPCTSTR pszID); STDMETHOD(DeleteMode)(LPCTSTR pszID); STDMETHOD(Flush)(); }; HRESULT GetICifFileFromFile_t(CCifFile_t **, LPCTSTR pszCifFile); HRESULT GetICifRWFileFromFile_t(CCifRWFile_t **, LPCTSTR pszCifFile); #endif