#ifndef __helper_h #define __helper_h #define TrimWhiteSpaceW(psz) StrTrimW(psz, L" \t") #define TrimWhiteSpaceA(psz) StrTrimA(psz, " \t") #ifdef UNICODE #define TrimWhiteSpace TrimWhiteSpaceW #else #define TrimWhiteSpace TrimWhiteSpaceA #endif HRESULT LoadWithCookie(LPCTSTR url, POOEBuf pBuf, DWORD * pdwBufferSize, SUBSCRIPTIONCOOKIE * pcookie); HRESULT GetDefaultOOEBuf(OOEBuf * pBuf, SUBSCRIPTIONTYPE subType); HICON LoadItemIcon(ISubscriptionItem *psi, BOOL bLarge); BOOL HandleScheduleNameConflict(TCHAR *pszSchedName, SYNCSCHEDULECOOKIE *pSchedCookie); HRESULT RemoveItemFromAllSchedules(SUBSCRIPTIONCOOKIE *pCookie); HRESULT AddRemoveScheduledItem(SYNC_HANDLER_ITEM_INFO *pSyncHandlerItemInfo, // For Add SUBSCRIPTIONCOOKIE *pCookie, // For Remove SYNCSCHEDULECOOKIE *pSchedCookie, BOOL bAdd); inline HRESULT AddScheduledItem(SYNC_HANDLER_ITEM_INFO *pSyncHandlerItemInfo, SYNCSCHEDULECOOKIE *pSchedCookie) { return AddRemoveScheduledItem(pSyncHandlerItemInfo, NULL, pSchedCookie, TRUE); } inline HRESULT RemoveScheduledItem(SUBSCRIPTIONCOOKIE *pCookie, SYNCSCHEDULECOOKIE *pSchedCookie) { return AddRemoveScheduledItem(NULL, pCookie, pSchedCookie, FALSE); } HRESULT CreateSchedule(LPWSTR pwszScheduleName, DWORD dwSyncScheduleFlags, SYNCSCHEDULECOOKIE *pSchedCookie, TASK_TRIGGER *pTrigger, BOOL fDupCookieOK); BOOL IsCookieOnSchedule(ISyncSchedule *pSyncSchedule, SUBSCRIPTIONCOOKIE *pCookie); typedef BOOL (CALLBACK * SCHEDULEENUMCALLBACK)(ISyncSchedule *pSyncSchedule, SYNCSCHEDULECOOKIE *pSchedCookie, LPARAM lParam); HRESULT EnumSchedules(SCHEDULEENUMCALLBACK pCallback, LPARAM lParam); BOOL ScheduleCookieExists(SYNCSCHEDULECOOKIE *pSchedCookie); void SetPropSheetFlags(POOEBuf pBuf, BOOL bSet, DWORD dwPropSheetFlags); int KeepSpinNumberInRange(HWND hdlg, int idEdit, int idSpin, int minVal, int maxVal); HRESULT GetItemSchedule(SUBSCRIPTIONCOOKIE *pSubsCookie, SYNCSCHEDULECOOKIE *pSchedCookie); enum { CONFLICT_NONE, CONFLICT_RESOLVED_USE_NEW, CONFLICT_RESOLVED_USE_OLD, CONFLICT_UNRESOLVED, CONFLICT_EMPTY}; int HandleScheduleNameConflict(/* in */ TCHAR *pszSchedName, /* in */ TASK_TRIGGER *pTrigger, /* in */ HWND hwndParent, /* out */ SYNCSCHEDULECOOKIE *pSchedCookie); HRESULT UpdateScheduleTrigger(SYNCSCHEDULECOOKIE *pSchedCookie, TASK_TRIGGER *pTrigger); HRESULT ScheduleIt(ISubscriptionItem *psi, TCHAR *pszName, TASK_TRIGGER *pTrigger); void CreatePublisherScheduleNameW(WCHAR *pwszSchedName, int cchSchedName, const TCHAR *pszName, const WCHAR *pwszName); void CreatePublisherScheduleName(TCHAR *pszSchedName, int cchSchedName, const TCHAR *pszName, const WCHAR *pwszName); #ifdef NEWSCHED_AUTONAME void NewSched_AutoNameHelper(HWND hDlg); #endif BOOL NewSched_ResolveNameConflictHelper(HWND hDlg, TASK_TRIGGER *pTrig, SYNCSCHEDULECOOKIE *pSchedCookie); void NewSched_CreateScheduleHelper(HWND hDlg, TASK_TRIGGER *pTrig, SYNCSCHEDULECOOKIE *pSchedCookie); void NewSched_OnInitDialogHelper(HWND hDlg); class CWaitCursor { HCURSOR hPrevCursor; public: CWaitCursor() { hPrevCursor = SetCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_WAIT))); }; ~CWaitCursor() { if (hPrevCursor) SetCursor(hPrevCursor); } }; #endif //__helper_h