WindowsXP-SP1/ds/adsi/include/util.hxx

243 lines
5.9 KiB
C++

#ifndef _HXX_UTIL
#define _HXX_UTIL
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: util.hxx
//
// Contents: Utilities in cdutil that are not exported outside of
// formidbl.dll.
//
// History: 7-13-94 adams Created
//
//----------------------------------------------------------------------------
//+------------------------------------------------------------------------
//
// misc.cxx
//
//-------------------------------------------------------------------------
HRESULT GetLastWin32Error(void);
//+------------------------------------------------------------------------
//
// Dispatch utilites in disputil.cxx
//
//-------------------------------------------------------------------------
HRESULT ValidateInvoke(
DISPPARAMS * pdispparams,
VARIANT * pvarResult,
EXCEPINFO * pexcepinfo,
UINT * puArgErr);
inline void
InitEXCEPINFO(EXCEPINFO * pEI)
{
if (pEI)
memset(pEI, 0, sizeof(*pEI));
}
void FreeEXCEPINFO(EXCEPINFO * pEI);
HRESULT LoadTypeInfo(CLSID clsidTL, CLSID clsidTI, LPTYPEINFO *ppTI);
HRESULT GetDispProp(
IDispatch * pDisp,
DISPID dispid,
REFIID riid,
LCID lcid,
VARIANT * pvarg,
EXCEPINFO * pexcepinfo = NULL);
HRESULT SetDispProp(
IDispatch * pDisp,
DISPID dispid,
REFIID riid,
LCID lcid,
VARIANTARG * pvarg,
EXCEPINFO * pexcepinfo = NULL);
HRESULT GetDispPropOfType(
IDispatch * pDisp,
DISPID dispid,
LCID lcid,
VARTYPE vt,
void * pv);
HRESULT SetDispPropOfType(
IDispatch * pDisp,
DISPID dispid,
LCID lcid,
VARTYPE vt,
void * pv);
HRESULT CallDispMethod(
IDispatch * pDisp,
DISPID dispid,
LCID lcid,
VARTYPE vtReturn,
void * pvReturn,
VARTYPE * pvtParams,
...);
STDAPI DispParamsToCParams(
DISPPARAMS * pDP,
UINT * puArgErr,
VARTYPE * pvt,
...);
void CParamsToDispParams(
DISPPARAMS * pDispParams,
VARTYPE * pvt,
va_list va);
BOOL IsVariantEqual(VARIANTARG FAR* pvar1, VARIANTARG FAR* pvar2);
//+------------------------------------------------------------------------
//
// Message display and Error handling (error.cxx)
//
//-------------------------------------------------------------------------
// properties of a message box for displaying an error
const UINT MB_ERRORFLAGS = MB_ICONEXCLAMATION | MB_OK;
//
// Extension of EXCEPINFO which initializes itself and
// destroys allocated strings.
//
// Functions for creating and propogating error information
HRESULT ADsPropogateErrorInfo(HRESULT hrError, REFIID iid, IUnknown * pUnk);
HRESULT ADsSetErrorInfo(HRESULT hrError, EXCEPINFO * pEI = NULL);
HRESULT ADsCreateErrorInfo(HRESULT hrError, IErrorInfo ** ppEI);
HRESULT GetErrorInfoToExcepInfo(HRESULT hrError, EXCEPINFO * pEI);
HRESULT ResultToExcepInfo(HRESULT hrError, EXCEPINFO * pEI);
void ADsGetErrorInfo(IUnknown * pUnk, REFIID iid, IErrorInfo ** ppEI);
// Functions for displaying messages
HRESULT GetErrorText(HRESULT hrError, LPWSTR * ppwszDescription);
HRESULT __cdecl DisplayErrorMsg(HWND hwndOwner, UINT idsContext, ...);
HRESULT __cdecl DisplayError(
HWND hwndOwner,
HRESULT hrError,
LPWSTR pwszSource,
LPWSTR pwszDescription,
UINT idsContext,
va_list arglist);
HRESULT __cdecl DisplayErrorResult(
HWND hwndOwner,
HRESULT hrError,
UINT idsContext,
...);
HRESULT __cdecl DisplayErrorEXCEPINFO(
HWND hwndOwner,
HRESULT hrError,
EXCEPINFO * pEI,
UINT idsContext,
...);
HRESULT __cdecl DisplayErrorErrorInfo(
HWND hwndOwner,
HRESULT hrError,
IErrorInfo * pEI,
UINT idsContext,
...);
HRESULT __cdecl DisplayMessage(
int * pResult,
HWND hwndOwner,
UINT uiMessageFlags,
UINT idsTitle,
UINT idsMessage,
...);
HRESULT DisplayMessageV(
int * pResult,
HWND hwndOwner,
UINT uiMessageFlags,
UINT idsTitle,
UINT idsMessage,
va_list argptr);
HRESULT
BuildVariantArrayofStrings(
LPWSTR *lppPathNames,
DWORD dwPathNames,
VARIANT ** ppVar
);
HRESULT
BuildVariantArrayofIntegers(
LPDWORD lpdwObjectTypes,
DWORD dwObjectTypes,
VARIANT ** ppVar
);
typedef VARIANT *PVARIANT;
HRESULT
ConvertSafeArrayToVariantArray(
VARIANT varSafeArray,
PVARIANT * ppVarArray,
PDWORD pdwNumVariants
);
HRESULT
ConvertByRefSafeArrayToVariantArray(
VARIANT varSafeArray,
PVARIANT * ppVarArray,
PDWORD pdwNumVariants
);
HRESULT
ConvertVariantArrayToLDAPStringArray(
PVARIANT pVarArray,
PWSTR **pppszStringArray,
DWORD dwNumStrings
);
void
RaiseException(
HRESULT hr
);
HRESULT
BinaryToVariant(
DWORD Length,
BYTE* pByte,
PVARIANT lpVarDestObject
);
HRESULT
VariantToBinary(
PVARIANT pVarSrcObject,
DWORD *pdwLength,
BYTE **ppByte
);
HRESULT
CopyOctetString(
DWORD dwNumBytes,
BYTE *pData,
DWORD *pdwNumBytes,
BYTE **ppByte
);
#endif // #ifndef _HXX_UTIL