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

141 lines
2.3 KiB
C++

#define COMPUTER_Group 1
#define DOMAIN_Group 2
class CNDSGroup;
class CNDSGroup : INHERIT_TRACKING,
public IADsGroup,
public IDirectoryObject,
public IDirectorySearch,
public IDirectorySchemaMgmt,
public IADsPropertyList
{
public:
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
DECLARE_STD_REFCOUNTING
DECLARE_IDispatch_METHODS
DECLARE_IADs_METHODS
DECLARE_IDirectoryObject_METHODS
DECLARE_IDirectorySearch_METHODS
DECLARE_IDirectorySchemaMgmt_METHODS
DECLARE_IADsGroup_METHODS
DECLARE_IADsPropertyList_METHODS
CNDSGroup::CNDSGroup();
CNDSGroup::~CNDSGroup();
static
HRESULT
CNDSGroup::CreateGroup(
IADs *pADs,
CCredentials& Credentials,
REFIID riid,
void **ppvObj
);
static
HRESULT
CNDSGroup::AllocateGroupObject(
IADs * pADs,
CCredentials& Credentials,
CNDSGroup ** ppGroup
);
protected:
IADs FAR * _pADs;
IDirectoryObject FAR * _pDSObject;
IDirectorySearch FAR * _pDSSearch;
IDirectorySchemaMgmt FAR * _pDSAttrMgmt;
IADsPropertyList FAR * _pADsPropList;
CDispatchMgr FAR * _pDispMgr;
CCredentials _Credentials;
};
HRESULT
VarFindEntry(
LPWSTR pszNDSPathName,
VARIANT varMembers
);
HRESULT
VarAddEntry(
LPWSTR pszNDSPathName,
VARIANT varMembers,
VARIANT * pvarNewMembers
);
HRESULT
VarMultipleAddEntry(
LPWSTR pszNDSPathName,
VARIANT varMembers,
VARIANT * pvarNewMembers
);
HRESULT
VarSingleAddEntry(
LPWSTR pszNDSPathName,
VARIANT varMembers,
VARIANT * pvarNewMembers
);
HRESULT
VarRemoveEntry(
LPWSTR pszNDSPathName,
VARIANT varMembers,
VARIANT * pvarNewMembers
);
HRESULT
VarMultipleRemoveEntry(
LPWSTR pszNDSPathName,
VARIANT varMembers,
VARIANT * pvarNewMembers
);
HRESULT
VarSingleRemoveEntry(
LPWSTR pszNDSPathName,
VARIANT varMembers,
VARIANT * pvarNewMembers
);
HRESULT
AddEntry(
IADs * pADs,
LPWSTR pszAttribute,
LPWSTR pszValue
);
HRESULT
RemoveEntry(
IADs * pADs,
LPWSTR pszAttribute,
LPWSTR pszValue
);