114 lines
4.1 KiB
C
114 lines
4.1 KiB
C
/*
|
|
File userdb.h
|
|
|
|
Definition of the local user database object.
|
|
|
|
Paul Mayfield, 10/8/97
|
|
*/
|
|
|
|
|
|
#ifndef __userdb_h
|
|
#define __userdb_h
|
|
|
|
#include <windows.h>
|
|
|
|
// Creates a user data base object, initializing it from the local user database
|
|
// and returning a handle to it.
|
|
DWORD usrOpenLocalDatabase (HANDLE * hUserDatabase);
|
|
|
|
// Frees up the resources held by a user database object flushing all
|
|
// changes to the system.
|
|
DWORD usrCloseLocalDatabase (HANDLE hUserDatabase);
|
|
|
|
// Flushes the data written to the database object to the system
|
|
DWORD usrFlushLocalDatabase (HANDLE hUserDatabase);
|
|
|
|
// Rolls back the local user database so that it is in
|
|
// the same state it was in when usrOpenLocalDatabase was
|
|
// called. The rollback is automatically flushed to the
|
|
// system. (i.e. usrFlushLocalDatabase doesn't need to follow)
|
|
DWORD usrRollbackLocalDatabase (HANDLE hUserDatabase);
|
|
|
|
// Reloads the local user database from the system
|
|
DWORD usrReloadLocalDatabase (HANDLE hUserDatabase);
|
|
|
|
// Gets global user data
|
|
DWORD usrGetEncryption (HANDLE hUserDatabase, PBOOL pbEncrypted);
|
|
|
|
// Gets user encryption setting
|
|
DWORD usrSetEncryption (HANDLE hUserDatabase, BOOL bEncrypt);
|
|
|
|
// Returns whether dcc connections are allowed to bypass authentication
|
|
DWORD usrGetDccBypass (HANDLE hUserDatabase, PBOOL pbBypass);
|
|
|
|
// Sets whether dcc connections are allowed to bypass authentication
|
|
DWORD usrSetDccBypass (HANDLE hUserDatabase, BOOL bBypass);
|
|
|
|
// Reports whether the user database is pure. (i.e. nobody has
|
|
// gone into MMC and messed with it).
|
|
DWORD usrIsDatabasePure (HANDLE hUserdatabase, PBOOL pbPure);
|
|
|
|
// Marks the user database's purity
|
|
DWORD usrSetDatabasePure(HANDLE hUserDatabase, BOOL bPure);
|
|
|
|
// Gives the count of users stored in the user database object
|
|
DWORD usrGetUserCount (HANDLE hUserDatabase, LPDWORD lpdwCount);
|
|
|
|
// Adds a user to the given database. This user will not be
|
|
// added to the system's local user database until this database
|
|
// object is flushed (and as long as Rollback is not called on
|
|
// this database object)
|
|
//
|
|
// On success, an optional handle to the user is returned
|
|
//
|
|
DWORD usrAddUser (HANDLE hUserDatabase, PWCHAR pszName, OPTIONAL HANDLE * phUser);
|
|
|
|
// Deletes the user at the given index
|
|
DWORD usrDeleteUser (HANDLE hUserDatabase, DWORD dwIndex);
|
|
|
|
// Gives a handle to the user at the given index
|
|
DWORD usrGetUserHandle (HANDLE hUserDatabase, DWORD dwIndex, HANDLE * hUser);
|
|
|
|
// Gets a pointer to the name of the user (do not modify this)
|
|
DWORD usrGetName (HANDLE hUser, PWCHAR* pszName);
|
|
|
|
// Fills the given buffer with the full name of the user
|
|
DWORD usrGetFullName (HANDLE hUser, IN PWCHAR pszBuffer, IN OUT LPDWORD lpdwBufSize);
|
|
|
|
// Commits the full name of a user
|
|
DWORD usrSetFullName (HANDLE hUser, PWCHAR pszFullName);
|
|
|
|
// Commits the password of a user
|
|
DWORD usrSetPassword (HANDLE hUser, PWCHAR pszNewPassword);
|
|
|
|
// Fills the given buffer with a friendly display name (in the form username (fullname))
|
|
DWORD usrGetDisplayName (HANDLE hUser, IN PWCHAR pszBuffer, IN OUT LPDWORD lpdwBufSize);
|
|
|
|
// Determines whether users has callback/dialin priveleges.
|
|
DWORD usrGetDialin (HANDLE hUser, BOOL* bEnabled);
|
|
|
|
// Determines which if any callback priveleges are granted to a given user. Either (or both) of
|
|
// bAdminOnly and bCallerSettable can be NULL
|
|
DWORD usrGetCallback (HANDLE hUser, BOOL* bAdminOnly, BOOL * bCallerSettable);
|
|
|
|
// Enable/disable dialin privelege.
|
|
DWORD usrEnableDialin (HANDLE hUser, BOOL bEnable);
|
|
|
|
// The flags are evaluated in the following order with whichever condition
|
|
// being satisfied fist defining the behavior of the function.
|
|
// bNone == TRUE => Callback is disabled for the user
|
|
// bCaller == TRUE => Callback is set to caller-settable
|
|
// bAdmin == TRUE => Callback is set to a predefine callback number set in usrSetCallbackNumer
|
|
// All 3 are FALSE => No op
|
|
DWORD usrEnableCallback (HANDLE hUser, BOOL bNone, BOOL bCaller, BOOL bAdmin);
|
|
|
|
// Retreives a pointer to the callback number of the given user
|
|
DWORD usrGetCallbackNumber(HANDLE hUser, PWCHAR * lpzNumber);
|
|
|
|
// Sets the callback number of the given user. If lpzNumber is NULL, an empty phone number
|
|
// is copied.
|
|
DWORD usrSetCallbackNumber(HANDLE hUser, PWCHAR lpzNumber);
|
|
|
|
|
|
#endif
|