Metodo IQueryRecentWinSATAssessment::get_XML (winsatcominterfacei.h)
[IQueryRecentWinSATAssessment::XML può essere modificato o non disponibile per le versioni dopo Windows 8.1.]
Recupera i dati dal documento di valutazione XML usando XPath specificato. La query viene eseguita rispetto alla valutazione formale più recente nell'archivio dati WinSAT.
Questa proprietà è di sola lettura.
Sintassi
HRESULT get_XML(
BSTR xPath,
BSTR namespaces,
IXMLDOMNodeList **ppDomNodeList
);
Parametri
xPath
namespaces
ppDomNodeList
Valore restituito
nessuno
Osservazioni
È possibile usare questo metodo per recuperare i dettagli della valutazione che non sono disponibili nelle informazioni di riepilogo fornite tramite l'API. Per informazioni dettagliate su tutte le informazioni disponibili in una valutazione, vedere Lo schema WinSAT.
La prima valutazione formale viene eseguita quando si configura inizialmente il computer. La valutazione iniziale rimarrà nell'archivio dati per la durata dell'archivio dati. L'archivio dati WinSAT può contenere fino a 100 valutazioni formali. Quando l'archivio raggiunge la capacità, WinSAT eliminerà la valutazione meno recente (ma non la valutazione iniziale) nell'archivio dati per ogni nuova valutazione formale eseguita.
L'archivio dati WinSAT contiene solo valutazioni formali. Se si desidera recuperare i dati di valutazione dalle valutazioni ad hoc, è necessario salvare i risultati in un file XML quando si esegue la valutazione (vedere l'argomento della riga di comando -xml per informazioni dettagliate). È quindi possibile usare i membri dell'interfaccia IXMLDOMDocument2 per eseguire query sui dati dalla valutazione ad hoc.
Per recuperare informazioni di riepilogo sulla valutazione, chiamare il metodo IQueryRecentWinSATAssessment::get_Info . Per recuperare informazioni di riepilogo per un sottocomponente della valutazione, chiamare il metodo IProvideWinSATResultsInfo::GetAssessmentInfo .
Esempio
Nell'esempio seguente viene illustrato come usare una query XPath per ottenere dati dalla valutazione formale più recente.
#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();
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Nessuno supportato |
Piattaforma di destinazione | Windows |
Intestazione | winsatcominterfacei.h |
DLL | Winsatapi.dll |