}
// check_error -
//	Checks that the last called registry method succeded.
function check_error()
{
    global $registry, $tab, $eol;
    $status = $registry->GetLastError();
    if ($status) {
        echo "Last registry call failed, status = 0x" . sprintf("%08X", $status) . $eol;
        exit;
    }
}
// 0) Create the registry object
$registry = new Registry();
// 1) Enumerate all the keys under HKCU\Software and print them
$keys = $registry->EnumKeys(Registry::HKCU, 'Software');
check_error();
echo "Registry keys for HKCU\\Software :\n";
foreach ($keys as $key) {
    echo "{$tab}{$key}{$eol}";
}
// 2) Create the HKCU\TestRegistry\Values key
$test_key = 'TestRegistry/Values';
// Slashes are replaced by backslashes
$registry->CreateKey(Registry::HKCU, $test_key);
check_error();
// 3.a.1) Create the HKCU\TestRegistry\Values\BinaryValueFromString key
$registry->SetBinaryValue(Registry::HKCU, $test_key, 'BinaryValueFromString', 'ABCDEF');
check_error();
// 3.a.2) Create the HKCU\TestRegistry\Values\BinaryValueFromrArray key (set to "ABC")
$registry->SetBinaryValue(Registry::HKCU, $test_key, 'BinaryValueFromArray', [65, 66, 67]);