// Copyright (c) 1993-1999 Microsoft Corporation #ifndef _TIUTIL_H_ #define _TIUTIL_H_ // This is a special value that is used internally for marshaling interfaces #define VT_INTERFACE (VT_CLSID+1) #define VT_MULTIINDIRECTIONS (VT_TYPEMASK - 1) #define IfFailGo(expression, label) \ { hresult = (expression); \ if(FAILED(hresult)) \ goto label; \ } #define IfFailRet(expression) \ { HRESULT hresult = (expression); \ if(FAILED(hresult)) \ return hresult; \ } class PARAMINFO; HRESULT VarVtOfTypeDesc( IN ITypeInfo * pTypeInfo, IN TYPEDESC * pTypeDesc, OUT PARAMINFO * pParamInfo); HRESULT VarVtOfUDT( IN ITypeInfo * pTypeInfo, IN TYPEDESC * pTypeDesc, OUT PARAMINFO * pParamInfo); HRESULT VarVtOfIface( IN ITypeInfo * pTypeInfo, IN TYPEATTR * pTypeAttr, OUT PARAMINFO * pParamInfo); #endif //_TIUTIL_H_