提交 4e7220c9 编写于 作者: E Elbandi 提交者: Kohsuke Kawaguchi

valueExists use the same code as getValue

上级 8d1cda0e
......@@ -156,14 +156,26 @@ public class RegistryKey {
* Does a specified value exist?
*/
public boolean valueExists(String name) {
int r = Advapi32.INSTANCE.RegQueryValueEx(handle, name, null, new IntByReference(), new byte[1], new IntByReference());
switch(r) {
case WINERROR.ERROR_FILE_NOT_FOUND:
return false;
case WINERROR.ERROR_SUCCESS:
return true;
default:
throw new JnaException(r);
IntByReference pType, lpcbData;
byte[] lpData = new byte[1];
pType = new IntByReference();
lpcbData = new IntByReference();
OUTER:
while(true) {
int r = Advapi32.INSTANCE.RegQueryValueEx(handle, name, null, pType, lpData, lpcbData);
switch(r) {
case WINERROR.ERROR_MORE_DATA:
lpData = new byte[lpcbData.getValue()];
continue OUTER;
case WINERROR.ERROR_FILE_NOT_FOUND:
return false;
case WINERROR.ERROR_SUCCESS:
return true;
default:
throw new JnaException(r);
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册