step 4
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OLE.java b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OLE.java
index 63c3318..c3ecced 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OLE.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OLE.java
@@ -378,14 +378,14 @@
 }

 private static String getKeyValue (byte [] key) {

 	int [] phkResult = new int [1];

-	if (OS.RegOpenKeyEx (OS.HKEY_CLASSES_ROOT, key, 0, OS.KEY_READ, phkResult) != 0) {

+	if (OS.RegOpenKeyExA (OS.HKEY_CLASSES_ROOT, key, 0, OS.KEY_READ, phkResult) != 0) {

 		return null;

 	}

 	String result = null;

 	int [] lpcbData = new int [1];

-	if (OS.RegQueryValueEx (phkResult [0], null, 0, null, null, lpcbData) == 0) {

+	if (OS.RegQueryValueExA (phkResult [0], null, 0, null, null, lpcbData) == 0) {

 		byte [] lpData = new byte [lpcbData [0]];

-		if (OS.RegQueryValueEx (phkResult [0], null, 0, null, lpData, lpcbData) == 0) {

+		if (OS.RegQueryValueExA (phkResult [0], null, 0, null, lpData, lpcbData) == 0) {

 			/* Use the character encoding for the default locale */

 			char[] charArray  = Converter.mbcsToWcs (0, lpData);

 			result =  new String(charArray, 0, charArray.length - 1);

@@ -396,7 +396,7 @@
 }

 private static boolean getKeyExists (byte [] key) {

 	int [] phkResult = new int [1];

-	if (OS.RegOpenKeyEx (OS.HKEY_CLASSES_ROOT, key, 0, OS.KEY_READ, phkResult) != 0) {

+	if (OS.RegOpenKeyExA (OS.HKEY_CLASSES_ROOT, key, 0, OS.KEY_READ, phkResult) != 0) {

 		return false;

 	}

 	if (phkResult [0] != 0) OS.RegCloseKey (phkResult [0]);

diff --git a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFrame.java b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFrame.java
index ed6c498..3c0fbfc 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFrame.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFrame.java
@@ -318,7 +318,7 @@
 	MENUITEMINFO lpmii = new MENUITEMINFO();

 	lpmii.cbSize = MENUITEMINFO.sizeof;

 	lpmii.fMask = OS.MIIM_STATE | OS.MIIM_SUBMENU | OS.MIIM_ID;

-	OS.GetMenuItemInfo(hMenu, index, true, lpmii);

+	OS.GetMenuItemInfoA(hMenu, index, true, lpmii);

 	if ((lpmii.fState & OS.MF_POPUP) == OS.MF_POPUP) {

 		id = lpmii.hSubMenu;

 	} else {

@@ -381,8 +381,8 @@
 				lpmii.cch = maxTextLength; // lpmii.cch gets updated by GetMenuItemInfo to indicate the 

 				                           // exact nuber of characters in name.  Reset it to our max size 

 				                           // before each call.

-				if (OS.GetMenuItemInfo(hMenu, index, true, lpmii)) {

-					if (OS.InsertMenuItem(hmenuShared, newindex, true, lpmii)) {

+				if (OS.GetMenuItemInfoA(hMenu, index, true, lpmii)) {

+					if (OS.InsertMenuItemA(hmenuShared, newindex, true, lpmii)) {

 						// keep track of the number of items

 						fileMenuCount++;

 						newindex++;

@@ -406,8 +406,8 @@
 				lpmii.cch = maxTextLength; // lpmii.cch gets updated by GetMenuItemInfo to indicate the 

 				                           // exact nuber of characters in name.  Reset it to a large number 

 				                           // before each call.

-				if (OS.GetMenuItemInfo(hMenu, index, true, lpmii)) {

-					if (OS.InsertMenuItem(hmenuShared, newindex, true, lpmii)) {

+				if (OS.GetMenuItemInfoA(hMenu, index, true, lpmii)) {

+					if (OS.InsertMenuItemA(hmenuShared, newindex, true, lpmii)) {

 						// keep track of the number of items

 						containerMenuCount++;

 						newindex++;

@@ -431,8 +431,8 @@
 				lpmii.cch = maxTextLength; // lpmii.cch gets updated by GetMenuItemInfo to indicate the 

 				                           // exact nuber of characters in name.  Reset it to a large number 

 				                           // before each call.

-				if (OS.GetMenuItemInfo(hMenu, index, true, lpmii)) {

-					if (OS.InsertMenuItem(hmenuShared, newindex, true, lpmii)) {

+				if (OS.GetMenuItemInfoA(hMenu, index, true, lpmii)) {

+					if (OS.InsertMenuItemA(hmenuShared, newindex, true, lpmii)) {

 						// keep track of the number of items

 						windowMenuCount++;

 						newindex++;

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Printing/win32/org/eclipse/swt/printing/PrintDialog.java b/bundles/org.eclipse.swt/Eclipse SWT Printing/win32/org/eclipse/swt/printing/PrintDialog.java
index 8555def..2c6211e 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT Printing/win32/org/eclipse/swt/printing/PrintDialog.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Printing/win32/org/eclipse/swt/printing/PrintDialog.java
@@ -210,7 +210,7 @@
 	pd.nMaxPage = -1;

 	pd.nFromPage = (short) startPage;

 	pd.nToPage = (short) endPage;

-	if (OS.PrintDlg(pd)) {

+	if (OS.PrintDlgA(pd)) {

 		/* Get driver and device from the DEVNAMES struct */

 		int size = OS.GlobalSize(pd.hDevNames);

 		int ptr = OS.GlobalLock(pd.hDevNames);

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Printing/win32/org/eclipse/swt/printing/Printer.java b/bundles/org.eclipse.swt/Eclipse SWT Printing/win32/org/eclipse/swt/printing/Printer.java
index 4de1780..2ad42a5 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT Printing/win32/org/eclipse/swt/printing/Printer.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Printing/win32/org/eclipse/swt/printing/Printer.java
@@ -68,7 +68,7 @@
  */

 public static PrinterData[] getPrinterList() {

 	byte[] buf = new byte[1024];

-	int n = OS.GetProfileString(profile, null, new byte[] {0}, buf, buf.length);

+	int n = OS.GetProfileStringA(profile, null, new byte[] {0}, buf, buf.length);

 	if (n == 0) return new PrinterData[0];

 	byte[][] deviceNames = new byte[5][];

 	int nameCount = 0;

@@ -90,7 +90,7 @@
 	for (int p = 0; p < nameCount; p++) {

 		String device = new String(deviceNames[p], 0, deviceNames[p].length - 1);

 		String driver = "";

-		if (OS.GetProfileString(profile, deviceNames[p], new byte [] {0}, buf, buf.length) > 0) {

+		if (OS.GetProfileStringA(profile, deviceNames[p], new byte [] {0}, buf, buf.length) > 0) {

 			int commaIndex = 0;

 			while (buf[commaIndex] != ',' && commaIndex < buf.length) commaIndex++;

 			if (commaIndex < buf.length) {

@@ -117,7 +117,7 @@
 static PrinterData getDefaultPrinterData() {

 	byte [] deviceName = null;

 	byte[] buf = new byte[1024];

-	int n = OS.GetProfileString(appName, keyName, new byte[] {0}, buf, buf.length);

+	int n = OS.GetProfileStringA(appName, keyName, new byte[] {0}, buf, buf.length);

 	if (n == 0) SWT.error(SWT.ERROR_NO_HANDLES);

 	int commaIndex = 0;

 	while(buf[commaIndex] != ',' && commaIndex < buf.length) commaIndex++;

@@ -127,7 +127,7 @@
 	}

 	String device = new String(deviceName, 0, deviceName.length - 1);

 	String driver = "";

-	if (OS.GetProfileString(profile, deviceName, new byte [] {0}, buf, buf.length) > 0) {

+	if (OS.GetProfileStringA(profile, deviceName, new byte [] {0}, buf, buf.length) > 0) {

 		commaIndex = 0;

 		while (buf[commaIndex] != ',' && commaIndex < buf.length) commaIndex++;

 		if (commaIndex < buf.length) {

@@ -192,7 +192,7 @@
 		lpInitData = OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, buffer.length);

 		OS.MoveMemory(lpInitData, buffer, buffer.length);

 	}

-	handle = OS.CreateDC(driver, device, 0, lpInitData);

+	handle = OS.CreateDCA(driver, device, 0, lpInitData);

 	if (lpInitData != 0) OS.HeapFree(hHeap, 0, lpInitData);

 	if (handle == 0) SWT.error(SWT.ERROR_NO_HANDLES);

 }

@@ -283,7 +283,7 @@
 		OS.MoveMemory(lpszOutput, buffer, buffer.length);

 		di.lpszOutput = lpszOutput;

 	}

-	int rc = OS.StartDoc(handle, di);

+	int rc = OS.StartDocA(handle, di);

 	if (lpszDocName != 0) OS.HeapFree(hHeap, 0, lpszDocName);

 	if (lpszOutput != 0) OS.HeapFree(hHeap, 0, lpszOutput);

 	return rc > 0;

diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/internal/win32/OS.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/internal/win32/OS.java
index efc6b39..698539a 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/internal/win32/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/internal/win32/OS.java
@@ -74,743 +74,6 @@
 		IsDBLocale = index <= 0xFF;

 	}

 

-/*+++++++++FIX LATER+++++++++++ */

-public static final int GetProfileString (byte [] lpAppName, byte [] lpKeyName, byte [] lpDefault, byte [] lpReturnedString, int nSize) {

-	return GetProfileStringA (lpAppName, lpKeyName, lpDefault, lpReturnedString, nSize);

-}

-public static final int CreateDC (byte [] lpszDriver, byte [] lpszDevice, int lpszOutput, int lpInitData) {

-	return CreateDCA (lpszDriver, lpszDevice, lpszOutput, lpInitData);

-}

-public static final int RegOpenKeyEx (int hKey, byte [] lpSubKey, int ulOptions, int samDesired, int[] phkResult) {

-	return RegOpenKeyExA (hKey, lpSubKey, ulOptions, samDesired, phkResult);

-}

-public static final int RegQueryValueEx (int hKey, byte [] lpValueName, int lpReserved, int[] lpType, byte [] lpData, int[] lpcbData) {

-	return RegQueryValueExA (hKey, lpValueName, lpReserved, lpType, lpData, lpcbData);

-}

-/*+++++++++END FIX LATER+++++++++++ */

-

-/*+++++++++FIX NOW+++++++++++ */

-public static final int GetWindowText (int hWnd, TCHAR lpString, int nMaxCount) {

-	if (lpString != null) {

-		if (IsUnicode) return GetWindowTextW (hWnd, lpString.chars, nMaxCount);

-		return GetWindowTextA (hWnd, lpString.bytes, nMaxCount);

-	}

-	return IsUnicode ? GetWindowTextW (hWnd, null, nMaxCount) : GetWindowTextA (hWnd, null, nMaxCount);

-}

-

-public static final int GetWindowTextLength (int hWnd) {

-	if (IsUnicode) return GetWindowTextLengthW (hWnd);

-	return GetWindowTextLengthA (hWnd);

-}

-

-public static final boolean SetWindowText (int hWnd, TCHAR lpString) {

-	if (lpString != null) {

-		if (IsUnicode) return SetWindowTextW (hWnd, lpString.chars);

-		return SetWindowTextA (hWnd, lpString.bytes);

-	}

-	return IsUnicode ? SetWindowTextW (hWnd, null) : SetWindowTextA (hWnd, null);

-}

-

-public static final boolean ImmGetCompositionFont (int hIMC, LOGFONT lplf) {

-	if (IsUnicode) return ImmGetCompositionFontW (hIMC, lplf);

-	return ImmGetCompositionFontA (hIMC, lplf);

-}

-	

-public static final int ImmGetCompositionString (int hIMC, int dwIndex, TCHAR lpBuf, int dwBufLen) {

-	if (lpBuf != null) {

-		if (IsUnicode) return ImmGetCompositionStringW (hIMC, dwIndex, lpBuf.chars, dwBufLen);

-		return ImmGetCompositionStringA (hIMC, dwIndex, lpBuf.bytes, dwBufLen);

-	}

-	return IsUnicode ? ImmGetCompositionStringW (hIMC, dwIndex, null, dwBufLen) : ImmGetCompositionStringA (hIMC, dwIndex, null, dwBufLen);

-}

-/*++++++++END FIX NOW++++++++++ */

-

-public static final int ExtractIconEx (TCHAR lpszFile, int nIconIndex, int [] phiconLarge, int [] phiconSmall, int nIcons) {

-	if (IsUnicode) {

-		char [] lpszFile1 = lpszFile == null ? null : lpszFile.chars;

-		return ExtractIconExW (lpszFile1, nIconIndex, phiconLarge, phiconSmall, nIcons);

-	}

-	byte [] lpszFile1 = lpszFile == null ? null : lpszFile.bytes;

-	return ExtractIconExA (lpszFile1, nIconIndex, phiconLarge, phiconSmall, nIcons);

-}

-

-public static final boolean ShellExecuteEx (SHELLEXECUTEINFO lpExecInfo) {

-	if (IsUnicode) return ShellExecuteExW (lpExecInfo);

-	return ShellExecuteExA (lpExecInfo);

-}

-

-public static final int CreateDC (TCHAR lpszDriver, TCHAR lpszDevice, int lpszOutput, int lpInitData) {

-	if (IsUnicode) {

-		char [] lpszDriver1 = lpszDriver == null ? null : lpszDriver.chars;

-		char [] lpszDevice1 = lpszDevice == null ? null : lpszDevice.chars;

-		return CreateDCW (lpszDriver1, lpszDevice1, lpszOutput, lpInitData);

-	}

-	byte [] lpszDriver1 = lpszDriver == null ? null : lpszDriver.bytes;

-	byte [] lpszDevice1 = lpszDevice == null ? null : lpszDevice.bytes;

-	return CreateDCA (lpszDriver1, lpszDevice1, lpszOutput, lpInitData);

-}

-

-public static final int CreateFontIndirect (int lplf) {

-	if (IsUnicode) return CreateFontIndirectW (lplf);

-	return CreateFontIndirectA (lplf);

-}

-

-public static final int CreateFontIndirect (LOGFONT lplf) {

-	if (IsUnicode) return CreateFontIndirectW (lplf);

-	return CreateFontIndirectA (lplf);

-}

-

-public static final int EnumFontFamilies (int hdc, TCHAR lpszFamily, int lpEnumFontFamProc, int lParam) {

-	if (IsUnicode) {

-		char [] lpszFamily1 = lpszFamily == null ? null : lpszFamily.chars;

-		return EnumFontFamiliesW (hdc, lpszFamily1, lpEnumFontFamProc, lParam);

-	}

-	byte [] lpszFamily1 = lpszFamily == null ? null : lpszFamily.bytes;

-	return EnumFontFamiliesA (hdc, lpszFamily1, lpEnumFontFamProc, lParam);

-}

-

-public static final boolean ExtTextOut(int hdc, int X, int Y, int fuOptions, RECT lprc, TCHAR lpString, int cbCount, int[] lpDx) {

-	if (IsUnicode) {

-		char [] lpString1 = lpString == null ? null : lpString.chars;

-		return ExtTextOutW (hdc, X, Y, fuOptions, lprc, lpString1, cbCount, lpDx);

-	}

-	byte [] lpString1 = lpString == null ? null : lpString.bytes;

-	return ExtTextOutA (hdc, X, Y, fuOptions, lprc, lpString1, cbCount, lpDx);

-}

-

-public static final boolean GetCharABCWidths (int hdc, int iFirstChar, int iLastChar, int [] lpabc) {

-	if (IsUnicode) return GetCharABCWidthsW (hdc,iFirstChar, iLastChar, lpabc);

-	return GetCharABCWidthsA (hdc,iFirstChar, iLastChar, lpabc);

-}

-

-public static final boolean GetCharWidth (int hdc, int iFirstChar, int iLastChar, int [] lpabc) {

-	if (IsUnicode) return GetCharWidthW (hdc,iFirstChar, iLastChar, lpabc);

-	return GetCharWidthA (hdc,iFirstChar, iLastChar, lpabc);

-}

-

-public static final int GetCharacterPlacement (int hdc, TCHAR lpString, int nCount, int nMaxExtent, GCP_RESULTS lpResults, int dwFlags) {

-	if (IsUnicode) {

-		char [] lpString1 = lpString == null ? null : lpString.chars;

-		return GetCharacterPlacementW (hdc, lpString1, nCount, nMaxExtent, lpResults, dwFlags);

-	}

-	byte [] lpString1 = lpString == null ? null : lpString.bytes;

-	return GetCharacterPlacementA (hdc, lpString1, nCount, nMaxExtent, lpResults, dwFlags);	

-}

-

-public static final int GetObject (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  BITMAP lpvObject  // pointer to buffer for object information

-) {

-	if (IsUnicode) return GetObjectW (hgdiobj, cbBuffer, lpvObject);

-	return GetObjectA (hgdiobj, cbBuffer, lpvObject);

-}

-

-public static final int GetObject (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  DIBSECTION lpvObject  // pointer to buffer for object information

-) {

-	if (IsUnicode) return GetObjectW (hgdiobj, cbBuffer, lpvObject);

-	return GetObjectA (hgdiobj, cbBuffer, lpvObject);

-}

-

-public static final int GetObject (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  LOGBRUSH lpvObject  // pointer to buffer for object information

-) {

-	if (IsUnicode) return GetObjectW (hgdiobj, cbBuffer, lpvObject);

-	return GetObjectA (hgdiobj, cbBuffer, lpvObject);

-}

-

-public static final int GetObject (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  LOGFONT lpvObject  // pointer to buffer for object information

-) {

-	if (IsUnicode) return GetObjectW (hgdiobj, cbBuffer, lpvObject);

-	return GetObjectA (hgdiobj, cbBuffer, lpvObject);

-}

-

-public static final int GetObject (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  LOGPEN lpvObject  // pointer to buffer for object information

-) {

-	if (IsUnicode) return GetObjectW (hgdiobj, cbBuffer, lpvObject);

-	return GetObjectA (hgdiobj, cbBuffer, lpvObject);

-}

-

-public static final boolean GetTextExtentPoint32 (int hdc, TCHAR lpString, int cbString, SIZE lpSize) {

-	if (IsUnicode) {

-		char [] lpString1 = lpString == null ? null : lpString.chars;

-		return GetTextExtentPoint32W (hdc, lpString1, cbString, lpSize);

-	}

-	byte [] lpString1 = lpString == null ? null : lpString.bytes;

-	return GetTextExtentPoint32A (hdc, lpString1, cbString, lpSize);	

-}

-

-public static final boolean GetTextMetrics (int hdc, TEXTMETRIC lptm) {

-	if (IsUnicode) return GetTextMetricsW (hdc, lptm);

-	return GetTextMetricsA (hdc, lptm);

-}

-

-public static final int StartDoc (int hdc, DOCINFO lpdi) {

-	if (IsUnicode) return StartDocW (hdc, lpdi);

-	return StartDocA (hdc, lpdi);

-}

-

-public static final int MessageBox (

-  int hWnd,          // handle of owner window

-  TCHAR lpText,     // address of text in message box

-  TCHAR lpCaption,  // address of title of message box

-  int uType          // style of message box

-) {

-	if (IsUnicode) {

-		char [] lpText1 = lpText == null ? null : lpText.chars;

-		char [] lpCaption1 = lpCaption == null ? null : lpCaption.chars;

-		return MessageBoxW (hWnd, lpText1, lpCaption1, uType);

-	}

-	byte [] lpText1 = lpText == null ? null : lpText.bytes;

-	byte [] lpCaption1 = lpCaption == null ? null : lpCaption.bytes;

-	return MessageBoxA (hWnd, lpText1, lpCaption1, uType);

-}

-

-public static final int CallWindowProc (int lpPrevWndFunc, int hWnd, int Msg, int wParam, int lParam) {

-	if (IsUnicode) return CallWindowProcW (lpPrevWndFunc, hWnd, Msg, wParam, lParam);

-	return CallWindowProcA (lpPrevWndFunc, hWnd, Msg, wParam, lParam);

-}

-

-public static final short CharUpper (short ch) {

-	if (IsUnicode) return CharUpperW (ch);

-	return CharUpperA (ch);

-}

-

-public static final short CharLower (short ch) {

-	if (IsUnicode) return CharLowerW (ch);

-	return CharLowerA (ch);

-}

-

-public static final int CreateAcceleratorTable (

-  byte [] lpaccl,  // pointer to structure array with accelerator data

-  int cEntries     // number of structures in the array

-) {

-	if (IsUnicode) return CreateAcceleratorTableW (lpaccl, cEntries);

-	return CreateAcceleratorTableA (lpaccl, cEntries);

-}

-

-public static final int DefWindowProc (int hWnd, int Msg, int wParam, int lParam) {

-	if (IsUnicode) return DefWindowProcW (hWnd, Msg, wParam, lParam);

-	return DefWindowProcA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int CreateWindowEx (int dwExStyle, TCHAR lpClassName, TCHAR lpWindowName, int dwStyle, int X, int Y, int nWidth, int nHeight, int hWndParent, int hMenu, int hInstance, CREATESTRUCT lpParam) {

-	if (IsUnicode) {

-		char [] lpClassName1 = lpClassName == null ? null : lpClassName.chars;

-		char [] lpWindowName1 = lpWindowName == null ? null : lpWindowName.chars;

-		return CreateWindowExW (dwExStyle, lpClassName1, lpWindowName1, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);

-	}

-	byte [] lpClassName1 = lpClassName == null ? null : lpClassName.bytes;

-	byte [] lpWindowName1 = lpWindowName == null ? null : lpWindowName.bytes;

-	return CreateWindowExA (dwExStyle, lpClassName1, lpWindowName1, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);

-}

-

-public static final int DispatchMessage (MSG lpmsg) {

-	if (IsUnicode) return DispatchMessageW (lpmsg);

-	return DispatchMessageA (lpmsg);

-}

-

-public static final boolean DrawState (int hdc, int hbr, int lpOutputFunc, int lData, int wData, int x, int y, int cx, int cy, int fuFlags) {

-	if (IsUnicode) return DrawStateW (hdc, hbr, lpOutputFunc, lData, wData, x, y, cx, cy, fuFlags);

-	return DrawStateA (hdc, hbr, lpOutputFunc, lData, wData, x, y, cx, cy, fuFlags);

-}

-

-public static final int DrawText (int hDC, TCHAR lpString, int nCount, RECT lpRect, int uFormat) {

-	if (IsUnicode) {

-		char [] lpString1 = lpString == null ? null : lpString.chars;

-		return DrawTextW (hDC, lpString1, nCount, lpRect, uFormat);

-	}

-	byte [] lpString1 = lpString == null ? null : lpString.bytes;

-	return DrawTextA (hDC, lpString1, nCount, lpRect, uFormat);

-}

-

-public static final boolean GetClassInfo (int hInstance, TCHAR lpClassName, WNDCLASS lpWndClass) {

-	if (IsUnicode) {

-		char [] lpClassName1 = lpClassName == null ? null : lpClassName.chars;

-		return GetClassInfoW (hInstance, lpClassName1, lpWndClass);

-	}

-	byte [] lpClassName1 = lpClassName == null ? null : lpClassName.bytes;

-	return GetClassInfoA (hInstance, lpClassName1, lpWndClass);

-}

-

-public static final boolean GetMenuItemInfo (

-  int hMenu,          

-  int uItem,           

-  boolean fByPosition,     

-  MENUITEMINFO lpmii  

-) {

-	if (IsUnicode) return GetMenuItemInfoW (hMenu, uItem, fByPosition, lpmii);

-	return GetMenuItemInfoA (hMenu, uItem, fByPosition, lpmii);

-}

-

-public static final boolean GetMessage (MSG lpMsg, int hWnd, int wMsgFilterMin, int wMsgFilterMax) {	

-	if (IsUnicode) return GetMessageW (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);

-	return GetMessageA (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);

-}

-

-public static final int GetWindowLong (int hWnd, int nIndex) {

-	if (IsUnicode) return GetWindowLongW (hWnd, nIndex);

-	return GetWindowLongA (hWnd, nIndex);

-}

-

-public static final boolean InsertMenuItem (

-  int hMenu,

-  int uItem,

-  boolean fByPosition,

-  MENUITEMINFO lpmii

-) {

-	if (IsUnicode) return InsertMenuItemW (hMenu, uItem, fByPosition, lpmii);

-	return InsertMenuItemA (hMenu, uItem, fByPosition, lpmii);

-}

-

-public static final int LoadBitmap (int hInstance, int lpBitmapName) {

-	if (IsUnicode) return LoadBitmapW (hInstance, lpBitmapName);

-	return LoadBitmapA (hInstance, lpBitmapName);

-}

-

-public static final int LoadCursor (int hInstance, int lpCursorName) {

-	if (IsUnicode) return LoadCursorW (hInstance, lpCursorName);

-	return LoadCursorA (hInstance, lpCursorName);

-}

-

-public static final int LoadIcon (int hInstance, int lpIconName) {

-	if (IsUnicode) return LoadIconW (hInstance, lpIconName);

-	return LoadIconA (hInstance, lpIconName);

-}

-

-public static final int LoadImage (int hinst, TCHAR lpszName, int uType, int cxDesired, int cyDesired, int fuLoad) {

-	if (IsUnicode) {

-		char [] lpszName1 = lpszName == null ? null : lpszName.chars;

-		return LoadImageW (hinst, lpszName1, uType, cxDesired, cyDesired, fuLoad);

-	}

-	byte [] lpszName1 = lpszName == null ? null : lpszName.bytes;

-	return LoadImageA (hinst, lpszName1, uType, cxDesired, cyDesired, fuLoad);

-}

-

-public static final int MapVirtualKey (int uCode, int uMapType) {

-	if (IsUnicode) return MapVirtualKeyW (uCode, uMapType);

-	return MapVirtualKeyA (uCode, uMapType);

-}

-

-public static final boolean PeekMessage (

-  MSG lpMsg,         // pointer to structure for message

-  int hWnd,           // handle to window

-  int wMsgFilterMin,  // first message

-  int wMsgFilterMax,  // last message

-  int wRemoveMsg      // removal flags

-) {

-	if (IsUnicode) return PeekMessageW (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg);

-	return PeekMessageA (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg);

-}

-

-public static final boolean PostMessage (int hWnd, int Msg, int wParam, int lParam) {

-	if (IsUnicode) return PostMessageW (hWnd, Msg, wParam, lParam);

-	return PostMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final boolean PostThreadMessage (int idThread, int Msg, int wParam, int lParam) {

-	if (IsUnicode) return PostThreadMessageW (idThread, Msg, wParam, lParam);

-	return PostThreadMessageA (idThread, Msg, wParam, lParam);

-}

-

-public static final int RegisterClass (WNDCLASS lpWndClass) {

-	if (IsUnicode) return RegisterClassW (lpWndClass);

-	return RegisterClassA (lpWndClass);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, TCHAR lParam) {

-	if (IsUnicode) {

-		char [] lParam1 = lParam == null ? null : lParam.chars;

-		return SendMessageW (hWnd, Msg, wParam, lParam1);

-	}

-	byte [] lParam1 = lParam == null ? null : lParam.bytes;

-	return SendMessageA (hWnd, Msg, wParam, lParam1);

-}

-

-//public static final int SendMessage (int hWnd, int Msg, int wParam, char [] lParam) {

-//	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-//	return SendMessageA (hWnd, Msg, wParam, lParam);

-//}

-

-public static final int SendMessage (int hWnd, int Msg, int [] wParam, int [] lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int [] wParam, int lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, int [] lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, short [] lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, int lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, LVCOLUMN lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, LVHITTESTINFO lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, LVITEM lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, REBARBANDINFO lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, RECT lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, TBBUTTON lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, TBBUTTONINFO lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, TCITEM lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, TOOLINFO lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, TVHITTESTINFO lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, TVINSERTSTRUCT lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final int SendMessage (int hWnd, int Msg, int wParam, TVITEM lParam) {

-	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

-	return SendMessageA (hWnd, Msg, wParam, lParam);

-}

-

-public static final boolean SetMenuItemInfo (

-  int hMenu,          

-  int uItem,           

-  boolean fByPosition,     

-  MENUITEMINFO lpmii  

-) {

-	if (IsUnicode) return SetMenuItemInfoW (hMenu, uItem, fByPosition, lpmii);

-	return SetMenuItemInfoA (hMenu, uItem, fByPosition, lpmii);

-}

-

-public static final int SetWindowLong (int hWnd, int nIndex, int dwNewLong) {

-	if (IsUnicode) return SetWindowLongW (hWnd, nIndex, dwNewLong);

-	return SetWindowLongA (hWnd, nIndex, dwNewLong);

-}

-

-public static final int SetWindowsHookEx (int idHook, int lpfn, int hMod, int dwThreadId) {

-	if (IsUnicode) return SetWindowsHookExW (idHook, lpfn, hMod, dwThreadId);

-	return SetWindowsHookExA (idHook, lpfn, hMod, dwThreadId);

-}

-

-public static final boolean SystemParametersInfo (

-	int uiAction,  // system parameter to retrieve or set

-	int uiParam,   // depends on action to be taken

-	RECT pvParam,  // depends on action to be taken

-	int fWinIni    // user profile update option

-) {

-	if (IsUnicode) return SystemParametersInfoW (uiAction, uiParam, pvParam, fWinIni);

-	return SystemParametersInfoA (uiAction, uiParam, pvParam, fWinIni);

-}

-

-public static final int TranslateAccelerator (

-	int hWnd,         // handle of destination window

-  	int hAccTable,  // handle of accelerator table

-  	MSG lpMsg        // address of structure with message

-) {

-	if (IsUnicode) return TranslateAcceleratorW (hWnd, hAccTable, lpMsg);

-	return TranslateAcceleratorA (hWnd, hAccTable, lpMsg);

-}

-

-public static final boolean UnregisterClass (TCHAR lpClassName, int hInstance) {

-	if (IsUnicode) {

-		char [] lpClassName1 = lpClassName == null ? null : lpClassName.chars;

-		return UnregisterClassW (lpClassName1, hInstance);

-	}

-	byte [] lpClassName1 = lpClassName == null ? null : lpClassName.bytes;

-	return UnregisterClassA (lpClassName1, hInstance);

-}

-

-public static final short VkKeyScan (short ch) {

-	if (IsUnicode) return VkKeyScanW (ch);

-	return VkKeyScanA (ch);

-}

-

-public static final boolean ChooseColor (CHOOSECOLOR lpcc) {

-	if (IsUnicode) return ChooseColorW (lpcc);

-	return ChooseColorA (lpcc);

-}

-

-public static final boolean ChooseFont (CHOOSEFONT chooseFont) {

-	if (IsUnicode) return ChooseFontW (chooseFont);

-	return ChooseFontA (chooseFont);

-}

-

-public static final short GetFileTitle (

-  TCHAR lpszFile,   // pointer to full path and filename for file

-  TCHAR lpszTitle,  // pointer to buffer that receives filename

-  short cbBuf     // length of buffer

-) {

-	if (IsUnicode) {

-		char [] lpszFile1 = lpszFile == null ? null : lpszFile.chars;

-		char [] lpszTitle1 = lpszTitle == null ? null : lpszTitle.chars;

-		return GetFileTitleW (lpszFile1, lpszTitle1, cbBuf);

-	}

-	byte [] lpszFile1 = lpszFile == null ? null : lpszFile.bytes;

-	byte [] lpszTitle1 = lpszTitle == null ? null : lpszTitle.bytes;

-	return GetFileTitleA (lpszFile1, lpszTitle1, cbBuf);

-}

-

-public static final boolean GetOpenFileName (OPENFILENAME lpofn) {

-	if (IsUnicode) return GetOpenFileNameW (lpofn);

-	return GetOpenFileNameA (lpofn);

-}

-

-public static final boolean GetSaveFileName (OPENFILENAME lpofn) {

-	if (IsUnicode) return GetSaveFileNameW (lpofn);

-	return GetSaveFileNameA (lpofn);

-}

-

-public static final boolean PrintDlg (PRINTDLG lppd) {

-	if (IsUnicode) return PrintDlgW (lppd);

-	return PrintDlgA (lppd);

-}

-

-public static final boolean EnumSystemLocales (int lpLocaleEnumProc, int dwFlags) {

-	if (IsUnicode) return EnumSystemLocalesW (lpLocaleEnumProc, dwFlags);

-	return EnumSystemLocalesA (lpLocaleEnumProc, dwFlags);

-}

-

-public static final int GetLocaleInfo (int Locale, int LCType, TCHAR lpLCData, int cchData) {

-	if (IsUnicode) {

-		char [] lpLCData1 = lpLCData == null ? null : lpLCData.chars;

-		return GetLocaleInfoW (Locale, LCType, lpLCData1, cchData);

-	}

-	byte [] lpLCData1 = lpLCData == null ? null : lpLCData.bytes;

-	return GetLocaleInfoA (Locale, LCType, lpLCData1, cchData);

-}

-

-public static final int RegEnumKeyEx (int hKey, int dwIndex, TCHAR lpName, int [] lpcName, int [] lpReserved, TCHAR lpClass, int [] lpcClass, FILETIME lpftLastWriteTime) {

-	if (IsUnicode) {

-		char [] lpName1 = lpName == null ? null : lpName.chars;

-		char [] lpClass1 = lpClass == null ? null : lpClass.chars;

-		return RegEnumKeyExW (hKey, dwIndex, lpName1, lpcName, lpReserved, lpClass1, lpcClass, lpftLastWriteTime);

-	}

-	byte [] lpName1 = lpName == null ? null : lpName.bytes;

-	byte [] lpClass1 = lpClass == null ? null : lpClass.bytes;

-	return RegEnumKeyExA (hKey, dwIndex, lpName1, lpcName, lpReserved, lpClass1, lpcClass, lpftLastWriteTime);

-}

-

-public static final int RegOpenKeyEx (int hKey, TCHAR lpSubKey, int ulOptions, int samDesired, int[] phkResult) {

-	if (IsUnicode) {

-		char [] lpSubKey1 = lpSubKey == null ? null : lpSubKey.chars;

-		return RegOpenKeyExW (hKey, lpSubKey1, ulOptions, samDesired, phkResult);

-	}

-	byte [] lpSubKey1 = lpSubKey == null ? null : lpSubKey.bytes;

-	return RegOpenKeyExA (hKey, lpSubKey1, ulOptions, samDesired, phkResult);

-}

-

-public static final int RegQueryInfoKey (int hKey, int lpClass, int[] lpcbClass, int lpReserved, int[] lpSubKeys, int[] lpcbMaxSubKeyLen, int[] lpcbMaxClassLen, int[] lpcValues, int[] lpcbMaxValueNameLen, int[] lpcbMaxValueLen, int[] lpcbSecurityDescriptor, int lpftLastWriteTime){

-	if (IsUnicode) return RegQueryInfoKeyW (hKey, lpClass, lpcbClass, lpReserved, lpSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime);

-	return RegQueryInfoKeyA (hKey, lpClass, lpcbClass, lpReserved, lpSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime);

-}

-

-public static final int RegQueryValueEx (int hKey, TCHAR lpValueName, int lpReserved, int[] lpType, TCHAR lpData, int[] lpcbData) {

-	if (IsUnicode) {

-		char [] lpValueName1 = lpValueName == null ? null : lpValueName.chars;

-		char [] lpData1 = lpData == null ? null : lpData.chars;

-		return RegQueryValueExW (hKey, lpValueName1, lpReserved, lpType, lpData1, lpcbData);

-	}

-	byte [] lpValueName1 = lpValueName == null ? null : lpValueName.bytes;

-	byte [] lpData1 = lpData == null ? null : lpData.bytes;

-	return RegQueryValueExA (hKey, lpValueName1, lpReserved, lpType, lpData1, lpcbData);

-}

-

-public static final int SHBrowseForFolder (BROWSEINFO lpbi) {

-	if (IsUnicode) return SHBrowseForFolderW (lpbi);

-	return SHBrowseForFolderA (lpbi);

-}

-

-public static final boolean SHGetPathFromIDList (int pidl, TCHAR pszPath) {

-	if (IsUnicode) {

-		char [] pszPath1 = pszPath == null ? null : pszPath.chars;

-		return SHGetPathFromIDListW (pidl, pszPath1);

-	}

-	byte [] pszPath1 = pszPath == null ? null : pszPath.bytes;

-	return SHGetPathFromIDListA (pidl, pszPath1);

-}

-

-//public static final int ExpandEnvironmentStrings (TCHAR lpSrc, TCHAR lpDest, int nSize) {

-//	if (IsUnicode) {

-//		char [] lpSrc1 = lpSrc == null ? null : lpSrc.chars;

-//		char [] lpDest1 = lpDest == null ? null : lpDest.chars;

-//		return ExpandEnvironmentStringsW (lpSrc1, lpDest1, nSize);

-//	}

-//	byte [] lpSrc1 = lpSrc == null ? null : lpSrc.bytes;

-//	byte [] lpDest1 = lpDest == null ? null : lpDest.bytes;

-//	return ExpandEnvironmentStringsA (lpSrc1, lpDest1, nSize);

-//}

-

-public static final int GetModuleHandle (TCHAR lpModuleName) {

-	if (IsUnicode) {

-		char [] lpModuleName1 = lpModuleName == null ? null : lpModuleName.chars;

-		return GetModuleHandleW (lpModuleName1);

-	}

-	byte [] lpModuleName1 = lpModuleName == null ? null : lpModuleName.bytes;

-	return GetModuleHandleA (lpModuleName1);

-}

-

-public static final int GetProfileString (TCHAR lpAppName, TCHAR lpKeyName, TCHAR lpDefault, TCHAR lpReturnedString, int nSize) {

-	if (IsUnicode) {

-		char [] lpAppName1 = lpAppName == null ? null : lpAppName.chars;

-		char [] lpKeyName1 = lpKeyName == null ? null : lpKeyName.chars;

-		char [] lpDefault1 = lpDefault == null ? null : lpDefault.chars;

-		char [] lpReturnedString1 = lpReturnedString == null ? null : lpReturnedString.chars;

-		return GetProfileStringW (lpAppName1, lpKeyName1, lpDefault1, lpReturnedString1, nSize);

-	}

-	byte [] lpAppName1 = lpAppName == null ? null : lpAppName.bytes;

-	byte [] lpKeyName1 = lpKeyName == null ? null : lpKeyName.bytes;

-	byte [] lpDefault1 = lpDefault == null ? null : lpDefault.bytes;

-	byte [] lpReturnedString1 = lpReturnedString == null ? null : lpReturnedString.bytes;

-	return GetProfileStringA (lpAppName1, lpKeyName1, lpDefault1, lpReturnedString1, nSize);

-}

-

-public static final int LoadLibrary (TCHAR lpLibFileName) {

-	if (IsUnicode) {

-		char [] lpLibFileName1 = lpLibFileName == null ? null : lpLibFileName.chars;

-		return LoadLibraryW (lpLibFileName1);

-	}

-	byte [] lpLibFileName1 = lpLibFileName == null ? null : lpLibFileName.bytes;

-	return LoadLibraryA (lpLibFileName1);

-}

-

-public static final void MoveMemory (int Destination, TCHAR Source, int Length) {

-	if (IsUnicode) {

-		char [] Source1 = Source == null ? null : Source.chars;

-		MoveMemory (Destination, Source1, Length);

-	} else {

-		byte [] Source1 = Source == null ? null : Source.bytes;

-		MoveMemory (Destination, Source1, Length);

-	}

-}

-

-public static final void MoveMemory (TCHAR Destination, int Source, int Length) {

-	if (IsUnicode) {

-		char [] Destination1 = Destination == null ? null : Destination.chars;

-		MoveMemory (Destination1, Source, Length);

-	} else {

-		byte [] Destination1 = Destination == null ? null : Destination.bytes;

-		MoveMemory (Destination1, Source, Length);

-	}

-}

-

-public static final void MoveMemory (

-  int Destination,				// address of move destination

-  LOGFONT Source, 				// address of block to move

-  int Length        			// size, in bytes, of block to move

-) {

-	if (IsUnicode) {

-		MoveMemoryW (Destination, Source, Length);

-	} else {

-		MoveMemoryA (Destination, Source, Length);

-	}

-}

-

-public static final void MoveMemory (

-  LOGFONT Destination,		// address of move destination

-  int Source, 				// address of block to move

-  int Length        		// size, in bytes, of block to move

-) {

-	if (IsUnicode) {

-		MoveMemoryW (Destination, Source, Length);

-	} else {

-		MoveMemoryA (Destination, Source, Length);

-	}

-}

-

-public static final void MoveMemory (

-  int Destination,				// address of move destination

-  NMTTDISPINFO Source, 				// address of block to move

-  int Length        			// size, in bytes, of block to move

-) {

-	if (IsUnicode) {

-		MoveMemoryW (Destination, Source, Length);

-	} else {

-		MoveMemoryA (Destination, Source, Length);

-	}

-}

-

-public static final void MoveMemory (

-  NMTTDISPINFO Destination,		// address of move destination

-  int Source, 				// address of block to move

-  int Length        		// size, in bytes, of block to move

-) {

-	if (IsUnicode) {

-		MoveMemoryW (Destination, Source, Length);

-	} else {

-		MoveMemoryA (Destination, Source, Length);

-	}

-}

-

-public static final boolean GetVersionEx (OSVERSIONINFO lpVersionInfo) {

-	if (IsUnicode) return GetVersionExW (lpVersionInfo);

-	return GetVersionExA (lpVersionInfo);

-}

-

-public static final boolean InsertMenu (int hMenu, int uPosition, int uFlags, int uIDNewItem, TCHAR lpNewItem) {

-	if (IsUnicode) {

-		char [] lpNewItem1 = lpNewItem == null ? null : lpNewItem.chars;

-		return InsertMenuW (hMenu, uPosition, uFlags, uIDNewItem, lpNewItem1);

-	}

-	byte [] lpNewItem1 = lpNewItem == null ? null : lpNewItem.bytes;

-	return InsertMenuA (hMenu, uPosition, uFlags, uIDNewItem, lpNewItem1);	

-}

-

 	/*

 	* NOTE:  There is a bug in JVM 1.2 where loading 

 	* a class with a large number of constants causes

@@ -1799,81 +1062,646 @@
 	public static final int WS_THICKFRAME = 0x40000;

 	public static final int WS_VISIBLE = 0x10000000;

 	public static final int WS_VSCROLL = 0x200000;

+	

+/** Ansi/Unicode wrappers */

 

+public static final int CallWindowProc (int lpPrevWndFunc, int hWnd, int Msg, int wParam, int lParam) {

+	if (IsUnicode) return CallWindowProcW (lpPrevWndFunc, hWnd, Msg, wParam, lParam);

+	return CallWindowProcA (lpPrevWndFunc, hWnd, Msg, wParam, lParam);

+}

 

-	/* Unused Structs */

-	/*

-	public class CHARFORMAT2 extends CHARFORMAT {

-		public short wWeight;

-		public short sSpacing;

-		public int crBackColor;

-		public int lcid;

-		public int dwReserved;

-		public short sStyle;

-		public short wKerning;

-		public byte bUnderlineType;

-		public byte bAnimation;

-		public byte bRevAuthor;

-	//	public byte bReserved1;

-		public static final int sizeof = 84;

+public static final short CharUpper (short ch) {

+	if (IsUnicode) return CharUpperW (ch);

+	return CharUpperA (ch);

+}

+

+public static final short CharLower (short ch) {

+	if (IsUnicode) return CharLowerW (ch);

+	return CharLowerA (ch);

+}

+

+public static final boolean ChooseColor (CHOOSECOLOR lpcc) {

+	if (IsUnicode) return ChooseColorW (lpcc);

+	return ChooseColorA (lpcc);

+}

+

+public static final boolean ChooseFont (CHOOSEFONT chooseFont) {

+	if (IsUnicode) return ChooseFontW (chooseFont);

+	return ChooseFontA (chooseFont);

+}

+

+public static final int CreateAcceleratorTable (byte [] lpaccl, int cEntries) {

+	if (IsUnicode) return CreateAcceleratorTableW (lpaccl, cEntries);

+	return CreateAcceleratorTableA (lpaccl, cEntries);

+}

+

+public static final int CreateDC (TCHAR lpszDriver, TCHAR lpszDevice, int lpszOutput, int lpInitData) {

+	if (IsUnicode) {

+		char [] lpszDriver1 = lpszDriver == null ? null : lpszDriver.chars;

+		char [] lpszDevice1 = lpszDevice == null ? null : lpszDevice.chars;

+		return CreateDCW (lpszDriver1, lpszDevice1, lpszOutput, lpInitData);

 	}

+	byte [] lpszDriver1 = lpszDriver == null ? null : lpszDriver.bytes;

+	byte [] lpszDevice1 = lpszDevice == null ? null : lpszDevice.bytes;

+	return CreateDCA (lpszDriver1, lpszDevice1, lpszOutput, lpInitData);

+}

 

-	public class NMTVCUSTOMDRAW extends NMCUSTOMDRAW {

-		public int clrText;

-		public int clrTextBk;

-		public int iLevel;

-		public static final int sizeof = 60;

+public static final int CreateFontIndirect (int lplf) {

+	if (IsUnicode) return CreateFontIndirectW (lplf);

+	return CreateFontIndirectA (lplf);

+}

+

+public static final int CreateFontIndirect (LOGFONT lplf) {

+	if (IsUnicode) return CreateFontIndirectW (lplf);

+	return CreateFontIndirectA (lplf);

+}

+

+public static final int CreateWindowEx (int dwExStyle, TCHAR lpClassName, TCHAR lpWindowName, int dwStyle, int X, int Y, int nWidth, int nHeight, int hWndParent, int hMenu, int hInstance, CREATESTRUCT lpParam) {

+	if (IsUnicode) {

+		char [] lpClassName1 = lpClassName == null ? null : lpClassName.chars;

+		char [] lpWindowName1 = lpWindowName == null ? null : lpWindowName.chars;

+		return CreateWindowExW (dwExStyle, lpClassName1, lpWindowName1, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);

 	}

+	byte [] lpClassName1 = lpClassName == null ? null : lpClassName.bytes;

+	byte [] lpWindowName1 = lpWindowName == null ? null : lpWindowName.bytes;

+	return CreateWindowExA (dwExStyle, lpClassName1, lpWindowName1, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);

+}

 

-	public class NMCUSTOMDRAW extends NMHDR {

-		public int dwDrawStage;

-		public int hdc;

-	//	public RECT rc;

-		public int left, top, right, bottom;

-		public int dwItemSpec;

-		public int uItemState;

-		public int lItemlParam;

-		public static final int sizeof = 48;

+public static final int DefWindowProc (int hWnd, int Msg, int wParam, int lParam) {

+	if (IsUnicode) return DefWindowProcW (hWnd, Msg, wParam, lParam);

+	return DefWindowProcA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int DispatchMessage (MSG lpmsg) {

+	if (IsUnicode) return DispatchMessageW (lpmsg);

+	return DispatchMessageA (lpmsg);

+}

+

+public static final boolean DrawState (int hdc, int hbr, int lpOutputFunc, int lData, int wData, int x, int y, int cx, int cy, int fuFlags) {

+	if (IsUnicode) return DrawStateW (hdc, hbr, lpOutputFunc, lData, wData, x, y, cx, cy, fuFlags);

+	return DrawStateA (hdc, hbr, lpOutputFunc, lData, wData, x, y, cx, cy, fuFlags);

+}

+

+public static final int DrawText (int hDC, TCHAR lpString, int nCount, RECT lpRect, int uFormat) {

+	if (IsUnicode) {

+		char [] lpString1 = lpString == null ? null : lpString.chars;

+		return DrawTextW (hDC, lpString1, nCount, lpRect, uFormat);

 	}

-	public class MSGFILTER extends NMHDR {

-		public int msg;

-		public int wParam; 

-		public int lParam;

-		public static final int sizeof = 24;

-	}	

-	*/

+	byte [] lpString1 = lpString == null ? null : lpString.bytes;

+	return DrawTextA (hDC, lpString1, nCount, lpRect, uFormat);

+}

 

-	/* Unused Natives */

-	/*

-	public static final native int CopyAcceleratorTable (int hAccelSrc byte [] lpAccelDst, int cAccelEntries);

-	public static final native int ChildWindowFromPoint (int hwndParent, POINT lpPoint);

-	public static final native boolean EnumPrinters(int Flags, byte Name[], int Level, byte pPrinterEnum[], int cbBuf, int pcbNeeded[], int pcReturned[]);

-	public static final native boolean EqualRect (RECT lprc1, RECT lprc2);

-	public static final native int ExtractIcon(int hInst, byte[] lpszFile, int nIconIndex);	

-	public static final native int GetCaretBlinkTime ();

-	public static final native int GetCaretBlinkTime ();

-	public static final native int GetClassLong (int hWnd, int nIndex);

-	public static final native int GetDIBits (int hdc, int hbmp, int uStartScan, int cScanLines, byte[] lpvBits, byte[] lpbi, int uUsage);

-	public static final native int GetDlgCtrlID (int hWnd);

-	public static final native boolean IntersectRect (RECT lprcDst, RECT lprcSrc1, RECT lprcSrc2);

-	public static final native boolean IsMenu (int hMenu);

-	public static final native boolean IsWindow (int hwnd);

-	public static final native int LoadBitmap (int hInstance, byte [] lpBitmapName);

-	public static final native int LoadCursor (int hInstance, byte [] lpCursorName);

-	public static final native int LoadIcon (int hInstance, byte [] lpIconName);

-	public static final native int LoadImage (int hinst, int lpszName, int uType, int cxDesired, int cyDesired, int fuLoad);

-	public static final native void MoveMemory (ACCEL Destination, byte [] Source, int Length);

-	public static final native void MoveMemory (NMTVCUSTOMDRAW Destination, int Source, int Length);

-	public static final native void MoveMemory (RECT Destination, int Source, int Length);

-	public static final native boolean PageSetupDlg (PAGESETUPDLG lppsd);

-	public static final native void PostQuitMessage (int nExitCode);

-	public static final native boolean Rectangle (int hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);

-	public static final native int SendMessage (int hWnd, int Msg, int wParam, CHARFORMAT2 lParam);

-	public static final native int SendMessage (int hWnd, int Msg, int wParam, MSG lParam);  

-	public static final native boolean SetCaretBlinkTime (int uMSeconds);

-	public static final native boolean TextOut (int hdc, int nXStart, int nYStart, byte[] lpString, int cbString);

-	*/

+public static final int EnumFontFamilies (int hdc, TCHAR lpszFamily, int lpEnumFontFamProc, int lParam) {

+	if (IsUnicode) {

+		char [] lpszFamily1 = lpszFamily == null ? null : lpszFamily.chars;

+		return EnumFontFamiliesW (hdc, lpszFamily1, lpEnumFontFamProc, lParam);

+	}

+	byte [] lpszFamily1 = lpszFamily == null ? null : lpszFamily.bytes;

+	return EnumFontFamiliesA (hdc, lpszFamily1, lpEnumFontFamProc, lParam);

+}

+

+public static final boolean EnumSystemLocales (int lpLocaleEnumProc, int dwFlags) {

+	if (IsUnicode) return EnumSystemLocalesW (lpLocaleEnumProc, dwFlags);

+	return EnumSystemLocalesA (lpLocaleEnumProc, dwFlags);

+}

+

+public static final int ExtractIconEx (TCHAR lpszFile, int nIconIndex, int [] phiconLarge, int [] phiconSmall, int nIcons) {

+	if (IsUnicode) {

+		char [] lpszFile1 = lpszFile == null ? null : lpszFile.chars;

+		return ExtractIconExW (lpszFile1, nIconIndex, phiconLarge, phiconSmall, nIcons);

+	}

+	byte [] lpszFile1 = lpszFile == null ? null : lpszFile.bytes;

+	return ExtractIconExA (lpszFile1, nIconIndex, phiconLarge, phiconSmall, nIcons);

+}

+

+public static final boolean ExtTextOut(int hdc, int X, int Y, int fuOptions, RECT lprc, TCHAR lpString, int cbCount, int[] lpDx) {

+	if (IsUnicode) {

+		char [] lpString1 = lpString == null ? null : lpString.chars;

+		return ExtTextOutW (hdc, X, Y, fuOptions, lprc, lpString1, cbCount, lpDx);

+	}

+	byte [] lpString1 = lpString == null ? null : lpString.bytes;

+	return ExtTextOutA (hdc, X, Y, fuOptions, lprc, lpString1, cbCount, lpDx);

+}

+

+public static final boolean GetCharABCWidths (int hdc, int iFirstChar, int iLastChar, int [] lpabc) {

+	if (IsUnicode) return GetCharABCWidthsW (hdc,iFirstChar, iLastChar, lpabc);

+	return GetCharABCWidthsA (hdc,iFirstChar, iLastChar, lpabc);

+}

+

+public static final int GetCharacterPlacement (int hdc, TCHAR lpString, int nCount, int nMaxExtent, GCP_RESULTS lpResults, int dwFlags) {

+	if (IsUnicode) {

+		char [] lpString1 = lpString == null ? null : lpString.chars;

+		return GetCharacterPlacementW (hdc, lpString1, nCount, nMaxExtent, lpResults, dwFlags);

+	}

+	byte [] lpString1 = lpString == null ? null : lpString.bytes;

+	return GetCharacterPlacementA (hdc, lpString1, nCount, nMaxExtent, lpResults, dwFlags);	

+}

+

+public static final boolean GetCharWidth (int hdc, int iFirstChar, int iLastChar, int [] lpabc) {

+	if (IsUnicode) return GetCharWidthW (hdc,iFirstChar, iLastChar, lpabc);

+	return GetCharWidthA (hdc,iFirstChar, iLastChar, lpabc);

+}

+

+public static final boolean GetClassInfo (int hInstance, TCHAR lpClassName, WNDCLASS lpWndClass) {

+	if (IsUnicode) {

+		char [] lpClassName1 = lpClassName == null ? null : lpClassName.chars;

+		return GetClassInfoW (hInstance, lpClassName1, lpWndClass);

+	}

+	byte [] lpClassName1 = lpClassName == null ? null : lpClassName.bytes;

+	return GetClassInfoA (hInstance, lpClassName1, lpWndClass);

+}

+

+public static final short GetFileTitle (TCHAR lpszFile, TCHAR lpszTitle, short cbBuf) {

+	if (IsUnicode) {

+		char [] lpszFile1 = lpszFile == null ? null : lpszFile.chars;

+		char [] lpszTitle1 = lpszTitle == null ? null : lpszTitle.chars;

+		return GetFileTitleW (lpszFile1, lpszTitle1, cbBuf);

+	}

+	byte [] lpszFile1 = lpszFile == null ? null : lpszFile.bytes;

+	byte [] lpszTitle1 = lpszTitle == null ? null : lpszTitle.bytes;

+	return GetFileTitleA (lpszFile1, lpszTitle1, cbBuf);

+}

+

+public static final int GetLocaleInfo (int Locale, int LCType, TCHAR lpLCData, int cchData) {

+	if (IsUnicode) {

+		char [] lpLCData1 = lpLCData == null ? null : lpLCData.chars;

+		return GetLocaleInfoW (Locale, LCType, lpLCData1, cchData);

+	}

+	byte [] lpLCData1 = lpLCData == null ? null : lpLCData.bytes;

+	return GetLocaleInfoA (Locale, LCType, lpLCData1, cchData);

+}

+

+public static final boolean GetMenuItemInfo (int hMenu, int uItem, boolean fByPosition, MENUITEMINFO lpmii) {

+	if (IsUnicode) return GetMenuItemInfoW (hMenu, uItem, fByPosition, lpmii);

+	return GetMenuItemInfoA (hMenu, uItem, fByPosition, lpmii);

+}

+

+public static final boolean GetMessage (MSG lpMsg, int hWnd, int wMsgFilterMin, int wMsgFilterMax) {	

+	if (IsUnicode) return GetMessageW (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);

+	return GetMessageA (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);

+}

+

+public static final int GetModuleHandle (TCHAR lpModuleName) {

+	if (IsUnicode) {

+		char [] lpModuleName1 = lpModuleName == null ? null : lpModuleName.chars;

+		return GetModuleHandleW (lpModuleName1);

+	}

+	byte [] lpModuleName1 = lpModuleName == null ? null : lpModuleName.bytes;

+	return GetModuleHandleA (lpModuleName1);

+}

+

+public static final int GetObject (int hgdiobj, int cbBuffer, BITMAP lpvObject) {

+	if (IsUnicode) return GetObjectW (hgdiobj, cbBuffer, lpvObject);

+	return GetObjectA (hgdiobj, cbBuffer, lpvObject);

+}

+

+public static final int GetObject (int hgdiobj, int cbBuffer, DIBSECTION lpvObject) {

+	if (IsUnicode) return GetObjectW (hgdiobj, cbBuffer, lpvObject);

+	return GetObjectA (hgdiobj, cbBuffer, lpvObject);

+}

+

+public static final int GetObject (int hgdiobj, int cbBuffer, LOGBRUSH lpvObject) {

+	if (IsUnicode) return GetObjectW (hgdiobj, cbBuffer, lpvObject);

+	return GetObjectA (hgdiobj, cbBuffer, lpvObject);

+}

+

+public static final int GetObject (int hgdiobj, int cbBuffer, LOGFONT lpvObject) {

+	if (IsUnicode) return GetObjectW (hgdiobj, cbBuffer, lpvObject);

+	return GetObjectA (hgdiobj, cbBuffer, lpvObject);

+}

+

+public static final int GetObject (int hgdiobj, int cbBuffer, LOGPEN lpvObject) {

+	if (IsUnicode) return GetObjectW (hgdiobj, cbBuffer, lpvObject);

+	return GetObjectA (hgdiobj, cbBuffer, lpvObject);

+}

+

+public static final boolean GetOpenFileName (OPENFILENAME lpofn) {

+	if (IsUnicode) return GetOpenFileNameW (lpofn);

+	return GetOpenFileNameA (lpofn);

+}

+

+public static final int GetProfileString (TCHAR lpAppName, TCHAR lpKeyName, TCHAR lpDefault, TCHAR lpReturnedString, int nSize) {

+	if (IsUnicode) {

+		char [] lpAppName1 = lpAppName == null ? null : lpAppName.chars;

+		char [] lpKeyName1 = lpKeyName == null ? null : lpKeyName.chars;

+		char [] lpDefault1 = lpDefault == null ? null : lpDefault.chars;

+		char [] lpReturnedString1 = lpReturnedString == null ? null : lpReturnedString.chars;

+		return GetProfileStringW (lpAppName1, lpKeyName1, lpDefault1, lpReturnedString1, nSize);

+	}

+	byte [] lpAppName1 = lpAppName == null ? null : lpAppName.bytes;

+	byte [] lpKeyName1 = lpKeyName == null ? null : lpKeyName.bytes;

+	byte [] lpDefault1 = lpDefault == null ? null : lpDefault.bytes;

+	byte [] lpReturnedString1 = lpReturnedString == null ? null : lpReturnedString.bytes;

+	return GetProfileStringA (lpAppName1, lpKeyName1, lpDefault1, lpReturnedString1, nSize);

+}

+

+public static final boolean GetSaveFileName (OPENFILENAME lpofn) {

+	if (IsUnicode) return GetSaveFileNameW (lpofn);

+	return GetSaveFileNameA (lpofn);

+}

+

+public static final boolean GetTextExtentPoint32 (int hdc, TCHAR lpString, int cbString, SIZE lpSize) {

+	if (IsUnicode) {

+		char [] lpString1 = lpString == null ? null : lpString.chars;

+		return GetTextExtentPoint32W (hdc, lpString1, cbString, lpSize);

+	}

+	byte [] lpString1 = lpString == null ? null : lpString.bytes;

+	return GetTextExtentPoint32A (hdc, lpString1, cbString, lpSize);	

+}

+

+public static final boolean GetTextMetrics (int hdc, TEXTMETRIC lptm) {

+	if (IsUnicode) return GetTextMetricsW (hdc, lptm);

+	return GetTextMetricsA (hdc, lptm);

+}

+

+public static final boolean GetVersionEx (OSVERSIONINFO lpVersionInfo) {

+	if (IsUnicode) return GetVersionExW (lpVersionInfo);

+	return GetVersionExA (lpVersionInfo);

+}

+

+public static final int GetWindowLong (int hWnd, int nIndex) {

+	if (IsUnicode) return GetWindowLongW (hWnd, nIndex);

+	return GetWindowLongA (hWnd, nIndex);

+}

+

+public static final int GetWindowText (int hWnd, TCHAR lpString, int nMaxCount) {

+	if (IsUnicode) {

+		char [] lpString1 = lpString == null ? null : lpString.chars;

+		return GetWindowTextW (hWnd, lpString1, nMaxCount);

+	}

+	byte [] lpString1 = lpString == null ? null : lpString.bytes;

+	return GetWindowTextA (hWnd, lpString1, nMaxCount);

+}

+

+public static final int GetWindowTextLength (int hWnd) {

+	if (IsUnicode) return GetWindowTextLengthW (hWnd);

+	return GetWindowTextLengthA (hWnd);

+}

+

+public static final boolean ImmGetCompositionFont (int hIMC, LOGFONT lplf) {

+	if (IsUnicode) return ImmGetCompositionFontW (hIMC, lplf);

+	return ImmGetCompositionFontA (hIMC, lplf);

+}

+

+public static final boolean ImmSetCompositionFont (int hIMC, LOGFONT lplf) {

+	if (IsUnicode) return ImmSetCompositionFontW (hIMC, lplf);

+	return ImmSetCompositionFontA (hIMC, lplf);

+}

+

+public static final int ImmGetCompositionString (int hIMC, int dwIndex, TCHAR lpBuf, int dwBufLen) {

+	if (IsUnicode) {

+		char [] lpBuf1 = lpBuf == null ? null : lpBuf.chars;

+		return ImmGetCompositionStringW (hIMC, dwIndex, lpBuf1, dwBufLen);

+	}

+	byte [] lpBuf1 = lpBuf == null ? null : lpBuf.bytes;

+	return ImmGetCompositionStringA (hIMC, dwIndex, lpBuf1, dwBufLen);

+}

+

+public static final boolean InsertMenu (int hMenu, int uPosition, int uFlags, int uIDNewItem, TCHAR lpNewItem) {

+	if (IsUnicode) {

+		char [] lpNewItem1 = lpNewItem == null ? null : lpNewItem.chars;

+		return InsertMenuW (hMenu, uPosition, uFlags, uIDNewItem, lpNewItem1);

+	}

+	byte [] lpNewItem1 = lpNewItem == null ? null : lpNewItem.bytes;

+	return InsertMenuA (hMenu, uPosition, uFlags, uIDNewItem, lpNewItem1);	

+}

+

+public static final boolean InsertMenuItem (int hMenu, int uItem, boolean fByPosition, MENUITEMINFO lpmii) {

+	if (IsUnicode) return InsertMenuItemW (hMenu, uItem, fByPosition, lpmii);

+	return InsertMenuItemA (hMenu, uItem, fByPosition, lpmii);

+}

+

+public static final int LoadBitmap (int hInstance, int lpBitmapName) {

+	if (IsUnicode) return LoadBitmapW (hInstance, lpBitmapName);

+	return LoadBitmapA (hInstance, lpBitmapName);

+}

+

+public static final int LoadCursor (int hInstance, int lpCursorName) {

+	if (IsUnicode) return LoadCursorW (hInstance, lpCursorName);

+	return LoadCursorA (hInstance, lpCursorName);

+}

+

+public static final int LoadIcon (int hInstance, int lpIconName) {

+	if (IsUnicode) return LoadIconW (hInstance, lpIconName);

+	return LoadIconA (hInstance, lpIconName);

+}

+

+public static final int LoadImage (int hinst, TCHAR lpszName, int uType, int cxDesired, int cyDesired, int fuLoad) {

+	if (IsUnicode) {

+		char [] lpszName1 = lpszName == null ? null : lpszName.chars;

+		return LoadImageW (hinst, lpszName1, uType, cxDesired, cyDesired, fuLoad);

+	}

+	byte [] lpszName1 = lpszName == null ? null : lpszName.bytes;

+	return LoadImageA (hinst, lpszName1, uType, cxDesired, cyDesired, fuLoad);

+}

+

+public static final int LoadLibrary (TCHAR lpLibFileName) {

+	if (IsUnicode) {

+		char [] lpLibFileName1 = lpLibFileName == null ? null : lpLibFileName.chars;

+		return LoadLibraryW (lpLibFileName1);

+	}

+	byte [] lpLibFileName1 = lpLibFileName == null ? null : lpLibFileName.bytes;

+	return LoadLibraryA (lpLibFileName1);

+}

+

+public static final int MapVirtualKey (int uCode, int uMapType) {

+	if (IsUnicode) return MapVirtualKeyW (uCode, uMapType);

+	return MapVirtualKeyA (uCode, uMapType);

+}

+

+public static final int MessageBox (int hWnd, TCHAR lpText, TCHAR lpCaption, int uType) {

+	if (IsUnicode) {

+		char [] lpText1 = lpText == null ? null : lpText.chars;

+		char [] lpCaption1 = lpCaption == null ? null : lpCaption.chars;

+		return MessageBoxW (hWnd, lpText1, lpCaption1, uType);

+	}

+	byte [] lpText1 = lpText == null ? null : lpText.bytes;

+	byte [] lpCaption1 = lpCaption == null ? null : lpCaption.bytes;

+	return MessageBoxA (hWnd, lpText1, lpCaption1, uType);

+}

+

+public static final void MoveMemory (int Destination, TCHAR Source, int Length) {

+	if (IsUnicode) {

+		char [] Source1 = Source == null ? null : Source.chars;

+		MoveMemory (Destination, Source1, Length);

+	} else {

+		byte [] Source1 = Source == null ? null : Source.bytes;

+		MoveMemory (Destination, Source1, Length);

+	}

+}

+

+public static final void MoveMemory (TCHAR Destination, int Source, int Length) {

+	if (IsUnicode) {

+		char [] Destination1 = Destination == null ? null : Destination.chars;

+		MoveMemory (Destination1, Source, Length);

+	} else {

+		byte [] Destination1 = Destination == null ? null : Destination.bytes;

+		MoveMemory (Destination1, Source, Length);

+	}

+}

+

+public static final void MoveMemory (int Destination, LOGFONT Source, int Length) {

+	if (IsUnicode) {

+		MoveMemoryW (Destination, Source, Length);

+	} else {

+		MoveMemoryA (Destination, Source, Length);

+	}

+}

+

+public static final void MoveMemory (LOGFONT Destination, int Source, int Length) {

+	if (IsUnicode) {

+		MoveMemoryW (Destination, Source, Length);

+	} else {

+		MoveMemoryA (Destination, Source, Length);

+	}

+}

+

+public static final void MoveMemory (int Destination, NMTTDISPINFO Source, int Length) {

+	if (IsUnicode) {

+		MoveMemoryW (Destination, Source, Length);

+	} else {

+		MoveMemoryA (Destination, Source, Length);

+	}

+}

+

+public static final void MoveMemory (NMTTDISPINFO Destination, int Source, int Length) {

+	if (IsUnicode) {

+		MoveMemoryW (Destination, Source, Length);

+	} else {

+		MoveMemoryA (Destination, Source, Length);

+	}

+}

+

+public static final boolean PeekMessage (MSG lpMsg, int hWnd, int wMsgFilterMin, int wMsgFilterMax, int wRemoveMsg) {

+	if (IsUnicode) return PeekMessageW (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg);

+	return PeekMessageA (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg);

+}

+

+public static final boolean PostMessage (int hWnd, int Msg, int wParam, int lParam) {

+	if (IsUnicode) return PostMessageW (hWnd, Msg, wParam, lParam);

+	return PostMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final boolean PostThreadMessage (int idThread, int Msg, int wParam, int lParam) {

+	if (IsUnicode) return PostThreadMessageW (idThread, Msg, wParam, lParam);

+	return PostThreadMessageA (idThread, Msg, wParam, lParam);

+}

+

+public static final boolean PrintDlg (PRINTDLG lppd) {

+	if (IsUnicode) return PrintDlgW (lppd);

+	return PrintDlgA (lppd);

+}

+

+public static final int RegEnumKeyEx (int hKey, int dwIndex, TCHAR lpName, int [] lpcName, int [] lpReserved, TCHAR lpClass, int [] lpcClass, FILETIME lpftLastWriteTime) {

+	if (IsUnicode) {

+		char [] lpName1 = lpName == null ? null : lpName.chars;

+		char [] lpClass1 = lpClass == null ? null : lpClass.chars;

+		return RegEnumKeyExW (hKey, dwIndex, lpName1, lpcName, lpReserved, lpClass1, lpcClass, lpftLastWriteTime);

+	}

+	byte [] lpName1 = lpName == null ? null : lpName.bytes;

+	byte [] lpClass1 = lpClass == null ? null : lpClass.bytes;

+	return RegEnumKeyExA (hKey, dwIndex, lpName1, lpcName, lpReserved, lpClass1, lpcClass, lpftLastWriteTime);

+}

+

+public static final int RegisterClass (WNDCLASS lpWndClass) {

+	if (IsUnicode) return RegisterClassW (lpWndClass);

+	return RegisterClassA (lpWndClass);

+}

+

+public static final int RegOpenKeyEx (int hKey, TCHAR lpSubKey, int ulOptions, int samDesired, int[] phkResult) {

+	if (IsUnicode) {

+		char [] lpSubKey1 = lpSubKey == null ? null : lpSubKey.chars;

+		return RegOpenKeyExW (hKey, lpSubKey1, ulOptions, samDesired, phkResult);

+	}

+	byte [] lpSubKey1 = lpSubKey == null ? null : lpSubKey.bytes;

+	return RegOpenKeyExA (hKey, lpSubKey1, ulOptions, samDesired, phkResult);

+}

+

+public static final int RegQueryInfoKey (int hKey, int lpClass, int[] lpcbClass, int lpReserved, int[] lpSubKeys, int[] lpcbMaxSubKeyLen, int[] lpcbMaxClassLen, int[] lpcValues, int[] lpcbMaxValueNameLen, int[] lpcbMaxValueLen, int[] lpcbSecurityDescriptor, int lpftLastWriteTime){

+	if (IsUnicode) return RegQueryInfoKeyW (hKey, lpClass, lpcbClass, lpReserved, lpSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime);

+	return RegQueryInfoKeyA (hKey, lpClass, lpcbClass, lpReserved, lpSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime);

+}

+

+public static final int RegQueryValueEx (int hKey, TCHAR lpValueName, int lpReserved, int[] lpType, TCHAR lpData, int[] lpcbData) {

+	if (IsUnicode) {

+		char [] lpValueName1 = lpValueName == null ? null : lpValueName.chars;

+		char [] lpData1 = lpData == null ? null : lpData.chars;

+		return RegQueryValueExW (hKey, lpValueName1, lpReserved, lpType, lpData1, lpcbData);

+	}

+	byte [] lpValueName1 = lpValueName == null ? null : lpValueName.bytes;

+	byte [] lpData1 = lpData == null ? null : lpData.bytes;

+	return RegQueryValueExA (hKey, lpValueName1, lpReserved, lpType, lpData1, lpcbData);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, TCHAR lParam) {

+	if (IsUnicode) {

+		char [] lParam1 = lParam == null ? null : lParam.chars;

+		return SendMessageW (hWnd, Msg, wParam, lParam1);

+	}

+	byte [] lParam1 = lParam == null ? null : lParam.bytes;

+	return SendMessageA (hWnd, Msg, wParam, lParam1);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int [] wParam, int [] lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int [] wParam, int lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, int [] lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, short [] lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, int lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, LVCOLUMN lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, LVHITTESTINFO lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, LVITEM lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, REBARBANDINFO lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, RECT lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, TBBUTTON lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, TBBUTTONINFO lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, TCITEM lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, TOOLINFO lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, TVHITTESTINFO lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, TVINSERTSTRUCT lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final int SendMessage (int hWnd, int Msg, int wParam, TVITEM lParam) {

+	if (IsUnicode) return SendMessageW (hWnd, Msg, wParam, lParam);

+	return SendMessageA (hWnd, Msg, wParam, lParam);

+}

+

+public static final boolean SetMenuItemInfo (int hMenu, int uItem, boolean fByPosition, MENUITEMINFO lpmii) {

+	if (IsUnicode) return SetMenuItemInfoW (hMenu, uItem, fByPosition, lpmii);

+	return SetMenuItemInfoA (hMenu, uItem, fByPosition, lpmii);

+}

+

+public static final int SetWindowLong (int hWnd, int nIndex, int dwNewLong) {

+	if (IsUnicode) return SetWindowLongW (hWnd, nIndex, dwNewLong);

+	return SetWindowLongA (hWnd, nIndex, dwNewLong);

+}

+

+public static final int SetWindowsHookEx (int idHook, int lpfn, int hMod, int dwThreadId) {

+	if (IsUnicode) return SetWindowsHookExW (idHook, lpfn, hMod, dwThreadId);

+	return SetWindowsHookExA (idHook, lpfn, hMod, dwThreadId);

+}

+

+public static final boolean SetWindowText (int hWnd, TCHAR lpString) {

+	if (IsUnicode) {

+		char [] lpString1 = lpString == null ? null : lpString.chars;

+		return SetWindowTextW (hWnd, lpString1);

+	}

+	byte [] lpString1 = lpString == null ? null : lpString.bytes;

+	return SetWindowTextA (hWnd, lpString1);

+}

+

+public static final int SHBrowseForFolder (BROWSEINFO lpbi) {

+	if (IsUnicode) return SHBrowseForFolderW (lpbi);

+	return SHBrowseForFolderA (lpbi);

+}

+

+public static final boolean ShellExecuteEx (SHELLEXECUTEINFO lpExecInfo) {

+	if (IsUnicode) return ShellExecuteExW (lpExecInfo);

+	return ShellExecuteExA (lpExecInfo);

+}

+

+public static final boolean SHGetPathFromIDList (int pidl, TCHAR pszPath) {

+	if (IsUnicode) {

+		char [] pszPath1 = pszPath == null ? null : pszPath.chars;

+		return SHGetPathFromIDListW (pidl, pszPath1);

+	}

+	byte [] pszPath1 = pszPath == null ? null : pszPath.bytes;

+	return SHGetPathFromIDListA (pidl, pszPath1);

+}

+

+public static final int StartDoc (int hdc, DOCINFO lpdi) {

+	if (IsUnicode) return StartDocW (hdc, lpdi);

+	return StartDocA (hdc, lpdi);

+}

+

+public static final boolean SystemParametersInfo (int uiAction, int uiParam, RECT pvParam, int fWinIni) {

+	if (IsUnicode) return SystemParametersInfoW (uiAction, uiParam, pvParam, fWinIni);

+	return SystemParametersInfoA (uiAction, uiParam, pvParam, fWinIni);

+}

+

+public static final int TranslateAccelerator (int hWnd, int hAccTable, MSG lpMsg) {

+	if (IsUnicode) return TranslateAcceleratorW (hWnd, hAccTable, lpMsg);

+	return TranslateAcceleratorA (hWnd, hAccTable, lpMsg);

+}

+

+public static final boolean UnregisterClass (TCHAR lpClassName, int hInstance) {

+	if (IsUnicode) {

+		char [] lpClassName1 = lpClassName == null ? null : lpClassName.chars;

+		return UnregisterClassW (lpClassName1, hInstance);

+	}

+	byte [] lpClassName1 = lpClassName == null ? null : lpClassName.bytes;

+	return UnregisterClassA (lpClassName1, hInstance);

+}

+

+public static final short VkKeyScan (short ch) {

+	if (IsUnicode) return VkKeyScanW (ch);

+	return VkKeyScanA (ch);

+}

+

+/** Natives */

 public static final native int AbortDoc (int hdc);

+public static final native int ActivateKeyboardLayout(int hkl, int Flags);

 public static final native boolean AdjustWindowRectEx (RECT lpRect, int dwStyle, boolean bMenu, int dwExStyle);

 public static final native boolean Arc (int hdc,int nLeftRect,int nTopRect,int nRightRect,int nBottomRect,int nXStartArc,int nYStartArc,int nXEndArc,int nYEndArc);

 public static final native int BeginDeferWindowPos (int nNumWindows);

@@ -1894,42 +1722,14 @@
 public static final native boolean ChooseFontA (CHOOSEFONT chooseFont);

 public static final native boolean ClientToScreen (int hWnd, POINT lpPoint);

 public static final native boolean CloseClipboard ();

-public static final native int CombineRgn (

-  int hrgnDest,      // handle to destination region

-  int hrgnSrc1,      // handle to source region

-  int hrgnSrc2,      // handle to source region

-  int fnCombineMode   // region combining mode

-);

+public static final native int CombineRgn (int hrgnDest, int hrgnSrc1, int hrgnSrc2, int fnCombineMode);

 public static final native int CommDlgExtendedError ();

-public static final native int CopyImage (

-	int hImage,  // handle to the image to copy

-	int uType,     // type of image to copy

-	int cxDesired,  // desired width of new image

-  	int cyDesired,  // desired height of new image

-  	int fuFlags    // copy flags

-);

-public static final native int CreateAcceleratorTableW (

-  byte [] lpaccl,  // pointer to structure array with accelerator data

-  int cEntries     // number of structures in the array

-); 

-public static final native int CreateAcceleratorTableA (

-  byte [] lpaccl,  // pointer to structure array with accelerator data

-  int cEntries     // number of structures in the array

-);

-public static final native int CreateBitmap (

-	int nWidth,         // bitmap width, in pixels

-	int nHeight,        // bitmap height, in pixels

-	int cPlanes,       // number of color planes used by device

-	int cBitsPerPel,   // number of bits required to identify a color

-	byte [] lpvBits 	// pointer to array containing color data);

-);

-//public static final native int CreateBitmapIndirect (BITMAP lpbm);

+public static final native int CopyImage (int hImage, int uType, int cxDesired, int cyDesired, int fuFlags);

+public static final native int CreateAcceleratorTableW (byte [] lpaccl, int cEntries); 

+public static final native int CreateAcceleratorTableA (byte [] lpaccl, int cEntries);

+public static final native int CreateBitmap (int nWidth, int nHeight, int cPlanes, int cBitsPerPel, byte [] lpvBits);

 public static final native boolean CreateCaret (int hWnd, int hBitmap, int nWidth, int nHeight);

-public static final native int CreateCompatibleBitmap (

-	int hdc,        // handle to device context

-	int nWidth,     // width of bitmap, in pixels

-	int nHeight     // height of bitmap, in pixels

-	);

+public static final native int CreateCompatibleBitmap (int hdc, int nWidth, int nHeight);

 public static final native int CreateCompatibleDC (int hdc);

 public static final native int CreateCursor (int hInst, int xHotSpot, int yHotSpot, int nWidth, int nHeight, byte [] pvANDPlane, byte [] pvXORPlane);

 public static final native int CreateDCW (char [] lpszDriver, char [] lpszDevice, int lpszOutput, int lpInitData);  

@@ -1943,7 +1743,7 @@
 public static final native int CreateMenu ();

 public static final native int CreatePalette (byte[] logPalette);

 public static final native int CreatePatternBrush (int colorRef);

-//public static final native int ExtCreatePen (int fnPenStyle, int nWidth, LOGBRUSH lplb, int dwStyleCount, int lpStyle);

+public static final native int CreatePen (int fnPenStyle, int nWidth, int crColor);

 public static final native int CreatePopupMenu ();

 public static final native int CreateRectRgn (int left, int top, int right, int bottom);

 public static final native int CreateSolidBrush (int colorRef);

@@ -1964,44 +1764,30 @@
 public static final native int DispatchMessageW (MSG lpmsg);

 public static final native int DispatchMessageA (MSG lpmsg);

 public static final native boolean DragDetect (int hwnd, POINT pt);

-public static final native boolean DrawEdge (

-	int hdc, // handle to device context

- 	RECT qrc,    // pointer to rectangle coordinates

-  	int edge,     // type of inner and outer edge to draw

-  	int grfFlags  // type of border

-);

+public static final native boolean DrawEdge (int hdc, RECT qrc, int edge, int grfFlags);

 public static final native boolean DrawFocusRect (int hDC, RECT lpRect);

 public static final native boolean DrawFrameControl (int hdc, RECT lprc, int uType, int uState);

-public static final native boolean DrawIconEx (

-  int hdc,                    // handle to device context

-  int xLeft,                  // x-coordinate of upper left corner

-  int yTop,                   // y-coordinate of upper left corner

-  int hIcon,                // handle to icon to draw

-  int cxWidth,                // width of the icon

-  int cyWidth,                // height of the icon

-  int istepIfAniCur,         // index of frame in animated cursor

-  int hbrFlickerFreeDraw,  // handle to background brush

-  int diFlags                // icon-drawing flags

-);

+public static final native boolean DrawIconEx (int hdc, int xLeft, int yTop, int hIcon, int cxWidth, int cyWidth, int istepIfAniCur, int hbrFlickerFreeDraw, int diFlags);

 public static final native boolean DrawMenuBar (int hWnd);

+public static final native boolean DrawStateW (int hdc, int hbr, int lpOutputFunc, int lData, int wData, int x, int y, int cx, int cy, int fuFlags);

+public static final native boolean DrawStateA (int hdc, int hbr, int lpOutputFunc, int lData, int wData, int x, int y, int cx, int cy, int fuFlags);

 public static final native int DrawTextW (int hDC, char [] lpString, int nCount, RECT lpRect, int uFormat);

 public static final native int DrawTextA (int hDC, byte [] lpString, int nCount, RECT lpRect, int uFormat);

 public static final native boolean Ellipse (int hdc,int nLeftRect,int nTopRect,int nRightRect,int nBottomRect);

 public static final native boolean EnableMenuItem (int hMenu, int uIDEnableItem, int uEnable);

 public static final native boolean EnableScrollBar (int hWnd, int wSBflags, int wArrows);

 public static final native boolean EnableWindow (int hWnd, boolean bEnable);

+public static final native boolean EnumSystemLocalesW (int lpLocaleEnumProc, int dwFlags);

+public static final native boolean EnumSystemLocalesA (int lpLocaleEnumProc, int dwFlags);

 public static final native boolean EndDeferWindowPos (int hWinPosInfo);

 public static final native int EndDoc (int hdc);

 public static final native int EndPage (int hdc);

 public static final native int EndPaint (int hWnd, PAINTSTRUCT lpPaint);

 public static final native int EnumFontFamiliesW (int hdc, char [] lpszFamily, int lpEnumFontFamProc, int lParam);

 public static final native int EnumFontFamiliesA (int hdc, byte [] lpszFamily, int lpEnumFontFamProc, int lParam);

-public static final native boolean EqualRgn (

-  int hSrcRgn1,  // handle to first region

-  int hSrcRgn2   // handle to second region

-);

-//public static final native int ExpandEnvironmentStringsW (char [] lpSrc, char [] lpDest, int nSize);

-//public static final native int ExpandEnvironmentStringsA (byte [] lpSrc, byte [] lpDest, int nSize);

+public static final native boolean EqualRgn (int hSrcRgn1, int hSrcRgn2);

+public static final native boolean ExtTextOutW(int hdc, int X, int Y, int fuOptions, RECT lprc, char[] lpString, int cbCount, int[] lpDx);

+public static final native boolean ExtTextOutA(int hdc, int X, int Y, int fuOptions, RECT lprc, byte[] lpString, int cbCount, int[] lpDx);

 public static final native int ExtractIconExW (char [] lpszFile, int nIconIndex, int [] phiconLarge, int [] phiconSmall, int nIcons);

 public static final native int ExtractIconExA (byte [] lpszFile, int nIconIndex, int [] phiconLarge, int [] phiconSmall, int nIcons);

 public static final native int FillRect(int hDC, RECT lprc, int hbr);

@@ -2013,6 +1799,8 @@
 public static final native boolean GetCaretPos (POINT lpPoint);

 public static final native boolean GetCharABCWidthsA (int hdc, int iFirstChar, int iLastChar, int [] lpabc);

 public static final native boolean GetCharABCWidthsW (int hdc, int iFirstChar, int iLastChar, int [] lpabc);

+public static final native int GetCharacterPlacementW(int hdc, char[] lpString, int nCount, int nMaxExtent, GCP_RESULTS lpResults, int dwFlags);

+public static final native int GetCharacterPlacementA(int hdc, byte[] lpString, int nCount, int nMaxExtent, GCP_RESULTS lpResults, int dwFlags);

 public static final native boolean GetCharWidthA (int hdc, int iFirstChar, int iLastChar, int [] lpBuffer);

 public static final native boolean GetCharWidthW (int hdc, int iFirstChar, int iLastChar, int [] lpBuffer);

 public static final native boolean GetClassInfoW (int hInstance, char [] lpClassName, WNDCLASS lpWndClass);

@@ -2033,106 +1821,45 @@
 public static final native int GetDialogBaseUnits ();

 public static final native int GetDIBColorTable (int hdc, int uStartIndex, int cEntries, byte[] pColors);

 public static final native int GetDIBits (int hdc, int hbmp, int uStartScan, int cScanLines, int lpvBits, byte[] lpbi, int uUsage);

-public static final native int GetDlgItem (

-  int hDlg,       // handle of dialog box

-  int nIDDlgItem   // identifier of control

-);

+public static final native int GetDlgItem (int hDlg, int nIDDlgItem);

 public static final native int GetDoubleClickTime ();

-public static final native short GetFileTitleW (

-  char [] lpszFile,   // pointer to full path and filename for file

-  char [] lpszTitle,  // pointer to buffer that receives filename

-  short cbBuf     // length of buffer

-);

-public static final native short GetFileTitleA (

-  byte [] lpszFile,   // pointer to full path and filename for file

-  byte [] lpszTitle,  // pointer to buffer that receives filename

-  short cbBuf     // length of buffer

-);

+public static final native short GetFileTitleW (char [] lpszFile, char [] lpszTitle, short cbBuf);

+public static final native short GetFileTitleA (byte [] lpszFile, byte [] lpszTitle, short cbBuf);

 public static final native int GetFocus ();

+public static final native int GetFontLanguageInfo(int hdc);

 public static final native boolean GetIconInfo (int hIcon, ICONINFO piconinfo);

+public static final native int GetKeyboardLayoutList(int nBuff, int[] lpList);

+public static final native int GetKeyboardLayout(int idThread);public static final native short GetKeyState (int nVirtKey);

 public static final native boolean GetKeyboardState (byte [] lpKeyState);

-public static final native short GetKeyState (int nVirtKey);

 public static final native int GetLastActivePopup (int hWnd);

 public static final native int GetLastError ();

+public static final native int GetLocaleInfoW (int Locale, int LCType, char [] lpLCData, int cchData);

+public static final native int GetLocaleInfoA (int Locale, int LCType, byte [] lpLCData, int cchData);

 public static final native int GetMenu (int hWnd);

 public static final native int GetMenuDefaultItem (int hMenu, int fByPos, int gmdiFlags);

 public static final native boolean GetMenuInfo (int hmenu, MENUINFO lpcmi);

 public static final native int GetMenuItemCount (int hMenu);

-public static final native boolean GetMenuItemInfoW (

-  int hMenu,          

-  int uItem,           

-  boolean fByPosition,     

-  MENUITEMINFO lpmii  

-);

-public static final native boolean GetMenuItemInfoA (

-  int hMenu,          

-  int uItem,           

-  boolean fByPosition,     

-  MENUITEMINFO lpmii  

-);

+public static final native boolean GetMenuItemInfoW (int hMenu, int uItem, boolean fByPosition, MENUITEMINFO lpmii);

+public static final native boolean GetMenuItemInfoA (int hMenu, int uItem, boolean fByPosition, MENUITEMINFO lpmii);

 public static final native boolean GetMessageW (MSG lpMsg, int hWnd, int wMsgFilterMin, int wMsgFilterMax);

 public static final native boolean GetMessageA (MSG lpMsg, int hWnd, int wMsgFilterMin, int wMsgFilterMax);

 public static final native int GetMessagePos ();

 public static final native int GetMessageTime ();

+public static final native int GetTextCharset(int hdc);

 public static final native int GetTickCount ();

 public static final native int GetModuleHandleW (char [] lpModuleName);

 public static final native int GetModuleHandleA (byte [] lpModuleName);

 public static final native int GetNearestPaletteIndex(int hPal, int crColor);

-public static final native int GetObjectA (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  BITMAP lpvObject  // pointer to buffer for object information

-);

-public static final native int GetObjectW (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  BITMAP lpvObject  // pointer to buffer for object information

-);

-public static final native int GetObjectA (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  DIBSECTION lpvObject	// pointer to buffer for object information

-);

-public static final native int GetObjectW (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  DIBSECTION lpvObject	// pointer to buffer for object information

-);

-public static final native int GetObjectA (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  LOGBRUSH lpvObject  // pointer to buffer for object information

-);

-public static final native int GetObjectW (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  LOGBRUSH lpvObject  // pointer to buffer for object information

-);

-public static final native int GetObjectA (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  LOGFONT lpvObject	// pointer to buffer for object information

-);

-public static final native int GetObjectW (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  LOGFONT lpvObject	// pointer to buffer for object information

-);

-public static final native int GetObjectA (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  LOGPEN lpvObject  // pointer to buffer for object information

-);

-public static final native int GetObjectW (

-  int hgdiobj,  	// handle to graphics object of interest

-  int cbBuffer,     // size of buffer for object information

-  LOGPEN lpvObject  // pointer to buffer for object information

-);

-//public static final native int GetObject (

-//  int hgdiobj,  	// handle to graphics object of interest

-//  int cbBuffer,     // size of buffer for object information

-//  EXTLOGPEN lpvObject  // pointer to buffer for object information

-//);

+public static final native int GetObjectA (int hgdiobj, int cbBuffer, BITMAP lpvObject);

+public static final native int GetObjectW (int hgdiobj, int cbBuffer, BITMAP lpvObject);

+public static final native int GetObjectA (int hgdiobj, int cbBuffer, DIBSECTION lpvObject);

+public static final native int GetObjectW (int hgdiobj, int cbBuffer, DIBSECTION lpvObject);

+public static final native int GetObjectA (int hgdiobj, int cbBuffer, LOGBRUSH lpvObject);

+public static final native int GetObjectW (int hgdiobj, int cbBuffer, LOGBRUSH lpvObject);

+public static final native int GetObjectA (int hgdiobj, int cbBuffer, LOGFONT lpvObject);

+public static final native int GetObjectW (int hgdiobj, int cbBuffer, LOGFONT lpvObject);

+public static final native int GetObjectA (int hgdiobj, int cbBuffer, LOGPEN lpvObject);

+public static final native int GetObjectW (int hgdiobj, int cbBuffer, LOGPEN lpvObject);

 public static final native boolean GetOpenFileNameW (OPENFILENAME lpofn);

 public static final native boolean GetOpenFileNameA (OPENFILENAME lpofn);

 public static final native int GetPaletteEntries (int hPalette, int iStartIndex, int nEntries, byte[] logPalette);

@@ -2141,15 +1868,8 @@
 public static final native int GetProcessHeap ();

 public static final native int GetProfileStringW (char [] lpAppName, char [] lpKeyName, char [] lpDefault, char [] lpReturnedString, int nSize);

 public static final native int GetProfileStringA (byte [] lpAppName, byte [] lpKeyName, byte [] lpDefault, byte [] lpReturnedString, int nSize);

-public static final native int GetRegionData (

-  int hRgn,            // handle to region

-  int dwCount,        // size of buffer containing region data

-  int [] lpRgnData   // address of buffer containing region data

-);

-public static final native int GetRgnBox (

-  int hrgn,  // handle to a region

-  RECT lprc // address of structure that receives bounding rect.

-);

+public static final native int GetRegionData (int hRgn, int dwCount, int [] lpRgnData);

+public static final native int GetRgnBox (int hrgn, RECT lprc);

 public static final native int GetROP2 (int hdc);

 public static final native boolean GetSaveFileNameW (OPENFILENAME lpofn);

 public static final native boolean GetSaveFileNameA (OPENFILENAME lpofn);

@@ -2183,48 +1903,19 @@
 public static final native int GlobalSize (int hMem);

 public static final native boolean GlobalUnlock (int hMem);

 public static final native boolean GradientFill(int hdc, int pVertex, int dwNumVertex, int pMesh, int dwNumMesh, int dwMode);

-public static final native int HeapAlloc (

-  int hHeap,  // handle to the private heap block

-  int dwFlags, // heap allocation control flags

-  int dwBytes  // number of bytes to allocate

-);

-public static final native boolean HeapFree (

-  int hHeap,  // handle to the heap

-  int dwFlags, // heap freeing flags

-  int lpMem   // pointer to the memory to free

-);

+public static final native int HeapAlloc (int hHeap, int dwFlags, int dwBytes);

+public static final native boolean HeapFree (int hHeap, int dwFlags, int lpMem);

 public static final native boolean HideCaret (int hWnd);

-public static final native int ImageList_AddMasked (

-	int himl,

-	int hbmImage,

-	int crMask);

-public static final native int ImageList_Create (

-	int cx, 	

-	int cy, 	

-	int flags, 	

-	int cInitial, 	

-	int cGrow	

-   );	

-

+public static final native int ImageList_AddMasked (int himl, int hbmImage, int crMask);

+public static final native int ImageList_Create (int cx, int cy, int flags, int cInitial, int cGrow);

 public static final native boolean ImageList_Destroy (int himl);

-

 public static final native int ImageList_GetIcon (int himl, int i, int flags);

-public static final native boolean ImageList_GetIconSize (

-	int himl, 	

-	int [] cx, 	

-	int [] cy 	

-   );   

+public static final native boolean ImageList_GetIconSize (int himl, int [] cx, int [] cy);   

 public static final native int ImageList_GetImageCount (int himl);

 public static final native boolean ImageList_Remove (int himl, int i);

 public static final native boolean ImageList_Replace (int himl, int i, int hbmImage, int hbmMask);

-public static final native int ImageList_ReplaceIcon (

-	int himl,

-	int i,

-	int hicon);	

-public static final native boolean ImageList_SetIconSize (

-	int himl,

-	int cx,

-	int cy);

+public static final native int ImageList_ReplaceIcon (int himl, int i, int hicon);

+public static final native boolean ImageList_SetIconSize (int himl, int cx, int cy);

 public static final native int ImmAssociateContext (int hWnd, int hIMC);

 public static final native int ImmCreateContext ();

 public static final native boolean ImmDestroyContext (int hIMC);

@@ -2237,24 +1928,17 @@
 public static final native int ImmGetDefaultIMEWnd (int hWnd);

 public static final native boolean ImmGetOpenStatus (int hIMC);

 public static final native boolean ImmReleaseContext (int hWnd, int hIMC);

-public static final native boolean ImmSetCompositionFont (int hIMC, LOGFONT lplf);

+public static final native boolean ImmSetCompositionFontW (int hIMC, LOGFONT lplf);

+public static final native boolean ImmSetCompositionFontA (int hIMC, LOGFONT lplf);

 public static final native boolean ImmSetCompositionWindow (int hIMC, COMPOSITIONFORM lpCompForm);

 public static final native boolean ImmSetConversionStatus (int hIMC, int fdwConversion, int dwSentence);

 public static final native boolean ImmSetOpenStatus (int hIMC, boolean fOpen);

 public static final native void InitCommonControls ();

 public static final native boolean InitCommonControlsEx (INITCOMMONCONTROLSEX lpInitCtrls);

-public static final native boolean InsertMenuItemW (

-  int hMenu,

-  int uItem,

-  boolean fByPosition,

-  MENUITEMINFO lpmii

-);

-public static final native boolean InsertMenuItemA (

-  int hMenu,

-  int uItem,

-  boolean fByPosition,

-  MENUITEMINFO lpmii

-);

+public static final native boolean InsertMenuW (int hMenu, int uPosition, int uFlags, int uIDNewItem, char [] lpNewItem);

+public static final native boolean InsertMenuA (int hMenu, int uPosition, int uFlags, int uIDNewItem, byte [] lpNewItem);

+public static final native boolean InsertMenuItemW (int hMenu, int uItem, boolean fByPosition, MENUITEMINFO lpmii);

+public static final native boolean InsertMenuItemA (int hMenu, int uItem, boolean fByPosition, MENUITEMINFO lpmii);

 public static final native boolean InvalidateRect(int hWnd, RECT lpRect, boolean bErase);

 public static final native boolean InvalidateRgn (int hWnd, int hRgn, boolean bErase);

 public static final native boolean IsDBCSLeadByte (byte TestChar);

@@ -2262,6 +1946,7 @@
 public static final native boolean IsWindowEnabled (int hWnd);

 public static final native boolean IsWindowVisible (int hWnd);

 public static final native boolean IsZoomed (int hWnd);

+public static final native boolean KillTimer (int hWnd, int uIDEvent);

 public static final native boolean LineTo (int hdc,int x1, int x2);

 public static final native int LoadBitmapW (int hInstance, int lpBitmapName);

 public static final native int LoadBitmapA (int hInstance, int lpBitmapName);

@@ -2278,185 +1963,46 @@
 public static final native int MapWindowPoints (int hWndFrom, int hWndTo, POINT lpPoints, int cPoints);

 public static final native int MapWindowPoints (int hWndFrom, int hWndTo, RECT lpPoints, int cPoints);

 public static final native boolean MessageBeep (int uType);

-public static final native int MessageBoxW (

-  int hWnd,          // handle of owner window

-  char [] lpText,     // address of text in message box

-  char [] lpCaption,  // address of title of message box

-  int uType          // style of message box

-);

-public static final native int MessageBoxA (

-  int hWnd,          // handle of owner window

-  byte [] lpText,     // address of text in message box

-  byte [] lpCaption,  // address of title of message box

-  int uType          // style of message box

-);

+public static final native int MessageBoxW (int hWnd, char [] lpText, char [] lpCaption, int uType);

+public static final native int MessageBoxA (int hWnd, byte [] lpText, byte [] lpCaption, int uType);

 public static final native void MoveMemory (char[] Destination, int SourcePtr, int Length);

-public static final native void MoveMemory (

-  byte [] Destination,  // address of move destination

-  int Source, 			// address of block to move

-  int Length        	// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  byte [] Destination,  // address of move destination

-  ACCEL Source, 	// address of block to move

-  int Length        // size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  int [] Destination,  // address of move destination

-  int Source, 			// address of block to move

-  int Length        	// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  int Destination,  // address of move destination

-  byte [] Source, 	// address of block to move

-  int Length        // size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  int Destination,  // address of move destination

-  char [] Source, 	// address of block to move

-  int Length        // size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  int Destination,  // address of move destination

-  int [] Source, 	// address of block to move

-  int Length        // size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  int Destination,  // address of move destination

-  GRADIENT_RECT Source, 	// address of block to move

-  int Length        // size, in bytes, of block to move

-);

-public static final native void MoveMemoryW (

-  int Destination,				// address of move destination

-  LOGFONT Source, 				// address of block to move

-  int Length        			// size, in bytes, of block to move

-);

-public static final native void MoveMemoryA (

-  int Destination,				// address of move destination

-  LOGFONT Source, 				// address of block to move

-  int Length        			// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  int Destination,	// address of move destination

-  MEASUREITEMSTRUCT Source, // address of block to move

-  int Length        			// size, in bytes, of block to move

-);

-public static final native void MoveMemoryW (

-  int Destination,  // address of move destination

-  NMTTDISPINFO Source, 	// address of block to move

-  int Length        // size, in bytes, of block to move

-);

-public static final native void MoveMemoryA (

-  int Destination,  // address of move destination

-  NMTTDISPINFO Source, 	// address of block to move

-  int Length        // size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  int Destination,  // address of move destination

-  RECT Source, 	// address of block to move

-  int Length        // size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  int Destination,  // address of move destination

-  TRIVERTEX Source, 	// address of block to move

-  int Length        // size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  DRAWITEMSTRUCT Destination,	// address of move destination

-  int Source, 					// address of block to move

-  int Length        			// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  HDITEM Destination,			// address of move destination

-  int Source, 					// address of block to move

-  int Length        			// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  HELPINFO Destination,	// address of move destination

-  int Source, 			// address of block to move

-  int Length        	// size, in bytes, of block to move

-);

-public static final native void MoveMemoryW (

-  LOGFONT Destination,			// address of move destination

-  int Source, 					// address of block to move

-  int Length        			// size, in bytes, of block to move

-);

-public static final native void MoveMemoryA (

-  LOGFONT Destination,			// address of move destination

-  int Source, 					// address of block to move

-  int Length        			// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  MEASUREITEMSTRUCT Destination,	// address of move destination

-  int Source, 					// address of block to move

-  int Length        			// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  NMHDR Destination,	// address of move destination

-  int Source, 			// address of block to move

-  int Length        	// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  NMHEADER Destination,	// address of move destination

-  int Source, 			// address of block to move

-  int Length        	// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  NMLISTVIEW Destination,	// address of move destination

-  int Source,				// address of block to move

-  int Length				// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  NMTOOLBAR Destination,	// address of move destination

-  int Source,				// address of block to move

-  int Length				// size, in bytes, of block to move

-);

-public static final native void MoveMemoryW (

-  NMTTDISPINFO Destination,	// address of move destination

-  int Source,				// address of block to move

-  int Length				// size, in bytes, of block to move

-);

-public static final native void MoveMemoryA (

-  NMTTDISPINFO Destination,	// address of move destination

-  int Source,				// address of block to move

-  int Length				// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  TVITEM Destination,	// address of move destination

-  int Source,			// address of block to move

-  int Length			// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  WINDOWPOS Destination,	// address of move destination

-  int Source,				// address of block to move

-  int Length				// size, in bytes, of block to move

-);

-public static final native void MoveMemory (

-  MSG Destination,	// address of move destination

-  int Source,		// address of block to move

-  int Length		// size, in bytes, of block to move

-);

+public static final native void MoveMemory (byte [] Destination, int Source, int Length);

+public static final native void MoveMemory (byte [] Destination, ACCEL Source, int Length);

+public static final native void MoveMemory (int [] Destination, int Source, int Length);

+public static final native void MoveMemory (int Destination, byte [] Source, int Length);

+public static final native void MoveMemory (int Destination, char [] Source, int Length);

+public static final native void MoveMemory (int Destination, int [] Source, int Length);

+public static final native void MoveMemory (int Destination, GRADIENT_RECT Source, int Length);

+public static final native void MoveMemoryW (int Destination, LOGFONT Source, int Length);

+public static final native void MoveMemoryA (int Destination, LOGFONT Source, int Length);

+public static final native void MoveMemory (int Destination, MEASUREITEMSTRUCT Source, int Length);

+public static final native void MoveMemoryW (int Destination, NMTTDISPINFO Source, int Length);

+public static final native void MoveMemoryA (int Destination, NMTTDISPINFO Source, int Length);

+public static final native void MoveMemory (int Destination, RECT Source, int Length);

+public static final native void MoveMemory (int Destination, TRIVERTEX Source, int Length);

+public static final native void MoveMemory (DRAWITEMSTRUCT Destination, int Source, int Length);

+public static final native void MoveMemory (HDITEM Destination, int Source, int Length);

+public static final native void MoveMemory (HELPINFO Destination, int Source, int Length);

+public static final native void MoveMemoryW (LOGFONT Destination, int Source, int Length);

+public static final native void MoveMemoryA (LOGFONT Destination, int Source, int Length);

+public static final native void MoveMemory (MEASUREITEMSTRUCT Destination, int Source, int Length);

+public static final native void MoveMemory (NMHDR Destination, int Source, int Length);

+public static final native void MoveMemory (NMHEADER Destination, int Source, int Length);

+public static final native void MoveMemory (NMLISTVIEW Destination, int Source, int Length);

+public static final native void MoveMemory (NMTOOLBAR Destination, int Source, int Length);

+public static final native void MoveMemoryW (NMTTDISPINFO Destination, int Source, int Length);

+public static final native void MoveMemoryA (NMTTDISPINFO Destination, int Source, int Length);

+public static final native void MoveMemory (TVITEM Destination, int Source, int Length);

+public static final native void MoveMemory (WINDOWPOS Destination, int Source, int Length);

+public static final native void MoveMemory (MSG Destination, int Source, int Length);

 public static final native boolean MoveToEx (int hdc,int x1, int x2, int lPoint);

 public static final native int MultiByteToWideChar (int CodePage, int dwFlags, byte [] lpMultiByteStr, int cchMultiByte, char [] lpWideCharStr, int cchWideChar);

-//public static final native int MultiByteToWideChar (int CodePage, int dwFlags, int lpMultiByteStr, int cchMultiByte, char [] lpWideCharStr, int cchWideChar);

 public static final native int OleInitialize (int pvReserved);

 public static final native void OleUninitialize ();

 public static final native boolean OpenClipboard (int hWndNewOwner);

 public static final native boolean PatBlt (int hdc,int x1, int x2,int w, int h, int rop);

-public static final native boolean PeekMessageW (

-  MSG lpMsg,         // pointer to structure for message

-  int hWnd,           // handle to window

-  int wMsgFilterMin,  // first message

-  int wMsgFilterMax,  // last message

-  int wRemoveMsg      // removal flags

-);

-public static final native boolean PeekMessageA (

-  MSG lpMsg,         // pointer to structure for message

-  int hWnd,           // handle to window

-  int wMsgFilterMin,  // first message

-  int wMsgFilterMax,  // last message

-  int wRemoveMsg      // removal flags

-);

+public static final native boolean PeekMessageW (MSG lpMsg, int hWnd, int wMsgFilterMin, int wMsgFilterMax, int wRemoveMsg);

+public static final native boolean PeekMessageA (MSG lpMsg, int hWnd, int wMsgFilterMin, int wMsgFilterMax, int wRemoveMsg);

 public static final native boolean Pie (int hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nXStartArc, int nYStartArc, int nXEndArc, int nYEndArc);

 public static final native boolean Polygon (int hdc, int [] points, int nPoints);

 public static final native boolean Polyline (int hdc,int[] points, int nPoints);

@@ -2467,18 +2013,10 @@
 public static final native boolean PrintDlgW (PRINTDLG lppd);

 public static final native boolean PrintDlgA (PRINTDLG lppd);

 public static final native boolean PtInRect (RECT rect, POINT pt);

-public static final native boolean PtInRegion (

-  int hrgn,  // handle to region

-  int X,      // x-coordinate of point

-  int Y       // y-coordinate of point

-);

+public static final native boolean PtInRegion (int hrgn, int X, int Y);

 public static final native int RealizePalette(int hDC);

 public static final native boolean Rectangle (int hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);

-public static final native boolean RectInRegion (

-  int hrgn,   // handle to region

-  RECT lprc   // address of structure with rectangle

-);

- 

+public static final native boolean RectInRegion (int hrgn, RECT lprc);

 public static final native boolean RedrawWindow (int hWnd, RECT lprcUpdate, int hrgnUpdate, int flags);

 public static final native int RegCloseKey (int hKey);

 public static final native int RegisterClassW (WNDCLASS lpWndClass);

@@ -2502,7 +2040,6 @@
 public static final native int SelectPalette(int hDC, int hpal, boolean bForceBackground);

 public static final native int SendMessageW (int hWnd, int Msg, int [] wParam, int [] lParam);

 public static final native int SendMessageW (int hWnd, int Msg, int [] wParam, int lParam);

-//public static final native int SendMessageW (int hWnd, int Msg, int wParam, byte [] lParam);

 public static final native int SendMessageW (int hWnd, int Msg, int wParam, char [] lParam);

 public static final native int SendMessageW (int hWnd, int Msg, int wParam, int [] lParam);

 public static final native int SendMessageW (int hWnd, int Msg, int wParam, short [] lParam);

@@ -2522,7 +2059,6 @@
 public static final native int SendMessageA (int hWnd, int Msg, int [] wParam, int [] lParam);

 public static final native int SendMessageA (int hWnd, int Msg, int [] wParam, int lParam);

 public static final native int SendMessageA (int hWnd, int Msg, int wParam, byte [] lParam);

-//public static final native int SendMessageA (int hWnd, int Msg, int wParam, char [] lParam);

 public static final native int SendMessageA (int hWnd, int Msg, int wParam, int [] lParam);

 public static final native int SendMessageA (int hWnd, int Msg, int wParam, short [] lParam);

 public static final native int SendMessageA (int hWnd, int Msg, int wParam, int lParam);

@@ -2547,22 +2083,11 @@
 public static final native int SetCursor (int hCursor);

 public static final native int SetDIBColorTable (int hdc, int uStartIndex, int cEntries, byte[] pColors);

 public static final native int SetFocus (int hWnd);

-//public static final native int SetMapMode (int hdc, int fnMapMode);

 public static final native boolean SetMenu (int hWnd, int hMenu);

 public static final native boolean SetMenuDefaultItem (int hMenu, int uItem, int fByPos);

 public static final native boolean SetMenuInfo (int hmenu, MENUINFO lpcmi);

-public static final native boolean SetMenuItemInfoW (

-  int hMenu,          

-  int uItem,           

-  boolean fByPosition,     

-  MENUITEMINFO lpmii  

-);

-public static final native boolean SetMenuItemInfoA (

-  int hMenu,          

-  int uItem,           

-  boolean fByPosition,     

-  MENUITEMINFO lpmii  

-);

+public static final native boolean SetMenuItemInfoW (int hMenu, int uItem, boolean fByPosition, MENUITEMINFO lpmii);

+public static final native boolean SetMenuItemInfoA (int hMenu, int uItem, boolean fByPosition, MENUITEMINFO lpmii);

 public static final native int SetPaletteEntries (int hPal, int iStart, int cEntries, byte[] lppe);

 public static final native int SetParent (int hWndChild, int hWndNewParent);

 public static final native int SetPixel (int hdc, int X, int Y, int crColor);

@@ -2570,7 +2095,10 @@
 public static final native boolean SetRectRgn (int hrgn, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);

 public static final native int SetROP2 (int hdc, int fnDrawMode);

 public static final native boolean SetScrollInfo (int hwnd, int flags, SCROLLINFO info, boolean fRedraw);

+public static final native int SetStretchBltMode(int hdc, int iStretchMode);

+public static final native int SetTextAlign(int hdc, int fMode);

 public static final native int SetTextColor (int hdc, int colorRef);

+public static final native int SetTimer (int hWnd, int nIDEvent, int Elapse, int lpTimerFunc);

 public static final native int SetWindowLongW (int hWnd, int nIndex, int dwNewLong);

 public static final native int SetWindowLongA (int hWnd, int nIndex, int dwNewLong);

 public static final native boolean SetWindowPlacement (int hWnd, WINDOWPLACEMENT lpwndpl);

@@ -2593,60 +2121,16 @@
 public static final native int StartDocW (int hdc, DOCINFO lpdi);

 public static final native int StartDocA (int hdc, DOCINFO lpdi);

 public static final native int StartPage (int hdc);

-public static final native boolean StretchBlt (

-  int hdcDest,      // handle to destination device context

-  int nXOriginDest, // x-coordinate of upper-left corner of dest. 

-					// rect.

-  int nYOriginDest, // y-coordinate of upper-left corner of dest.

-					// rect.

-  int nWidthDest,   // width of destination rectangle

-  int nHeightDest,  // height of destination rectangle

-  int hdcSrc,       // handle to source device context

-  int nXOriginSrc,  // x-coordinate of upper-left corner of source 

-					// rectangle

-  int nYOriginSrc,  // y-coordinate of upper-left corner of source 

-					// rectangle

-  int nWidthSrc,    // width of source rectangle

-  int nHeightSrc,   // height of source rectangle

-  int dwRop       	// raster operation code

-);

-//public static final native boolean TextOut (int hdc, int nXStart, int nYStart, byte [] lpString, int cbString);

-public static final native int ToAscii (

-  int uVirtKey, 

-  int uScanCode, 

-  byte [] lpKeyState, 

-  short [] lpChar, 

-  int uFlags 

-);

-public static final native int ToUnicode(

-  int wVirtKey,

-  int wScanCode,

-  byte [] lpKeyState,

-  char [] pwszBuff,

-  int cchBuff,

-  int wFlags

-);

-

+public static final native boolean StretchBlt (int hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, int hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, int dwRop);

+public static final native boolean SystemParametersInfoW (int uiAction, int uiParam, RECT pvParam, int fWinIni);

+public static final native boolean SystemParametersInfoA (int uiAction, int uiParam, RECT pvParam, int fWinIni);

+public static final native int ToAscii (int uVirtKey, int uScanCode, byte [] lpKeyState, short [] lpChar, int uFlags);

+public static final native int ToUnicode(int wVirtKey, int wScanCode, byte [] lpKeyState, char [] pwszBuff, int cchBuff, int wFlags);

 public static final native boolean TrackMouseEvent(TRACKMOUSEEVENT lpEventTrack);

-public static final native boolean TrackPopupMenu (

-  int hMenu,  // handle to shortcut menu

-  int uFlags,  // screen-position and mouse-button flags

-  int x,        // horizontal position, in screen coordinates

-  int y,        // vertical position, in screen coordinates

-  int nReserved, // reserved, must be zero

-  int hWnd,    // handle to owner window

-  RECT prcRect // pointer to RECT that specifies no-dismissal area

-);

-public static final native int TranslateAcceleratorW (

-	int hWnd,         // handle of destination window

-  	int hAccTable,  // handle of accelerator table

-  	MSG lpMsg        // address of structure with message

-);

-public static final native int TranslateAcceleratorA (

-	int hWnd,         // handle of destination window

-  	int hAccTable,  // handle of accelerator table

-  	MSG lpMsg        // address of structure with message

-);

+public static final native boolean TrackPopupMenu (int hMenu, int uFlags, int x, int y, int nReserved, int hWnd, RECT prcRect);

+public static final native int TranslateAcceleratorW (int hWnd, int hAccTable, MSG lpMsg);

+public static final native int TranslateAcceleratorA (int hWnd, int hAccTable, MSG lpMsg);

+public static final native boolean TranslateCharsetInfo(int lpSrc, int [] lpCs, int dwFlags);

 public static final native boolean TranslateMessage (MSG lpmsg);

 public static final native boolean UnhookWindowsHookEx(int hhk);

 public static final native boolean UnregisterClassW (char [] lpClassName, int hInstance);

@@ -2661,45 +2145,4 @@
 public static final native int WindowFromDC (int lpPoint);

 public static final native int WindowFromPoint (POINT lpPoint);

 

-public static final native int SetTimer (int hWnd, int nIDEvent, int Elapse, int lpTimerFunc);

-public static final native boolean KillTimer (int hWnd, int uIDEvent);

-

-public static final native boolean DrawStateW (int hdc, int hbr, int lpOutputFunc, int lData, int wData, int x, int y, int cx, int cy, int fuFlags);

-public static final native boolean DrawStateA (int hdc, int hbr, int lpOutputFunc, int lData, int wData, int x, int y, int cx, int cy, int fuFlags);

-

-public static final native int CreatePen (int fnPenStyle, int nWidth, int crColor);

-public static final native int SetStretchBltMode(int hdc, int iStretchMode);

-

-public static final native int GetCharacterPlacementW(int hdc, char[] lpString, int nCount, int nMaxExtent, GCP_RESULTS lpResults, int dwFlags);

-public static final native int GetCharacterPlacementA(int hdc, byte[] lpString, int nCount, int nMaxExtent, GCP_RESULTS lpResults, int dwFlags);

-public static final native boolean ExtTextOutW(int hdc, int X, int Y, int fuOptions, RECT lprc, char[] lpString, int cbCount, int[] lpDx);

-public static final native boolean ExtTextOutA(int hdc, int X, int Y, int fuOptions, RECT lprc, byte[] lpString, int cbCount, int[] lpDx);

-public static final native int GetFontLanguageInfo(int hdc);

-public static final native int GetKeyboardLayoutList(int nBuff, int[] lpList);

-public static final native int GetKeyboardLayout(int idThread);

-public static final native int ActivateKeyboardLayout(int hkl, int Flags);

-public static final native int SetTextAlign(int hdc, int fMode);

-

-public static final native boolean TranslateCharsetInfo(int lpSrc, int [] lpCs, int dwFlags);

-public static final native int GetTextCharset(int hdc);

-public static final native int GetLocaleInfoW (int Locale, int LCType, char [] lpLCData, int cchData);

-public static final native int GetLocaleInfoA (int Locale, int LCType, byte [] lpLCData, int cchData);

-public static final native boolean EnumSystemLocalesW (int lpLocaleEnumProc, int dwFlags);

-public static final native boolean EnumSystemLocalesA (int lpLocaleEnumProc, int dwFlags);

-

-public static final native boolean SystemParametersInfoW (

-	int uiAction,  // system parameter to retrieve or set

-	int uiParam,   // depends on action to be taken

-	RECT pvParam,  // depends on action to be taken

-	int fWinIni    // user profile update option

-);

-public static final native boolean SystemParametersInfoA (

-	int uiAction,  // system parameter to retrieve or set

-	int uiParam,   // depends on action to be taken

-	RECT pvParam,  // depends on action to be taken

-	int fWinIni    // user profile update option

-);

-public static final native boolean InsertMenuW (int hMenu, int uPosition, int uFlags, int uIDNewItem, char [] lpNewItem);

-public static final native boolean InsertMenuA (int hMenu, int uPosition, int uFlags, int uIDNewItem, byte [] lpNewItem);

-

 }