*=========================================================================*
*                        ALTDRAG for NT4 to Win10                         *
*   Modified by Raymond Gillibert from original source by Stefan Sundin   *
*                      release 1.39 (March 8, 2021)                       *
*-------------------------------------------------------------------------*
* Download MEGA: https://mega.nz/folder/mW5ExCCT#gI8DQICICk-y4FIjxaqtGg   *
* Download GitHub: https://github.com/RamonUnch/AltDrag/releases/         *
* Original Stefan Sundin: https://stefansundin.github.io/altdrag/         *
*=========================================================================*

== INTRODUCTION ==
AltDrag gives you the ability to move and resize your windows in a new way.
When AltDrag is running, you can simply hold down the Alt key and then click
and drag any window.

This behavior already exists in Linux and other operating systems,
and AltDrag was made with the mission to copy that behavior to the
Windows platform.
___________
MOVE WINDOW
You can Move a Window by pressing Alt and using (by default) the left mouse
button. If you double-click it will maximize/restore the window, and if you
hold Shift while double-clicking, it will roll/unroll the window on its
title bar.
_____________
RESIZE WINDOW
You can use (by default) the right mouse button to resize windows.
Imagine the window divided into nine squares, and you will resize the
corner nearest to where you press. The corners are slightly bigger
than the middle regions by default (adjust using AltDara.ini).
 ____________________________________________
/ @ Title bar   |            |         _ O X \
|===============+============+===============|
|    top        |    top     |        top    |
|    left       |            |      right    |
|---------------+------------+---------------|
|               |            |               |
|    left       |   center   |      right    |
|               |            |               |
|---------------+------------+---------------|
|               |            |               |
|    bottom     |            |     bottom    |
|    left       |   bottom   |      right    |
|_______________|____________|_______________|

If you double-click (double right click) these regions, the window will be
moved to the respective corner on your screen (like Aero Snap), so you can
quickly arrange your windows to fit on the screen. If you press Shift in
addition, the respective window side will be extended to the monitor side.
Finally if you press Ctrl and double-click on the center region it will
maximize/restore the window.
The center region can be configured to behave differently (see options).
_____________
OTHER ACTIONS
AltDrag can be configured quite finely You can set any button to perform
any action among a list: Move, Resize, Close, Minimize, Maximize, Lower,
AlwaysOnTop, Borderless, Center, Roll and Nothing.

By default the middle mouse button is configured for the Maximize action,
that maximizes/restores the window. Press Shift to minimize.
____________________________
TRICKS YOU SHOULD KNOW ABOUT
* AltDrag will not bring windows to front by default. Press Ctrl to bring the
  window to front, or configure AltDrag to do that automatically.
* AltDrag will mimic Aero Snap by default, so try dragging windows to the
  edges of your monitor. Corners work too!
* If you use multiple monitors, you can hold Ctrl or Shift while dragging to
  trap the window within the current monitor. This is particularly useful if
  you want to Aero Snap at edges between monitors.
* While dragging, windows borders will snap to each-other. This behavior can
  be changed in the config. If you disable it you can still press Shift while
  dragging to force windows borders to snap to each other.
* If you have automatic snapping enabled, you can temporarily disable it by
  pressing the space bar while dragging.
* If you are moving a window you can press the right mouse button to toggle
  the maximized state.
* If you use the scroll wheel to change the volume, you can hold shift to
  increase the rate the volume is changed. If you use the scroll wheel to
  change the transparency, you can hold shift to decrease the rate the
  transparency is changed.
* If you have Scroll inactive windows enabled, you can hold the Shift key to
  scroll horizontally. Note that this relies on that the program has support
  for normal horizontal mouse wheel scrolling, which not all programs have.
* If you can't move a particular window, try elevating AltDrag.
  Normal programs can't interact with programs that are started with
  administrator privileges.
* Try to add the Shift modifier key for any action, usually it has an effect.
_____________
CONFIGURATION
To change the configuration from default, double-click on the tray icon, and
you will be presented with a lot of choices.

