From cb183a66225f497bef8b32bbc25ef24e377c483f Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Thu, 11 May 2006 15:13:25 +0000 Subject: [PATCH] Patch for Ling@nokia. New entry to windows registry utility. --- .../library/winreg.cpp | 40 ++++++++++++++++++ .../os/win32/x86/winreg.dll | Bin 49152 -> 49152 bytes .../eclipse/cdt/utils/WindowsRegistry.java | 14 +++++- 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core.win32/library/winreg.cpp b/core/org.eclipse.cdt.core.win32/library/winreg.cpp index 8b0562ae7f1..2feeeb9ad48 100644 --- a/core/org.eclipse.cdt.core.win32/library/winreg.cpp +++ b/core/org.eclipse.cdt.core.win32/library/winreg.cpp @@ -28,3 +28,43 @@ JNIEXPORT jstring Java_org_eclipse_cdt_utils_WindowsRegistry_getLocalMachineValu return result; } + +/* + * Given a subkey (string) under HKEY_LOCAL_MACHINE, and an index (starting from 0) + * to the key's array of values, return the name of the indexed value. + * The return value is null on any error or when the index is invalid. + */ + +extern "C" +JNIEXPORT jstring Java_org_eclipse_cdt_utils_WindowsRegistry_getLocalMachineValueName( + JNIEnv * env, jobject obj, jstring subkey, jint index) +{ + const jchar * csubkey = env->GetStringChars(subkey, NULL); + jstring result = NULL; + + HKEY key; + LONG rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, (const wchar_t *)csubkey, 0, KEY_READ, &key); + if (rc != ERROR_SUCCESS) + return NULL; + + wchar_t valueName[256]; + DWORD nameSize = sizeof(valueName) + 2; + + rc = RegEnumValue(key, index, + valueName, // UNICODE string + &nameSize, + NULL, NULL, + NULL, // data string + NULL); // size in BYTE of data. + + if (rc == ERROR_SUCCESS) + { + result = env->NewString((jchar *)valueName, nameSize); + } + + RegCloseKey(key); + + env->ReleaseStringChars(subkey, csubkey); + + return result; +} diff --git a/core/org.eclipse.cdt.core.win32/os/win32/x86/winreg.dll b/core/org.eclipse.cdt.core.win32/os/win32/x86/winreg.dll index 5290964e77db8a98aae0c27194995bac1afd27c7..d0d0636d9feff64bd665a55947d876c66392518d 100644 GIT binary patch delta 5782 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 CZ9EA8 diff --git a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/WindowsRegistry.java b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/WindowsRegistry.java index b73e67dda89..c96fcbdbd48 100644 --- a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/WindowsRegistry.java +++ b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/WindowsRegistry.java @@ -43,5 +43,17 @@ public class WindowsRegistry { * @return registry value or null if not found */ public native String getLocalMachineValue(String subkey, String name); - + + /** + * Given a subkey of HKEY_LOCAL_MACHINE, and an index (starting from 0) + * to the key's array of values, return the name of the indexed value. + * The return value is null on any error or when the index is invalid. + * The value name can be used in the above getLocalMachineValue() to retrieve + * the value data. + * @param subkey subkey of HKEY_LOCAL_MACHINE + * @param index index to the subkey's array of values, starting from 0. + * @return name of registry value or null if not found + */ + public native String getLocalMachineValueName(String subkey, int index); + }