added QueryRawValue() to wxRegKey and test code for it in the sample

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2000-10-12 23:40:26 +00:00
parent 1fc8878582
commit 6dfec4b8d9
4 changed files with 199 additions and 97 deletions

View File

@@ -49,8 +49,9 @@
//#define TEST_LONGLONG
//#define TEST_MIME
//#define TEST_INFO_FUNCTIONS
#define TEST_REGISTRY
//#define TEST_SOCKETS
#define TEST_STREAMS
//#define TEST_STREAMS
//#define TEST_STRINGS
//#define TEST_THREADS
//#define TEST_TIMER
@@ -1054,6 +1055,87 @@ static void TestLongLongComparison()
#endif // TEST_LONGLONG
// ----------------------------------------------------------------------------
// registry
// ----------------------------------------------------------------------------
// this is for MSW only
#ifndef __WXMSW__
#undef TEST_REGISTRY
#endif
#ifdef TEST_REGISTRY
#include <wx/msw/registry.h>
// I chose this one because I liked its name, but it probably only exists under
// NT
static const wxChar *TESTKEY =
_T("HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Control\\CrashControl");
static void TestRegistryRead()
{
puts("*** testing registry reading ***");
wxRegKey key(TESTKEY);
printf("The test key name is '%s'.\n", key.GetName().c_str());
if ( !key.Open() )
{
puts("ERROR: test key can't be opened, aborting test.");
return;
}
size_t nSubKeys, nValues;
if ( key.GetKeyInfo(&nSubKeys, NULL, &nValues, NULL) )
{
printf("It has %u subkeys and %u values.\n", nSubKeys, nValues);
}
printf("Enumerating values:\n");
long dummy;
wxString value;
bool cont = key.GetFirstValue(value, dummy);
while ( cont )
{
printf("Value '%s': type ", value.c_str());
switch ( key.GetValueType(value) )
{
case wxRegKey::Type_None: printf("ERROR (none)"); break;
case wxRegKey::Type_String: printf("SZ"); break;
case wxRegKey::Type_Expand_String: printf("EXPAND_SZ"); break;
case wxRegKey::Type_Binary: printf("BINARY"); break;
case wxRegKey::Type_Dword: printf("DWORD"); break;
case wxRegKey::Type_Multi_String: printf("MULTI_SZ"); break;
default: printf("other (unknown)"); break;
}
printf(", value = ");
if ( key.IsNumericValue(value) )
{
long val;
key.QueryValue(value, &val);
printf("%ld", val);
}
else // string
{
wxString val;
key.QueryValue(value, val);
printf("'%s'", val.c_str());
key.QueryRawValue(value, val);
printf(" (raw value '%s')", val.c_str());
}
putchar('\n');
cont = key.GetNextValue(value, dummy);
}
}
#endif // TEST_REGISTRY
// ----------------------------------------------------------------------------
// sockets
// ----------------------------------------------------------------------------
@@ -3612,6 +3694,10 @@ int main(int argc, char **argv)
TestUserInfo();
#endif // TEST_INFO_FUNCTIONS
#ifdef TEST_REGISTRY
TestRegistryRead();
#endif // TEST_REGISTRY
#ifdef TEST_SOCKETS
if ( 0 )
{