If you want to go further into the configuration, open the AltDrag.ini file
by middle-clicking on the tray icon. You will see all the option there with
a short description.
_________
LANGUAGES
AltDrag is fully translated in French, Italian and mostly translated in many
other languages. All translations are simple ini files encoded in UTF-16 LE.
If you want to create or improve a translation, just add or modify the
associated ini file in the Lang directory, and no not forget to send it to
me via a GitHub pull request/issue or PM me, so that everyone can enjoy your
translation. You can use "Lang\_en_US baseline.txt" as a starting point if
you want to translate everything to a new language.
______
UPDATE
To avoid useless bloat and potential vulnerability AltDrag no longer
auto-updates. You can check for new versions on the GitHub page
If you want automation, install altdrag via the chocolatey package.
-install with> choco install altdrag
-update with> choco update altdrag
-uninstall with > choco uninstall altdrag
Note that the chocolatey package may take a few weeks before getting updated.
_________
BLACKLIST
Sometime an AltDrag action interacts with a window you do not want.
For example if you use Alt+Click on a specific window and you do not want
AltDrag to move the window you can add the window name to the windows
blacklist. more details below:
All the list are coma separated and take no spaces after or before the coma.
A space can be present in the item itself.

- Process blacklist: List of programs names for which move/resize from
  AltDrag as well as the scroll actions are disabled. Example: Notepad.exe
- Windows blacklist: List of windows with the title|class format for which
  move/resize actions from AltDrag will be disabled
  Example: Program Manager|Progman,|Shell_TrayWnd,*|Notepad
- Windos that should ignore the scroll action: List of windows with the
  title|class format that for which the scroll action of AltDrag will not
  apply. Example: *|Photoshop
- MDIs not to be treated as such: List of windows for which AltDrag will not
  try to find MDI subwindow. This only applies if the Support MDI is enabled
  and by default contains *|PPTFrameClass,*|MMCMainFrame which correspond to
  the PowerPoint window and all the Microsoft Management application such as
  the services.msc windows or the device drivers window.
- Process not to be paused: Only applies for the Pause action when enabled on
  Alt+Shift+Pause, this are program names.

Program names are pretty straightforward to find. However a finer control can
be done using the window's title|class information; they can be found for a
specific window using the small target in the identify window section of the
Blacklist tab. You can include all the possible names by using the *|class
format. This is useful for most programs that have a non-constant title, for
example notepad's title is actually the name of the file you are currently
editing.
The other way around can be used and you can specify title|* which means that
all the windows that have this title regardless of their class name will be
blacklisted. This is a much less common usage.

The title can also be empty for example: |Shell_TrayWnd corresponds to the
Windows task bar and has an empty title, just a class name.

Finally more blacklists can be found in the AltDrag.ini file:
- Snaplist: List of windows with the name|clas format to which other windows
  should snap. By default windows that have no borders cannot be snapped to.
- MMBLower: List of windows that should not be lowered with mouse middle
  click on the title bar. Default: *|CASCADIA_HOSTING_WINDOW_CLASS that
  corresponds to the Windows Terminal window.

===========================================================================
== USAGE ==
Extract to any folder, and double click on AltDrag.exe
Enjoy dragging windows...

You will see a new Icon in the tray
- Right click on the Tray Icon to see the option menu
- Left click on the Tray Icon to enable/disable
- Go to the "Configure" menu entry for basic options
- Middle click on the Tray Icon to open config file AltDrag.ini (advanced)
- You can hide the icon if you want. To show it again relunch AltDrag.exe

More at: https://stefansundin.github.io/altdrag/doc/usage.html
Note that this version has some more feature..

===========================================================================
== CHANGELOG ==

== AltDrag 1.39 ==

* New the LowerWithMMB option can now be set to 2 and you will need Alt to
  be pressed to lower the windows with middle click on title bar.

* New: An 'Enable on full screen windows' option was added in the advanced
  tab of AltDrag default is on like previous versions. A fullscreen window
  is a windows that fits ecactly into the monitor and has no title bar.

* New/fix: A Killkey list was added in the [Input] section of AltDragh.ini. 
  It contains a list of key that will Disable altdrag when pressed down.
  Default value is 09 for the TAB key. This fixes a bug with DisplayFusion's
  Alt+Tab feature (Thanks *Daniele-f*)

* Fix: Made ESC key a bit more aggressive in disabling AltDrag.

* Minor refactoring and code cleanup, towards a more generic key mapping.

* Fixed French translation thanks *TroudhuK* and his very funny name...

== AltDrag 1.38 ==

+ GUI changed: Mouse and Keyboard are now separated tabs and contain more
  options. All the new options should be available. Have a look!
  Translation is supported but not updated outside of FR and IT.

