|
|
#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
|