#include <windows.h>
#include <mmsystem.h>
#undef STRICT
+#undef MAX_PRIORITY
+#undef MIN_PRIORITY
+#undef NORM_PRIORITY
#include <gcj/cni.h>
#include <org/xwt/Surface.h>
#include <org/xwt/DoubleBuffer.h>
#include <org/xwt/Picture.h>
+#include <org/xwt/ByteStream.h>
#include <org/xwt/Platform.h>
#include <org/xwt/Platform$ParsedFont.h>
#include <org/xwt/plat/Win32.h>
#include <org/xwt/plat/Win32$Win32Surface.h>
#include <org/xwt/plat/Win32$Win32DoubleBuffer.h>
#include <org/xwt/plat/Win32$Win32Picture.h>
+#include <org/xwt/util/Log.h>
#include <org/xwt/util/Semaphore.h>
// for debugging
0xFF, 0xFF, 0xFF, 0xFF
};
+
void org::xwt::plat::Win32::natInit() {
// grab desktop dc/handle
// Platform Methods ///////////////////////////////////////////////////////////////////
+jstring org::xwt::plat::Win32::_fileDialog(jstring suggestedFileName, jboolean write) {
+
+ char buf[1024];
+ OPENFILENAME ofn;
+ memset(buf, 0, 1024);
+ memset(&ofn, 0, sizeof(OPENFILENAME));
+
+ if (suggestedFileName != NULL)
+ JvGetStringUTFRegion(suggestedFileName, 0, min(1023, JvGetStringUTFLength(suggestedFileName)), buf);
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.nMaxCustFilter = 0;
+ ofn.lpstrFile = buf;
+ ofn.nMaxFile = 1024;
+
+ if (write) ofn.Flags |= OFN_OVERWRITEPROMPT;
+ ofn.Flags |= OFN_NOCHANGEDIR;
+ ofn.Flags |= OFN_HIDEREADONLY;
+
+ int ret = write ? GetSaveFileName(&ofn) : GetOpenFileName(&ofn);
+ return ret == 0 ? NULL : JvNewStringLatin1(buf);
+}
+
+void org::xwt::plat::Win32::__detectProxy(JArray<jstring>* container) {
+
+ HKEY hkey;
+ char buf[1024];
+ DWORD buflen = 1024;
+ DWORD type;
+ LONG result = RegOpenKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", &hkey);
+ if (result != ERROR_SUCCESS) return;
+
+ buf[0] = '\0';
+ type = REG_SZ;
+ buflen = 1024;
+ result = RegQueryValueEx(hkey, "AutoConfigURL", NULL, &type, (LPBYTE)buf, &buflen);
+ buf[buflen] = '\0';
+ if (result == ERROR_SUCCESS) elements(container)[2] = JvNewStringLatin1(buf);
+
+ buf[0] = '\0';
+ type = REG_BINARY;
+ RegQueryValueEx(hkey, "ProxyEnable", NULL, &type, (LPBYTE)buf, &buflen);
+ if (buf[0] != 1) return;
+
+ buf[0] = '\0';
+ type = REG_SZ;
+ buflen = 1024;
+ RegQueryValueEx(hkey, "ProxyServer", NULL, &type, (LPBYTE)buf, &buflen);
+ buf[buflen] = '\0';
+ elements(container)[0] = JvNewStringLatin1(buf);
+
+ buf[0] = '\0';
+ buflen = 1024;
+ RegQueryValueEx(hkey, "ProxyOverride", NULL, &type, (LPBYTE)buf, &buflen);
+ buf[buflen] = '\0';
+ elements(container)[1] = JvNewStringLatin1(buf);
+}
+
jstring org::xwt::plat::Win32::_getClipBoard() {
OpenClipboard((HWND)desktop_handle);
HGLOBAL hmem = GetClipboardData(CF_TEXT);
UINT iMsg = (UINT)_iMsg;
WPARAM wParam = (WPARAM)_wParam;
LPARAM lParam = (LPARAM)_lParam;
+
int oldmousex, oldmousey;
MINMAXINFO* mmi;
POINT point;