/* Copyright (c) 1997-1999 Microsoft Corporation */ #ifndef __SDP_ADJUSTMENT_SAFEARRAY__ #define __SDP_ADJUSTMENT_SAFEARRAY__ #include "sdpcommo.h" #include "sdpstp.h" #include "sdpsuit.h" #include "sdpfld.h" class _DllDecl SDP_ULONG_SAFEARRAY : public SDP_UITYPE_SAFEARRAY { public: inline SDP_ULONG_SAFEARRAY( IN SDP_ULONG_LIST &SdpUlongList ); }; inline SDP_ULONG_SAFEARRAY::SDP_ULONG_SAFEARRAY( IN SDP_ULONG_LIST &SdpUlongList ) : SDP_UITYPE_SAFEARRAY(SdpUlongList) { m_VarType[0] = VT_UI4; } class _DllDecl SDP_ADJUSTMENT_SAFEARRAY : protected SDP_TIME_PERIOD_SAFEARRAY, protected SDP_ULONG_SAFEARRAY { public: SDP_ADJUSTMENT_SAFEARRAY( IN SDP_ADJUSTMENT &SdpAdjustment ); HRESULT GetSafeArray( OUT VARIANT *AdjustmentTimesVariant, OUT VARIANT *IsCompactVariant, OUT VARIANT *UnitVariant, OUT VARIANT *CompactValueVariant, OUT VARIANT *PeriodValueVariant ); inline HRESULT SetSafeArray( IN VARIANT &AdjustmentTimesVariant, IN VARIANT &IsCompactVariant, IN VARIANT &UnitVariant, IN VARIANT &CompactValueVariant, IN VARIANT &PeriodValueArray ); protected: VARTYPE m_VarType[5]; virtual BOOL GetElement( IN ULONG Index, IN ULONG NumEntries, IN void **Element, OUT HRESULT &HResult ); virtual BOOL SetElement( IN ULONG Index, IN ULONG NumEntries, IN void ***Element, OUT HRESULT &HResult ); virtual void RemoveExcessElements( IN ULONG StartIndex ); }; inline HRESULT SDP_ADJUSTMENT_SAFEARRAY::SetSafeArray( IN VARIANT &AdjustmentTimesVariant, IN VARIANT &IsCompactVariant, IN VARIANT &UnitVariant, IN VARIANT &CompactValueVariant, IN VARIANT &PeriodValueVariant ) { VARIANT *VariantArray[] = { &IsCompactVariant, &UnitVariant, &CompactValueVariant, &PeriodValueVariant }; return SDP_ULONG_SAFEARRAY::SetSafeArrays( sizeof(VariantArray)/sizeof(VARIANT *), m_VarType, VariantArray ); } #endif // __SDP_ADJUSTMENT_SAFEARRAY__