Geoff Chappell - Software Analyst
The original IObjectWithRegistryKey methods are (as ordered in the virtual function table after the IUnknown methods):
HRESULT SetKey (HKEY);
HRESULT GetKey (HKEY *);
The revision adds an argument to one method:
HRESULT GetKey (REGSAM, HKEY *);
The first known implementation is for the CRegistrySource class in SHLWAPI.DLL. Objects of this class are created through the QuerySourceCreateFromKey function. In Windows Vista, this SHLWAPI implementation is reproduced in PROPSYS.DLL, though without exporting the function.
The revised interface is also implemented in the SHDOCVW.DLL version 6.00 from Windows Vista, and higher, and in IEFRAME.DLL version 7.0 and higher, to support the class factory that makes instance classes. It is not presently known what benefit is obtained from this implementation.
The IObjectWithRegistryKey interface is implemented by SHLWAPI.DLL version 6.00 and higher. The revision begins with the build for Windows Vista.
Though this interface dates from 2001, it was still not documented by Microsoft as late as the January 2007 edition of the Windows Vista Software Development Kit (SDK).