#include "stdafx.h"
#include "SeraphyScriptTools.h"
#include "ObjectMap.h"
+#include "generic.h"
#include "profilesection.h"
#include "CComEnumDynaVARIANT.h"
return hr;
}
+ // ByRef\82ðByVal\82É\95Ï\8a·\83R\83s\81[\82·\82é
+ CComVariant tmp;
+ if (FAILED(hr = VariantCopyByVal(&tmp, &newVal))) {
+ return hr;
+ }
+
VariantMap::iterator p = m_mapVariant.find(varName.bstrVal);
if (p != m_mapVariant.end()) {
// \8aù\91¶
- p->second = newVal;
+ p->second = tmp;
}
else {
// \90V\8bK
- m_mapVariant.insert(std::make_pair(varName.bstrVal, newVal));
+ m_mapVariant.insert(std::make_pair(varName.bstrVal, tmp));
}
return S_OK;
}
long idx = 0;
while (idx <= mx) {
CComVariant varKey, varVal;
- if (SafeArrayGetElement(varArray.parray, &idx, &varKey) == S_OK) {
+ if (SUCCEEDED(SafeArrayGetElement(varArray.parray, &idx, &varKey))) {
if (SUCCEEDED(pSection->get_Value(varKey, &varVal))) {
put_Value(varKey, varVal);
}