102 lines
2.3 KiB
C++
102 lines
2.3 KiB
C++
/*
|
|
|
|
Copyright (c) 1997-1999 Microsoft Corporation
|
|
|
|
*/
|
|
|
|
#ifndef __SDP_TIME_PERIOD_SAFEARRAY__
|
|
#define __SDP_TIME_PERIOD_SAFEARRAY__
|
|
|
|
|
|
#include "sdpcommo.h"
|
|
|
|
#include "sdpsarr.h"
|
|
|
|
|
|
class _DllDecl SDP_TIME_PERIOD_SAFEARRAY :
|
|
protected SDP_SAFEARRAY_WRAP_EX<SDP_TIME_PERIOD, SDP_TIME_PERIOD_LIST>
|
|
|
|
{
|
|
public:
|
|
|
|
inline SDP_TIME_PERIOD_SAFEARRAY(
|
|
IN SDP_TIME_PERIOD_LIST &SdpTimePeriodList
|
|
);
|
|
|
|
HRESULT GetSafeArray(
|
|
OUT VARIANT *IsCompactVariant,
|
|
OUT VARIANT *UnitVariant,
|
|
OUT VARIANT *CompactValueVariant,
|
|
OUT VARIANT *PeriodValueVariant
|
|
);
|
|
|
|
inline HRESULT SetSafeArray(
|
|
IN VARIANT &IsCompactVariant,
|
|
IN VARIANT &UnitVariant,
|
|
IN VARIANT &CompactValueVariant,
|
|
IN VARIANT &PeriodValueVariant
|
|
);
|
|
|
|
protected:
|
|
|
|
VARTYPE m_VarType[4];
|
|
VARIANT_BOOL m_IsCompact;
|
|
CHAR m_Unit;
|
|
LONG m_CompactValue;
|
|
LONG m_PeriodValue;
|
|
|
|
virtual BOOL Get(
|
|
IN SDP_TIME_PERIOD &ListMember,
|
|
IN ULONG NumEntries,
|
|
IN void **Element,
|
|
OUT HRESULT &HResult
|
|
);
|
|
|
|
virtual BOOL Set(
|
|
IN SDP_TIME_PERIOD &ListMember,
|
|
IN ULONG NumEntries,
|
|
IN void ***Element,
|
|
OUT HRESULT &HResult
|
|
);
|
|
};
|
|
|
|
|
|
|
|
inline
|
|
SDP_TIME_PERIOD_SAFEARRAY::SDP_TIME_PERIOD_SAFEARRAY(
|
|
IN SDP_TIME_PERIOD_LIST &SdpTimePeriodList
|
|
)
|
|
: SDP_SAFEARRAY_WRAP_EX<SDP_TIME_PERIOD, SDP_TIME_PERIOD_LIST>(SdpTimePeriodList)
|
|
{
|
|
m_VarType[0] = VT_BOOL;
|
|
m_VarType[1] = VT_I1;
|
|
m_VarType[2] = VT_I4;
|
|
m_VarType[3] = VT_I4;
|
|
}
|
|
|
|
|
|
|
|
|
|
inline HRESULT
|
|
SDP_TIME_PERIOD_SAFEARRAY::SetSafeArray(
|
|
IN VARIANT &IsCompactVariant,
|
|
IN VARIANT &UnitVariant,
|
|
IN VARIANT &CompactValueVariant,
|
|
IN VARIANT &PeriodValueVariant
|
|
)
|
|
{
|
|
VARIANT *VariantArray[] = {
|
|
&IsCompactVariant, &UnitVariant,
|
|
&CompactValueVariant, &PeriodValueVariant
|
|
};
|
|
|
|
return SetSafeArrays(
|
|
sizeof(VariantArray)/sizeof(VARIANT *),
|
|
m_VarType,
|
|
VariantArray
|
|
);
|
|
}
|
|
|
|
|
|
#endif // __SDP_TIME_PERIOD_SAFEARRAY__
|