IQueryAllWinSATAssessments::get_AllXML-Methode (winsatcominterfacei.h)
[IQueryAllWinSATAssessments::AllXML kann für Releases nach Windows 8.1 geändert oder nicht mehr verfügbar sein.]
Ruft Daten aus den formalen XML-Bewertungsdokumenten mithilfe des angegebenen XPath ab. Die Abfrage wird für alle formalen Bewertungen im WinSAT-Datenspeicher ausgeführt.
Diese Eigenschaft ist schreibgeschützt.
Syntax
HRESULT get_AllXML(
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 im WinSAT-Schema.
Die erste formale Bewertung wird ausgeführt, wenn Sie Ihren Computer erstmalig einrichten. Die erste Bewertung verbleibt während der 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 erstbewertung) 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 Elemente der IXMLDOMDocument2-Schnittstelle verwenden, um Daten aus der Ad-hoc-Bewertung abzufragen.
Die Reihenfolge, in der die Bewertungen zurückgegeben werden, ist willkürlich.
Beispiele
Das folgende Beispiel zeigt, wie Sie mithilfe einer XPath-Abfrage Daten aus den einzelnen formalen Bewertungen im Bewertungsspeicher abrufen.
#include <windows.h>
#include <stdio.h>
#include <comutil.h>
#include <winsatcominterfacei.h>
#pragma comment(lib, "comsupp.lib") // For _bstr_t
void main(void)
{
HRESULT hr = S_OK;
IQueryAllWinSATAssessments* pAssessment;
IXMLDOMNodeList* pNodes = NULL;
IXMLDOMNode* pMemory = NULL;
IXMLDOMNode* pNode = NULL;
_bstr_t bstrXPath = L"WinsatAssessments/WinSAT/SystemConfig/Memory";
_bstr_t bstrAvailableRAM;
_bstr_t bstrTotalRAM;
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
// Get an instance to the most recent formal assessment.
hr = CoCreateInstance(__uuidof(CQueryAllWinSAT),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IQueryAllWinSATAssessments),
(void**)&pAssessment);
if (FAILED(hr))
{
wprintf(L"Failed to create an instance of IQueryAllWinSATAssessments. Failed with 0x%x.\n", hr);
goto cleanup;
}
// Query the assessments for the memory nodes.
hr = pAssessment->get_AllXML(bstrXPath, NULL, &pNodes);
if (FAILED(hr))
{
wprintf(L"pAssessment->get_XML failed with 0x%x.\n", hr);
goto cleanup;
}
hr = pNodes->nextNode(&pMemory);
// Loop through the memory nodes and get available and total memory size
// values and print them.
while (pMemory)
{
hr = pMemory->selectSingleNode(L"TotalPhysical/Size", &pNode);
if (FAILED(hr))
{
wprintf(L"pMemory->selectSingleNode(TotalPhysical/Size) failed with 0x%x.\n", hr);
goto cleanup;
}
hr = pNode->get_text(bstrTotalRAM.GetAddress());
if (FAILED(hr))
{
wprintf(L"pNode->get_text(bstrTotalRAM) failed with 0x%x.\n", hr);
goto cleanup;
}
pNode->Release();
pNode = NULL;
hr = pMemory->selectSingleNode(L"AvailablePhysical/Size", &pNode);
if (FAILED(hr))
{
wprintf(L"pMemory->selectSingleNode(AvailablePhysical/Size) failed with 0x%x.\n", hr);
goto cleanup;
}
hr = pNode->get_text(bstrAvailableRAM.GetAddress());
if (FAILED(hr))
{
wprintf(L"pNode->get_text(bstrAvailableRAM) failed with 0x%x.\n", hr);
goto cleanup;
}
pNode->Release();
pNode = NULL;
wprintf(L"Available RAM: %s of %s\n", bstrAvailableRAM.GetBSTR(), bstrTotalRAM.GetBSTR());
pMemory->Release();
pMemory = NULL;
hr = pNodes->nextNode(&pMemory);
}
cleanup:
if (pAssessment)
pAssessment->Release();
if (pNodes)
pNodes->Release();
if (pMemory)
pMemory->Release();
if (pNode)
pNode->Release();
CoUninitialize();
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Nicht unterstützt |
Zielplattform | Windows |
Kopfzeile | winsatcominterfacei.h |
DLL | Winsatapi.dll |