class sys.RegKey

class RegKey {
    // construction

    construct();
    destruct();

    // methods

    void close();

    bool errorcode create(
        sys.RegStdKey parent,
        string_t path
    );

    bool errorcode create(
        sys.RegKey* parent,
        string_t path
    );

    bool errorcode open(
        sys.RegStdKey parent,
        string_t path,
        sys.RegKeyAccess access = RegKeyAccess.All
    );

    bool errorcode open(
        sys.RegKey* parent,
        string_t path,
        sys.RegKeyAccess access = RegKeyAccess.All
    );

    void const* errorcode read(
        string_t name,
        sys.RegValueType* type = null
    );

    uint32_t readDword(string_t name);
    string_t readString(string_t name);

    bool errorcode write(
        string_t name,
        sys.RegValueType type,
        void const* data,
        size_t size
    );

    bool errorcode writeDword(
        string_t name,
        uint32_t value
    );

    bool errorcode writeString(
        string_t name,
        string_t value
    );

    // aliases

    alias dispose = close;
};