mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
2.5 KiB
150 lines
2.5 KiB
//+------------------------------------------------------------------------
|
|
//
|
|
// 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
|
|
);
|