/* * _Profile.h - Stuff dealing with WAB Profile Handling * */ HRESULT HrGetWABProfiles(LPIAB lpIAB); void FreeWABFoldersList(LPIAB lpIAB); BOOL bIsProfileMember(LPIAB lpIAB, LPSBinary lpsb, LPWABFOLDER lpWABFolder, LPWABUSERFOLDER lpUserFolder); LPWABFOLDER FindWABFolder(LPIAB lpIAB, LPSBinary lpsb, LPTSTR lpName, LPTSTR lpProfileID); void FreeProfileContainerInfo(LPIAB lpIAB); #define FOLDER_UPDATE_NAME 0x00000001 #define FOLDER_UPDATE_SHARE 0x00000002 HRESULT HrUpdateFolderInfo(LPIAB lpIAB, LPSBinary lpsbEID, ULONG ulFlags, BOOL bShared, LPTSTR lpsz); HRESULT HrAddRemoveFolderFromUserFolder(LPIAB lpIAB, LPWABFOLDER lpUserFolder, LPSBinary lpsbEID, LPTSTR lpName, BOOL bRefreshProfiles); HRESULT HrCreateNewFolder(LPIAB lpIAB, LPTSTR lpName, LPTSTR lpProfileID, BOOL bUserFolder, LPWABFOLDER lpParentFolder, BOOL bShared, LPSBinary lpsbNew); BOOL bDoesThisWABHaveAnyUsers(LPIAB lpIAB); BOOL bIsThereACurrentUser(LPIAB lpIAB); BOOL bAreWABAPIProfileAware(LPIAB lpIAB); BOOL bIsWABSessionProfileAware(LPIAB lpIAB); HRESULT HrGetUserProfileID(LPGUID lpUserGuid, LPTSTR szProfileID, ULONG cbProfileID); HRESULT HrGetIdentityName(LPIAB lpIAB, LPTSTR lpID, LPTSTR szUserName, ULONG cchUserName); HRESULT HrLogonAndGetCurrentUserProfile(HWND hWndParent, LPIAB lpIAB, BOOL bForceUI, BOOL bSwitchUser); void UninitUserIdentityManager(LPIAB lpIAB); #define DEFAULT_ID_HKEY 0x00000001 #define DEFAULT_ID_PROFILEID 0x00000002 #define DEFAULT_ID_NAME 0x00000004 HRESULT HrGetDefaultIdentityInfo(LPIAB lpIAB, ULONG ulFlags, HKEY * lphKey, LPTSTR lpProfileID, ULONG cchProfileID, LPTSTR lpName, ULONG cchName); /*--------------------------------------------------------------------------*/ /* Interface used for registering and issuing notification callbacks for identities */ #define WAB_IDENTITYCHANGENOTIFY_METHODS(IPURE) \ MAPIMETHOD_(HRESULT, QuerySwitchIdentities) \ (THIS) IPURE; \ MAPIMETHOD_(HRESULT, SwitchIdentities) \ (THIS) IPURE; \ MAPIMETHOD_(HRESULT, IdentityInformationChanged) \ (THIS_ DWORD dwType) IPURE; /* #undef INTERFACE #define INTERFACE WAB_IdentityChangeNotify DECLARE_MAPI_INTERFACE_(WAB_IdentityChangeNotify, IUnknown) { BEGIN_INTERFACE MAPI_IUNKNOWN_METHODS(PURE) WAB_IDENTITYCHANGENOTIFY_METHODS(PURE) }; */ #undef INTERFACE #define INTERFACE struct _WAB_IDENTITYCHANGENOTIFY #undef METHOD_PREFIX #define METHOD_PREFIX WAB_IDENTITYCHANGENOTIFY_ #undef LPVTBL_ELEM #define LPVTBL_ELEM lpvtbl #undef MAPIMETHOD_ #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, WAB_IDENTITYCHANGENOTIFY_) MAPI_IUNKNOWN_METHODS(IMPL) WAB_IDENTITYCHANGENOTIFY_METHODS(IMPL) #undef MAPIMETHOD_ #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, WAB_IDENTITYCHANGENOTIFY_) MAPI_IUNKNOWN_METHODS(IMPL) WAB_IDENTITYCHANGENOTIFY_METHODS(IMPL) #undef MAPIMETHOD_ #define MAPIMETHOD_(type, method) STDMETHOD_(type, method) DECLARE_MAPI_INTERFACE(WAB_IDENTITYCHANGENOTIFY_) { BEGIN_INTERFACE MAPI_IUNKNOWN_METHODS(IMPL) WAB_IDENTITYCHANGENOTIFY_METHODS(IMPL) }; typedef struct _WAB_IDENTITYCHANGENOTIFY { MAPIX_BASE_MEMBERS(WAB_IDENTITYCHANGENOTIFY) LPIAB lpIAB; } WABIDENTITYCHANGENOTIFY, * LPWABIDENTITYCHANGENOTIFY; HRESULT HrCreateIdentityChangeNotifyObject(LPIAB lpIAB, LPWABIDENTITYCHANGENOTIFY * lppWABIDCN); HRESULT HrRegisterUnregisterForIDNotifications( LPIAB lpIAB, BOOL bRegister); /*--------------------------------------------------------------------------*/