#include "SeraphyScriptTools.h"
#include "ObjectMap.h"
#include "profilesection.h"
-#include "generic.h"
+#include "CComEnumDynaVARIANT.h"
/////////////////////////////////////////////////////////////////////////////
// CObjectMap
-
-STDMETHODIMP CObjectMap::InterfaceSupportsErrorInfo(REFIID riid)
-{
- static const IID* arr[] =
- {
- &IID_IObjectMap
- };
- for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)
- {
- if (IsEqualGUID(*arr[i],riid))
- return S_OK;
- }
- return S_FALSE;
-}
-
STDMETHODIMP CObjectMap::FindNear(VARIANT key, VARIANT *pVal)
{
- CComVariant varName;
::VariantInit(pVal);
- if(varName.ChangeType(VT_BSTR,&key) != S_OK){
- return DISP_E_TYPEMISMATCH;
+
+ CComVariant varName;
+ HRESULT hr;
+ if (FAILED(hr = varName.ChangeType(VT_BSTR, &key))) {
+ return hr;
}
+
VariantMap::iterator p = m_mapVariant.lower_bound(varName.bstrVal);
- if(p != m_mapVariant.end()){
+ if (p != m_mapVariant.end()) {
// \94\8c©\82³\82ê\82½
CComVariant findkey((LPCWSTR)p->first);
findkey.ChangeType(VT_BSTR);
STDMETHODIMP CObjectMap::get_NearValue(VARIANT key, VARIANT *pVal)
{
- CComVariant varName;
::VariantInit(pVal);
- if(varName.ChangeType(VT_BSTR,&key) != S_OK){
- return DISP_E_TYPEMISMATCH;
+
+ CComVariant varName;
+ HRESULT hr;
+ if (FAILED(hr = varName.ChangeType(VT_BSTR, &key))) {
+ return hr;
}
+
VariantMap::iterator p = m_mapVariant.lower_bound(varName.bstrVal);
- if(p != m_mapVariant.end()){
+ if (p != m_mapVariant.end()) {
// \94\8c©\82³\82ê\82½
- VariantCopy(pVal,&p->second);
+ VariantCopy(pVal, &p->second);
}
return S_OK;
}
STDMETHODIMP CObjectMap::get_Value(VARIANT key, VARIANT *pVal)
{
- CComVariant varName;
::VariantInit(pVal);
- if(varName.ChangeType(VT_BSTR,&key) != S_OK){
- return DISP_E_TYPEMISMATCH;
+
+ CComVariant varName;
+ HRESULT hr;
+ if (FAILED(hr = varName.ChangeType(VT_BSTR, &key))) {
+ return hr;
}
+
VariantMap::iterator p = m_mapVariant.find(varName.bstrVal);
- if(p != m_mapVariant.end()){
+ if (p != m_mapVariant.end()) {
// \94\8c©\82³\82ê\82½
- VariantCopy(pVal,&p->second);
+ VariantCopy(pVal, &p->second);
}
return S_OK;
}
STDMETHODIMP CObjectMap::put_Value(VARIANT key, VARIANT newVal)
{
CComVariant varName;
- if(varName.ChangeType(VT_BSTR,&key) != S_OK){
- return DISP_E_TYPEMISMATCH;
+ HRESULT hr;
+ if (FAILED(hr = varName.ChangeType(VT_BSTR, &key))) {
+ return hr;
}
+
VariantMap::iterator p = m_mapVariant.find(varName.bstrVal);
- if(p != m_mapVariant.end()){
+ if (p != m_mapVariant.end()) {
// \8aù\91¶
- VariantCopy(&p->second,&newVal);
+ VariantCopy(&p->second, &newVal);
}
- else{
+ else {
// \90V\8bK
VARIANT tmp;
::VariantInit(&tmp);
- VariantCopy(&tmp,&newVal);
- m_mapVariant.insert(pair<_bstr_t,VARIANT>(varName.bstrVal,tmp));
+ VariantCopy(&tmp, &newVal);
+ m_mapVariant.insert(pair<_bstr_t, VARIANT>(varName.bstrVal, tmp));
}
return S_OK;
}
{
//VARIANT\82Ì\83N\83\8a\83A\82Æ\98A\91z\94z\97ñ\82Ì\89ð\95ú
VariantMap::iterator p = m_mapVariant.begin();
- while(p != m_mapVariant.end()){
+ while (p != m_mapVariant.end()) {
::VariantClear(&p->second);
p++;
}
{
*punkVal = NULL;
CComObject<CObjectMap>* pMap = NULL;
- if(pMap->CreateInstance(&pMap) == S_OK){
+ if (pMap->CreateInstance(&pMap) == S_OK) {
// \8c»\8dÝ\82Ì\83I\83u\83W\83F\83N\83g\82ð\95¡\90»\82·\82é
VariantMap::iterator p = m_mapVariant.begin();
- while(p != m_mapVariant.end()){
+ while (p != m_mapVariant.end()) {
CComVariant key((LPCWSTR)p->first);
key.ChangeType(VT_BSTR);
- pMap->put_Value(key,p->second);
+ pMap->put_Value(key, p->second);
p++;
}
- pMap->QueryInterface(IID_IUnknown,(void**)punkVal);
+ pMap->QueryInterface(IID_IUnknown, (void**)punkVal);
}
return S_OK;
}
{
*punkVal = NULL;
CComObject<CObjectMap>* pMap = NULL;
- if(pMap->CreateInstance(&pMap) == S_OK){
- pMap->QueryInterface(IID_IUnknown,(void**)punkVal);
+ if (SUCCEEDED(pMap->CreateInstance(&pMap))) {
+ return pMap->QueryInterface(IID_IUnknown, (void**)punkVal);
}
- return S_OK;
+ return E_FAIL;
}
STDMETHODIMP CObjectMap::get__NewEnum(IUnknown **pVal)
{
int mx = m_mapVariant.size();
- VARIANT* pvarArray = new VARIANT[mx+1];
+ VARIANT* pvarArray = new VARIANT[mx + 1];
// \8ai\94[\82³\82ê\82Ä\82¢\82é\96¼\91O\82Ì\97ñ\8b\93
VariantMap::iterator p = m_mapVariant.begin();
int i = 0;
- while(p != m_mapVariant.end()){
+ while (p != m_mapVariant.end()) {
::VariantInit(&pvarArray[i]);
pvarArray[i].vt = VT_BSTR;
pvarArray[i].bstrVal = SysAllocString(p->first);
}
// \97ñ\8b\93\83C\83\93\83^\81[\83t\83F\83C\83X\82Ì\90¶\90¬
CComObject<CComEnumVARIANT>* pCol = NULL;
- if(pCol->CreateInstance(&pCol) == S_OK){
+ if (pCol->CreateInstance(&pCol) == S_OK) {
pCol->AddRef();
- pCol->Init(&pvarArray[0],&pvarArray[mx],pCol,AtlFlagCopy);
+ pCol->Init(&pvarArray[0], &pvarArray[mx], pCol, AtlFlagCopy);
*pVal = pCol;
}
// \8am\95Û\82µ\82½\83o\83\8a\83A\83\93\83g\82Ì\94j\8aü(\83\8a\83\8a\81[\83X\82ð\8ds\82¤\95K\97v\82 \82è)
i = 0;
- while(i < mx){
+ while (i < mx) {
::VariantClear(&pvarArray[i++]);
}
delete[]pvarArray;
STDMETHODIMP CObjectMap::ExpandVariables(VARIANT text, VARIANT env, VARIANT *pVal)
{
- CComVariant varText,varEnv,varResult;
- if(varText.ChangeType(VT_BSTR,&text) != S_OK){
+ CComVariant varText, varEnv, varResult;
+ if (varText.ChangeType(VT_BSTR, &text) != S_OK) {
return DISP_E_TYPEMISMATCH;
}
// \8aÂ\8b«\95Ï\90\94\82ð\93W\8aJ\82·\82é\82©?
BOOL bEnv = false;
- if(varEnv.ChangeType(VT_I2,&env) == S_OK){
+ if (varEnv.ChangeType(VT_I2, &env) == S_OK) {
bEnv = varEnv.iVal;
}
// \83t\83F\81[\83Y1 : \8aÜ\82Ü\82ê\82é\95Ï\90\94\82ð\92²\8d¸\82µ\82Ä\95K\97v\82È\83o\83b\83t\83@\83T\83C\83Y\82ð\8b\81\82ß\82é
// \83t\83F\81[\83Y2 ; \8eÀ\8dÛ\82É\93W\8aJ\82·\82é
DWORD expandsize = 0;
- UINT writeidx = 0;
+ UINT writeidx = 0;
LPWSTR pExpandBuffer = NULL;
- for(int phase = 0;phase < 2;phase++){
+ for (int phase = 0; phase < 2; phase++) {
LPCWSTR str = varText.bstrVal;
UINT length = SysStringLen(varText.bstrVal);
- UINT idx = 0;
- while(idx < length){
- if(str[idx] == '%'){
+ UINT idx = 0;
+ while (idx < length) {
+ if (str[idx] == '%') {
// \95Ï\90\94\93W\8aJ\83X\83^\81[\83g
WCHAR name[MAX_PATH] = {0};
UINT len = 0;
// \98A\91±\82·\82é%\82É\82æ\82é%\8e©\90g\82Ì\8fo\97Í\82Å\82 \82é\82©?
idx++;
- if(str[idx] == '%'){
- if(phase == 0){
+ if (str[idx] == '%') {
+ if (phase == 0) {
idx++;
}
- else{
+ else {
pExpandBuffer[writeidx++] = str[idx++];
}
continue;
}
// \95Ï\90\94\96¼\82Ì\8eæ\82è\8fo\82µ
- while(idx < length && str[idx] != '%'){
+ while (idx < length && str[idx] != '%') {
name[len++] = str[idx++];
}
name[len] = 0;
- if(str[idx] == '%'){
+ if (str[idx] == '%') {
idx++;
}
// \95Ï\90\94\82Ì\8eÀ\8dÝ\83`\83F\83b\83N
VariantMap::iterator p = m_mapVariant.find(name);
- if(p != m_mapVariant.end()){
+ if (p != m_mapVariant.end()) {
// \94\8c©\82³\82ê\82½
CComVariant tmp;
- if(tmp.ChangeType(VT_BSTR,&p->second) == S_OK){
- if(phase == 0){
+ if (tmp.ChangeType(VT_BSTR, &p->second) == S_OK) {
+ if (phase == 0) {
// \83t\83F\81[\83Y1\82Í\83T\83C\83Y\82ð\83J\83E\83\93\83g\82·\82é\82¾\82¯
expandsize += SysStringLen(tmp.bstrVal);
}
- else{
+ else {
// \83t\83F\81[\83Y2\82Í\8c»\8dÝ\88Ê\92u\82É\95Ï\90\94\82ð\93W\8aJ\82·\82é
UINT len = SysStringLen(tmp.bstrVal);
UINT i;
- for(i=0;i<len;i++){
+ for (i = 0; i < len; i++) {
pExpandBuffer[writeidx++] = tmp.bstrVal[i];
}
}
}
}
- else if (bEnv){
+ else if (bEnv) {
// \98A\91z\94z\97ñ\82É\82Í\91¶\8dÝ\82¹\82¸\81A\8aÂ\8b«\95Ï\90\94\93W\8aJ\82ª\8ew\8e¦\82³\82ê\82Ä\82¢\82é
ATL::CString szName(name);
TCHAR szBuf[MAX_PATH] = {0};
// \83t\83G\81[\83Y1\82Í\83J\83E\83\93\83g\82·\82é\82¾\82¯
expandsize += ret;
}
- else{
+ else {
// \83t\83F\81[\83Y2\82Í\8eÀ\8dÛ\82É\8f\91\82«\8d\9e\82Þ
ATL::CStringW wbuf(szBuf);
- for (UINT i=0; i < ret; i++) {
+ for (UINT i = 0; i < ret; i++) {
pExpandBuffer[writeidx++] = wbuf[i];
}
}
}
continue;
}
- if(phase == 0){
+ if (phase == 0) {
// \83t\83F\81[\83Y1\82Í\89½\82à\82µ\82È\82¢
idx++;
}
- else{
+ else {
// \83t\83F\81[\83Y2\82Í\83o\83b\83t\83@\82É\92Ê\8fí\8f\91\82«\8d\9e\82Ý\82·\82é
pExpandBuffer[writeidx++] = str[idx++];
}
}
//
- if(phase == 0){
+ if (phase == 0) {
// \83t\83F\81[\83Y1\82ª\8fI\97¹\82µ\82½\82Ì\82Å\83o\83b\83t\83@\83T\83C\83Y\82ª\94»\96¾\82µ\82½\81B
pExpandBuffer = new WCHAR[length + expandsize + 1];
}
- else{
+ else {
// \83t\83F\81[\83Y2\82ª\8fI\97¹\82µ\82½\82Ì\82Å\92u\8a·\82ª\8a®\97¹\82µ\82½
pExpandBuffer[writeidx] = 0;
varResult = (LPCWSTR)pExpandBuffer;
STDMETHODIMP CObjectMap::get_IsExist(VARIANT key, BOOL *pVal)
{
- CComVariant varName;
*pVal = VB_FALSE;
- if(varName.ChangeType(VT_BSTR,&key) != S_OK){
- return DISP_E_TYPEMISMATCH;
+
+ CComVariant varName;
+ HRESULT hr;
+ if (FAILED(hr = varName.ChangeType(VT_BSTR, &key))) {
+ return hr;
}
+
VariantMap::iterator p = m_mapVariant.find(varName.bstrVal);
- if(p != m_mapVariant.end()){
+ if (p != m_mapVariant.end()) {
// \91¶\8dÝ\82·\82é
*pVal = VB_TRUE;
}
STDMETHODIMP CObjectMap::Erase(VARIANT key)
{
CComVariant varName;
- if(varName.ChangeType(VT_BSTR,&key) != S_OK){
- return DISP_E_TYPEMISMATCH;
+ HRESULT hr;
+ if (FAILED(hr = varName.ChangeType(VT_BSTR, &key))) {
+ return hr;
}
+
VariantMap::iterator p = m_mapVariant.find(varName.bstrVal);
- if(p != m_mapVariant.end()){
+ if (p != m_mapVariant.end()) {
m_mapVariant.erase(p);
}
return S_OK;
STDMETHODIMP CObjectMap::LoadProfile(IUnknown *punkVal)
{
ISeraphyScriptTools_ProfileSection* pSection = NULL;
- if(punkVal->QueryInterface(IID_ISeraphyScriptTools_ProfileSection,(void**)&pSection) != S_OK){
- return DISP_E_UNKNOWNINTERFACE;
+ HRESULT hr;
+ if (FAILED(hr = punkVal->QueryInterface(
+ IID_ISeraphyScriptTools_ProfileSection, (void**)&pSection))) {
+ return hr;
}
- //
+
CComVariant varArray;
- pSection->GetKeyNames(&varArray);
- if(!(varArray.vt & VT_ARRAY)){
+ if (FAILED(hr = pSection->GetKeyNames(&varArray))) {
+ return hr;
+ }
+ if (!(varArray.vt & VT_ARRAY)) {
// Internal Error
return DISP_E_UNKNOWNINTERFACE;
}
+
// \94z\97ñ\82Ì\8f\87\8f\98\93I\8eæ\93¾
long mx = 0;
- HRESULT ret = SafeArrayGetUBound(varArray.parray,1,&mx);
- if(ret != S_OK){
+ HRESULT ret = SafeArrayGetUBound(varArray.parray, 1, &mx);
+ if (ret != S_OK) {
mx = -1;
}
+
long idx = 0;
- while(idx <= mx){
- CComVariant varKey,varVal;
- if(SafeArrayGetElement(varArray.parray,&idx,&varKey) == S_OK){
- if(pSection->get_Value(varKey,&varVal) == S_OK){
- put_Value(varKey,varVal);
+ while (idx <= mx) {
+ CComVariant varKey, varVal;
+ if (SafeArrayGetElement(varArray.parray, &idx, &varKey) == S_OK) {
+ if (pSection->get_Value(varKey, &varVal) == S_OK) {
+ put_Value(varKey, varVal);
}
}
idx++;
STDMETHODIMP CObjectMap::SaveProfile(IUnknown *punkVal)
{
ISeraphyScriptTools_ProfileSection* pSection = NULL;
- if(punkVal->QueryInterface(IID_ISeraphyScriptTools_ProfileSection,(void**)&pSection) != S_OK){
- return DISP_E_UNKNOWNINTERFACE;
+ HRESULT hr;
+ if (FAILED(hr = punkVal->QueryInterface(
+ IID_ISeraphyScriptTools_ProfileSection, (void**)&pSection))) {
+ return hr;
}
+
// \8ai\94[\82³\82ê\82Ä\82¢\82é\96¼\91O\82Ì\97ñ\8b\93
VariantMap::iterator p = m_mapVariant.begin();
- while(p != m_mapVariant.end()){
+ while (p != m_mapVariant.end()) {
CComVariant varTmp;
- if(varTmp.ChangeType(VT_BSTR,&p->second) == S_OK){
+ if (SUCCEEDED(varTmp.ChangeType(VT_BSTR, &p->second))) {
CComVariant varIdx = (BSTR)p->first;
- pSection->put_Value(varIdx,varTmp);
+ pSection->put_Value(varIdx, varTmp);
}
p++;
}