www.brianapps.net - Sizer 4.0 detailed info

Detailed Info

This page contains a bit about the implementation details of Sizer 4.0. It is intended for those who want to know a bit more about what goes on under the hood.

Increased stability

Sizer 4.0 works slightly differently from previous versions of the program. Sizer installs hooks into all running applications and uses them to detect when a window is resized or when a user interacts with the border. In previous versions of Sizer, special handling was performed inside the target application itself (rather than in the Sizer executable). This approach is both efficient and highly flexible. The problem is that hook code is at the mercy of the target application. Incompatibilities occur when the target application uses undocumented Windows API or does not follow standard Windows programming guidelines (which is far more common than one might think). Therefore Sizer 4.0 follows a slightly different approach. The hook portion only ever listens and then forwards important events to the main Sizer executable. Sizer 4.0 severely restricts the processing it performs in the target application and hence minimizes the risk of incompatibilities. The downside is that Sizer no longer is able to do things that were possible in previous versions. This includes:

Compensate for Frame Effects

Sizer includes an option to Compensate for Desktop Window Manager frame effects but what does that mean?

It controls how Sizer figures out how big a window should be. There are two main ways of doing this:

  1. The first way is to use the GetWindowRect API call. This returns the size and position a window occupies on screen. This can be used for all versions of Windows. Up until Windows 10, this was actually what users see as the size of the window on screen.
  2. The second way is to use the Desktop Window Manager. Introduced with Windows Vista, the Desktop Window Manager supports various composition effects like border shadows and transparency. On Windows 10 the window border styling changed slightly and the operating system uses a small area (typically 7 pixels) around the window rectangle for border effects. Therefore on Windows 10, the window rectangle you get from the standard API call is actually a bit larger than what you actually see.

This option therefore controls which approach is used. It basically says do you want to you the actual window rectangle (option disabled) or do you want to use what is visible (option enabled). Things to Note:.