Leaked source code of windows server 2003
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.

100 lines
3.8 KiB

  1. /*
  2. * _Profile.h - Stuff dealing with WAB Profile Handling
  3. *
  4. */
  5. HRESULT HrGetWABProfiles(LPIAB lpIAB);
  6. void FreeWABFoldersList(LPIAB lpIAB);
  7. BOOL bIsProfileMember(LPIAB lpIAB, LPSBinary lpsb, LPWABFOLDER lpWABFolder, LPWABUSERFOLDER lpUserFolder);
  8. LPWABFOLDER FindWABFolder(LPIAB lpIAB, LPSBinary lpsb, LPTSTR lpName, LPTSTR lpProfileID);
  9. void FreeProfileContainerInfo(LPIAB lpIAB);
  10. #define FOLDER_UPDATE_NAME 0x00000001
  11. #define FOLDER_UPDATE_SHARE 0x00000002
  12. HRESULT HrUpdateFolderInfo(LPIAB lpIAB, LPSBinary lpsbEID, ULONG ulFlags, BOOL bShared, LPTSTR lpsz);
  13. HRESULT HrAddRemoveFolderFromUserFolder(LPIAB lpIAB, LPWABFOLDER lpUserFolder, LPSBinary lpsbEID, LPTSTR lpName, BOOL bRefreshProfiles);
  14. HRESULT HrCreateNewFolder(LPIAB lpIAB, LPTSTR lpName, LPTSTR lpProfileID, BOOL bUserFolder, LPWABFOLDER lpParentFolder, BOOL bShared, LPSBinary lpsbNew);
  15. BOOL bDoesThisWABHaveAnyUsers(LPIAB lpIAB);
  16. BOOL bIsThereACurrentUser(LPIAB lpIAB);
  17. BOOL bAreWABAPIProfileAware(LPIAB lpIAB);
  18. BOOL bIsWABSessionProfileAware(LPIAB lpIAB);
  19. HRESULT HrGetUserProfileID(LPGUID lpUserGuid, LPTSTR szProfileID, ULONG cbProfileID);
  20. HRESULT HrGetIdentityName(LPIAB lpIAB, LPTSTR lpID, LPTSTR szUserName, ULONG cchUserName);
  21. HRESULT HrLogonAndGetCurrentUserProfile(HWND hWndParent, LPIAB lpIAB, BOOL bForceUI, BOOL bSwitchUser);
  22. void UninitUserIdentityManager(LPIAB lpIAB);
  23. #define DEFAULT_ID_HKEY 0x00000001
  24. #define DEFAULT_ID_PROFILEID 0x00000002
  25. #define DEFAULT_ID_NAME 0x00000004
  26. HRESULT HrGetDefaultIdentityInfo(LPIAB lpIAB, ULONG ulFlags, HKEY * lphKey, LPTSTR lpProfileID, ULONG cchProfileID, LPTSTR lpName, ULONG cchName);
  27. /*--------------------------------------------------------------------------*/
  28. /* Interface used for registering and issuing notification callbacks for identities */
  29. #define WAB_IDENTITYCHANGENOTIFY_METHODS(IPURE) \
  30. MAPIMETHOD_(HRESULT, QuerySwitchIdentities) \
  31. (THIS) IPURE; \
  32. MAPIMETHOD_(HRESULT, SwitchIdentities) \
  33. (THIS) IPURE; \
  34. MAPIMETHOD_(HRESULT, IdentityInformationChanged) \
  35. (THIS_ DWORD dwType) IPURE;
  36. /*
  37. #undef INTERFACE
  38. #define INTERFACE WAB_IdentityChangeNotify
  39. DECLARE_MAPI_INTERFACE_(WAB_IdentityChangeNotify, IUnknown)
  40. {
  41. BEGIN_INTERFACE
  42. MAPI_IUNKNOWN_METHODS(PURE)
  43. WAB_IDENTITYCHANGENOTIFY_METHODS(PURE)
  44. };
  45. */
  46. #undef INTERFACE
  47. #define INTERFACE struct _WAB_IDENTITYCHANGENOTIFY
  48. #undef METHOD_PREFIX
  49. #define METHOD_PREFIX WAB_IDENTITYCHANGENOTIFY_
  50. #undef LPVTBL_ELEM
  51. #define LPVTBL_ELEM lpvtbl
  52. #undef MAPIMETHOD_
  53. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, WAB_IDENTITYCHANGENOTIFY_)
  54. MAPI_IUNKNOWN_METHODS(IMPL)
  55. WAB_IDENTITYCHANGENOTIFY_METHODS(IMPL)
  56. #undef MAPIMETHOD_
  57. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, WAB_IDENTITYCHANGENOTIFY_)
  58. MAPI_IUNKNOWN_METHODS(IMPL)
  59. WAB_IDENTITYCHANGENOTIFY_METHODS(IMPL)
  60. #undef MAPIMETHOD_
  61. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  62. DECLARE_MAPI_INTERFACE(WAB_IDENTITYCHANGENOTIFY_)
  63. {
  64. BEGIN_INTERFACE
  65. MAPI_IUNKNOWN_METHODS(IMPL)
  66. WAB_IDENTITYCHANGENOTIFY_METHODS(IMPL)
  67. };
  68. typedef struct _WAB_IDENTITYCHANGENOTIFY
  69. {
  70. MAPIX_BASE_MEMBERS(WAB_IDENTITYCHANGENOTIFY)
  71. LPIAB lpIAB;
  72. } WABIDENTITYCHANGENOTIFY, * LPWABIDENTITYCHANGENOTIFY;
  73. HRESULT HrCreateIdentityChangeNotifyObject(LPIAB lpIAB, LPWABIDENTITYCHANGENOTIFY * lppWABIDCN);
  74. HRESULT HrRegisterUnregisterForIDNotifications( LPIAB lpIAB, BOOL bRegister);
  75. /*--------------------------------------------------------------------------*/