    class
    	WEL_REGISTRY

    General
    	cluster: wel
    	description: "Registry manager"

    Ancestors
    	STRING_HANDLER
    	WEL_HKEY
    	WEL_REGISTRY_ACCESS_MODE

    Queries
    	basic_valid_name_for_hkey (name: STRING_GENERAL): BOOLEAN
    	basic_valid_value_for_hkey (value: POINTER): BOOLEAN
    	create_key (parent_key: POINTER; key_name: STRING_GENERAL; sam: INTEGER_32): POINTER
    	enumerate_key (key: POINTER; index: INTEGER_32): WEL_REGISTRY_KEY
    	enumerate_value (key: POINTER; index: INTEGER_32): STRING_GENERAL
    	enumerate_values (key: POINTER): LINKED_LIST [STRING_32]
    	enumerate_values_as_string_8 (key: POINTER): LINKED_LIST [STRING_8]
    	hkey_classes_root: POINTER
    	hkey_current_config: POINTER
    	hkey_current_user: POINTER
    	hkey_dyn_data: POINTER
    	hkey_local_machine: POINTER
    	hkey_performance_data: POINTER
    	hkey_users: POINTER
    	index_value_for_root_keys (name: STRING_GENERAL): POINTER
    	key_all_access: INTEGER_32
    	key_create_link: INTEGER_32
    	key_create_sub_key: INTEGER_32
    	key_enumerate_sub_keys: INTEGER_32
    	key_execute: INTEGER_32
    	key_from_remote_host (host_name: STRING_GENERAL; root_key: POINTER): POINTER
    	key_notify: INTEGER_32
    	key_query_value: INTEGER_32
    	key_read: INTEGER_32
    	key_set_value: INTEGER_32
    	key_value (key: POINTER; value_name: STRING_GENERAL): WEL_REGISTRY_KEY_VALUE
    	key_write: INTEGER_32
    	last_call_successful: BOOLEAN
    	number_of_subkeys (key: POINTER): INTEGER_32
    	number_of_values (key: POINTER): INTEGER_32
    	open_key (parent_key: POINTER; key_name: STRING_GENERAL; access_mode: INTEGER_32): POINTER
    	open_key_value (key_path, value_name: STRING_GENERAL): WEL_REGISTRY_KEY_VALUE
    	open_key_with_access (key_path: STRING_GENERAL; acc: INTEGER_32): POINTER
    	valid_value_for_hkey (key: POINTER): BOOLEAN

    Commands
    	close_key (key: POINTER)
    	create_new_key (key_path: STRING_GENERAL)
    	delete_key (parent_key: POINTER; key_name: STRING_GENERAL)
    	delete_key_value (key_path, value_name: STRING_GENERAL)
    	delete_value (parent_key: POINTER; name: STRING_GENERAL)
    	save_key_value (key_path, value_name: STRING_GENERAL; value: WEL_REGISTRY_KEY_VALUE)
    	set_key_value (key: POINTER; value_name: STRING_GENERAL; value: WEL_REGISTRY_KEY_VALUE)