18,356
社区成员
发帖
与我相关
我的任务
分享
template <typename TClient>
inline HRESULT CImportExportServiceT<TClient>::login(
BSTR loginName,
BSTR password,
BSTR validateCode,
RequestResultWS* __retval
)
{
if ( __retval == NULL )
return E_POINTER;
HRESULT __atlsoap_hr = InitializeSOAP(NULL);
if (FAILED(__atlsoap_hr))
{
SetClientError(SOAPCLIENT_INITIALIZE_ERROR);
return __atlsoap_hr;
}
CleanupClient();
CComPtr<IStream> __atlsoap_spReadStream;
__CImportExportService_login_struct __params;
memset(&__params, 0x00, sizeof(__params));
__params.loginName = loginName;
__params.password = password;
__params.validateCode = validateCode;
__atlsoap_hr = SetClientStruct(&__params, 1);
if (FAILED(__atlsoap_hr))
{
SetClientError(SOAPCLIENT_OUTOFMEMORY);
goto __skip_cleanup;
}
__atlsoap_hr = GenerateResponse(GetWriteStream());
if (FAILED(__atlsoap_hr))
{
SetClientError(SOAPCLIENT_GENERATE_ERROR);
goto __skip_cleanup;
}
__atlsoap_hr = SendRequest(_T("SOAPAction: \"\"\r\n")); // 此处失败
if (FAILED(__atlsoap_hr))
{
goto __skip_cleanup;
}
__atlsoap_hr = GetReadStream(&__atlsoap_spReadStream);
if (FAILED(__atlsoap_hr))
{
SetClientError(SOAPCLIENT_READ_ERROR);
goto __skip_cleanup;
}
// cleanup any in/out-params and out-headers from previous calls
Cleanup();
__atlsoap_hr = BeginParse(__atlsoap_spReadStream);
if (FAILED(__atlsoap_hr))
{
SetClientError(SOAPCLIENT_PARSE_ERROR);
goto __cleanup;
}
*__retval = __params.__retval;
goto __skip_cleanup;
__cleanup:
Cleanup();
__skip_cleanup:
ResetClientState(true);
memset(&__params, 0x00, sizeof(__params));
return __atlsoap_hr;
}
CComBSTR bstrValidateCode;
HRESULT hr = m_ImportExport.generateValidateCode(&bstrValidateCode);
if (FAILED(hr))
{
MessageBox(GetActiveWindow(),_T("获取验证码失败,请检查CAMDS服务器是否正常!"),_T("错误"),MB_OK | MB_ICONSTOP);
return ;
}