windows-nt/Source/XPSP1/NT/net/tapi/skywalker/inc/sdpsobst.h
2020-09-26 16:20:57 +08:00

89 lines
1.8 KiB
C++

/*
Copyright (c) 1997-1999 Microsoft Corporation
*/
#ifndef __SDP_OPT_BSTRING_SAFEARRAY__
#define __SDP_OPT_BSTRING_SAFEARRAY__
#include "sdpcommo.h"
#include "sdpsarr.h"
class SDP_OPT_BSTRING_LIST : public SDP_FIELD_LIST
{
public:
virtual SDP_FIELD *CreateElement();
};
class _DllDecl SDP_OPT_BSTRING_SAFEARRAY :
protected SDP_SAFEARRAY_WRAP_EX<SDP_OPTIONAL_BSTRING, SDP_OPT_BSTRING_LIST>
{
public:
inline SDP_OPT_BSTRING_SAFEARRAY(
IN SDP_OPT_BSTRING_LIST &SdpOptBstringList
);
HRESULT GetSafeArray(
OUT VARIANT *OptBstringVariant
);
inline HRESULT SetSafeArray(
IN VARIANT &OptBstringVariant
);
protected:
VARTYPE m_VarType[1];
virtual BOOL Get(
IN SDP_OPTIONAL_BSTRING &ListMember,
IN ULONG NumEntries,
IN void **Element,
OUT HRESULT &HResult
);
virtual BOOL Set(
IN SDP_OPTIONAL_BSTRING &ListMember,
IN ULONG NumEntries,
IN void ***Element,
OUT HRESULT &HResult
);
};
inline
SDP_OPT_BSTRING_SAFEARRAY::SDP_OPT_BSTRING_SAFEARRAY(
IN SDP_OPT_BSTRING_LIST &SdpOptBstringList
)
: SDP_SAFEARRAY_WRAP_EX<SDP_OPTIONAL_BSTRING, SDP_OPT_BSTRING_LIST>(SdpOptBstringList)
{
m_VarType[0] = VT_BSTR;
}
inline HRESULT
SDP_OPT_BSTRING_SAFEARRAY::SetSafeArray(
IN VARIANT &OptBstringVariant
)
{
VARIANT *VariantArray[] = {&OptBstringVariant};
return SetSafeArrays(
sizeof(VariantArray)/sizeof(VARIANT *),
m_VarType,
VariantArray
);
}
#endif // __SDP_OPT_BSTRING_SAFEARRAY__