
boost::property_tree::read_registry does not handle registry keys that contain periods correctly. Example: When I run the following code boost::property_tree::ptree pt; string key = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Drivers32"; boost::property_tree::read_registry(HKEY_LOCAL_MACHINE, key, pt); boost::property_tree::write_xml("Drivers32.xml", pt); I get the output below. But there is no registry key "msacm". There are registry keys "msacm.imaadpcm", "msacm.msadpcm" etc. --Johan Råde <?xml version="1.0" encoding="utf-8"?> ... <\values> ... <msacm> <imaadpcm>imaadp32.acm</imaadpcm> <msadpcm>msadp32.acm</msadpcm> <msg711>msg711.acm</msg711> <msgsm610>msgsm32.acm</msgsm610> <trspch>tssoft32.acm</trspch> <msg723>msg723.acm</msg723> <msaudio1>msaud32.acm</msaudio1> <sl_anet>sl_anet.acm</sl_anet> <iac2>C:\WINDOWS\system32\iac25_32.ax</iac2> <l3acm>C:\WINDOWS\system32\l3codeca.acm</l3acm> </msacm> ... </\values> <\types> ... <msacm> <imaadpcm>1</imaadpcm> <msadpcm>1</msadpcm> <msg711>1</msg711> <msgsm610>1</msgsm610> <trspch>1</trspch> <msg723>1</msg723> <msaudio1>1</msaudio1> <sl_anet>1</sl_anet> <iac2>1</iac2> <l3acm>1</l3acm> </msacm> .... </\types>