//+------------------------------------------------------------------------ // // 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 );