枚举值名称 - RegistryEnumValues
函数简介
枚举当前注册表键下的所有值名称,返回JSON数组格式。
接口名称
RegistryEnumValues
DLL调用
int64_t RegistryEnumValues(int64_t instance, int64_t key)
参数定义:
instance(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。key(长整型数): 注册表键句柄,由 RegistryOpenKey 或 RegistryCreateKey 返回
示例:
// 创建OLA对象
int64_t instance = CreateCOLAPlugInterFace();
// 打开注册表键
int64_t key = RegistryOpenKey(instance, 1, "Software\\OLAPlug\\Config");
if (key != 0) {
// 枚举所有值名称
int64_t jsonPtr = RegistryEnumValues(instance, key);
if (jsonPtr != 0) {
const char* json = (const char*)jsonPtr;
printf("值名称列表: %s\n", json);
// 输出示例: ["AppName","Version","Enabled","InstallPath"]
// 可以遍历每个值名称并读取其值
// 使用JSON解析库解析返回的数组
// 释放字符串内存
FreeStringPtr(instance, jsonPtr);
} else {
printf("没有值或枚举失败\n");
}
// 关闭注册表键
RegistryCloseKey(instance, key);
}
// 释放资源
DestroyCOLAPlugInterFace(instance);
返回值
长整型数:
- 成功: 返回包含所有值名称的JSON数组字符串句柄,例如
["Value1","Value2"] - 失败或无值: 返回 0 或空数组
[]
注意事项
- 返回的字符串句柄需使用 FreeStringPtr 释放
- 返回的是JSON数组格式,需要解析后使用
- 默认值(空名称)可能显示为空字符串
"" - 如果键下没有值,返回空数组
[] - 值名称按字母顺序排列
- 不包含值的类型和数据,仅包含名称
