|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996-1999
//
// File: oleds.h
//
// Contents: Public header file for all oleds client code
//
//----------------------------------------------------------------------------
#ifndef _ADSHLP_
#define _ADSHLP_
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef __cplusplus
extern "C" { #endif
HRESULT WINAPI ADsGetObject( LPCWSTR lpszPathName, REFIID riid, VOID * * ppObject );
HRESULT WINAPI ADsBuildEnumerator( IADsContainer *pADsContainer, IEnumVARIANT **ppEnumVariant );
HRESULT WINAPI ADsFreeEnumerator( IEnumVARIANT *pEnumVariant );
HRESULT WINAPI ADsEnumerateNext( IEnumVARIANT *pEnumVariant, ULONG cElements, VARIANT FAR *pvar, ULONG FAR *pcElementsFetched );
HRESULT WINAPI ADsBuildVarArrayStr( LPWSTR * lppPathNames, DWORD dwPathNames, VARIANT * pVar );
HRESULT WINAPI ADsBuildVarArrayInt( LPDWORD lpdwObjectTypes, DWORD dwObjectTypes, VARIANT * pVar );
HRESULT WINAPI ADsOpenObject( LPCWSTR lpszPathName, LPCWSTR lpszUserName, LPCWSTR lpszPassword, DWORD dwReserved, REFIID riid, void FAR * FAR * ppObject );
//
// Helper functions for extended error support
//
HRESULT WINAPI ADsGetLastError( OUT LPDWORD lpError, OUT LPWSTR lpErrorBuf, IN DWORD dwErrorBufLen, OUT LPWSTR lpNameBuf, IN DWORD dwNameBufLen );
VOID WINAPI ADsSetLastError( IN DWORD dwErr, IN LPCWSTR pszError, IN LPCWSTR pszProvider );
VOID WINAPI ADsFreeAllErrorRecords( VOID);
LPVOID WINAPI AllocADsMem( DWORD cb );
BOOL WINAPI FreeADsMem( LPVOID pMem );
LPVOID WINAPI ReallocADsMem( LPVOID pOldMem, DWORD cbOld, DWORD cbNew );
LPWSTR WINAPI AllocADsStr( LPCWSTR pStr );
BOOL WINAPI FreeADsStr( LPWSTR pStr );
BOOL WINAPI ReallocADsStr( LPWSTR *ppStr, LPWSTR pStr );
HRESULT WINAPI ADsEncodeBinaryData ( PBYTE pbSrcData, DWORD dwSrcLen, LPWSTR * ppszDestData );
HRESULT WINAPI ADsDecodeBinaryData ( LPCWSTR szSrcData, PBYTE *ppbDestData, ULONG *pdwDestLen );
HRESULT WINAPI PropVariantToAdsType( VARIANT * pVariant, DWORD dwNumVariant, PADSVALUE *ppAdsValues, PDWORD pdwNumValues );
HRESULT WINAPI AdsTypeToPropVariant( PADSVALUE pAdsValues, DWORD dwNumValues, VARIANT * pVariant );
void WINAPI AdsFreeAdsValues( PADSVALUE pAdsValues, DWORD dwNumValues );
//
// Helper routines to convert IADsSecurityDescriptor to a binary
// security descriptor and also to convert a binary SD to
// IADsSecurityDescriptor.
//
HRESULT WINAPI BinarySDToSecurityDescriptor( PSECURITY_DESCRIPTOR pSecurityDescriptor, VARIANT *pVarsec, LPCWSTR pszServerName, LPCWSTR userName, LPCWSTR passWord, DWORD dwFlags );
HRESULT WINAPI SecurityDescriptorToBinarySD( VARIANT vVarSecDes, PSECURITY_DESCRIPTOR * ppSecurityDescriptor, PDWORD pdwSDLength, LPCWSTR pszServerName, LPCWSTR userName, LPCWSTR passWord, DWORD dwFlags );
#if DBG
extern LIST_ENTRY ADsMemList ;
extern CRITICAL_SECTION ADsMemCritSect ;
VOID InitADsMem( VOID ) ;
VOID AssertADsMemLeaks( VOID ) ;
VOID DumpMemoryTracker();
#else
#define InitADsMem()
#define AssertADsMemLeaks()
#define DumpMemoryTracker()
#endif
#ifdef __cplusplus
} #endif
#endif // _ADSHLP_
|