2025-04-27 07:49:33 -04:00

76 lines
1.8 KiB
C++

// **************************************************************************
//
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
//
// File: pathtest.cpp
//
// Description:
// Test app to test the object path parser
//
// History:
//
// **************************************************************************
#include <windows.h>
#include <stdio.h>
#include "genlex.h"
#include "objpath.h"
void main(int argc, char **argv)
{
ParsedObjectPath* pOutput = 0;
wchar_t *pPath = L"\\\\.\\root\\default:MyClass=\"keyval\"";
CObjectPathParser p;
int nStatus = p.Parse(pPath, &pOutput);
printf("Return code is %d\n", nStatus);
if (nStatus != 0)
return;
printf("----Output----\n");
LPWSTR pKey = pOutput->GetKeyString();
printf("Key String = <%S>\n", pKey);
delete pKey;
printf("Server = %S\n", pOutput->m_pServer);
for (DWORD dwIx = 0; dwIx < pOutput->m_dwNumNamespaces; dwIx++)
{
printf("Namespace = <%S>\n", pOutput->m_paNamespaces[dwIx]);
}
printf("Class = <%S>\n", pOutput->m_pClass);
// If here, the key ref is complete.
// =================================
for (dwIx = 0; dwIx < pOutput->m_dwNumKeys; dwIx++)
{
KeyRef *pTmp = pOutput->m_paKeys[dwIx];
printf("*** KeyRef contents:\n");
printf(" Name = %S Value=", pTmp->m_pName);
switch (V_VT(&pTmp->m_vValue))
{
case VT_I4: printf("%d", V_I4(&pTmp->m_vValue)); break;
case VT_R8: printf("%f", V_R8(&pTmp->m_vValue)); break;
case VT_BSTR: printf("<%S>", V_BSTR(&pTmp->m_vValue)); break;
default:
printf("BAD KEY REF\n");
}
printf("\n");
}
p.Free(pOutput);
}