Leaked source code of windows server 2003
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.
 
 
 
 
 
 

120 lines
4.7 KiB

// Trust.h: Definition of the CTrust class
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TRUST_H__BB315DAC_1A59_4EAC_99A0_2BFEFE6F1501__INCLUDED_)
#define AFX_TRUST_H__BB315DAC_1A59_4EAC_99A0_2BFEFE6F1501__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <ntsecapi.h>
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// CTrust
#include "ErrDct.hpp"
typedef void (*PPROCESSFN)(void * arg,void * data);
class CTrust :
public ITrust,
public CComObjectRoot,
public IDispatchImpl<IMcsDomPlugIn, &IID_IMcsDomPlugIn, &LIBID_TRUSTMGRLib>,
public CComCoClass<CTrust,&CLSID_Trust>,
public ISecPlugIn
{
public:
CTrust() {}
BEGIN_COM_MAP(CTrust)
COM_INTERFACE_ENTRY(ITrust)
COM_INTERFACE_ENTRY(IMcsDomPlugIn)
COM_INTERFACE_ENTRY(ISecPlugIn)
END_COM_MAP()
//DECLARE_NOT_AGGREGATABLE(CTrust)
// Remove the comment from the line above if you don't want your object to
// support aggregation.
DECLARE_REGISTRY_RESOURCEID(IDR_Trust)
// ITrust
public:
STDMETHOD(CreateTrust)(BSTR domTrusting, BSTR domTrusted, BOOL bBidirectional, /*[out]*/BOOL *pbErrorFromTrusting, /*[out]*/BOOL *pbErrorFromTrusted);
STDMETHOD(QueryTrust)(BSTR domainSource, BSTR domainTrust, /*[out]*/IUnknown ** pVarSet);
STDMETHOD(QueryTrusts)(BSTR domainSource,BSTR domainTarget,/*[in]*/BSTR sLogFile,/*out*/IUnknown ** pVarSet);
STDMETHOD(CreateTrustWithCreds)(BSTR domTrusting, BSTR domTrusted,
BSTR credTrustingDomain, BSTR credTrustingAccount, BSTR credTrustingPassword,
BSTR credTrustedDomain, BSTR credTrustedAccount, BSTR credTrustedPassword, BOOL bBidirectional, /*[out]*/BOOL *pbErrorFromTrusting, /*[out]*/BOOL *pbErrorFromTrusted);
// IMcsDomPlugIn
public:
STDMETHOD(GetRequiredFiles)(/* [out] */SAFEARRAY ** pArray);
STDMETHOD(GetRegisterableFiles)(/* [out] */SAFEARRAY ** pArray);
STDMETHOD(GetDescription)(/* [out] */ BSTR * description);
STDMETHOD(PreMigrationTask)(/* [in] */IUnknown * pVarSet);
STDMETHOD(PostMigrationTask)(/* [in] */IUnknown * pVarSet);
STDMETHOD(GetName)(/* [out] */BSTR * name);
STDMETHOD(GetResultString)(/* [in] */IUnknown * pVarSet,/* [out] */ BSTR * text);
STDMETHOD(StoreResults)(/* [in] */IUnknown * pVarSet);
STDMETHOD(ConfigureSettings)(/*[in]*/IUnknown * pVarSet);
// ISecPlugIn
public:
STDMETHOD(Verify)(/*[in,out]*/ULONG * data,/*[in]*/ULONG cbData);
protected:
long EnumerateTrustingDomains(WCHAR * domain,BOOL bIsTarget,IVarSet * pVarSet,long ndxStart);
long EnumerateTrustedDomains(WCHAR * domain,BOOL bIsTarget,IVarSet * pVarSet, long ndxStart);
LONG FindInboundTrust(IVarSet * pVarSet,WCHAR * sName,LONG max);
HRESULT
CTrust::CheckAndCreate(
WCHAR * trustingDomain,
WCHAR * trustedDomain,
WCHAR * credDomainTrusting,
WCHAR * credAccountTrusting,
WCHAR * credPasswordTrusting,
WCHAR * credDomainTrusted,
WCHAR * credAccountTrusted,
WCHAR * credPasswordTrusted,
BOOL bCreate,
BOOL bBidirectional,
BOOL * pbErrorFromTrusting,
BOOL * pbErrorFromTrusted
);
HRESULT
CTrust::CheckAndCreateTrustingSide(
LSA_HANDLE hTrusting,
WCHAR * trustingDomain,
WCHAR * trustedDomain,
WCHAR * trustingComp,
WCHAR * trustedComp,
WCHAR * trustedDNSName,
BYTE * trustedSid,
BOOL bCreate,
BOOL bBidirectional,
BOOL bDownLevel,
BOOL * pbErrorFromTrusting,
BOOL * pbErrorFromTrusted
);
HRESULT
CTrust::CheckAndCreateTrustedSide(
LSA_HANDLE hTrusted,
WCHAR * trustingDomain,
WCHAR * trustedDomain,
WCHAR * trustingComp,
WCHAR * trustedComp,
WCHAR * trustingDNSName,
BYTE * trustingSid,
BOOL bCreate,
BOOL bBidirectional,
BOOL bDownLevel,
BOOL * pbErrorFromTrusting,
BOOL * pbErrorFromTrusted
);
};
#endif // !defined(AFX_TRUST_H__BB315DAC_1A59_4EAC_99A0_2BFEFE6F1501__INCLUDED_)