Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#ifndef _Nametranslate
#define _NameTrsnslate
#include "ntdsapi.h"
class CNameTranslate;
typedef struct _DomainToHandle { LPWSTR szDomain; HANDLE hDS; } DomainToHandle;
#define STRINGPLEX_INC 10
class CDomainToHandle { public: CDomainToHandle(); ~CDomainToHandle(); HRESULT Init(); void Free(); HRESULT AddElement(LPWSTR szValue, HANDLE hDS); HRESULT Find(LPWSTR szValue, HANDLE *phDS); DWORD NumElements(); private: DomainToHandle *m_rgMap; DWORD m_cszMax; DWORD m_iszNext; };
class CNameTranslate : INHERIT_TRACKING, public IADsNameTranslate
{ public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
DECLARE_STD_REFCOUNTING
DECLARE_IDispatch_METHODS
STDMETHOD(Init)(THIS_ long lnType, BSTR bstrADsPath); STDMETHOD(InitEx)(THIS_ long lnType, BSTR bstrADsPath, BSTR bstrUser,BSTR bstrDomain,BSTR bstrPassword); STDMETHOD(Set)(THIS_ long dwSetType, BSTR bstrADsPath); STDMETHOD(Get)(THIS_ long dwFormatType, BSTR FAR *pbstrADsPath); STDMETHOD(GetEx)(THIS_ long dwFormatType, VARIANT FAR *pbstrADsPath); STDMETHOD(SetEx)(THIS_ long dwFormatType, VARIANT bstrADsPath); STDMETHOD(put_ChaseReferral)(THIS_ long lnChase) ; \ CNameTranslate::CNameTranslate();
CNameTranslate::~CNameTranslate();
static HRESULT CNameTranslate::CreateNameTranslate( REFIID riid, void **ppvObj );
static HRESULT CNameTranslate::AllocateNameTranslateObject( CNameTranslate ** ppNameTranslate );
private: HANDLE _hDS; WCHAR _szGuid[MAX_TOKEN_LENGTH]; LPWSTR *_rgszGuid; HANDLE *_rgDomainHandle; DWORD _cGuid; BOOLEAN _bChaseReferral; BOOLEAN _bAuthSet; RPC_AUTH_IDENTITY_HANDLE _AuthIdentity; CDomainToHandle *_pDomainHandle;
protected: CDispatchMgr FAR * _pDispMgr; };
#endif
|