+ New: You can now invert the behavior of the shift key for double-right-
  click action (Resize) that aerosnaps or extends windows borders to monitor
  depending on the state of the Shift key. See the advanced tab.

+ New: You can now set the Hotclicks variable in the [Input] section of the
  ini file to add the mouse buttons as hotkeys (hence the Hotclick name).
  In the case the mouse button is also mapped to an action, the action will
  be performed on a single click. For example you can set MB4=Move,
  MB5=Resize and Hotclicks=80 81 and the mouse 4/5 button will respectively
  Move/Resize the window without needing to press any other button or key.
  In all cases this click will not be usable for anything else than AltDrag.
  Action suggested by *displayerror*.

+ New Hotkey combo is now available. Set KeyCombo=1 in the [Input] section
  of AltDrag.ini and you will need to press two of the hotkeys in order to
  activate AltDrag. This was suggested by *MarqueIV*.

+ New: The keyboard can now be used to activate AltDrag without clicking.
  For example set GrabWithAlt=Move in the [Input] section of AltDrag.ini.
  Press Alt and the pointed window will directly be moved wen moving the
  mouse without requiring a click. You can set any other action. I advise
  to use a hotkey combo for this feature or to use a very useless key on
  your keyboard. Action suggested by *pixelbase*.

+ New: A key can be set to toggle between move and resize action. it can be
  used in order to have a single click configuration that will turn into the
  other action when pressing this key. This later can be set with the
  ToggleRsMvKey in the [Input] section of AltDrag.ini. You can set it to A2
  for example and have Ctrl+Alt+LClic => Resize instead of Move. Leave it
  empty if you do not want this feature. Only one key can be specified.
  It can also be combined with a hotkey. You could for example use Alt+LClick
  to move and Win+LClick to resize with a single instance of AltDrag.

+ New: The Ctrl key can be presses and released when a hotkey is on in order
  to prevent AltDrag from grabbing a window.
  Exemple: Alt+Clicl => Move window with AltDrag. Alt+Ctrl_down+Ctrl_up+Click
  Will be like a Simple Alt+Click without AltDrag running.

- Removed PearceDBClick option that was buggy and is now mostly unnecessary.

* Fixed: Now the doubleclick actions will check that the same button/key
  was used for both clicks.

* Fixed: Ctrl delay problem. Now Alt+Ctrl should not need to wait for the
  keyboard auto-repeat delay. It was a stupid bug sorry for that...

* Fixed potential bug in the hook chain.

* Changed the cursor window no longer capture the input as it should not
  be necessary and may lead to some bugs. The cursor code was also made a
  bit more conservative.

== AltDrag 1.37 ==

+ GUI New: now the Identify window option will show the program image name.

+ GUI Fixed: re-introduction of the Advanced tab in the options with more
  options that previously required direct ini file edition. This should be
  helpful for all users. It is not yet translated though.

* Fixed: Now moveable full screen windows should be restored to full screen
  when changing monitor. This was not working properly in 1.36. Note that
  many full screen windows are really not moveable anyway.
  Under Windows 10 the file explorer will behave correctly, not Firefox.

* Fixed: the Scroll list was added in the [Blacklist] section of AltDrag.ini
  in order to disable the scroll action for any window. In addition the
  Processes blacklist will apply to scroll action as well.

* Fixed bug when the origin monitor was a NULL pointer in some cases under
  older windows versions.

* Fixed ini file: the proper name of the two settings about max aero speed
  are AeroMaxSpeed and AeroSpeedInt.

* Fixed: manifest file now fallback to per monitor dpi awareness version 1
  if version 2 is not available ie. Win 8.1 and Win10 before build 1703.

* More code cleanup, some code was moved to functions and potential NULL
  pointer dereferencing were fixed.

* GUI Fixed: Now the Snaplist has to be edited with the ini file and the
  Scroll blacklist is visible instead (much more useful). Snapplist is
  a quite advanced detail anyway.

== AltDrag 1.36 ==

+ Added MMMaximize option in the [General] section of altdrag.ini in order to
  restore old AltDrag behavior (thanks brian6932):
  Set to 1 to maximize/restore on left+right click (default).
  Set to 2 to restore on a single left click instead of a drag.
  Set to 3 for both (like the original AltDrag).
  Set to 0 to disable any of those.

