]> wimlib.net Git - wimlib/blobdiff - include/wimlib/registry.h
Implement setting of Windows-specific XML information
[wimlib] / include / wimlib / registry.h
diff --git a/include/wimlib/registry.h b/include/wimlib/registry.h
new file mode 100644 (file)
index 0000000..3de8195
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef _WIMLIB_REGISTRY_H
+#define _WIMLIB_REGISTRY_H
+
+#include "wimlib/types.h"
+
+struct regf;
+
+enum hive_status {
+       HIVE_OK,
+       HIVE_CORRUPT,
+       HIVE_UNSUPPORTED,
+       HIVE_KEY_NOT_FOUND,
+       HIVE_VALUE_NOT_FOUND,
+       HIVE_VALUE_IS_WRONG_TYPE,
+       HIVE_OUT_OF_MEMORY,
+};
+
+extern enum hive_status
+hive_validate(const void *hive_mem, size_t hive_size);
+
+extern enum hive_status
+hive_get_string(const struct regf *regf, const tchar *key_name,
+               const tchar *value_name, tchar **value_ret);
+
+extern enum hive_status
+hive_get_number(const struct regf *regf, const tchar *key_name,
+               const tchar *value_name, s64 *value_ret);
+
+extern enum hive_status
+hive_list_subkeys(const struct regf *regf, const tchar *key_name,
+                 tchar ***subkeys_ret);
+
+extern void
+hive_free_subkeys_list(tchar **subkeys);
+
+extern const char *
+hive_status_to_string(enum hive_status status);
+
+#endif /* _WIMLIB_REGISTRY_H */