windows-nt/Source/XPSP1/NT/com/ole32/stg/h/props.hxx
2020-09-26 16:20:57 +08:00

67 lines
2 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: props.hxx
//
// Contents: Shared property code header
//
// Functions: ValidatePropType
//
// History: 14-Jun-93 DrewB Created
//
//----------------------------------------------------------------------------
#ifndef __PROPS_HXX__
#define __PROPS_HXX__
typedef VARIANT DFPROPVAL;
#ifdef OLDPROP
// Property types that don't go in the property value itself
#define VT_NOT_IN_VALUE(vt) \
(((vt) & VT_VECTOR) || \
(vt) == VT_BSTR || (vt) == VT_WBSTR || \
(vt) == VT_LPSTR || (vt) == VT_LPWSTR || \
(vt) == VT_BLOB_OBJECT || (vt) == VT_BLOB || \
(vt) == VT_VARIANT || (vt) == VT_CF || (vt) == VT_UUID)
#else
// Property types that don't go in the property value itself
#define VT_NOT_IN_VALUE(vt) \
(((vt) & VT_VECTOR) || \
(vt) == VT_BSTR || \
(vt) == VT_LPSTR || (vt) == VT_LPWSTR || \
(vt) == VT_BLOB_OBJECT || (vt) == VT_BLOB || \
(vt) == VT_VARIANT || (vt) == VT_CF || (vt) == VT_UUID)
#endif
#define ValidatePropSpecKind(psk) \
(((psk) == PRSPEC_LPWSTR || (psk) == PRSPEC_DISPID || \
(psk) == PRSPEC_PROPID) ? S_OK : STG_E_INVALIDPARAMETER)
SCODE ValidatePropType(DFPROPTYPE dpt);
SCODE ValidatePropVt(DFPROPVAL *pdpv);
#ifdef OLDPROPS
#define BSTR_LLEN sizeof(UINT)
#define BSTR_PTR(b) ((BYTE *)(b)-BSTR_LLEN)
#define BSTR_SLEN(b) ((*(UINT *)BSTR_PTR(b)))
#define BSTR_BLEN(b) (BSTR_SLEN(b)+1)
#define BSTR_TLEN(b) (BSTR_BLEN(b)+BSTR_LLEN)
#define WBSTR_LLEN sizeof(UINT)
#define WBSTR_PTR(b) ((BYTE *)(b)-WBSTR_LLEN)
#define WBSTR_SLEN(b) ((*(UINT *)WBSTR_PTR(b)))
#define WBSTR_BLEN(b) (WBSTR_SLEN(b)+sizeof(WCHAR))
#define WBSTR_TLEN(b) (WBSTR_BLEN(b)+WBSTR_LLEN)
#else
#define BSTR_LLEN sizeof(UINT)
#define BSTR_PTR(b) ((BYTE *)(b)-BSTR_LLEN)
#define BSTR_SLEN(b) ((*(UINT *)BSTR_PTR(b)))
#define BSTR_BLEN(b) (BSTR_SLEN(b)+sizeof(WCHAR))
#define BSTR_TLEN(b) (BSTR_BLEN(b)+BSTR_LLEN)
#endif
#endif // #ifndef __PROPS_HXX__