// File: wabutil.h #ifndef _WABUTIL_H_ #define _WABUTIL_H_ #include "wabdefs.h" #include "wabapi.h" /////////////////////////////////////// // NetMeeting named prop IDs in the WAB // DEFINE_OLEGUID(PS_Conferencing, 0x00062004, 0, 0); #define PR_SERVERS 0x8056 #define CONF_DEFAULT_INDEX 0x8057 #define CONF_BACKUP_INDEX 0x8058 #define CONF_EMAIL_INDEX 0x8059 #define PR_NM_ADDRESS PROP_TAG(PT_MV_STRING8, PR_SERVERS) #define PR_NM_DEFAULT PROP_TAG(PT_LONG, CONF_DEFAULT_INDEX) #define PR_NM_BACKUP PROP_TAG(PT_LONG, CONF_BACKUP_INDEX) // CLSID_ConferenceManager (see confguid.h) #define NM_TAG_MASK 0x0800 #define CONF_CATEGORY 0x8800 #define CONF_CTRYCODE 0x8801 #define PR_NM_CATEGORY PROP_TAG(PT_LONG, CONF_CATEGORY) class CWABUTIL { private: BOOL m_fTranslatedTags; // TRUE after GetNamedPropsTags succeeds public: CWABUTIL(); ~CWABUTIL(); // It's just easier if everything is public LPADRBOOK m_pAdrBook; LPWABOBJECT m_pWabObject; LPABCONT m_pContainer; LPSPropTagArray m_pPropTags; // Translated tags LPSPropTagArray GetTags() {return m_pPropTags;} ULONG Get_PR_NM_ADDRESS(); ULONG Get_PR_NM_DEFAULT(); ULONG Get_PR_NM_CATEGORY(); LPCTSTR PszSkipCallTo(LPCTSTR psz); BOOL FCreateCallToSz(LPCTSTR pszServer, LPCTSTR pszEmail, LPTSTR pszCallTo, UINT cchMax); VOID FreeProws(LPSRowSet prows); HRESULT GetContainer(void); HRESULT EnsurePropTags(void); HRESULT EnsurePropTags(LPMAPIPROP pMapiProp); HRESULT GetNamedPropsTag(LPMAPIPROP pMapiProp, LPSPropTagArray pProps); HRESULT HrGetWABTemplateID(ULONG * lpcbEID, LPENTRYID * lppEID); HRESULT CreateNewEntry(HWND hwndParent, ULONG cProps, SPropValue * pProps); HRESULT _CreateWabEntry(HWND hwndParent, LPCTSTR pszDisplay, LPCTSTR pszFirst, LPCTSTR pszLast, LPCTSTR pcszEmail, LPCTSTR pszLocation, LPCTSTR pszPhoneNum, LPCTSTR pcszComments, LPCTSTR pcszCallTo); HRESULT CreateWabEntry(HWND hwndParent, LPCTSTR pszDisplay, LPCTSTR pszFirst, LPCTSTR pszLast, LPCTSTR pcszEmail, LPCTSTR pszLocation, LPCTSTR pszPhoneNum, LPCTSTR pcszComments, LPCTSTR pcszServer); HRESULT CreateWabEntry(HWND hwndParent, LPCTSTR pszDisplay, LPCTSTR pszEmail, LPCTSTR pszLocation, LPCTSTR pszPhoneNum, LPCTSTR pszULSAddress); }; // This is used for the ptaEid and m_pPropTags data enum { ieidPR_ENTRYID = 0, // Unique Entry ID ieidPR_DISPLAY_NAME, // Display Name ieidPR_NM_ADDRESS, // MVsz (array of "callto://server/email") ieidPR_NM_DEFAULT, // Default Index into MVsz ieidPR_NM_CATEGORY, // User Category/Rating (Personal=1, Business=2, Adult=4) ieidMax }; #endif /* _WABUTIL_H_ */