New Win32 Active Setup emulator

common/src/win32/W32ActiveSetup.cc
common/include/win32/W32ActiveSetup.hh

- New module for emulating Microsoft's undocumented Active Setup.
New Win32 post-install autorun changer

common/src/win32/ChangeAutorun.c

- Standalone program that Active Setup can use to change a user's
autorun settings.

The installer can set an Active Setup key to run this program. This way
when each user logs on their autorun settings can be added or updated
or unmodified according to the settings chosen during install.

Currently the installer can only change the autorun settings for the
user running the installer. Using the Active Setup method
ChangeAutorun.exe can be run automatically and quietly by Windows
during each user's first logon after Workrave install.

For example the installer could offer an option to start Workrave
automatically for all users, or new users only.



Here is the output of ChangeAutorun /?


This is a configuration tool added by this project's installer.
This program is invoked by Microsoft's undocumented Active Setup.
If you do not understand what this program does don't use it.

ACTIVE_SETUP_GUID: {180B0AC5-6FDA-438B-9466-C9894322B6BA}
AUTORUN_VALUE: Workrave
PROJECT: Workrave
HKCU_PROJECT_KEY: AppEvents\Schemes\Apps\Workrave
TARGET: workrave.exe
TARGET_OPTIONS:

Options:
-a      Add autorun always.
-b      Add autorun only if user has never before used your project.
-d      Remove the autorun entry.
-r      Remove the Active Setup entry.
-u      Update existing autorun entry.
-v      Be verbose. If multiple arguments this must be the first.
-z      Show each passed in argument for testing purposes.

The 'Add autorun' options are mutually exclusive. Using either
implies option 'u', which updates an existing autorun entry, if any.

Option 'r' removes the HKCU Active Setup entry, if any, and not the
HKLM Active Setup entry. What that means is Active Setup will be
reset for the user, and will run the next time the user logs on.
Move W32ActiveSetup files from common to backend

backend/src/win32/W32ActiveSetup.cc
backend/src/win32/W32ActiveSetup.hh
frontend/gtkmm/win32/setup/src/ChangeAutorun.c

Move W32ActiveSetup files to the win32 backend directory
Move ChangeAutorun file to the win32 installer directory
Add W32ActiveSetup files to CMakeLists

build/cmake/backend/CMakeLists.txt
build/cmake/frontend/CMakeLists.txt

cmake backend config:
Add W32ActiveSetup source and header files located in backend/src/win32/

cmake frontend config:
Add backend/src/win32 to the list of WIN32 frontend include directories
Finish W32ActiveSetup code

backend/src/win32/W32ActiveSetup.cc
backend/src/win32/W32ActiveSetup.hh
frontend/gtkmm/src/main.cc

- (W32ActiveSetup::update)
Move CreateProcess() call to W32ActiveSetup::create_process().
Create a thread to run W32ActiveSetup::create_process().

- (W32ActiveSetup::create_process)
Temporarily disable WOW64 file redirection before calling
CreateProcess().


main.cc:
- (run)
Add the Active Setup check for Win32 users. Add as early in the code as
possible.
Merge pull request #21 from jay/activesetup

Active Setup emulator and ChangeAutorun utility
Add win32 historystats location to workrave-dump

contrib/plot/workrave-dump

- If MSWin32 then load the historystats file from its default location
in Windows. This does not cover 'cygwin' or 'msys'; they must be
separately addressed if needed.

Prior to this change the unix location was used for all platforms.
Update copyright year in cmake resource

build/cmake/workrave.rc.cmake

- Extend copyright to 2012
Change harpoonHelper project to use static CRT

common/win32/buildone.cmd
common/win32/harpoonHelper/src/harpoonHelper.vcproj

- (buildone.cmd)
Enable command processor extensions (ENABLEEXTENSIONS) and delayed
environment variable expansion (ENABLEDELAYEDEXPANSION).

On my systems with VS2008 and VS2010 I cannot run buildone.cmd
successfully without both of those options enabled. They are already
enabled in buildall.cmd.


- (harpoonHelper.vcproj)
Use the static release/debug CRT when building harpoonhelper.exe.

C++ code generation for the helper links to the release/debug CRT DLL
respectively depending on the configuration. A result of this is the
64-bit CRT DLL must be redistributed with Workrave because the version
required may not be on the user's computer already. That's a problem
because the helper is not in a separate directory where the 64-bit CRT
DLL can also be placed. The only CRT DLLs that should be placed in the
directory with workrave.exe are 32-bit types; there should be no 64-bit
types.

Other solutions would be move harpoonHelper.exe to a 64-bit directory
(eg something like %ProgramFiles%\Workrave\lib\x64) and include the
64-bit CRT DLL it was linked to, or include Microsoft's redist
installer for the 64-bit CRT DLL and have setup run it before install.

This is not currently a problem with the 64-bit applet or 64-bit
harpoon, both of which already link to the static CRT.
Fix bug in cmake image files install

build/cmake/frontend/CMakeLists.txt

- Use DIRECTORY keyword to preserve the directory structure of the
share\images directory.

This fixes a bug where prior to this change the directory structure was
not preserved and each different size of workrave.png ended up being
overwritten by the prior when building INSTALL. Now each workrave.png
remains in its respective directory (eg share\images\48x48\workrave.png)
Merge pull request #22 from jay/j

some minor changes