2002/05/04 07:25:32
[org.ibex.core.git] / src / org / xwt / plat / Win32.cc
index f3f5fd7..3bb342e 100644 (file)
@@ -13,6 +13,9 @@
 #include <windows.h>
 #include <mmsystem.h>
 #undef STRICT
+#undef MAX_PRIORITY
+#undef MIN_PRIORITY
+#undef NORM_PRIORITY
 
 #include <gcj/cni.h>
 
@@ -53,8 +56,6 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) {
         return (LRESULT)surface->WndProc((jint)hwnd, (jint)iMsg, (jint)wParam, (jint)lParam);
 
     } else {
-        java::lang::System::out->print(JvNewStringLatin1("miss on hwnd "));
-        java::lang::System::out->println((jint)hwnd);
         // this is really lame -- Win32 insists on being able to call your WndProc BEFORE CreateWindow returns...
         return DefWindowProc(hwnd, iMsg, wParam, lParam);
     }
@@ -163,6 +164,7 @@ static unsigned char hand_cursor_and[32 * 4] = {
   0xFF, 0xFF, 0xFF, 0xFF
 };
 
+
 void org::xwt::plat::Win32::natInit() {
 
     // grab desktop dc/handle
@@ -235,6 +237,41 @@ void org::xwt::plat::Win32::natInit() {
 
 // Platform Methods ///////////////////////////////////////////////////////////////////
 
+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);
@@ -620,6 +657,7 @@ jint org::xwt::plat::Win32$Win32Surface::WndProc(jint _hwnd, jint _iMsg, jint _w
     UINT iMsg = (UINT)_iMsg;
     WPARAM wParam = (WPARAM)_wParam;
     LPARAM lParam = (LPARAM)_lParam;
+
     int oldmousex, oldmousey;
     MINMAXINFO* mmi;
     POINT point;
@@ -745,7 +783,6 @@ jint org::xwt::plat::Win32$Win32Surface::WndProc(jint _hwnd, jint _iMsg, jint _w
         PAINTSTRUCT ps;
         BeginPaint((HWND)org::xwt::plat::Win32$Win32Surface::hwnd, &ps);
         Dirty(ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right - ps.rcPaint.left, ps.rcPaint.bottom - ps.rcPaint.top);
-        Refresh();
         EndPaint((HWND)org::xwt::plat::Win32$Win32Surface::hwnd, &ps);
         return 0;