<div dir="ltr"><div>I'm proposing my HKEY_CLASSES_ROOT implementation patches for review. Feel free to comment.</div><div>So far, I've written code for all functions except for the RegEnum family.</div><div><br></div>
<div>General description:</div><div><br></div><div>HKCR handles are special. All wine handles have the two lowest bits zero'd. HKCR handles are masked. 10b specifically.</div><div>They have their own table separate from the generic handle table.</div>
<div>An HKCR handle has an HKCU handle and an HKLM handle below it. Access mask and a string representing the path are also needed</div><div>since the handle has to attempt to reopen previously failed openings at certain stages.</div>
<div><br></div><div>First patch: specially handles HKCR handles WITHOUT affecting the general behavior. The end result is still the exact same. Patch provides a foundation for the rest.</div><div>Second patch: added path management</div>
<div>Third patch: added HKCU</div><div><br></div><div>Here's a quick description of each function:</div><div><br></div><div>create_hkcr_struct: allocates the memory needed for the struct, adds it to the table and gives back a pointer to it</div>
<div>get_hkcr_path: given an HKCR handle and a subkey string, prepares a subkey string representing the same subkey rooted at HKLM/HKCU.</div><div>create_hkcr: RegCreateKeyEx</div><div>open_hkcr: RegOpenKeyEx</div><div>resolve_hkcr: checks the HKCR handle, tries to reopen previously failed internal handles, gives back HKCU first if available then HKLM</div>
<div>close_hkcr: deallocates path and struct, removes struct from table.</div><div><br></div></div>