getFieldOrder() {
+ return java.util.List.of("cxLeftWidth", "cxRightWidth", "cyTopHeight", "cyBottomHeight");
+ }
+ }
+
+ int DwmExtendFrameIntoClientArea(HWND hWnd, MARGINS pMarInset);
+}
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Gdi32.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Gdi32.java
index 10936e7b0..fda491a87 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Gdi32.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Gdi32.java
@@ -16,9 +16,6 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
-import com.sun.jna.Native;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.DWORD;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.HBITMAP;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.HDC;
@@ -27,6 +24,9 @@ import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinGDI.BITMAPINFO;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinGDI.BITMAPINFOHEADER;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinGDI.RGNDATA;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
+import com.sun.jna.Native;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
import com.sun.jna.ptr.PointerByReference;
import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.win32.W32APIOptions;
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/ICONINFO.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/ICONINFO.java
index 856087e43..626150901 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/ICONINFO.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/ICONINFO.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
-import com.sun.jna.Structure;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.DWORD;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.HBITMAP;
+import com.sun.jna.Structure;
import java.util.Arrays;
import java.util.List;
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Kernel32.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Kernel32.java
index 087524775..6737657ac 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Kernel32.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Kernel32.java
@@ -16,10 +16,10 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.LPVOID;
import com.sun.jna.Native;
import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.LPVOID;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.NativeLongByReference;
import com.sun.jna.win32.W32APIOptions;
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/MEMORY_BASIC_INFORMATION.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/MEMORY_BASIC_INFORMATION.java
index 52d283a6a..40a7dc0c3 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/MEMORY_BASIC_INFORMATION.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/MEMORY_BASIC_INFORMATION.java
@@ -16,10 +16,10 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.BaseTSD.SIZE_T;
import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.BaseTSD.SIZE_T;
import java.util.Arrays;
import java.util.List;
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Psapi.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Psapi.java
index 18cdda0ed..214fc0423 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Psapi.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Psapi.java
@@ -16,8 +16,8 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
-import com.sun.jna.Native;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
+import com.sun.jna.Native;
import com.sun.jna.win32.StdCallLibrary;
/**
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/SHELLEXECUTEINFO.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/SHELLEXECUTEINFO.java
index 0a78192a5..87040f0ca 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/SHELLEXECUTEINFO.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/SHELLEXECUTEINFO.java
@@ -16,13 +16,13 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import com.sun.jna.WString;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.HINSTANCE;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.HWND;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinReg.HKEY;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+import com.sun.jna.WString;
import java.util.Arrays;
import java.util.List;
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/SHFILEINFO.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/SHFILEINFO.java
index f6d0286ac..a20111f9d 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/SHFILEINFO.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/SHFILEINFO.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.HICON;
import com.sun.jna.Structure;
import com.sun.jna.platform.win32.WinDef.DWORD;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.HICON;
import java.util.Arrays;
import java.util.List;
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Shell32.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Shell32.java
index 03491f798..8bf4ff428 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Shell32.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/Shell32.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
-import com.sun.jna.Native;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.BaseTSD.DWORD_PTR;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.UINT;
+import com.sun.jna.Native;
import com.sun.jna.ptr.PointerByReference;
import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.win32.W32APIOptions;
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/User32.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/User32.java
index 06fdf6add..5c1a6371c 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/User32.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/User32.java
@@ -16,12 +16,13 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.BaseTSD.LONG_PTR;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
+import com.sun.jna.Callback;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
import com.sun.jna.WString;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.BaseTSD.LONG_PTR;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.ptr.ByteByReference;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.win32.StdCallLibrary;
@@ -1445,4 +1446,41 @@ public interface User32 extends StdCallLibrary, WinUser {
public static final int DI_DEFAULTSIZE = 8;
int FillRect(HDC hDC, RECT lprc, HANDLE hbr);
+
+ boolean IsWindow(HWND hWnd);
+
+ /**
+ * Passes message information to the specified window procedure.
+ *
+ * @param lpPrevWndFunc
+ * The previous window procedure. If this value is obtained by calling
+ * the GetWindowLong function with the nIndex parameter set to GWL_WNDPROC
+ * or DWL_DLGPROC, it is actually either the address of a window or dialog
+ * box procedure, or a special internal value meaningful only to
+ * CallWindowProc.
+ *
+ * @param hWnd
+ * A handle to the window procedure to receive the message.
+ *
+ * @param Msg
+ * The message.
+ *
+ * @param wParam
+ * Additional message information. The content of this parameter
+ * depends on the value of the Msg parameter.
+ *
+ * @param lParam
+ * Additional message information. The content of this parameter
+ * depends on the value of the Msg parameter.
+ *
+ * @return The return value is the result of the message processing and depends on
+ * the message.
+ *
+ * If the function fails, the return value is zero. To get extended
+ * error information, call {@link Kernel32#GetLastError}.
+ */
+ LRESULT CallWindowProc(Pointer lpPrevWndFunc, HWND hWnd, int Msg, WPARAM wParam, LPARAM lParam);
+
+ Pointer SetWindowLongPtr(WinDef.HWND hWnd, int nIndex, Callback wndProc);
+
}
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinBase.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinBase.java
index ddd3c2b8c..2b30a6d35 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinBase.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinBase.java
@@ -16,12 +16,12 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
import com.sun.jna.Union;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.ptr.ByteByReference;
import com.sun.jna.win32.StdCallLibrary;
import java.util.Arrays;
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinDef.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinDef.java
index 28e77ee3a..060bebc7c 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinDef.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinDef.java
@@ -16,12 +16,12 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.BaseTSD.LONG_PTR;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.IntegerType;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.BaseTSD.LONG_PTR;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.ptr.ByReference;
import com.sun.jna.win32.StdCallLibrary;
import java.awt.Rectangle;
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinReg.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinReg.java
index 743c8cf83..7f6a0585c 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinReg.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinReg.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.decompiler.flash.gui.jna.platform.win32;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.ptr.ByReference;
import com.sun.jna.win32.StdCallLibrary;
diff --git a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinUser.java b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinUser.java
index 0f0135cf3..24affac7e 100644
--- a/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinUser.java
+++ b/src/com/jpexs/decompiler/flash/gui/jna/platform/win32/WinUser.java
@@ -187,6 +187,8 @@ public interface WinUser extends StdCallLibrary, WinDef {
int WS_EX_LAYERED = 0x80000;
int WS_EX_TRANSPARENT = 32;
+
+ int WS_THICKFRAME = 0x00040000;
int LWA_COLORKEY = 1;
@@ -441,6 +443,20 @@ public interface WinUser extends StdCallLibrary, WinDef {
int WM_SIZE = 0x0005;
int WM_DESTROY = 0x0002;
+
+ int WM_NCCALCSIZE = 0x0083;
+ int WM_NCHITTEST = 0x0084;
+
+ int HTCLIENT = 1;
+ int HTCAPTION = 2;
+ int HTLEFT = 10;
+ int HTRIGHT = 11;
+ int HTTOP = 12;
+ int HTTOPLEFT = 13;
+ int HTTOPRIGHT = 14;
+ int HTBOTTOM = 15;
+ int HTBOTTOMLEFT = 16;
+ int HTBOTTOMRIGHT = 17;
public static final int WM_DEVICECHANGE = 0x0219;
@@ -713,6 +729,10 @@ public interface WinUser extends StdCallLibrary, WinDef {
int RDW_NOFRAME = 0x0800;
+ int SWP_NOSIZE = 0x0001;
+ int SWP_NOMOVE = 0x0002;
+ int SWP_FRAMECHANGED = 0x0020;
+
/**
* The retrieved handle identifies the window of the same type that is
* highest in the Z order.
diff --git a/src/com/jpexs/decompiler/flash/gui/pipes/FirstInstance.java b/src/com/jpexs/decompiler/flash/gui/pipes/FirstInstance.java
index aa32a4321..41dd1f4e6 100644
--- a/src/com/jpexs/decompiler/flash/gui/pipes/FirstInstance.java
+++ b/src/com/jpexs/decompiler/flash/gui/pipes/FirstInstance.java
@@ -20,9 +20,9 @@ import com.jpexs.decompiler.flash.ApplicationInfo;
import com.jpexs.decompiler.flash.gui.Main;
import com.jpexs.decompiler.flash.gui.View;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.Kernel32;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT;
import com.sun.jna.Platform;
import com.sun.jna.platform.win32.WinError;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT;
import java.awt.Window;
import java.io.IOException;
import java.io.ObjectInputStream;
diff --git a/src/com/jpexs/decompiler/flash/gui/pipes/PipeInputStream.java b/src/com/jpexs/decompiler/flash/gui/pipes/PipeInputStream.java
index 3e0b39116..94ccf3fb7 100644
--- a/src/com/jpexs/decompiler/flash/gui/pipes/PipeInputStream.java
+++ b/src/com/jpexs/decompiler/flash/gui/pipes/PipeInputStream.java
@@ -17,8 +17,8 @@
package com.jpexs.decompiler.flash.gui.pipes;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.Kernel32;
-import com.sun.jna.Platform;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
+import com.sun.jna.Platform;
import com.sun.jna.ptr.IntByReference;
import java.io.IOException;
import java.io.InputStream;
diff --git a/src/com/jpexs/decompiler/flash/gui/pipes/PipeOutputStream.java b/src/com/jpexs/decompiler/flash/gui/pipes/PipeOutputStream.java
index e89f58d70..d10b5945a 100644
--- a/src/com/jpexs/decompiler/flash/gui/pipes/PipeOutputStream.java
+++ b/src/com/jpexs/decompiler/flash/gui/pipes/PipeOutputStream.java
@@ -17,8 +17,8 @@
package com.jpexs.decompiler.flash.gui.pipes;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.Kernel32;
-import com.sun.jna.Platform;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
+import com.sun.jna.Platform;
import com.sun.jna.ptr.IntByReference;
import java.io.IOException;
import java.io.OutputStream;
diff --git a/src/com/jpexs/process/win32/Win32Process.java b/src/com/jpexs/process/win32/Win32Process.java
index b4b89ec00..85c183641 100644
--- a/src/com/jpexs/process/win32/Win32Process.java
+++ b/src/com/jpexs/process/win32/Win32Process.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.process.win32;
+import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.DWORD;
import com.jpexs.helpers.ProgressListener;
import com.jpexs.process.Process;
-import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef.DWORD;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.InputStream;
diff --git a/src/com/jpexs/process/win32/Win32ProcessTools.java b/src/com/jpexs/process/win32/Win32ProcessTools.java
index d785ad30b..f97959cb4 100644
--- a/src/com/jpexs/process/win32/Win32ProcessTools.java
+++ b/src/com/jpexs/process/win32/Win32ProcessTools.java
@@ -16,11 +16,6 @@
*/
package com.jpexs.process.win32;
-import com.jpexs.helpers.ProgressListener;
-import com.jpexs.process.ProcessTools;
-import com.sun.jna.Memory;
-import com.sun.jna.NativeLong;
-import com.sun.jna.Pointer;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.Advapi32;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.BITMAP;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.BaseTSD;
@@ -37,6 +32,11 @@ import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinBase;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinDef;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT;
import com.jpexs.decompiler.flash.gui.jna.platform.win32.WinNT.HANDLE;
+import com.jpexs.helpers.ProgressListener;
+import com.jpexs.process.ProcessTools;
+import com.sun.jna.Memory;
+import com.sun.jna.NativeLong;
+import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.NativeLongByReference;
import com.sun.jna.ptr.PointerByReference;