123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- //+-------------------------------------------------------------------------
- //
- // Microsoft Windows
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //
- //--------------------------------------------------------------------------
- cpp_quote("//=--------------------------------------------------------------------------=")
- cpp_quote("// msident.h")
- cpp_quote("//=--------------------------------------------------------------------------=")
- cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
- cpp_quote("//")
- cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
- cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
- cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
- cpp_quote("// PARTICULAR PURPOSE.")
- cpp_quote("//=--------------------------------------------------------------------------=")
- cpp_quote("")
- cpp_quote("#pragma comment(lib,\"uuid.lib\")")
- cpp_quote("")
- cpp_quote("//---------------------------------------------------------------------------=")
- cpp_quote("// Lightweight User Profile Interfaces.")
- cpp_quote("")
- cpp_quote("// --------------------------------------------------------------------------------")
- cpp_quote("// GUIDS")
- cpp_quote("// --------------------------------------------------------------------------------")
- cpp_quote("// {A9AE6C91-1D1B-11D2-B21A-00C04FA357FA}")
- cpp_quote("DEFINE_GUID(CLSID_UserIdentityManager, 0xa9ae6C91, 0x1d1b, 0x11d2, 0xb2, 0x1a, 0x0, 0xc0, 0x4f, 0xa3, 0x57, 0xfa);")
- cpp_quote("// {A9AE6C8E-1D1B-11D2-B21A-00C04FA357FA}")
- cpp_quote("DEFINE_GUID(IID_IUserIdentity, 0xa9ae6C8e, 0x1d1b, 0x11d2, 0xb2, 0x1a, 0x0, 0xc0, 0x4f, 0xa3, 0x57, 0xfa);")
- cpp_quote("// {A9AE6C8F-1D1B-11D2-B21A-00C04FA357FA}")
- cpp_quote("DEFINE_GUID(IID_IEnumUserIdentity, 0xa9ae6C8f, 0x1d1b, 0x11d2, 0xb2, 0x1a, 0x0, 0xc0, 0x4f, 0xa3, 0x57, 0xfa);")
- cpp_quote("// {A9AE6C90-1D1B-11D2-B21A-00C04FA357FA}")
- cpp_quote("DEFINE_GUID(IID_IUserIdentityManager, 0xa9ae6C90, 0x1d1b, 0x11d2, 0xb2, 0x1a, 0x0, 0xc0, 0x4f, 0xa3, 0x57, 0xfa);")
- cpp_quote("// {A9AE6C92-1D1B-11D2-B21A-00C04FA357FA}")
- cpp_quote("DEFINE_GUID(IID_IIdentityChangeNotify, 0xa9ae6C92, 0x1d1b, 0x11d2, 0xb2, 0x1a, 0x0, 0xc0, 0x4f, 0xa3, 0x57, 0xfa);")
- cpp_quote("// {A9AE6C93-1D1B-11D2-B21A-00C04FA357FA}")
- cpp_quote("DEFINE_GUID(IID_IPrivateIdentityManager, 0xa9ae6C93, 0x1d1b, 0x11d2, 0xb2, 0x1a, 0x0, 0xc0, 0x4f, 0xa3, 0x57, 0xfa);")
- cpp_quote("// {A9AE6C94-1D1B-11D2-B21A-00C04FA357FA}")
- cpp_quote("DEFINE_GUID(IID_IUserIdentity2, 0xa9ae6C94, 0x1d1b, 0x11d2, 0xb2, 0x1a, 0x0, 0xc0, 0x4f, 0xa3, 0x57, 0xfa);")
- cpp_quote("// {47172E6C-EA67-4ccd-B5CE-2EABBE051404}")
- cpp_quote("DEFINE_GUID(IID_IPrivateIdentityManager2, 0x47172e6c, 0xea67, 0x4ccd, 0xb5, 0xce, 0x2e, 0xab, 0xbe, 0x5, 0x14, 0x4);")
- cpp_quote("// {C28E26E6-219D-11d2-B200-0000F8085266}")
- cpp_quote("DEFINE_GUID(UID_GIBC_DEFAULT_USER, 0xc28e26e6, 0x219d, 0x11d2, 0xb2, 0x0, 0x0, 0x0, 0xf8, 0x8, 0x52, 0x66);")
- cpp_quote("// {C28E26E7-219D-11d2-B200-0000F8085266}")
- cpp_quote("DEFINE_GUID(UID_GIBC_CURRENT_USER, 0xc28e26e7, 0x219d, 0x11d2, 0xb2, 0x0, 0x0, 0x0, 0xf8, 0x8, 0x52, 0x66);")
- cpp_quote("// {C28E26E8-219D-11d2-B200-0000F8085266}")
- cpp_quote("DEFINE_GUID(UID_GIBC_OUTGOING_USER, 0xc28e26e8, 0x219d, 0x11d2, 0xb2, 0x0, 0x0, 0x0, 0xf8, 0x8, 0x52, 0x66);")
- cpp_quote("// {C28E26E9-219D-11d2-B200-0000F8085266}")
- cpp_quote("DEFINE_GUID(UID_GIBC_INCOMING_USER, 0xc28e26e9, 0x219d, 0x11d2, 0xb2, 0x0, 0x0, 0x0, 0xf8, 0x8, 0x52, 0x66);")
- cpp_quote("")
- cpp_quote("// --------------------------------------------------------------------------------")
- cpp_quote("// ERROR CODES")
- cpp_quote("// --------------------------------------------------------------------------------")
- cpp_quote("#define E_IDENTITIES_DISABLED _HRESULT_TYPEDEF_(0x80007110L)")
- cpp_quote("#define S_IDENTITIES_DISABLED _HRESULT_TYPEDEF_(0x00007110L)")
- cpp_quote("#define E_NO_CURRENT_IDENTITY _HRESULT_TYPEDEF_(0x80007111L)")
- cpp_quote("#define E_USER_CANCELLED _HRESULT_TYPEDEF_(0x80007112L)")
- cpp_quote("#define E_PROCESS_CANCELLED_SWITCH _HRESULT_TYPEDEF_(0x80007113L)")
- cpp_quote("#define E_IDENTITY_NOT_FOUND _HRESULT_TYPEDEF_(0x80007114L)")
- cpp_quote("#define E_IDENTITY_EXISTS _HRESULT_TYPEDEF_(0x80007115L)")
- cpp_quote("#define E_IDENTITY_CHANGING _HRESULT_TYPEDEF_(0x80007116L)")
- cpp_quote("")
- cpp_quote("#define CCH_IDENTITY_NAME_MAX_LENGTH (63)")
- #ifndef DO_NO_IMPORTS
- import "unknwn.idl";
- import "ocidl.idl";
- import "oleidl.idl";
- import "oaidl.idl";
- #endif
- [
- uuid(A9AE6C8E-1D1B-11D2-B21A-00C04FA357FA), // IID_IUserIdentity
- helpstring("User Identity interface")
- ]
- interface IUserIdentity : IUnknown
- {
- // Get cookie for this user
- HRESULT GetCookie([out] GUID *puidCookie);
- // Get user name
- HRESULT GetName([in] WCHAR *pszName, [in] ULONG ulBuffSize);
- // Get private registry location
- [local]
- HRESULT OpenIdentityRegKey([in]DWORD dwDesiredAccess, [out] HKEY *phKey);
- // Get a per-user folder
- HRESULT GetIdentityFolder([in] DWORD dwFlags, [in] WCHAR *pszPath, [in] ULONG ulBuffSize);
- cpp_quote("#define GIF_ROAMING_FOLDER 0x00000001")
- cpp_quote("#define GIF_NON_ROAMING_FOLDER 0x00000002")
- }
- [
- uuid(A9AE6C8F-1D1B-11D2-B21A-00C04FA357FA), // IID_IEnumUserIdentity
- helpstring("Enum User Identity interface"),
- odl
- ]
- interface IEnumUserIdentity : IUnknown
- {
- HRESULT Next(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- IUnknown **rgelt,
- [out] ULONG *pceltFetched);
- HRESULT Skip([in] ULONG celt);
- HRESULT Reset();
- HRESULT Clone([out] IEnumUserIdentity **ppenum);
- HRESULT GetCount([out] ULONG *pnCount);
- }
- [
- uuid(A9AE6C90-1D1B-11D2-B21A-00C04FA357FA), // IID_IUserIdentityManager
- helpstring("User Identity manager interface")
- ]
- interface IUserIdentityManager : IUnknown
- {
- // Get a list of all users
- HRESULT EnumIdentities([out] IEnumUserIdentity **ppEnumUser);
- // Show UI to manage users
- HRESULT ManageIdentities([in] HWND hwndParent, [in] DWORD dwFlags);
- cpp_quote("#define UIMI_CREATE_NEW_IDENTITY 0x00000001")
- // Show UI to logon a user
- HRESULT Logon([in] HWND hwndParent, [in] DWORD dwFlags, [out] IUserIdentity **ppIdentity);
- cpp_quote("#define UIL_FORCE_UI 0x80000001")
- // Log the current user off
- HRESULT Logoff([in] HWND hwndParent);
- // Get an arbitrary user by cookie
- HRESULT GetIdentityByCookie([in] GUID *uidCookie, [out] IUserIdentity **ppIdentity);
- }
- [
- uuid(A9AE6C92-1D1B-11D2-B21A-00C04FA357FA), // IID_IIdentityChangeNotify
- helpstring("User Identity change notification interface")
- ]
- interface IIdentityChangeNotify : IUnknown
- {
- // The user has requested a switch. Return E_PROCESS_CANCELLED_SWITCH
- // if the switch should not take place.
- HRESULT QuerySwitchIdentities();
- // A switch has occurred. Reload any settings necessary from the current identity
- HRESULT SwitchIdentities();
- // Some property (name, etc) of an identity has been updated or an identity has been added/deleted.
- HRESULT IdentityInformationChanged(DWORD dwType);
- cpp_quote("#define IIC_CURRENT_IDENTITY_CHANGED 0x00000001")
- cpp_quote("#define IIC_IDENTITY_CHANGED 0x00000002")
- cpp_quote("#define IIC_IDENTITY_DELETED 0x00000004")
- cpp_quote("#define IIC_IDENTITY_ADDED 0x00000008")
- }
- [
- uuid(A9AE6C93-1D1B-11D2-B21A-00C04FA357FA), // IID_IPrivateIdentityManager
- helpstring("PRIVATE User Identity user list manipulation interface")
- ]
- interface IPrivateIdentityManager : IUnknown
- {
- // Create a new identity with a given name.
- HRESULT CreateIdentity([in] WCHAR *pszName, [out] IUserIdentity **ppIdentity);
- // Verify a password for the indicated identity
- HRESULT ConfirmPassword([in] GUID *uidCookie, [in] WCHAR *pszPassword);
- }
- [
- uuid(15E84C92-2E4D-11d3-9C92-00104B35E7F9), // IID_IPrivateIdentityManager2
- helpstring("PRIVATE User Identity user list manipulation interface 2")
- ]
- interface IPrivateIdentityManager2 : IUnknown
- {
- // Create a new identity with a given name.
- HRESULT CreateIdentity2([in] WCHAR *pszName, [in] WCHAR *pszPassword, [out] IUserIdentity **ppIdentity);
- // Removes an identity
- HRESULT DestroyIdentity([in] GUID *uidCookie);
- // Logon as named user with password
- HRESULT LogonAs([in] WCHAR *pszName, [in] WCHAR *pszPassword, [out] IUserIdentity **ppIdentity);
- HRESULT SetDefaultIdentity([in] GUID *puidCookie);
- HRESULT GetDefaultIdentity([out] GUID *puidCookie);
- }
- cpp_quote("extern const IID CLSID_UserIdentityManager;")
- [
- uuid(A9AE6C94-1D1B-11D2-B21A-00C04FA357FA), // IID_IUserIdentity2
- helpstring("User Identity interface")
- ]
- interface IUserIdentity2 : IUserIdentity
- {
- // Get ordinal for this user
- HRESULT GetOrdinal([out] DWORD* dwOrdinal);
- HRESULT SetName([in] WCHAR *pszName);
- HRESULT ChangePassword([in] WCHAR *szOldPass, [in] WCHAR *szNewPass);
- }
|