|
|
/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
crmapper.hxx
Abstract:
ADSIIS cert mapper object
Author:
Philippe Choquier (phillich) 10-Apr-1997
--*/
#if !defined( _CRMAPPER_INCLUDED )
#define _CRMAPPER_INCLUDED
class CIISDsCrMap : INHERIT_TRACKING, public IISDsCrMap, public IPrivateUnknown, public IPrivateDispatch, public IADsExtension, public INonDelegatingUnknown {
public:
CIISDsCrMap(); ~CIISDsCrMap();
HRESULT Init( LPWSTR pszServerName, LPWSTR pszMetabasePath );
HRESULT SetString( LONG lMethod, VARIANT vKey, BSTR bstrName, DWORD dwProp );
HRESULT OpenMd( LPWSTR pszOpenPath, DWORD dwPermission = METADATA_PERMISSION_READ );
HRESULT CloseMd( BOOL fSave = FALSE );
HRESULT DeleteMdObject( LPWSTR pszKey );
HRESULT CreateMdObject( LPWSTR pszKey );
HRESULT SetMdData( LPWSTR achIndex, DWORD dwProp, DWORD dwDataType, DWORD dwDataLen, LPBYTE pbData );
HRESULT GetMdData( LPWSTR achIndex, DWORD dwProp, DWORD dwDataType, LPDWORD pdwDataLen, LPBYTE* ppbData );
HRESULT Locate( LONG lMethod, VARIANT vKey, LPWSTR pszResKey );
static HRESULT AllocateObject( IUnknown *pUnkOuter, CCredentials& Credentials, CIISDsCrMap ** ppMap );
static HRESULT Create( IUnknown *pUnkOuter, REFIID riid, void **ppvObj );
public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(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
STDMETHOD(CreateMapping) ( VARIANT vCert, BSTR bstrNtAcct, BSTR bstrNtPwd, BSTR bstrName, LONG lEnabled );
STDMETHOD(GetMapping) ( LONG lMethod, VARIANT vKey, VARIANT* pvCert, VARIANT* pbstrNtAcct, VARIANT* pbstrNtPwd, VARIANT* pbstrName, VARIANT* plEnabled );
STDMETHOD(DeleteMapping) ( LONG lMethod, VARIANT vKey );
STDMETHOD(SetEnabled) ( LONG lMethod, VARIANT vKey, LONG lEnabled );
STDMETHOD(SetName) ( LONG lMethod, VARIANT vKey, BSTR bstrName );
STDMETHOD(SetPwd) ( LONG lMethod, VARIANT vKey, BSTR bstrPwd );
STDMETHOD(SetAcct) ( LONG lMethod, VARIANT vKey, BSTR bstrAcct );
private: HRESULT CreateMappingIIS6( VARIANT vCert, BSTR bstrNtAcct, BSTR bstrNtPwd, BSTR bstrName, LONG lEnabled );
HRESULT GetMappingIIS6( LONG lMethod, VARIANT vKey, VARIANT* pvCert, VARIANT* pbstrNtAcct, VARIANT* pbstrNtPwd, VARIANT* pbstrName, VARIANT* plEnabled );
HRESULT DeleteMappingIIS6( LONG lMethod, VARIANT vKey );
HRESULT SetEnabledIIS6( LONG lMethod, VARIANT vKey, LONG lEnabled );
HRESULT SetNameIIS6( LONG lMethod, VARIANT vKey, BSTR bstrName );
HRESULT SetPwdIIS6( LONG lMethod, VARIANT vKey, BSTR bstrPwd );
HRESULT SetAcctIIS6( LONG lMethod, VARIANT vKey, BSTR bstrAcct ); HRESULT LocateIIS6( LONG lMethod, VARIANT vKey, LPWSTR pszResKey ); HRESULT SetStringIIS6( LONG lMethod, VARIANT vKey, BSTR bstrName, DWORD dwProp );
IMSAdminBase * m_pcAdmCom; //interface pointer
METADATA_HANDLE m_hmd; BSTR m_ADsPath; CCredentials m_Credentials; IADs FAR * _pADs; CAggregateeDispMgr FAR * _pDispMgr; LPWSTR m_pszMetabasePath; LPWSTR m_pszServerName; BOOL _fDispInitialized; BOOL m_fIsIIS6; } ;
#define IISMAPPER_LOCATE_BY_CERT 1
#define IISMAPPER_LOCATE_BY_NAME 2
#define IISMAPPER_LOCATE_BY_ACCT 3
#define IISMAPPER_LOCATE_BY_INDEX 4
#endif
|