kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Restrict type Registory

RegQueryValueExで指定するレジストリのデータタイプの定数を調べようとWindows SDKのヘッダを見ると"RRF_RT_REG_SZ"なんていう見慣れない値があるではありませんか。定数としては0x2。あれ、こんな値だっけ?と思っているとコメントにはこんなことが書いてある。winreg.hより引用

// restrict type to REG_SZ        
// (other data types will not return ERROR_SUCCESS) 
// (automatically converts REG_EXPAND_SZ to REG_SZ unless RRF_NOEXPAND is specified)
#define RRF_RT_REG_SZ          0x00000002  

どうもこの値はWindows Server 2003 SP1/Windows XP x64 Edition以降でサポートされたRegGetValue()用だそうです。ちなみにREG_SZの定義は0x1。なんて紛らわしい。
Windows NT 3.1で本格的にレジストリを使うようになって、なんでRegQueryValueなんてわかりにくい名前なんだろうと思っていたのですが、やっとわかりやすい名前になったってところ?