windows-nt/Source/XPSP1/NT/ds/adsi/winnt/ccomp.hxx
2020-09-26 16:20:57 +08:00

113 lines
2.3 KiB
C++

typedef struct _comp_info_4
{
WCHAR szOwner[MAX_PATH];
WCHAR szOS[MAX_PATH];
WCHAR szOSVersion[MAX_PATH];
WCHAR szDivision[MAX_PATH];
WCHAR szProcessor[MAX_PATH];
WCHAR szProcessorCount[MAX_PATH];
}COMP_INFO_4, *PCOMP_INFO_4, *LPCOMP_INFO_4;
class CWinNTComputer;
class CWinNTComputer : INHERIT_TRACKING,
public CCoreADsObject,
public ISupportErrorInfo,
public IADsComputer,
public IADsComputerOperations,
public IADsContainer,
public IADsPropertyList,
public INonDelegatingUnknown,
public IADsExtension
{
public:
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// INonDelegatingUnknown methods
STDMETHOD(NonDelegatingQueryInterface)(THIS_
const IID&,
void **
);
DECLARE_NON_DELEGATING_REFCOUNTING
DECLARE_IDispatch_METHODS
DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADs_METHODS
DECLARE_IADsComputer_METHODS
DECLARE_IADsComputerOperations_METHODS
DECLARE_IADsContainer_METHODS
DECLARE_IADsPropertyList_METHODS
DECLARE_IADsExtension_METHODS
CWinNTComputer::CWinNTComputer();
CWinNTComputer::~CWinNTComputer();
static
HRESULT
CWinNTComputer::CreateComputer(
BSTR Parent,
BSTR DomainName,
BSTR ComputerName,
DWORD dwObjectState,
REFIID riid,
CWinNTCredentials& Credentials,
void **ppvObj
);
static
HRESULT
CWinNTComputer::AllocateComputerObject(
CWinNTComputer ** ppComputer
);
STDMETHOD(GetInfo)(THIS_ DWORD dwApiLevel, BOOL fExplicit) ;
STDMETHOD(ImplicitGetInfo)(void);
HRESULT
CWinNTComputer::UnMarshall_Level4(
BOOL fExplicit,
LPCOMP_INFO_4 pCompInfo4
);
protected:
VARIANT _vFilter;
BSTR _DomainName;
CAggregatorDispMgr FAR * _pDispMgr;
CADsExtMgr FAR * _pExtMgr;
CPropertyCache FAR * _pPropertyCache;
CWinNTCredentials _Credentials;
BOOL _fCredentialsBound;
HRESULT _hrBindingResult;
BOOL _fNoWKSTA;
private:
HRESULT
RefCredentials();
};