103 lines
3.7 KiB
C
103 lines
3.7 KiB
C
|
/************************************************
|
||
|
MultiUsr.h
|
||
|
|
||
|
Header for multiple user functionality.
|
||
|
|
||
|
Initially by Christopher Evans (cevans) 7/16/98
|
||
|
*************************************************/
|
||
|
#ifndef _MULTIUSR_H
|
||
|
#define _MULTIUSR_H
|
||
|
|
||
|
|
||
|
#define CCH_USERPASSWORD_MAX_LENGTH 16
|
||
|
#define CCH_USERNAME_MAX_LENGTH CCH_IDENTITY_NAME_MAX_LENGTH
|
||
|
typedef struct
|
||
|
{
|
||
|
BOOL fUsePassword;
|
||
|
BOOL fPasswordValid;
|
||
|
GUID uidUserID;
|
||
|
TCHAR szUsername[CCH_USERNAME_MAX_LENGTH];
|
||
|
TCHAR szPassword[CCH_USERPASSWORD_MAX_LENGTH];
|
||
|
}USERINFO, *LPUSERINFO;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
TCHAR szUsername[CCH_USERNAME_MAX_LENGTH];
|
||
|
BOOL fDeleteMessages;
|
||
|
}DELETEUSERDIALOGINFO, *LPDELETEUSERDIALOGINFO;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
TCHAR szPassword[CCH_USERPASSWORD_MAX_LENGTH];
|
||
|
TCHAR szMsg[255];
|
||
|
}CONFIRMPWDDIALOGINFO, *LPCONFIRMPWDDIALOGINFO;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
BOOL fUsePassword;
|
||
|
TCHAR szPassword[CCH_USERPASSWORD_MAX_LENGTH];
|
||
|
}PASSWORD_STORE;
|
||
|
|
||
|
|
||
|
#define ID_LOGIN_AS_LAST 0
|
||
|
#define ID_LOGIN_ASK_ME 1
|
||
|
|
||
|
#define ASK_BEFORE_LOGIN (0xffffffff)
|
||
|
|
||
|
class CStringList
|
||
|
{
|
||
|
public:
|
||
|
CStringList();
|
||
|
virtual ~CStringList();
|
||
|
|
||
|
inline int GetLength (void) {return m_count;}
|
||
|
void AddString (TCHAR* lpszInString);
|
||
|
void RemoveString (int iIndex);
|
||
|
TCHAR* GetString (int iIndex);
|
||
|
void Sort ();
|
||
|
private:
|
||
|
int m_count;
|
||
|
int m_ptrCount;
|
||
|
TCHAR** m_strings;
|
||
|
};
|
||
|
|
||
|
EXTERN_C void MU_Init();
|
||
|
CStringList* MU_GetUsernameList(void);
|
||
|
HRESULT MU_UsernameToUserId(TCHAR *lpszUsername, GUID *puidUserId);
|
||
|
BOOL MU_GetPasswordForUsername(TCHAR *lpszInUsername, TCHAR *szOutPassword, BOOL *pfUsePassword);
|
||
|
BOOL MU_UsernameExists(TCHAR* lpszUsername);
|
||
|
BOOL MU_GetUserInfo(GUID *puidUserId, LPUSERINFO lpUserInfo);
|
||
|
BOOL MU_SetUserInfo(LPUSERINFO lpUserInfo);
|
||
|
HRESULT MU_SwitchToUser(TCHAR *lpszUsername);
|
||
|
void MU_SwitchToLastUser();
|
||
|
HRESULT MU_GetUserDirectoryRoot(GUID *uidUserID, DWORD dwFlags, WCHAR *lpszUserRoot, int cch);
|
||
|
ULONG MU_CountUsers(void);
|
||
|
HRESULT MU_GetRegRootForUserID(GUID *puidUserId, LPSTR pszPath);
|
||
|
HRESULT MU_CreateUser(LPUSERINFO lpUserInfo);
|
||
|
HRESULT MU_DeleteUser(GUID *puidUserId);
|
||
|
LPCTSTR MU_GetRegRoot();
|
||
|
HRESULT MU_MakeDefaultUser(GUID *puidUserId);
|
||
|
BOOL MU_GetCurrentUserID(GUID *puidUserId);
|
||
|
BOOL MU_GetDefaultUserID(GUID *puidUserId);
|
||
|
BOOL MU_UserIdToUsername(GUID *puidUserId, TCHAR *lpszUsername, ULONG cch);
|
||
|
BOOL MU_IdentitiesDisabled();
|
||
|
DWORD MU_GetDefaultOptionIndex(HWND hwndCombo);
|
||
|
DWORD MU_GetLoginOptionIndex(HWND hwndCombo);
|
||
|
void MU_GetLoginOption(GUID *puidStartAs);
|
||
|
BOOL MU_SetLoginOption(HWND hwndCombo, LRESULT dOption);
|
||
|
BOOL MU_CanEditIdentity(HWND hwndParent, GUID *puidIdentityId);
|
||
|
DWORD MU_GenerateDirectoryNameForIdentity(GUID *puidIdentityId);
|
||
|
HRESULT MU_GetDirectoryIdForIdentity(GUID *puidIdentityId, DWORD *pdwDirId);
|
||
|
HRESULT MU_GetDirectoryIdForIdentity(GUID *puidIdentityId, DWORD *pdwDirId);
|
||
|
HRESULT _ClaimNextUserId(GUID *puidUserId);
|
||
|
void _MakeDefaultFirstUser();
|
||
|
BOOL _FillListBoxWithUsernames(HWND hListbox);
|
||
|
BOOL _FillComboBoxWithUsernames(HWND hCombobox, HWND hListbox);
|
||
|
void _ResetRememberedLoginOption(void);
|
||
|
void _RememberLoginOption(HWND hwndCombo);
|
||
|
void _MigratePasswords();
|
||
|
|
||
|
#endif _MULTIUSR_H
|