IQueryRecentWinSATAssessment::get_XML-Methode (winsatcominterfacei.h)
[IQueryRecentWinSATAssessment::XML ist nach Windows 8.1 möglicherweise geändert oder nicht mehr verfügbar.]
Ruft Daten aus dem XML-Bewertungsdokument mithilfe des angegebenen XPath ab. Die Abfrage wird für die letzte formale Bewertung im WinSAT-Datenspeicher ausgeführt.
Diese Eigenschaft ist schreibgeschützt.
Syntax
HRESULT get_XML(
BSTR xPath,
BSTR namespaces,
IXMLDOMNodeList **ppDomNodeList
);
Parameter
xPath
namespaces
ppDomNodeList
Rückgabewert
Keine
Bemerkungen
Sie können diese Methode verwenden, um Details der Bewertung abzurufen, die in den über die API bereitgestellten Zusammenfassungsinformationen nicht verfügbar sind. Ausführliche Informationen zu allen in einer Bewertung verfügbaren Informationen finden Sie unter WinSAT-Schema.
Die erste formale Bewertung wird ausgeführt, wenn Sie Ihren Computer erstmalig einrichten. Die anfängliche Bewertung verbleibt für die Lebensdauer des Datenspeichers im Datenspeicher. Der WinSAT-Datenspeicher kann bis zu 100 formale Bewertungen enthalten. Wenn der Speicher die Kapazität erreicht, löscht WinSAT die älteste Bewertung (aber nicht die anfängliche Bewertung) im Datenspeicher für jede neue formale Bewertung, die ausgeführt wird.
Der WinSAT-Datenspeicher enthält nur formale Bewertungen. Wenn Sie Bewertungsdaten aus Ad-hoc-Bewertungen abrufen möchten, müssen Sie die Ergebnisse beim Ausführen der Bewertung in einer XML-Datei speichern (ausführliche Informationen finden Sie im Befehlszeilenargument -xml ). Anschließend können Sie die Member der IXMLDOMDocument2-Schnittstelle verwenden, um Daten aus der Ad-hoc-Bewertung abzufragen.
Um Zusammenfassungsinformationen zur Bewertung abzurufen, rufen Sie die IQueryRecentWinSATAssessment::get_Info-Methode auf. Um Zusammenfassungsinformationen für einen Teil der Bewertung abzurufen, rufen Sie die IProvideWinSATResultsInfo::GetAssessmentInfo-Methode auf.
Beispiele
Das folgende Beispiel zeigt, wie Sie eine XPath-Abfrage verwenden, um Daten aus der letzten formalen Bewertung abzurufen.
#include <windows.h>
#include <stdio.h>
#include <winsatcominterfacei.h>
#pragma comment(lib, "ole32.lib")
#pragma comment(lib, "oleaut32.lib")
void main(void)
{
HRESULT hr = S_OK;
IQueryRecentWinSATAssessment* pAssessment;
IXMLDOMNodeList* pNodes = NULL;
IXMLDOMNode* pNode = NULL;
long NodeCount = 0;
BSTR bstrXPath = SysAllocString(L"WinSAT/TotalRunTime/Description");
BSTR bstrTime = NULL;
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
// Get an instance to the most recent formal assessment.
hr = CoCreateInstance(__uuidof(CQueryWinSAT),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IQueryRecentWinSATAssessment),
(void**)&pAssessment);
if (FAILED(hr))
{
wprintf(L"Failed to create an instance of IQueryRecentWinSATAssessment. Failed with 0x%x.\n", hr);
goto cleanup;
}
// Query the assessment for the nodes that match the XPath expression.
hr = pAssessment->get_XML(bstrXPath, NULL, &pNodes);
if (FAILED(hr))
{
wprintf(L"pAssessment->get_XML failed with 0x%x.\n", hr);
goto cleanup;
}
hr = pNodes->get_length(&NodeCount);
wprintf(L"There were %d results found for the XPath query.\n\n", NodeCount);
// Loop through the results.
for (long i = 0; i < NodeCount; i++)
{
hr = pNodes->nextNode(&pNode);
if (pNode)
{
hr = pNode->get_text(&bstrTime);
if (S_OK == hr)
{
wprintf(L"Total runtime of the assessment: %s\n", bstrTime);
SysFreeString(bstrTime);
}
else
{
wprintf(L"pNode->get_text failed with 0x%x.\n", hr);
goto cleanup;
}
pNode->Release();
pNode = NULL;
}
else
{
wprintf(L"pNodes->nextNode failed with 0x%x.\n", hr);
goto cleanup;
}
}
cleanup:
if (pAssessment)
pAssessment->Release();
if (pNodes)
pNodes->Release();
if (bstrXPath)
SysFreeString(bstrXPath);
CoUninitialize();
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Nicht unterstützt |
Zielplattform | Windows |
Kopfzeile | winsatcominterfacei.h |
DLL | Winsatapi.dll |