本文整理汇总了C++中msxml2::IXMLDOMDocumentPtr::GetIID方法的典型用法代码示例。如果您正苦于以下问题:C++ IXMLDOMDocumentPtr::GetIID方法的具体用法?C++ IXMLDOMDocumentPtr::GetIID怎么用?C++ IXMLDOMDocumentPtr::GetIID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类msxml2::IXMLDOMDocumentPtr
的用法示例。
在下文中一共展示了IXMLDOMDocumentPtr::GetIID方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CheckVersionUpdate
BOOL CAutoUpdateDlg::CheckVersionUpdate(CString& strUpdateURL)
{
BOOL bHasUpdate = FALSE;
HRESULT hr = S_OK;
IXMLHTTPRequestPtr pHttpRequest;
IDispatchPtr pDispatch;
MSXML2::IXMLDOMDocumentPtr pXmlDoc;
MSXML2::IXMLDOMNodeListPtr pList;
MSXML2::IXMLDOMElementPtr pChild;
UINT nFileSize;
CString strFileName, strFileVer, strMD5String;
LONG lElementCount = 0L;
try
{
hr = pHttpRequest.CreateInstance(TEXT("Msxml2.XMLHTTP.3.0"));
if( FAILED(hr) )
_com_issue_error(hr);
hr = pHttpRequest->open(TEXT("GET"), (_bstr_t)strUpdateURL, false);
if( FAILED(hr) )
_com_issue_error(hr);
hr = pHttpRequest->send();
if( FAILED(hr) )
_com_issue_error(hr);
if (pHttpRequest->Getstatus() != 200)
throw (0);
pDispatch = pHttpRequest->GetresponseXML();
hr = pDispatch->QueryInterface(pXmlDoc.GetIID(), (void**)&pXmlDoc);
if( FAILED(hr) )
_com_issue_error(hr);
pList = pXmlDoc->selectNodes("/manifest/filelist/file");
lElementCount = pList->Getlength();
for( LONG i = 0; i < lElementCount; i++ )
{
pChild = pList->Getitem(i);
strFileName = pChild->getAttribute("filename");
nFileSize = pChild->getAttribute("filesize");
strFileVer = pChild->getAttribute("fileversion");
strMD5String = pChild->getAttribute("md5");
//如果本地文件存在则效验文件,不存在就下载这个文件
if (PathFileExists(m_strCurrentDir+strFileName))
{
//效验文件,如果MD5码不相同则重新下载
if (CMD5Checksum::GetMD5(m_strCurrentDir+strFileName) != strMD5String)
{
m_ulTotalLength += nFileSize;
m_DownloadMgr.AddTask(strFileName);
bHasUpdate = TRUE;
}
}
else
{
m_ulTotalLength += nFileSize;
m_DownloadMgr.AddTask(strFileName);
bHasUpdate = TRUE;
}
}
return bHasUpdate;
}
#ifdef _DEBUG
catch(_com_error& e)
{
CString strError;
strError.Format(_T("Error code:%d\nMessage:%s\nDescrption:%s"), (int)e.WCode(), e.ErrorMessage(), (TCHAR*)e.Description());
MessageBox(strError, _T("提示"), MB_OK|MB_ICONWARNING);
return FALSE;
}
#endif
catch(...)
{
return FALSE;
}
}