BOOL CWizXmlRpcServerBase::Call(const QString& strMethodName, std::map<QString, QString>& mapRet, CWizXmlRpcValue* pParam1, CWizXmlRpcValue* pParam2 /*= NULL*/, CWizXmlRpcValue* pParam3 /*= NULL*/, CWizXmlRpcValue* pParam4 /*= NULL*/)
{
    CWizXmlRpcResult ret;
    if (!Call(strMethodName, ret, pParam1, pParam2, pParam3, pParam4))
        return FALSE;
    //
    CWizXmlRpcStructValue* pValue = ret.GetResultValue<CWizXmlRpcStructValue>();
    if (!pValue)
    {
        TOLOG1(_T("The return value of XmpRpc method %1 is not a struct!"), strMethodName);
        return FALSE;
    }
    //
    return pValue->ToStringMap(mapRet);
}