|
|
#define COMPUTER_Group 1
#define DOMAIN_Group 2
class CWinNTGroup;
class CWinNTGroup : INHERIT_TRACKING, public CCoreADsObject, public ISupportErrorInfo, public IADsGroup, public IADsPropertyList, public INonDelegatingUnknown, public IADsExtension { friend class CWinNTGroupGenInfo;
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_IADsGroup_METHODS
DECLARE_IADsPropertyList_METHODS
DECLARE_IADsExtension_METHODS
CWinNTGroup::CWinNTGroup();
CWinNTGroup::~CWinNTGroup();
static HRESULT CWinNTGroup::CreateGroup( BSTR Parent, ULONG ParentType, BSTR DomainName, BSTR ServerName, BSTR GroupName, ULONG GroupType, DWORD dwObjectState, REFIID riid, CWinNTCredentials& Credentials, void **ppvObj );
static HRESULT CWinNTGroup::CreateGroup( BSTR Parent, ULONG ParentType, BSTR DomainName, BSTR ServerName, BSTR GroupName, ULONG GroupType, DWORD dwObjectState, PSID pSid, // OPTIONAL
REFIID riid, CWinNTCredentials& Credentials, void **ppvObj ); static HRESULT CWinNTGroup::AllocateGroupObject( CWinNTGroup ** ppGroup );
STDMETHOD(GetInfo)(THIS_ DWORD dwApiLevel, BOOL fExplicit) ;
STDMETHOD(ImplicitGetInfo)(void);
//
// Helper to delete based on SID.
//
HRESULT DeleteBySID( LPWSTR pszStringSID, LPWSTR pszServerName );
//
// Helper to add based on SID.
//
HRESULT AddBySID( LPWSTR pszStringSID, LPWSTR pszServerName );
protected:
HRESULT CWinNTGroup::UnMarshall(LPBYTE lpBuffer, DWORD dwApiLevel, BOOL fExplicit);
HRESULT CWinNTGroup::UnMarshall_Level1(BOOL fExplicit, LPBYTE pBuffer);
HRESULT CWinNTGroup::Prepopulate( BOOL fExplicit, PSID pSid // OPTIONAL
);
HRESULT CWinNTGroup::Marshall_Set_Level1( LPWSTR szHostServerName, BOOL fExplicit, LPBYTE pBuffer );
HRESULT CWinNTGroup::Marshall_Create_Level1( LPWSTR szHostServerName, LPGROUP_INFO_1 pGroupInfo1 );
HRESULT CWinNTGroup::GetStandardInfo( DWORD dwApiLevel, BOOL fExplicit );
HRESULT CWinNTGroup::GetSidInfo( BOOL fExplicit );
protected:
ULONG _ParentType; BSTR _DomainName; BSTR _ServerName; ULONG _GroupType;
CAggregatorDispMgr FAR * _pDispMgr; CADsExtMgr FAR * _pExtMgr;
CPropertyCache * _pPropertyCache; CWinNTCredentials _Credentials; };
|