bool ArrayValueWrapper::HasBaseIndicies() { BOOL result; CheckHResult(ArrayValue->HasBaseIndicies(&result)); return (result == TRUE ? true : false); }
bool StepperWrapper::IsActive() { BOOL active; CheckHResult(Stepper->IsActive(&active)); return (active == TRUE ? true : false); }
int ArrayValueWrapper::GetElementType() { CorElementType result; CheckHResult(arrayValue->GetElementType(&result)); return result; }
UInt32 ArrayValueWrapper::GetRank() { if (rank == -1) { ULONG32 tempRank; CheckHResult(ArrayValue->GetRank(&tempRank)); rank = tempRank; } return rank; }
// 根据制定的类型创建下载任务,返回任务处理http响应数据 task<HRESULT> WRTHttpRequest::DownloadAsync(PCWSTR httpMethod, PCWSTR uri, cancellation_token cancellationToken, PCWSTR contentType, IStream* postStream, uint64 postStreamSizeToSend) { // 创建IXMLHTTPRequest2对象 ComPtr<IXMLHTTPRequest2> xhr; CheckHResult(CoCreateInstance(CLSID_XmlHttpRequest, nullptr, CLSCTX_INPROC, IID_PPV_ARGS(&xhr))); // 创建回调 auto httpCallback = Make<HttpRequestCallback>(xhr.Get(),_response,cancellationToken); CheckHResult(httpCallback ? S_OK : E_OUTOFMEMORY); auto completionTask = create_task(httpCallback->GetCompletionEvent()); // 创建请求 CheckHResult(xhr->Open(httpMethod, uri, httpCallback.Get(), nullptr, nullptr, nullptr, nullptr)); if (postStream != nullptr && contentType != nullptr) { CheckHResult(xhr->SetRequestHeader(L"Content-Type", contentType)); } // 发送请求 CheckHResult(xhr->Send(postStream, postStreamSizeToSend)); // http请求完成时返回完成task,由于请求完成要调用回调方法,为了确保处理流程正确,特将回调方法作为参数传递进来 return completionTask.then([this, httpCallback](HRESULT hr) { if(SUCCEEDED(hr)) WRTHttpClient::getInstance()->response(_response); return hr; }); }
void StepperWrapper::Step(bool stepInto) { CheckHResult(Stepper->SetInterceptMask(INTERCEPT_ALL)); Stepper->SetUnmappedStopMask(STOP_ALL); CheckHResult(Stepper->Step((stepInto ? TRUE : FALSE))); }
void StepperWrapper::Deactivate() { CheckHResult(Stepper->Deactivate()); }
void StepperWrapper::StepOut() { CheckHResult(Stepper->SetInterceptMask(INTERCEPT_ALL)); Stepper->SetUnmappedStopMask(STOP_ALL); CheckHResult(Stepper->StepOut()); }