Windows2003-3790/inetcore/outlookexpress/wabw/wabapi/_profile.h
2020-09-30 16:53:55 +02:00

101 lines
3.8 KiB
C

/*
* _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);
/*--------------------------------------------------------------------------*/