/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _ADSHLP_
#define _ADSHLP_
#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 *pvar,ULONG *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 **ppObject);
HRESULT WINAPI ADsGetLastError(LPDWORD lpError,LPWSTR lpErrorBuf,DWORD dwErrorBufLen,LPWSTR lpNameBuf,DWORD dwNameBufLen);
VOID WINAPI ADsSetLastError(DWORD dwErr,LPCWSTR pszError,LPCWSTR pszProvider);
VOID WINAPI ADsFreeAllErrorRecords(VOID);
LPVOID WINAPI AllocADsMem(DWORD cb);
WINBOOL WINAPI FreeADsMem(LPVOID pMem);
LPVOID WINAPI ReallocADsMem(LPVOID pOldMem,DWORD cbOld,DWORD cbNew);
LPWSTR WINAPI AllocADsStr(LPCWSTR pStr);
WINBOOL WINAPI FreeADsStr(LPWSTR pStr);
WINBOOL 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);
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);
#define InitADsMem()
#define AssertADsMemLeaks()
#define DumpMemoryTracker()
#ifdef __cplusplus
}
#endif
#endif