You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.8 KiB
101 lines
3.8 KiB
/*
|
|
* _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);
|
|
|
|
/*--------------------------------------------------------------------------*/
|