104 lines
2.4 KiB
C++
104 lines
2.4 KiB
C++
#ifndef _SYSTEM_HXX
|
|
#define _SYSTEM_HXX
|
|
|
|
//
|
|
// Function pointer typedefs
|
|
//
|
|
|
|
typedef BOOLEAN (SEC_ENTRY *GETUSERNAMEEX)(
|
|
int NameFormat,
|
|
LPWSTR lpNameBuffer,
|
|
PULONG nSize);
|
|
|
|
typedef BOOLEAN (SEC_ENTRY *GETCOMPUTEROBJECTNAME)(
|
|
int NameFormat,
|
|
LPWSTR lpNameBuffer,
|
|
PULONG nSize);
|
|
|
|
typedef DWORD (WINAPI *DSGETDCNAME)(
|
|
IN LPCWSTR ComputerName OPTIONAL,
|
|
IN LPCWSTR DomainName OPTIONAL,
|
|
IN GUID *DomainGuid OPTIONAL,
|
|
IN LPCWSTR SiteName OPTIONAL,
|
|
IN ULONG Flags,
|
|
OUT PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo);
|
|
|
|
typedef DWORD (WINAPI *DSENUMERATEDOMAINTRUSTS)(
|
|
IN LPWSTR ServerName OPTIONAL,
|
|
IN ULONG Flags,
|
|
OUT PDS_DOMAIN_TRUSTS *Domains,
|
|
OUT PULONG DomainCount
|
|
);
|
|
|
|
//
|
|
// Forward declaration
|
|
//
|
|
|
|
class CADSystemInfo;
|
|
|
|
|
|
class CADSystemInfo : INHERIT_TRACKING,
|
|
public ISupportErrorInfo,
|
|
public IADsADSystemInfo
|
|
|
|
{
|
|
public:
|
|
|
|
/* IUnknown methods */
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
|
|
|
|
DECLARE_STD_REFCOUNTING
|
|
|
|
DECLARE_IDispatch_METHODS
|
|
|
|
DECLARE_ISupportErrorInfo_METHODS
|
|
|
|
DECLARE_IADsADSystemInfo_METHODS
|
|
|
|
CADSystemInfo::CADSystemInfo();
|
|
|
|
CADSystemInfo::~CADSystemInfo();
|
|
|
|
static
|
|
HRESULT
|
|
CADSystemInfo::CreateADSystemInfo(
|
|
REFIID riid,
|
|
void **ppvObj
|
|
);
|
|
|
|
static
|
|
HRESULT
|
|
CADSystemInfo::AllocateADSystemInfoObject(
|
|
CADSystemInfo ** ppADSystemInfo
|
|
);
|
|
|
|
protected:
|
|
|
|
HRESULT GetNCHead(LPTSTR szNCName, IADs **pADs );
|
|
HRESULT GetRootDSE(IADs **pADs );
|
|
HRESULT GetSecur32Handle(HINSTANCE *pHandle);
|
|
HRESULT GetfSMORoleOwner(LPTSTR szNCName, BSTR *bstrRoleOwner);
|
|
DSGETDCNAME GetDsGetDcName();
|
|
DSENUMERATEDOMAINTRUSTS GetDsEnumerateDomainTrusts();
|
|
|
|
HINSTANCE _hSecur32;
|
|
BOOL _Secur32LoadAttempted;
|
|
HINSTANCE _hNetApi32;
|
|
BOOL _NetApi32LoadAttempted;
|
|
CAggregatorDispMgr FAR * _pDispMgr;
|
|
|
|
};
|
|
|
|
//
|
|
// Class factory
|
|
//
|
|
|
|
class CADSystemInfoCF : public StdClassFactory
|
|
{
|
|
public:
|
|
STDMETHOD(CreateInstance)(IUnknown * pUnkOuter, REFIID iid, LPVOID * ppv);
|
|
};
|
|
|
|
#endif // ifndef _SYSTEM_HXX
|
|
|