From c773868cfdd5c29479ff8a3b4366d2de23c012b4 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Wed, 16 May 2007 17:02:45 +0000 Subject: [PATCH] Patch for Ken Ryall - 186436 - add getLocalMachineKeyName() native method. --- .../library/winreg/winreg.cpp | 40 ++++++++++++++++++ .../os/win32/x86/winreg.dll | Bin 16657 -> 16949 bytes .../eclipse/cdt/utils/WindowsRegistry.java | 12 ++++++ 3 files changed, 52 insertions(+) diff --git a/core/org.eclipse.cdt.core.win32/library/winreg/winreg.cpp b/core/org.eclipse.cdt.core.win32/library/winreg/winreg.cpp index 81367b9e47c..c10d37a253e 100644 --- a/core/org.eclipse.cdt.core.win32/library/winreg/winreg.cpp +++ b/core/org.eclipse.cdt.core.win32/library/winreg/winreg.cpp @@ -78,3 +78,43 @@ JNIEXPORT jstring JNICALL Java_org_eclipse_cdt_utils_WindowsRegistry_getLocalMac return result; } + +/* + * Given a subkey (string) under HKEY_LOCAL_MACHINE, and an index (starting from 0) + * to the key's array of keys, return the name of the indexed key. + * The return value is null on any error or when the index is invalid. + */ + +extern "C" +JNIEXPORT jstring JNICALL Java_org_eclipse_cdt_utils_WindowsRegistry_getLocalMachineKeyName( + 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 keyName[256]; + DWORD nameSize = sizeof(keyName) + 2; + + rc = RegEnumKeyEx(key, index, + keyName, // UNICODE string + &nameSize, + NULL, NULL, + NULL, + NULL); // size in BYTE of data. + + if (rc == ERROR_SUCCESS) + { + result = env->NewString((jchar *)keyName, 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 771e5e7598a9d0b9b8361107e6816b7e33e829f5..0d613301f7a29c8c9be77d92d1e14987e9ff6d0c 100644 GIT binary patch literal 16949 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 literal 16657 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