+ Now the AeroMaxSpeed value can be set to put a speed limit beyond which the
  moved window will not be Aero-Snapped. This is useful to move windows
  between monitors without "flicker". You have to set AeroMaxSpeed and
  AeroSpeedInt in the [Advanced] section of AltDrag.ini.
  AeroMaxSpeed is in pixels/X frames (from 1-65535)
  AeroSpeedInt to specifies the number of frames (default 1) from 1-255.
  To set this value: (i) See the frequency of your mouse and set an
  AeroSpeedInt to average over 10ms or so, so if you have a 1kHz mouse,
  set it to 8-10, if you have a ~100Hz mouse (typical) keep it to 1 or 2.
  (ii) Set AeroMaxSpeed to a "high" value (like 50) and try to move fast
  a window between two monitors, if it get aero-snapped, decrease the value
  until it "just" no longer snaps. (iii) Check that the window does snap
  when you want it to sap, if the window tends to restore when you do not
  want, increase the AeroMaxSpeed value.

+ Roll/Unroll action was added: It collapses the window in its title bar.
  It can also be used with the move action (Alt+Shift+DoubleLeftClick).
  You can also set RollWithTBScroll=1 in the [Input] section of your ini file
  to enable Alt+Wheel to roll/unroll window when pointing to their title bar.
  If not pointing to the title bar the normal Scroll action will be performed.
  If Ctrl is pressed the normal Scroll action will always be performed

