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

152 lines
2.7 KiB
C++

class CNDSGenObject;
class CNDSGenObject : INHERIT_TRACKING,
public CCoreADsObject,
public IADs,
public IADsContainer,
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_IADsPropertyList_METHODS
DECLARE_IADsContainer_METHODS
DECLARE_IDirectoryObject_METHODS
DECLARE_IDirectorySearch_METHODS
DECLARE_IDirectorySchemaMgmt_METHODS
CNDSGenObject::CNDSGenObject();
CNDSGenObject::~CNDSGenObject();
static
HRESULT
CNDSGenObject::CreateGenericObject(
BSTR bstrADsPath,
BSTR ClassName,
CCredentials& Credentials,
DWORD dwObjectState,
REFIID riid,
void **ppvObj
);
static
HRESULT
CNDSGenObject::CreateGenericObject(
BSTR Parent,
BSTR CommonName,
BSTR ClassName,
CCredentials& Credentials,
DWORD dwObjectState,
REFIID riid,
void **ppvObj
);
static
HRESULT
CNDSGenObject::AllocateGenObject(
CCredentials& Credentials,
CNDSGenObject ** ppGenObject
);
STDMETHOD(GetInfo)(
BOOL fExplicit
);
HRESULT
CNDSGenObject::NDSSetObject();
HRESULT
CNDSGenObject::NDSCreateObject();
void
CNDSGenObject::InitSearchPrefs();
protected:
IUnknown FAR * _pOuterUnknown;
BOOL _fIsAggregated;
VARIANT _vFilter;
CPropertyCache FAR * _pPropertyCache;
CDispatchMgr FAR * _pDispMgr;
CCredentials _Credentials;
NDS_SEARCH_PREF _SearchPref;
NDS_CONTEXT_HANDLE _hADsContext;
LPWSTR _pszNDSTreeName;
LPWSTR _pszNDSDn;
};
HRESULT
ConvertSafeArrayToVariantArray(
VARIANT varSafeArray,
PVARIANT * ppVarArray,
PDWORD pdwNumVariants
);
HRESULT
ConvertByRefSafeArrayToVariantArray(
VARIANT varSafeArray,
PVARIANT * ppVarArray,
PDWORD pdwNumVariants
);
HRESULT
CreatePropEntry(
LPWSTR szPropName,
DWORD ADsType,
DWORD numValues,
VARIANT varData,
REFIID riid,
LPVOID * ppDispatch
);
HRESULT
ConvertNdsValuesToVariant(
BSTR bstrPropName,
LPNDSOBJECT pNdsSrcObjects,
DWORD dwNumValues,
PVARIANT pVarProp
);
HRESULT
ConvertVariantToNdsValues(
VARIANT varData,
LPWSTR szPropertyName,
PDWORD pdwControlCode,
PNDSOBJECT * ppNdsDestObjects,
PDWORD pdwNumValues,
PDWORD dwSyntaxId
);