File: /~heha/hs/[Download]

These programs help to increase user friendliness of Windows NT (NT4, W2K, XP).
Most but not all of them run under Win 9x/Me too but consume a little bit more
system resources than similar named 16 bit versions in archive

Assigns the right Windows Logo key with AltGr.
Important for those switching keyboards often while roaming between different
computers. Especially for German who often hit backslash (\) instead of sharp s
(ß). The new position of the AltGr key of newer keyboards is more convenient
for your hands, but its movement induce typing errors. And why you have a right
Windows Logo key? (However, if you hit this key without any other, it will work
still as Windows Logo key.)
Hint: This DLL will not work for DOS boxes! You still need ALTGR95.COM from
T_UND_M.ZIP archive.

"Magnetic Windows" let Windows snap to parent and sibling windows:
Like built in into WinAmp or KDE, it should be possible to have that feature
for all windows you can move or resize. This DLL soes this task via a CBT
(computer based training) hook for minimal resource consumption.
The disadvantage is the missing feedback while movement, a moved or sized
window will snap only at mouse button release (or at end of move/release
by keyboard). Therefore, snap width defaults to a relatively small value
of 6 pixels.
You can suppress snapping by holding the CTRL key while moving or sizing.
Configuration: in your WIN.INI, section: [Windows] (the first section), key:
snap (you can add a line somewhere below [Windows]), defaults to =6.

If you need assignment of middle mouse button with double click and nothing
else, this program is right and sufficient.
After you load this DLL, all programs will get a doublecklick message, no more
messages for middle mouse button anymore.
Some mouse drivers have such a feature built-in, but often they allocate a
position in system tray and are too big and clumsy at all.

When scrolling using mouse by holding the scroll bar thumb, you have to hold
the mouse coursor in a certain area around the thumb - otherwise, the scroll
bar jumps back to its previous position. This behaviour is often annoying,
especially when scrolling very long text (without wheel) or horizontally
(like the always-too-long error messages in Visual C).
A loaded ROLLFA32.DLL expands this area to whole screen. (Microsoft should
give a system control setting for this, at "screen properties" or "mouse
Hint: ROLLFANG works for "true" Windows scroll bars only!
Internet Explorer version 4 and above draws it own scroll bars.
(Ah! This is what Microsoft thinks about code sharing...)

Although you can set the keyboard repeat rate in system control, often
you need a high rate only for cursor keys. WARPCU32.DLL does that, no more.
Conceding that is not a very useful program, that's my first in Visual C
and very small (= 4096 Byte .DLL) due to heavy use of #pragma lines.

The mouse wheel is generally useless in older Windows programs.
With WHEEL32.DLL you can convert these messages to scroll messages (as you often
want) - in opposite to the 16 bit version TYPHOON.DLL, there is a window class
name based assignment whether convert in a window or not for more stability.
 To switch wheel message conversion on or off, you have to point the mouse over
 the window you desire and move the wheel five times up and down one step,
 gentle sounding glig-glag-glig-glag-glig.
 After that, WHEEL32 will give you a system beep to acknowledge the switch
 change, by sounding like OK boxes when switching ON and like FatalAppExit
 boxes when switching OFF, and will save the setting in your WIN.INI.
 (You must have system sounds activated, or you hear nothing at all.)
 [This kind of activation is by far more convenient than having to fill-out
  some fields in a dialog for which application conversion should be done
  like in the Microsoft Systems Journal (MSJ) demo where the idea is come from
  at "".]
When used with (newer) programs that will resize an image or so, you can
relatively fast switch between normal (resizing) and converted (scrolling)
operation. Note that you can scroll page-wise when you point into the vertical
scroll bar, and scroll horizontally when you point into the horizontal one.
Changing of line-wide scroll width must be done manually by editing WIN.INI.
ATTENTION - This DLL will exceptionally not run under Windows 9x/Me!

How to use and load:
32 bit DLLs with system wide hooks must be "injected" in every graphical Win32
application. Furthermore, an initial .EXE (here: LLIB.EXE) is necessary to load
the DLLs. To have the ability to remove the hooks safely, code is implemented
into all DLLs to remove the hook when initial .EXE terminates. Therefore,
LLIB.EXE "runs" continuously not eating up any window nor CPU power.
You can discard it with all DLLs it loaded by pressing Ctrl+Alt+Del and killing
the LLIB.EXE process.
You load the desired DLLs like shown in the STARTALL.BAT, or simply run that
batch file.

Source code:
These programs are somewhat special because they need a shared data segment,
at least for the hook handle. Because Delphi doesn't supports such segments
and produces too large output files stuffed with too much Borland code at all,
I used Turbo Assembler to create the DLLs. VC5+ was too weird to me.
Such hooking code consumes RAM in following extent:  at least
4K (for code) + 4K (for shared data) + 4K * (number of GUI processes).

Somewhat later ... I'm able to use VC6, and I discovered that a good C program
must contain a lot of #pragma directives to get a small and working .EXE/.DLL.
Detected encoding: ANSI (CP1252)4
Wrong umlauts? - Assume file is ANSI (CP1252) encoded