WindowsXP-SP1/ds/adsi/msext/cuser.hxx

143 lines
2.7 KiB
C++

class CLDAPUser;
//
// Structure definition for list used to track servers support
// for SSL to speedup Set/ChangePassword
//
typedef struct _ServSSLEntry
{
LPWSTR pszServerName;
DWORD dwFlags;
struct _ServSSLEntry *pNext;
} SERVSSLENTRY, *PSERVSSLENTRY;
//
// These are bit masks
//
#define SERVER_STATUS_UNKNOWN 0x0
#define SERVER_DOES_NOT_SUPPORT_SSL 0x1
#define SERVER_DOES_NOT_SUPPORT_KERBEROS 0x2
#define SERVER_DOES_NOT_SUPPORT_NETUSER 0x4
//
// Routines to Access/Manipulate and delete the list
//
DWORD ReadServerSupportsSSL( LPWSTR pszServerName);
HRESULT AddServerSSLSupportStatus(
LPWSTR pszServerName,
DWORD dwFlags
);
void FreeServerSSLSupportList();
class CLDAPUser : INHERIT_TRACKING,
public IADsUser,
public IPrivateUnknown,
public IPrivateDispatch,
public IADsExtension,
public INonDelegatingUnknown
{
public:
//
// IUnknown methods
//
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
DECLARE_DELEGATING_REFCOUNTING
//
// INonDelegatingUnkown methods declaration for NG_QI, definition for
// NG_AddRef adn NG_Release.
//
STDMETHOD(NonDelegatingQueryInterface)(THIS_
const IID&,
void **
);
DECLARE_NON_DELEGATING_REFCOUNTING
DECLARE_IDispatch_METHODS
DECLARE_IPrivateUnknown_METHODS
DECLARE_IPrivateDispatch_METHODS
STDMETHOD(Operate)(
THIS_
DWORD dwCode,
VARIANT varUserName,
VARIANT varPassword,
VARIANT varReserved
);
STDMETHOD(PrivateGetIDsOfNames)(
THIS_
REFIID riid,
OLECHAR FAR* FAR* rgszNames,
unsigned int cNames,
LCID lcid,
DISPID FAR* rgdispid) ;
STDMETHOD(PrivateInvoke)(
THIS_
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS FAR* pdispparams,
VARIANT FAR* pvarResult,
EXCEPINFO FAR* pexcepinfo,
unsigned int FAR* puArgErr
) ;
DECLARE_IADs_METHODS
DECLARE_IADsUser_METHODS
CLDAPUser::CLDAPUser();
CLDAPUser::~CLDAPUser();
static
HRESULT
CLDAPUser::CreateUser(
IUnknown *pUnkOuter,
REFIID riid,
void **ppvObj
);
protected:
IADs * _pADs;
CAggregateeDispMgr FAR * _pDispMgr;
CCredentials _Credentials;
BOOL _fDispInitialized;
private:
HRESULT
InitCredentials(
VARIANT * pvarUserName,
VARIANT * pvarPassword,
VARIANT * pdwAuthFlags
);
};