📄 win32uienhancer.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: Win32UIEnhancer.java
package org.gudy.azureus2.ui.swt.win32;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.internal.win32.OS;
import org.eclipse.swt.internal.win32.TCHAR;
public class Win32UIEnhancer
{
public Win32UIEnhancer()
{
}
static String findProgramKey(String extension)
{
if (extension == null)
SWT.error(4);
if (extension.length() == 0)
return null;
if (extension.charAt(0) != '.')
extension = (new StringBuilder()).append(".").append(extension).toString();
TCHAR key = new TCHAR(0, extension, true);
int phkResult[] = new int[1];
if (OS.RegOpenKeyEx(0x80000000, key, 0, 0x20019, phkResult) != 0)
return null;
int lpcbData[] = new int[1];
int result = OS.RegQueryValueEx(phkResult[0], null, 0, null, (TCHAR)null, lpcbData);
if (result == 0)
{
TCHAR lpData = new TCHAR(0, lpcbData[0] / TCHAR.sizeof);
result = OS.RegQueryValueEx(phkResult[0], null, 0, null, lpData, lpcbData);
if (result == 0)
return lpData.toString(0, lpData.strlen());
}
OS.RegCloseKey(phkResult[0]);
return null;
}
public static ImageData getBigImageData(String extension)
{
String key = findProgramKey(extension);
if (key == null)
return null;
String DEFAULT_ICON = "\\DefaultIcon";
String iconName = getKeyValue((new StringBuilder()).append(key).append(DEFAULT_ICON).toString(), true);
if (iconName == null)
iconName = "";
int nIconIndex = 0;
String fileName = iconName;
int index = iconName.indexOf(',');
if (index != -1)
{
fileName = iconName.substring(0, index);
String iconIndex = iconName.substring(index + 1, iconName.length()).trim();
try
{
nIconIndex = Integer.parseInt(iconIndex);
}
catch (NumberFormatException e) { }
}
TCHAR lpszFile = new TCHAR(0, fileName, true);
int phiconSmall[] = null;
int phiconLarge[] = new int[1];
OS.ExtractIconEx(lpszFile, nIconIndex, phiconLarge, phiconSmall, 1);
if (phiconLarge[0] == 0)
{
return null;
} else
{
Image image = Image.win32_new(null, 1, phiconLarge[0]);
ImageData imageData = image.getImageData();
image.dispose();
return imageData;
}
}
static String getKeyValue(String string, boolean expand)
{
TCHAR key = new TCHAR(0, string, true);
int phkResult[] = new int[1];
if (OS.RegOpenKeyEx(0x80000000, key, 0, 0x20019, phkResult) != 0)
return null;
String result = null;
int lpcbData[] = new int[1];
if (OS.RegQueryValueEx(phkResult[0], (TCHAR)null, 0, null, (TCHAR)null, lpcbData) == 0)
{
result = "";
int length = lpcbData[0] / TCHAR.sizeof;
if (length != 0)
{
TCHAR lpData = new TCHAR(0, length);
if (OS.RegQueryValueEx(phkResult[0], null, 0, null, lpData, lpcbData) == 0)
if (!OS.IsWinCE && expand)
{
length = OS.ExpandEnvironmentStrings(lpData, null, 0);
if (length != 0)
{
TCHAR lpDst = new TCHAR(0, length);
OS.ExpandEnvironmentStrings(lpData, lpDst, length);
result = lpDst.toString(0, Math.max(0, length - 1));
}
} else
{
length = Math.max(0, lpData.length() - 1);
result = lpData.toString(0, length);
}
}
}
if (phkResult[0] != 0)
OS.RegCloseKey(phkResult[0]);
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -