Зачем нужен параметр lpClass в функции RegCreateKeyEx?

Любой разработчик, кто хоть раз создавал ключ в реестре с помощью функции RegCreateKeyEx задавался вопросом: «а зачем нужен параметр lpClass и что он означает?»

lpClass [in, optional] The user-defined class type of this key. This parameter may be ignored. This parameter can be NULL.

MSDN, в общем то, не даёт прямого ответа на этот вопрос. Самое забавное, что ответа на этот вопрос не знает никто, включая и текущего разработчика, ответственного за сопровождение реестра, и его предшественника. :-) Вернее не совсем так. Они, безусловно, знают какая функциональность стоит за этим параметром и как она реализована. Но они не имеют ни малейшего понятия, для чего эта возможность предназначалась изначально. Более того, известный своими экскурсами в историю Raymond Chen также не помнит, зачем это было нужно. Единственная ниточка - письмо другого разработчика, хоть немного проливающее свет, было безвозвратно утеряно. И, конечно же, люди это писавшие на пенсии давно. :-)

Так какая же функциональность скрывается за этим параметром сейчас? Этот параметр позволяет при создании ключа задать строку, которая будет храниться с этим ключом, пока тот не будет удалён. Эта строка может быть прочитана с помощью функции RegQueryInfoKey. Всё.

Update: напоминаю, что все бессмысленные комментарии режутся нещадно.

comments powered by Disqus