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

151 lines
2.5 KiB
C++

//+------------------------------------------------------------------------
//
// Class: Common
//
// Purpose: Contains Winnt routines and properties that are common to
// all Winnt objects. Winnt objects get the routines and
// properties through C++ inheritance.
//
//-------------------------------------------------------------------------
#define MAX_DWORD 0xFFFFFFFF
#define SCHEMA_NAME L"Schema"
HRESULT
LoadTypeInfoEntry(
CDispatchMgr * pDispMgr,
REFIID libid,
REFIID iid,
void * pIntf,
DISPID SpecialId
);
HRESULT
MakeUncName(
LPWSTR szSrcBuffer,
LPWSTR szTargBuffer
);
HRESULT
ValidateOutParameter(
BSTR * retval
);
HRESULT
BuildADsPath(
BSTR Parent,
BSTR Name,
BSTR *pADsPath
);
HRESULT
BuildSchemaPath(
BSTR bstrADsPath,
BSTR bstrClass,
BSTR *pSchemaPath
);
HRESULT
BuildADsGuid(
REFCLSID clsid,
BSTR *pADsClass
);
//
// Accessing Well-known object types
//
typedef struct _filters {
WCHAR szObjectName[MAX_PATH];
DWORD dwFilterId;
} FILTERS, *PFILTERS;
extern PFILTERS gpFilters;
extern DWORD gdwMaxFilters;
HRESULT
BuildADsPathFromNDSPath(
LPWSTR szNDSTreeName,
LPWSTR szNDSDNName,
LPWSTR szADsPathName
);
HRESULT
BuildNDSParentPathFromNDSPath(
LPWSTR szNDSPathName,
LPWSTR szNDSParentPathName,
LPWSTR szCommonName
);
HRESULT
BuildNDSPathFromNDSParentPath(
LPWSTR szNDSParentPathName,
LPWSTR szNDSObjectCommonName,
LPWSTR szNDSPathName
);
typedef struct _KEYDATA {
DWORD cTokens;
LPWSTR pTokens[1];
} KEYDATA, *PKEYDATA;
PKEYDATA
CreateTokenList(
LPWSTR pKeyData,
WCHAR ch
);
HRESULT
ConvertSYSTEMTIMEtoDWORD(
CONST SYSTEMTIME *pSystemTime,
DWORD *pdwDate
);
HRESULT
ConvertDWORDtoSYSTEMTIME(
DWORD dwDate,
LPSYSTEMTIME pSystemTime
);
DWORD
ADsNwNdsOpenObject(
IN LPWSTR ObjectDN,
IN CCredentials& Credentials,
OUT HANDLE * lphObject,
OUT LPWSTR lpObjectFullName OPTIONAL,
OUT LPWSTR lpObjectClassName OPTIONAL,
OUT LPDWORD lpdwModificationTime,
OUT LPDWORD lpdwSubordinateCount OPTIONAL
);
//
// Extended error information for NDS
//
HRESULT
CheckAndSetExtendedError(
DWORD dwRetval
);
//
// Copy functionality within the namespace
//
HRESULT
CopyObject(
IN LPWSTR pszSrcADsPath,
IN LPWSTR pszDestContainer,
IN LPWSTR pszCommonName, //optional
IN CCredentials Credentials,
OUT VOID ** ppObject
);