查了一下MSDN Library -July 2000,看到IXMLHttpRequest接口,不知道这么用它,代码如下
CComPtr<IXMLHttpRequest> m_pRequest;
m_pRequest.CoCreateInstance(CLSID_XMLHttpRequest);
报错error C2065: 'CLSID_XMLHttpRequest' : undeclared identifier上http://msdn.microsoft.com查IXMLHttpRequest接口,没有,只有IXMLHTTPRequest,两者有什么区别呢?怎么样用IXMLHttpRequest,要配置什么条件嘛,急
CComPtr<IXMLHttpRequest> m_pRequest;
m_pRequest.CoCreateInstance(CLSID_XMLHttpRequest);
报错error C2065: 'CLSID_XMLHttpRequest' : undeclared identifier上http://msdn.microsoft.com查IXMLHttpRequest接口,没有,只有IXMLHTTPRequest,两者有什么区别呢?怎么样用IXMLHttpRequest,要配置什么条件嘛,急
using namespace MSXML2;void XMLHttpRequestSample()
{
IXMLHTTPRequestPtr pIXMLHTTPRequest = NULL;
BSTR bstrString = NULL;
HRESULT hr; try {
hr=pIXMLHTTPRequest.CreateInstance("Msxml2.XMLHTTP");
SUCCEEDED(hr) ? 0 : throw hr; hr=pIXMLHTTPRequest->open("GET", "http://XMLSampleServer/CatalogServer.asp", false);
SUCCEEDED(hr) ? 0 : throw hr; hr=pIXMLHTTPRequest->send();
SUCCEEDED(hr) ? 0 : throw hr;
bstrString=pIXMLHTTPRequest->responseText; MessageBox(NULL, _bstr_t(bstrString), _T("Results"), MB_OK); if(bstrString)
{
::SysFreeString(bstrString);
bstrString = NULL;
} } catch (...) {
MessageBox(NULL, _T("Exception occurred"), _T("Error"), MB_OK);
if(bstrString)
::SysFreeString(bstrString);
}}
现在要用IXMLHttpRequest 做,怎么办
IXMLHttpRequest是什么啊?
MSDN上只有IXMLHTTPRequest啊,FT。
对于这个“CComPtr<IXMLHttpRequest> m_pRequest;”一般来说MS提供的COM都已经有实现comptr这个接口的,所以不需要这么做。
m_pRequest.CoCreateInstance(L"microsoft.xmlhttp");
好像要这样吧
而最新的MSDN上看只有IXMLHTTPRequest,对应的dll是:Msxml2.dll / Msxml3.dll
Implemented in: MSXML 2.0 and later所以应该是版本不同,接口是一样的。
把代码里面的IXMPHTTPRequestPtr换成IXMLHttpRequestPtr也是OK的。