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

150 lines
2.7 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

class CNDSGenObject;
class CNDSGenObject : INHERIT_TRACKING,
public CCoreADsObject,
public ISupportErrorInfo,
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_ISupportErrorInfo_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;
};
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 dwSyntaxId,
DWORD dwNumValues,
PVARIANT pVarProp
);
HRESULT
ConvertVariantToNdsValues(
VARIANT varData,
LPWSTR szPropertyName,
PDWORD pdwControlCode,
PNDSOBJECT * ppNdsDestObjects,
PDWORD pdwNumValues,
PDWORD dwSyntaxId
);