67 lines
2 KiB
C++
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__
|