// ================================================================================= // S T A T N E R Y . H // ================================================================================= #ifndef __STATNERY_H #define __STATNERY // ================================================================================= // Depends On // ================================================================================= class CStatWiz; class ListEntry { friend class CStationery; private: ListEntry(); ~ListEntry(); ULONG AddRef(VOID); ULONG Release(VOID); HRESULT HrInit(LPWSTR pwszFile); ULONG m_cRef; LPWSTR m_pwszFile; ListEntry* m_pNext; }; typedef ListEntry *LPLISTENTRY; class CStationery { private: ULONG m_cRef; LPLISTENTRY m_pFirst; CRITICAL_SECTION m_rCritSect; INT cEntries(); LPLISTENTRY RemoveEntry(INT iIndex); HRESULT HrInsertEntry(LPLISTENTRY pEntry); public: CStationery(); ~CStationery(); ULONG AddRef(VOID); ULONG Release(VOID); HRESULT HrInsertEntry(LPWSTR pwszFile); HRESULT HrPromoteEntry(INT iIndex); HRESULT HrDeleteEntry(INT iIndex); HRESULT HrLoadStationeryList(); VOID AddStationeryMenu(HMENU hmenu, int idFirst, int idMore); VOID GetStationeryMenu(HMENU *phmenu); HRESULT HrGetFileName(INT iIndex, LPWSTR wszBuf); LPLISTENTRY MoveToEntry(INT iIndex); HRESULT HrFindEntry(LPWSTR pwszFile, INT* pRet); BOOL fValidIndex(INT iIndex); void SaveStationeryList(); HRESULT HrGetShowNames(LPWSTR pwszFile, LPWSTR pwszszBuf, int cchBuf, INT index); VOID ValidateList(BOOL fCheckExist); }; typedef CStationery *LPSTATIONERY; // New Stationary Source types enum { NSS_DEFAULT = 0, NSS_MRU, NSS_MORE_DIALOG }; // ================================================================================= // Prototypes // ================================================================================= void AddStationeryMenu(HMENU hmenu, int idPopup, int idFirst, int idMore); void GetStationeryMenu(HMENU *phmenu); HRESULT HrNewStationery(HWND hwnd, INT id, LPWSTR pwszFileName, BOOL fModal, BOOL fMail, FOLDERID folderID, BOOL fAddToMRU, DWORD dwSource, IUnknown *pUnkPump, IMimeMessage *pMsg); HRESULT HrMoreStationery(HWND hwnd, BOOL fModal, BOOL fMail, FOLDERID folderID, IUnknown *pUnkPump); HRESULT HrGetStationeryFileName(INT index, LPWSTR pwszFileName); HRESULT HrGetMoreStationeryFileName(HWND hwnd, LPWSTR pwszFileName); HRESULT HrGetStationeryPath(LPWSTR pwszPath); HRESULT HrAddToStationeryMRU(LPWSTR pwszFile); HRESULT HrRemoveFromStationeryMRU(LPWSTR pwszFile); VOID InsertStationeryDir(LPWSTR pwszPicture); BOOL GetStationeryFullName(LPWSTR pwszName); BOOL IsValidCreateFileName(LPWSTR pwszFile); LRESULT StationeryListBox_AddString(HWND hwndList, LPWSTR pwszFileName); LRESULT StationeryListBox_SelectString(HWND hwndList, LPWSTR pwszFileName); LRESULT StationeryComboBox_SelectString(HWND hwndCombo, LPWSTR pwszFileName); HRESULT HrLoadStationery(HWND hwndList, LPWSTR pwszStationery); HRESULT HrBrowseStationery(HWND hwndParent, HWND hwndList); HRESULT HrFillStationeryCombo(HWND hwndCombo, BOOL fBackGround, LPWSTR pwszPicture); LRESULT PictureComboBox_AddString(HWND hwndCombo, LPWSTR pwszPicture); HRESULT HrBrowsePicture(HWND hwndParent, HWND hwndCombo); HRESULT ShowPreview(HWND hwnd, LPWSTR pwszFile); HRESULT ShowPreview(HWND hwnd, CStatWiz* pApp, INT idsSample); HRESULT FillHtmlToFile(CStatWiz* pApp, HANDLE hFile, INT idsSample, BOOL fTemp); HRESULT StripStationeryDir(LPWSTR pwszPicture); HRESULT GetDefaultStationeryName(BOOL fMail, LPWSTR pwszName); HRESULT SetDefaultStationeryName(BOOL fMail, LPWSTR pwszName); #endif // __STATNERY_H