+ New: Now when using Alt+Shift+DoubleRightClick, the window will be extended
  to the corner/border of the monitor according to which area of the window
  was double clicked. Alt+DoubleRightClick works as before and Aero-snaps
  the window to the monitor sides/corners. Finally to Maximize a window you
  can use Alt+Ctrl+DBLeftClick on the center portion of the window (this is
  useful if you use a single button config with resize center set to "move".

+ New: Now the AlphaDelta and AlphaDeltaShift value can be set into the
  [Advanced] section of AltDrag.ini to tune from -128 to +127 the step at
  which the transparency is changed when using the Transparency Action.
  Default is 64 and 8 with the Shift modifier. You can put negative values
  if you want to invert wheel Up/Down direction.

* Fixed/New: When Aero-snapping with AltDrag, the window can be restored
  via the title bar like normal. This is enabled if NormRestore=1 in the
  [General] section of AltDrag.ini.

* Fixed/New: Now a full screen window will be resized to full screen when
  moving it to a different monitor. If you want you can set ResizeAll=3
  to force move/resize of all full screen window. Keep in mind that some
  full screen windows are really not resizable (eg Firefox and Edge).

* Fixed: Now if MinAlpha is set to 0, it will be clamped back to 1, because
  setting to zero the alpha of a window disables any interaction with it.
  Everyone should also add ",Program Manager|Progman" to their windows
  blacklist (without the quotes).

* New: Improved the AltDrag.txt file, read it for some basic documentation.

* Fixed: cleaned up some code and corrected potential bugs, moved some more
  code into functions.

* Fixed: Now the AutoRemaximize option should always work.

== AltDrag 1.35 ==

* Changed: to simplify the code and avoid bugs, the Ctrl is no longer
  suggested as a hotkey and if using it (using the ini file) other Ctrl
  functions will be unavailable (it was buggy in the first place anyway).

* Fixed a typo in the Alt+Tab scroll actions that lead to some bugs.

* Fixed: Ctrl in some cases does not work properly to retain window
  in current monitor and would be stuck sometime (thanks redactedscribe).
  To avoid those problems that are specific to Ctrl, the Shift key can now
  be used to restrict cursor to current monitor when dragging a window.

* Fixed: When adding a monitor, AltDrag needed a restart for Aero Snapping
  to work properly, this is no longer the case.

* Fixed .manifest file so that proper windows version can be obtained.

* GUI fixed: Now under Windows 10, the 'scroll inactive window' option will
  be grayed out unless it is activated, so that users do not enable it by
  mistake and to make it clear that it is useless for Win10.

* GUI Fixed: Now if desktop composition is enabled, it will no longer be
  possible to disable the Drag Full Window option (GDI Performances problem).

== AltDrag 1.34 ==

+ Added MMBLower in the [Blacklists] section of AltDrag.ini in order to
  disable the "Lower windows by middle clicking on the title bar" option
  for any window. use the name|class format.
  Example: MMBLower=*|CASCADIA_HOSTING_WINDOW_CLASS
  if you want to close tabs with middle click on Windows Terminal.

* Fixed: now the Lower action will deselect the lowered window if possible
  so that it can be reselected easily (thanks redactedscribe).

* Fixed: Now when a windows is snapped normally under windows,
  it will be restored properly if AltDragging it out. If a window is
  snapped with AltDrag, however it can only be restored with AltDrag.

* Fixed: Scroll Action was restored to the 1.29 version behavior (kimks3).

== AltDrag 1.33 ==

+ Added a MinAlpha option in the [Advanded] section of AltDrag.ini, in order
  to adjust from 0 to 255 the minimum opacity of a windows (default is 8).

* Fixed AltDrag freezing when changing DPI scaling or going to sleep mode.

* Fixed Stupid bug that would restart AltDrag wen moving windows between
  monitors with different DPI scaling.

* Improved English on the snapping windows option (thanks redactedscribe).

* Now settings should be kept when updating AltDrag (thanks FSund).

== AltDrag 1.32 ==

+ Added the PearceDBClick option in [Advanced] section of Altdrag.ini.
  Use 1 to disable the maximize on Alt+double-cklick. It only applies to
  the Move action for now, maybe more will come if needed.

+ Added the UseCursor option in the [Advanced] section of AltDrag.ini
  Use 0 to disable any cursor handeling (not recomended).
  Use 1 to enable all cursors changes (default).
  Use 2 to disable only the Hand cursor when dragging a window (icyhoty2k).
  Use 3 to always use the default cursor, even when resizing.
  Note that none of those settings is expected to affect performances in
  any significant way.

+ Now when pressing the SHIFT key while using doubleclick snapping on the
  center-top section of the window, this later will be maximized/restored,
  instead of being snapped to the top. This will be usefull when using
  the Move instead of resize-center option.

* Lower with Middle mouse button option will no longer ignore the window
  blacklist, this will avoid interactions with taskbar.

* Fixed Scroll inactive windows, hopefully for real this time.

* Avoid some more loockup in the case of very unresponsive windows by using
  PostMessage instead of SendMessage, when applicable.

* Fixed: Now doubleclick snapping will respect Aero(H/V)offset settings.

* Fixed some more minor drawing problems when using FullWin=0

== AltDrag 1.31 ==

+ Added option to replace the resize center mode with Move mode.
  GUI was adjusted accordingly

* Improved the non full windows dragging mode, it will no longer move the
  window when it snaps but only the transparent square and the window will
  be moved when click is released as expected.

* Simplified window database and removed useless code.

* Fixed slightly too large window when resizing from a maximized window
  inside an MDI.

* Fixed some annoying behavior in the in case of unresponsive windows.

== AltDrag 1.30 ==

+ Re-introduced the Aero snap at top to maximize a window. this behavior can
  be disabled with the AeroTopMaximizes option in the [Advanced] section of
  AltDrag.ini. The Shift key will also invert the behavior.

+ Now when auto re-maximize option is on, the re-maximizing can be prevented
  by pressing the shift key before releasing the mouse.

* Fixed overcompensation of Win10 invisible borders in center mode in the
  case of double click Aero-snapping.

* Fixed horizontal double-click Aero-snapping maximization in the case of
  MDI windows.

* Fixed: Now the Volume action is not limited to Vista and later. This later
  will use the WINMM API on NT4/2000/XP to change the waveOut volume.

* Fixed the Scroll inactive windows option, that would prevent scrolling
  in all metro apps under Win 10. Note that I advise against using this
  option anyway because Win 10 does it already natively by default.

* Now "Start|Windows.UI.Core.CoreWindow" is in the default blacklist.
  This will avoid AltDrag interactions with Win10's Start menu.

== AltDrag 1.29 ==

+ Added Maximize scroll action that behaves as expected: wheel up maximize
  the pointed window, wheel down restore a maximized window and minimize to
  taskbar a normal window. This action was proposed by bluebird11.

+ Now when Aero-snapping with double right-click, the window will be resized
  to full monitor width when double-clicking on the center of the window
  while pressing the shift key.

* The cursor is now properly limited to MDI client area when using Ctrl.

* Cleaned up some code by removing useless global variables.

* Lower action will no longer ignore the AutoFocus config flag.

* Minor refactoring, moved some code toward function and fixed some gcc's
  -Wsign-compare warnings.

* Fixed: Sometime when pressing escape while resizing, it would prevent
  further window move/resize.

* Rewrote the auto remaximize procedure. It is now much simpler and handier
  in my opinion. The window is now remaximized when released on the current
  monitor, if it was maximized when move started AND was dragged to an other
  monitor. There is no more 1s delay option...
  Note this procedure was not working properly on previous releases.

* Fixed: Position of the mouse cursor relative to the restored windows
  should be always correct now, this was a stupid bug I introduced...

* Fixed: Desktop window is now properly ignored.

* Fixed: When using Ctrl, the cursor will be properly restricted to the
  current monitor.

* Removed unused variables and cleaned up some code.

* Remove hard dependency to ole32.dll, it will be loaded only when using
  the Volume action.

== AltDrag 1.28 ==

+ Added hardening flags for gcc.

+ Added a RefreshRate in the [Performance] section of AltDrag.ini that
  allows you to set a minimum time in milliseconds between two Windows
  Redraw when FullWin=1, I recommend a value that corresponds to the
  refresh rate of your monitor ie: 60Hz => RefreshRate=16.

+ Added Maximize action, it can be used to toggle the maximized state,
  combine with Shift to minimize. (Thanks to Jim Teunis for suggestion).

+ Added the CenterFraction in the [General] section of AltDrag.ini to adjust
  The size of the region in percent that is used for the center resizing
  mode. Default is 24% meaning 38% for the sides. You can, for example set
  it to 0 to enable a 4 regions mode instead or the 9 default regions.
  You can also set CenterFraction=100 and combine with the ResizeCenter=0
  option in order to have a pure bottom right mode.

+ Added AeroThreshold option in the [Advanced] options. Default value is 5.
  It corresponds to the threshold distance in pixels at which a window will
  be snapped automatically to the monitor (aero style). If you do not like
  windows snapping for a fraction of second when changing monitors, try to
  set this value to only 2, in such a case it will be necessary to use Ctrl
  to snap windows between monitors. On the other hand if you want you can
  increase this value and this will make snapping between monitors easier
  without Ctrl key...

* Removed dependency to Advapi32.dll from hooks.dll (it was unnecessary).

* Fixed: An Aero-snapped window will now require mouse movement before
  moving, instead of a simple Alt+Click.

* Fixed when a window is in full screen you will actually need to move the
  mouse in order to resize it.

* Fixed a remaining Win 10 invisible borders bug that would shrink slightly
  a window when resizing it from a full screen state.

* Fixed application hang when changing DPI scaling under Win10. Note that
  for the moment the solution is to restart AltDrag when receiving the
  WM_DPICHANGED message, I hope to have better solution in the future.

* Fixed bug in Transparency action where the windows transparency could no
  longer be modified in some cases.

* Misc. cleanup and code refactoring here and there + Fixed all warnings.
  using gcc -Wall parameter.

* Minor GUI improvement for WinNT4 and Win2000.


== AltDrag 1.27 ==

+ Added Elevate option to the tray menu as suggested by Loxaan Oxyde.

+ Added Pause Process option, use Alt+Shift+Pause to pause the process
  of the windows under your cursor, press Alt+Pause to Resume.
  The Option AgressivePause must be set to 1 in [Input] config.
  Use the associated Pause blacklist. This function needs XP or later.
  Note 1: This is a very aggressive option use with caution.
  Note 2: The windows of the paused process will no longer be drawn leading
  to screen tearing on the windows itself.
  Note 3: If you use WIN as a hotkey, then you can still obtain the
  WIN+PAUSE System Properties by pointing first the cursor to the taskbar.

+ Now when using Aero Snap, and resizing towards the top, the windows will
  be maximized vertically when the cursor will touch the top of the screen.
  Same behavior for the left. This behavior is ONLY for the top and left
  when using respectively the pure top and pure left resize modes.

* Actually fixed DPI scaling under Win10 with the .manifest I made a typo
  in the first place and never fixed it, because I was not using DPI scaling
  and I thought I was...

* Fixed the toggle borderless action under Windows 10, the window would
  not be properly refreshed because of buggy DWM.

* Fixed: Now the Transparency action will not ignore blacklists.

* Improved translation handling, now all translations are ini files in the
  "Lang" subdirectory of AltDrag. This will simplify addition of new
  Locals, this also allow anyone with notepad to fix his own language.
  Finally you can remove languages that you donot need and if you want only
  english you can remove the whole "Lang" directory.

* Updated zh_CN.ini (Chinese) with Zepp Lu's corrections

* More French and Italian corrections.

== AltDrag 1.25 ==

* Fixed Memory leaks.

== AltDrag 1.24 ==

* Fixed crash in the config dialog.

* Fixed: Some windows such as mplayer's windows can now be resized again.

* Fixed translations in French and Italian in particular.

* Fixed Incorrect snapping of windows in an MDI under Windows 10.

* Fixed: Now on a blacklist, an empty title will be considered as a really
  empty title instead of 'any' title. You should use '*|class' to include
  all windows from a given class instead of just |class. This gives a more
  fine control over blacklist to the user.

* Fixed minor drawing problems when using FullWin=0

== AltDrag 1.23 ==

+ Add option to disable resizing windows that are not resizable
  ie: No WS_THICKFRAME. Default is to resize everything.

* Fixed: Now config dialog can be used on NT4.

* Fixed: Now AeroSnap takes into account the taskbar on NT4.

* Fixed: Now when a window is not responding, move/resize will be disabled.

* Some optimizations were done.

* Fixed: Windows will be moved/resized in an independent thread avoiding any
  mouse delay/lockup when a window is very unresponsive. This is helpful for
  Slow video drivers on Win8/10, and for web browsers windows.

== AltDrag 1.22 ==

+ Added options to choose the Aero Snap ratio. You can now chose the position
  in percentage of screen size, where the AeroSnap corners will meet.
  Default is 50%:50% ie:
  AeroHoffset=50 ; Horizontal from left
  AeroVoffset=50 ; Vertical from top
  You could set for example AeroHoffset to 33, this mean that a windows
  snapped to the left will use only 33% of the screen and a window snapped
  to the right will use 67%. The same logic applies to AeroVoffset for the
  vertical direction. This will be appreciated by the widescreen users.

+ Added toggle window title bar and border on/off Action (Igor Bochkariov)
  I used a different implementation though. If you want to just disable the
  titlebar and keep borders, press shift.

* Fixed Transparency action. Now when setting back the windows to an opaque
  state, the WS_EX_LAYERED attribute is removed as it should be. This will
  avoid useless performance issues when using this feature

* Fixed: Now under Windows 10, the DWM API will be used when available to
  obtain correct window rectangle and avoid gaps between snapping windows

* Fixed: now full screen windows that have a system menu will not be
  automatically blacklisted.

* Now a full screen window will not be restored unless the mouse is moved
  instead of a simple Alt+click as before. It was an annoying behavior.

* Double click will maximize a normal window and restore a maximized window.

== AltDrag 1.20 ==

+ Ability to drag only a square instead of the full windows (better perf.)
+ Added an option to replace center resizing mode by bottom-right mode.
+ Added MDIs blacklist: Windows for which MDI behavior will be disabled.

- No more HookWindows as (unstable and mixing 64 and 32 bit code)
- No more FocusOnTyping (too buggy).
- No more auto updates and internet connectivity.

* Fixed cursor performances problems, before the cursor windows used alpha
  blending which is very slow. I just told the windows to do nothing when
  it receive the WM_PAINT or WM_ERASEBKGND messages and that's it, this also
  means proper display for all windows versions instead of being limited to
  Windows 2000+

* Now compatible with Windows NT4 sp3+
* Removed dependencies to shlwapi.dll
* Removed dependency to WININET.DLL
* Dynamically import PSAPI.DLL in case it is missing (it is not much used)

* Fixed: Cursor windows now captures the mouse input (prevents some bugs).
* Fixed completely opaque blacklist reading procedure, it will be trivial to
  add or remove blacklists from now.
* Fixed some drawing problems (not all).

* Fixed .manifest information for high dpi awareness.
* Refactoring by putting some code into functions
* Use GetPrivateProfileInt instead of the 'String version for all int values.
* Avoid floating point arithmetic. Only integer math are used.
* Add -nostdlib flag to gcc to avoid useless bloat to the dll and exe.
* Avoid GUI locking when windows is very slow to resize (with FullWin=0 only)

===========================================================================
== OS Requirement ==
AltDrag should work on NT4sp3+/2000/XP/2003/Vista/7/8/10.

This program needs at least Windows NT4 service pack 3 or later.
This is because it relies on the 'LowLevel Keyboard/Mouse Proc' functions
that is only supported by the NT based Windows and from NT4 sp3. You will
note that the program also depends on 'SendInput()' that appeared at the
same time. This later dependency is not necessary but is convenient.

== END OF FILE ==
