diff --git a/PC/associator.c b/PC/associator.c
deleted file mode 100644
index 317e0c8..0000000
--- a/PC/associator.c
+++ /dev/null
@@ -1,710 +0,0 @@
-/*
- * Copyright (C) 2011-2012 Vinay Sajip.
- * Licensed to PSF under a contributor agreement.
- */
-#include <windows.h>
-#include <commctrl.h>
-#include <stdio.h>
-#include "associator.h"
-
-#define PYTHON_EXECUTABLE L"python.exe"
-
-#define MSGSIZE 1024
-#define MAX_VERSION_SIZE    4
-
-typedef struct {
-    wchar_t version[MAX_VERSION_SIZE]; /* m.n */
-    int bits;   /* 32 or 64 */
-    wchar_t executable[MAX_PATH];
-} INSTALLED_PYTHON;
-
-/*
- * To avoid messing about with heap allocations, just assume we can allocate
- * statically and never have to deal with more versions than this.
- */
-#define MAX_INSTALLED_PYTHONS   100
-
-static INSTALLED_PYTHON installed_pythons[MAX_INSTALLED_PYTHONS];
-
-static size_t num_installed_pythons = 0;
-
-/* to hold SOFTWARE\Python\PythonCore\X.Y\InstallPath */
-#define IP_BASE_SIZE 40
-#define IP_SIZE (IP_BASE_SIZE + MAX_VERSION_SIZE)
-#define CORE_PATH L"SOFTWARE\\Python\\PythonCore"
-
-static wchar_t * location_checks[] = {
-    L"\\",
-/*
-    L"\\PCBuild\\",
-    L"\\PCBuild\\amd64\\",
- */
-    NULL
-};
-
-static wchar_t *
-skip_whitespace(wchar_t * p)
-{
-    while (*p && isspace(*p))
-        ++p;
-    return p;
-}
-
-/*
- * This function is here to minimise Visual Studio
- * warnings about security implications of getenv, and to
- * treat blank values as if they are absent.
- */
-static wchar_t * get_env(wchar_t * key)
-{
-    wchar_t * result = _wgetenv(key);
-
-    if (result) {
-        result = skip_whitespace(result);
-        if (*result == L'\0')
-            result = NULL;
-    }
-    return result;
-}
-
-static FILE * log_fp = NULL;
-
-static void
-debug(wchar_t * format, ...)
-{
-    va_list va;
-
-    if (log_fp != NULL) {
-        va_start(va, format);
-        vfwprintf_s(log_fp, format, va);
-    }
-}
-
-static void winerror(int rc, wchar_t * message, int size)
-{
-    FormatMessageW(
-        FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
-        NULL, rc, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-        message, size, NULL);
-}
-
-static INSTALLED_PYTHON *
-find_existing_python(wchar_t * path)
-{
-    INSTALLED_PYTHON * result = NULL;
-    size_t i;
-    INSTALLED_PYTHON * ip;
-
-    for (i = 0, ip = installed_pythons; i < num_installed_pythons; i++, ip++) {
-        if (_wcsicmp(path, ip->executable) == 0) {
-            result = ip;
-            break;
-        }
-    }
-    return result;
-}
-
-static void
-locate_pythons_for_key(HKEY root, REGSAM flags)
-{
-    HKEY core_root, ip_key;
-    LSTATUS status = RegOpenKeyExW(root, CORE_PATH, 0, flags, &core_root);
-    wchar_t message[MSGSIZE];
-    DWORD i;
-    size_t n;
-    BOOL ok;
-    DWORD type, data_size, attrs;
-    INSTALLED_PYTHON * ip, * pip;
-    wchar_t ip_path[IP_SIZE];
-    wchar_t * check;
-    wchar_t ** checkp;
-    wchar_t *key_name = (root == HKEY_LOCAL_MACHINE) ? L"HKLM" : L"HKCU";
-
-    if (status != ERROR_SUCCESS)
-        debug(L"locate_pythons_for_key: unable to open PythonCore key in %s\n",
-              key_name);
-    else {
-        ip = &installed_pythons[num_installed_pythons];
-        for (i = 0; num_installed_pythons < MAX_INSTALLED_PYTHONS; i++) {
-            status = RegEnumKeyW(core_root, i, ip->version, MAX_VERSION_SIZE);
-            if (status != ERROR_SUCCESS) {
-                if (status != ERROR_NO_MORE_ITEMS) {
-                    /* unexpected error */
-                    winerror(status, message, MSGSIZE);
-                    debug(L"Can't enumerate registry key for version %s: %s\n",
-                          ip->version, message);
-                }
-                break;
-            }
-            else {
-                _snwprintf_s(ip_path, IP_SIZE, _TRUNCATE,
-                             L"%s\\%s\\InstallPath", CORE_PATH, ip->version);
-                status = RegOpenKeyExW(root, ip_path, 0, flags, &ip_key);
-                if (status != ERROR_SUCCESS) {
-                    winerror(status, message, MSGSIZE);
-                    // Note: 'message' already has a trailing \n
-                    debug(L"%s\\%s: %s", key_name, ip_path, message);
-                    continue;
-                }
-                data_size = sizeof(ip->executable) - 1;
-                status = RegQueryValueEx(ip_key, NULL, NULL, &type,
-                                         (LPBYTE) ip->executable, &data_size);
-                RegCloseKey(ip_key);
-                if (status != ERROR_SUCCESS) {
-                    winerror(status, message, MSGSIZE);
-                    debug(L"%s\\%s: %s\n", key_name, ip_path, message);
-                    continue;
-                }
-                if (type == REG_SZ) {
-                    data_size = data_size / sizeof(wchar_t) - 1;  /* for NUL */
-                    if (ip->executable[data_size - 1] == L'\\')
-                        --data_size; /* reg value ended in a backslash */
-                    /* ip->executable is data_size long */
-                    for (checkp = location_checks; *checkp; ++checkp) {
-                        check = *checkp;
-                        _snwprintf_s(&ip->executable[data_size],
-                                     MAX_PATH - data_size,
-                                     MAX_PATH - data_size,
-                                     L"%s%s", check, PYTHON_EXECUTABLE);
-                        attrs = GetFileAttributesW(ip->executable);
-                        if (attrs == INVALID_FILE_ATTRIBUTES) {
-                            winerror(GetLastError(), message, MSGSIZE);
-                            debug(L"locate_pythons_for_key: %s: %s",
-                                  ip->executable, message);
-                        }
-                        else if (attrs & FILE_ATTRIBUTE_DIRECTORY) {
-                            debug(L"locate_pythons_for_key: '%s' is a \
-directory\n",
-                                  ip->executable, attrs);
-                        }
-                        else if (find_existing_python(ip->executable)) {
-                            debug(L"locate_pythons_for_key: %s: already \
-found: %s\n", ip->executable);
-                        }
-                        else {
-                            /* check the executable type. */
-                            ok = GetBinaryTypeW(ip->executable, &attrs);
-                            if (!ok) {
-                                debug(L"Failure getting binary type: %s\n",
-                                      ip->executable);
-                            }
-                            else {
-                                if (attrs == SCS_64BIT_BINARY)
-                                    ip->bits = 64;
-                                else if (attrs == SCS_32BIT_BINARY)
-                                    ip->bits = 32;
-                                else
-                                    ip->bits = 0;
-                                if (ip->bits == 0) {
-                                    debug(L"locate_pythons_for_key: %s: \
-invalid binary type: %X\n",
-                                          ip->executable, attrs);
-                                }
-                                else {
-                                    if (wcschr(ip->executable, L' ') != NULL) {
-                                        /* has spaces, so quote */
-                                        n = wcslen(ip->executable);
-                                        memmove(&ip->executable[1],
-                                                ip->executable, n * sizeof(wchar_t));
-                                        ip->executable[0] = L'\"';
-                                        ip->executable[n + 1] = L'\"';
-                                        ip->executable[n + 2] = L'\0';
-                                    }
-                                    debug(L"locate_pythons_for_key: %s \
-is a %dbit executable\n",
-                                        ip->executable, ip->bits);
-                                    ++num_installed_pythons;
-                                    pip = ip++;
-                                    if (num_installed_pythons >=
-                                        MAX_INSTALLED_PYTHONS)
-                                        break;
-                                    /* Copy over the attributes for the next */
-                                    *ip = *pip;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        RegCloseKey(core_root);
-    }
-}
-
-static int
-compare_pythons(const void * p1, const void * p2)
-{
-    INSTALLED_PYTHON * ip1 = (INSTALLED_PYTHON *) p1;
-    INSTALLED_PYTHON * ip2 = (INSTALLED_PYTHON *) p2;
-    /* note reverse sorting on version */
-    int result = wcscmp(ip2->version, ip1->version);
-
-    if (result == 0)
-        result = ip2->bits - ip1->bits; /* 64 before 32 */
-    return result;
-}
-
-static void
-locate_all_pythons()
-{
-#if defined(_M_X64)
-    // If we are a 64bit process, first hit the 32bit keys.
-    debug(L"locating Pythons in 32bit registry\n");
-    locate_pythons_for_key(HKEY_CURRENT_USER, KEY_READ | KEY_WOW64_32KEY);
-    locate_pythons_for_key(HKEY_LOCAL_MACHINE, KEY_READ | KEY_WOW64_32KEY);
-#else
-    // If we are a 32bit process on a 64bit Windows, first hit the 64bit keys.
-    BOOL f64 = FALSE;
-    if (IsWow64Process(GetCurrentProcess(), &f64) && f64) {
-        debug(L"locating Pythons in 64bit registry\n");
-        locate_pythons_for_key(HKEY_CURRENT_USER, KEY_READ | KEY_WOW64_64KEY);
-        locate_pythons_for_key(HKEY_LOCAL_MACHINE, KEY_READ | KEY_WOW64_64KEY);
-    }
-#endif    
-    // now hit the "native" key for this process bittedness.
-    debug(L"locating Pythons in native registry\n");
-    locate_pythons_for_key(HKEY_CURRENT_USER, KEY_READ);
-    locate_pythons_for_key(HKEY_LOCAL_MACHINE, KEY_READ);
-    qsort(installed_pythons, num_installed_pythons, sizeof(INSTALLED_PYTHON),
-          compare_pythons);
-}
-
-typedef struct {
-    wchar_t * path;
-    wchar_t * key;
-    wchar_t * value;
-} REGISTRY_ENTRY;
-
-static REGISTRY_ENTRY registry_entries[] = {
-    { L".py", NULL, L"Python.File" },
-    { L".pyc", NULL, L"Python.CompiledFile" },
-    { L".pyo", NULL, L"Python.CompiledFile" },
-    { L".pyw", NULL, L"Python.NoConFile" },
-
-    { L"Python.CompiledFile", NULL, L"Compiled Python File" },
-    { L"Python.CompiledFile\\DefaultIcon", NULL, L"pyc.ico" },
-    { L"Python.CompiledFile\\shell\\open", NULL, L"Open" },
-    { L"Python.CompiledFile\\shell\\open\\command", NULL, L"python.exe" },
-
-    { L"Python.File", NULL, L"Python File" },
-    { L"Python.File\\DefaultIcon", NULL, L"py.ico" },
-    { L"Python.File\\shell\\open", NULL, L"Open" },
-    { L"Python.File\\shell\\open\\command", NULL, L"python.exe" },
-
-    { L"Python.NoConFile", NULL, L"Python File (no console)" },
-    { L"Python.NoConFile\\DefaultIcon", NULL, L"py.ico" },
-    { L"Python.NoConFile\\shell\\open", NULL, L"Open" },
-    { L"Python.NoConFile\\shell\\open\\command", NULL, L"pythonw.exe" },
-
-    { NULL }
-};
-
-static BOOL
-do_association(INSTALLED_PYTHON * ip)
-{
-    LONG rc;
-    BOOL result = TRUE;
-    REGISTRY_ENTRY * rp = registry_entries;
-    wchar_t value[MAX_PATH];
-    wchar_t root[MAX_PATH];
-    wchar_t message[MSGSIZE];
-    wchar_t * pvalue;
-    HKEY hKey;
-    DWORD len;
-
-    wcsncpy_s(root, MAX_PATH, ip->executable, _TRUNCATE);
-    pvalue = wcsrchr(root, '\\');
-    if (pvalue)
-        *pvalue = L'\0';
-
-    for (; rp->path; ++rp) {
-        if (wcsstr(rp->path, L"DefaultIcon")) {
-            pvalue = value;
-            _snwprintf_s(value, MAX_PATH, _TRUNCATE,
-                         L"%s\\DLLs\\%s", root, rp->value);
-        }
-        else if (wcsstr(rp->path, L"open\\command")) {
-            pvalue = value;
-            _snwprintf_s(value, MAX_PATH, _TRUNCATE,
-                         L"%s\\%s \"%%1\" %%*", root, rp->value);
-        }
-        else {
-            pvalue = rp->value;
-        }
-        /* use rp->path, rp->key, pvalue */
-        /* NOTE: size is in bytes */
-        len = (DWORD) ((1 + wcslen(pvalue)) * sizeof(wchar_t));
-        rc = RegOpenKeyEx(HKEY_CLASSES_ROOT, rp->path, 0, KEY_SET_VALUE, &hKey);
-        if (rc == ERROR_SUCCESS) {
-            rc = RegSetValueExW(hKey, rp->key, 0, REG_SZ, (LPBYTE) pvalue, len);
-            RegCloseKey(hKey);
-        }
-        if (rc != ERROR_SUCCESS) {
-            winerror(rc, message, MSGSIZE);
-            MessageBoxW(NULL, message, L"Unable to set file associations", MB_OK | MB_ICONSTOP);
-            result = FALSE;
-            break;
-        }
-    }
-    return result;
-}
-
-static BOOL
-associations_exist()
-{
-    BOOL result = FALSE;
-    REGISTRY_ENTRY * rp = registry_entries;
-    wchar_t buffer[MSGSIZE];
-    LONG csize = MSGSIZE * sizeof(wchar_t);
-    LONG rc;
-
-    /* Currently, if any is found, we assume they're all there. */
-
-    for (; rp->path; ++rp) {
-        LONG size = csize;
-        rc = RegQueryValueW(HKEY_CLASSES_ROOT, rp->path, buffer, &size); 
-        if (rc == ERROR_SUCCESS) {
-            result = TRUE;
-            break;
-        }
-    }
-    return result;
-}
-
-/* --------------------------------------------------------------------*/
-
-static BOOL CALLBACK
-find_by_title(HWND hwnd, LPARAM lParam)
-{
-    wchar_t buffer[MSGSIZE];
-    BOOL not_found = TRUE;
-
-    wchar_t * p = (wchar_t *) GetWindowTextW(hwnd, buffer, MSGSIZE);
-    if (wcsstr(buffer, L"Python Launcher") == buffer) {
-        not_found = FALSE;
-        *((HWND *) lParam) = hwnd;
-    }
-    return not_found;
-}
-
-static HWND
-find_installer_window()
-{
-    HWND result = NULL;
-    BOOL found = EnumWindows(find_by_title, (LPARAM) &result);
-
-    return result;
-}
-
-static void
-centre_window_in_front(HWND hwnd)
-{
-    HWND hwndParent;
-    RECT rect, rectP;
-    int width, height;      
-    int screenwidth, screenheight;
-    int x, y;
-
-    //make the window relative to its parent
-
-    screenwidth  = GetSystemMetrics(SM_CXSCREEN);
-    screenheight = GetSystemMetrics(SM_CYSCREEN);
-
-    hwndParent = GetParent(hwnd);
-
-    GetWindowRect(hwnd, &rect);
-    if (hwndParent) {
-        GetWindowRect(hwndParent, &rectP);
-    }
-    else {
-        rectP.left = rectP.top = 0;
-        rectP.right = screenwidth;
-        rectP.bottom = screenheight;
-    }
-
-    width  = rect.right  - rect.left;
-    height = rect.bottom - rect.top;
-
-    x = ((rectP.right-rectP.left) -  width) / 2 + rectP.left;
-    y = ((rectP.bottom-rectP.top) - height) / 2 + rectP.top;
-
-
-    //make sure that the dialog box never moves outside of
-    //the screen
-
-    if (x < 0)
-        x = 0;
-
-    if (y < 0)
-        y = 0;
-
-    if (x + width  > screenwidth)
-        x = screenwidth  - width;
-    if (y + height > screenheight)
-        y = screenheight - height;
-
-    SetWindowPos(hwnd, HWND_TOPMOST, x, y, width, height, SWP_SHOWWINDOW);
-}
-
-static void
-init_list(HWND hList)
-{
-    LVCOLUMNW column;
-    LVITEMW item;
-    int colno = 0;
-    int width = 0;
-    int row;
-    size_t i;
-    INSTALLED_PYTHON * ip;
-    RECT r;
-    LPARAM style;
-
-    GetClientRect(hList, &r);
-
-    style = SendMessage(hList, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
-    SendMessage(hList, LVM_SETEXTENDEDLISTVIEWSTYLE,
-                0, style | LVS_EX_FULLROWSELECT);
-
-    /* First set up the columns */
-    memset(&column, 0, sizeof(column));
-    column.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
-    column.pszText = L"Version";
-    column.cx = 60;
-    width += column.cx;
-    SendMessage(hList, LVM_INSERTCOLUMN, colno++,(LPARAM) &column);
-#if defined(_M_X64)
-    column.pszText = L"Bits";
-    column.cx = 40;
-    column.iSubItem = colno;
-    SendMessage(hList, LVM_INSERTCOLUMN, colno++,(LPARAM) &column);
-    width += column.cx;
-#endif
-    column.pszText = L"Path";
-    column.cx = r.right - r.top - width;
-    column.iSubItem = colno;
-    SendMessage(hList, LVM_INSERTCOLUMN, colno++,(LPARAM) &column);
-
-    /* Then insert the rows */
-    memset(&item, 0, sizeof(item));
-    item.mask = LVIF_TEXT;
-    for (i = 0, ip = installed_pythons;  i < num_installed_pythons; i++,ip++) {
-        item.iItem = (int) i;
-        item.iSubItem = 0;
-        item.pszText = ip->version;
-        colno = 0;
-        row = (int) SendMessage(hList, LVM_INSERTITEM, 0, (LPARAM) &item);
-#if defined(_M_X64)
-        item.iSubItem = ++colno;
-        item.pszText = (ip->bits == 64) ? L"64": L"32";
-        SendMessage(hList, LVM_SETITEM, row, (LPARAM) &item);
-#endif
-        item.iSubItem = ++colno;
-        item.pszText = ip->executable;
-        SendMessage(hList, LVM_SETITEM, row, (LPARAM) &item);
-    }
-}
-
-/* ----------------------------------------------------------------*/
-
-typedef int (__stdcall *MSGBOXWAPI)(IN HWND hWnd, 
-        IN LPCWSTR lpText, IN LPCWSTR lpCaption, 
-        IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
-
-int MessageBoxTimeoutW(IN HWND hWnd, IN LPCWSTR lpText, 
-    IN LPCWSTR lpCaption, IN UINT uType, 
-    IN WORD wLanguageId, IN DWORD dwMilliseconds);
-
-#define MB_TIMEDOUT 32000
-
-int MessageBoxTimeoutW(HWND hWnd, LPCWSTR lpText, 
-    LPCWSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds)
-{
-    static MSGBOXWAPI MsgBoxTOW = NULL;
-
-    if (!MsgBoxTOW) {
-        HMODULE hUser32 = GetModuleHandleW(L"user32.dll");
-        if (hUser32)
-            MsgBoxTOW = (MSGBOXWAPI)GetProcAddress(hUser32, 
-                                      "MessageBoxTimeoutW");
-        else {
-            //stuff happened, add code to handle it here 
-            //(possibly just call MessageBox())
-            return 0;
-        }
-    }
-
-    if (MsgBoxTOW)
-        return MsgBoxTOW(hWnd, lpText, lpCaption, uType, wLanguageId,
-                         dwMilliseconds);
-
-    return 0;
-}
-/* ----------------------------------------------------------------*/
-
-static INT_PTR CALLBACK
-DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
-    HWND hList;
-    HWND hChild;
-    static int selected_index = -1;
-    WORD low = LOWORD(wParam);
-    wchar_t confirmation[MSGSIZE];
-    BOOL result = FALSE;
-
-    debug(L"DialogProc entry: 0x%02X\n", message);
-    switch (message) {
-    case WM_INITDIALOG:
-        hList = GetDlgItem(hDlg, IDC_LIST1);
-        init_list(hList);
-        SetFocus(hList);
-        result = TRUE;
-        break;
-    case WM_COMMAND:
-        if((low == IDOK) || (low == IDCANCEL)) {
-            HMODULE hUser32 = LoadLibraryW(L"user32.dll");
-
-            if (low == IDCANCEL)
-                wcsncpy_s(confirmation, MSGSIZE, L"No association was \
-performed.", _TRUNCATE);
-            else {
-                if (selected_index < 0) {
-                /* should never happen */
-                    wcsncpy_s(confirmation, MSGSIZE, L"The Python version to \
-associate with couldn't be determined.", _TRUNCATE);
-                }
-                else {
-                    INSTALLED_PYTHON * ip = &installed_pythons[selected_index];
-
-                    /* Do the association and set the message. */
-                    do_association(ip);
-                    _snwprintf_s(confirmation, MSGSIZE, _TRUNCATE,
-                                 L"Associated Python files with the Python %s \
-found at '%s'", ip->version, ip->executable);
-                }
-            }
-
-            if (hUser32) {
-                MessageBoxTimeoutW(hDlg,
-                                   confirmation, 
-                                   L"Association Status",
-                                   MB_OK | MB_SETFOREGROUND |
-                                   MB_ICONINFORMATION,
-                                   0, 2000);
-                FreeLibrary(hUser32);
-            }
-            PostQuitMessage(0);
-            EndDialog(hDlg, 0);
-            result = TRUE;
-        }
-        break;
-    case WM_NOTIFY:
-        if (low == IDC_LIST1) {
-            NMLISTVIEW * p = (NMLISTVIEW *) lParam;
-
-            if ((p->hdr.code == LVN_ITEMCHANGED) &&
-                (p->uNewState & LVIS_SELECTED)) {
-                hChild = GetDlgItem(hDlg, IDOK);
-                selected_index = p->iItem;
-                EnableWindow(hChild, selected_index >= 0);
-            }
-            result = TRUE;
-        }
-        break;
-    case WM_DESTROY:
-        PostQuitMessage(0);
-        result = TRUE;
-        break;
-    case WM_CLOSE:
-        DestroyWindow(hDlg);
-        result = TRUE;
-        break;
-    }
-    debug(L"DialogProc exit: %d\n", result);
-    return result;
-}
-
-int WINAPI wWinMain(HINSTANCE hInstance,
-                   HINSTANCE hPrevInstance,
-                   LPWSTR lpCmdLine, int nShow)
-{
-    MSG  msg;
-    HWND hDialog = 0;
-    HICON hIcon;
-    HWND hParent;
-    int status;
-    DWORD dw;
-    INITCOMMONCONTROLSEX icx;
-    wchar_t * wp;
-
-    wp = get_env(L"PYASSOC_DEBUG");
-    if ((wp != NULL) && (*wp != L'\0')) {
-        fopen_s(&log_fp, "c:\\temp\\associator.log", "w");
-    }
-
-    if (!lpCmdLine) {
-        debug(L"No command line specified.\n");
-        return 0;
-    }
-    if (!wcsstr(lpCmdLine, L"nocheck") &&
-        associations_exist())   /* Could have been restored by uninstall. */
-        return 0;
-
-    locate_all_pythons();
-
-    if (num_installed_pythons == 0)
-        return 0;
-
-    debug(L"%d pythons found.\n", num_installed_pythons);
-
-    /*
-     * OK, now there's something to do.
-     *
-     * We need to find the installer window to be the parent of
-     * our dialog, otherwise our dialog will be behind it.
-     *
-     * First, initialize common controls. If you don't - on
-     * some machines it works fine, on others the dialog never
-     * appears!
-     */
-
-    icx.dwSize = sizeof(icx);
-    icx.dwICC = ICC_LISTVIEW_CLASSES;
-    InitCommonControlsEx(&icx);
-
-    hParent = find_installer_window();
-    debug(L"installer window: %X\n", hParent);
-    hDialog = CreateDialogW(hInstance, MAKEINTRESOURCE(DLG_MAIN), hParent,
-                            DialogProc);
-    dw = GetLastError();
-    debug(L"dialog created: %X: error: %X\n", hDialog, dw);
-
-    if (!hDialog)
-    {
-        wchar_t buf [100];
-        _snwprintf_s(buf, 100, _TRUNCATE, L"Error 0x%x", GetLastError());
-        MessageBoxW(0, buf, L"CreateDialog", MB_ICONEXCLAMATION | MB_OK);
-        return 1;
-    }
-
-    centre_window_in_front(hDialog);
-    hIcon = LoadIcon( GetModuleHandle(NULL), MAKEINTRESOURCE(DLG_ICON));
-    if( hIcon )
-    {
-       SendMessage(hDialog, WM_SETICON, ICON_BIG, (LPARAM) hIcon);
-       SendMessage(hDialog, WM_SETICON, ICON_SMALL, (LPARAM) hIcon);
-       DestroyIcon(hIcon);
-    }
-
-    while ((status = GetMessage (& msg, 0, 0, 0)) != 0)
-    {
-        if (status == -1)
-            return -1;
-        if (!IsDialogMessage(hDialog, & msg))
-        {
-            TranslateMessage( & msg );
-            DispatchMessage( & msg );
-        }
-    }
-
-    return (int) msg.wParam;
-}
diff --git a/PC/associator.h b/PC/associator.h
deleted file mode 100644
index a2c1cde..0000000
--- a/PC/associator.h
+++ /dev/null
@@ -1,1480 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by main.rc
-//
-#define SW_HIDE                         0
-#define HIDE_WINDOW                     0
-#define WM_NULL                         0x0000
-#define WA_INACTIVE                     0
-#define HTNOWHERE                       0
-#define SMTO_NORMAL                     0x0000
-#define ICON_SMALL                      0
-#define SIZE_RESTORED                   0
-#define BN_CLICKED                      0
-#define BST_UNCHECKED                   0x0000
-#define HDS_HORZ                        0x0000
-#define TBSTYLE_BUTTON                  0x0000
-#define TBS_HORZ                        0x0000
-#define TBS_BOTTOM                      0x0000
-#define TBS_RIGHT                       0x0000
-#define LVS_ICON                        0x0000
-#define LVS_ALIGNTOP                    0x0000
-#define TCS_TABS                        0x0000
-#define TCS_SINGLELINE                  0x0000
-#define TCS_RIGHTJUSTIFY                0x0000
-#define DTS_SHORTDATEFORMAT             0x0000
-#define PGS_VERT                        0x00000000
-#define LANG_NEUTRAL                    0x00
-#define SUBLANG_NEUTRAL                 0x00
-#define SORT_DEFAULT                    0x0
-#define SORT_JAPANESE_XJIS              0x0
-#define SORT_CHINESE_BIG5               0x0
-#define SORT_CHINESE_PRCP               0x0
-#define SORT_KOREAN_KSC                 0x0
-#define SORT_HUNGARIAN_DEFAULT          0x0
-#define SORT_GEORGIAN_TRADITIONAL       0x0
-#define _USE_DECLSPECS_FOR_SAL          0
-#define SW_SHOWNORMAL                   1
-#define SW_NORMAL                       1
-#define SHOW_OPENWINDOW                 1
-#define SW_PARENTCLOSING                1
-#define VK_LBUTTON                      0x01
-#define WM_CREATE                       0x0001
-#define WA_ACTIVE                       1
-#define PWR_OK                          1
-#define PWR_SUSPENDREQUEST              1
-#define NFR_ANSI                        1
-#define UIS_SET                         1
-#define UISF_HIDEFOCUS                  0x1
-#define XBUTTON1                        0x0001
-#define WMSZ_LEFT                       1
-#define HTCLIENT                        1
-#define SMTO_BLOCK                      0x0001
-#define MA_ACTIVATE                     1
-#define ICON_BIG                        1
-#define SIZE_MINIMIZED                  1
-#define MK_LBUTTON                      0x0001
-#define TME_HOVER                       0x00000001
-#define CS_VREDRAW                      0x0001
-#define CF_TEXT                         1
-#define SCF_ISSECURE                    0x00000001
-#define IDOK                            1
-#define BN_PAINT                        1
-#define BST_CHECKED                     0x0001
-#define TBSTYLE_SEP                     0x0001
-#define TTS_ALWAYSTIP                   0x01
-#define TBS_AUTOTICKS                   0x0001
-#define UDS_WRAP                        0x0001
-#define PBS_SMOOTH                      0x01
-#define LWS_TRANSPARENT                 0x0001
-#define LVS_REPORT                      0x0001
-#define TVS_HASBUTTONS                  0x0001
-#define TCS_SCROLLOPPOSITE              0x0001
-#define ACS_CENTER                      0x0001
-#define MCS_DAYSTATE                    0x0001
-#define DTS_UPDOWN                      0x0001
-#define PGS_HORZ                        0x00000001
-#define NFS_EDIT                        0x0001
-#define BCSIF_GLYPH                     0x0001
-#define BCSS_NOSPLIT                    0x0001
-#define LANG_ARABIC                     0x01
-#define SUBLANG_DEFAULT                 0x01
-#define SUBLANG_AFRIKAANS_SOUTH_AFRICA  0x01
-#define SUBLANG_ALBANIAN_ALBANIA        0x01
-#define SUBLANG_ALSATIAN_FRANCE         0x01
-#define SUBLANG_AMHARIC_ETHIOPIA        0x01
-#define SUBLANG_ARABIC_SAUDI_ARABIA     0x01
-#define SUBLANG_ARMENIAN_ARMENIA        0x01
-#define SUBLANG_ASSAMESE_INDIA          0x01
-#define SUBLANG_AZERI_LATIN             0x01
-#define SUBLANG_BASHKIR_RUSSIA          0x01
-#define SUBLANG_BASQUE_BASQUE           0x01
-#define SUBLANG_BELARUSIAN_BELARUS      0x01
-#define SUBLANG_BENGALI_INDIA           0x01
-#define SUBLANG_BRETON_FRANCE           0x01
-#define SUBLANG_BULGARIAN_BULGARIA      0x01
-#define SUBLANG_CATALAN_CATALAN         0x01
-#define SUBLANG_CHINESE_TRADITIONAL     0x01
-#define SUBLANG_CORSICAN_FRANCE         0x01
-#define SUBLANG_CZECH_CZECH_REPUBLIC    0x01
-#define SUBLANG_CROATIAN_CROATIA        0x01
-#define SUBLANG_DANISH_DENMARK          0x01
-#define SUBLANG_DARI_AFGHANISTAN        0x01
-#define SUBLANG_DIVEHI_MALDIVES         0x01
-#define SUBLANG_DUTCH                   0x01
-#define SUBLANG_ENGLISH_US              0x01
-#define SUBLANG_ESTONIAN_ESTONIA        0x01
-#define SUBLANG_FAEROESE_FAROE_ISLANDS  0x01
-#define SUBLANG_FILIPINO_PHILIPPINES    0x01
-#define SUBLANG_FINNISH_FINLAND         0x01
-#define SUBLANG_FRENCH                  0x01
-#define SUBLANG_FRISIAN_NETHERLANDS     0x01
-#define SUBLANG_GALICIAN_GALICIAN       0x01
-#define SUBLANG_GEORGIAN_GEORGIA        0x01
-#define SUBLANG_GERMAN                  0x01
-#define SUBLANG_GREEK_GREECE            0x01
-#define SUBLANG_GREENLANDIC_GREENLAND   0x01
-#define SUBLANG_GUJARATI_INDIA          0x01
-#define SUBLANG_HAUSA_NIGERIA_LATIN     0x01
-#define SUBLANG_HEBREW_ISRAEL           0x01
-#define SUBLANG_HINDI_INDIA             0x01
-#define SUBLANG_HUNGARIAN_HUNGARY       0x01
-#define SUBLANG_ICELANDIC_ICELAND       0x01
-#define SUBLANG_IGBO_NIGERIA            0x01
-#define SUBLANG_INDONESIAN_INDONESIA    0x01
-#define SUBLANG_INUKTITUT_CANADA        0x01
-#define SUBLANG_ITALIAN                 0x01
-#define SUBLANG_JAPANESE_JAPAN          0x01
-#define SUBLANG_KANNADA_INDIA           0x01
-#define SUBLANG_KAZAK_KAZAKHSTAN        0x01
-#define SUBLANG_KHMER_CAMBODIA          0x01
-#define SUBLANG_KICHE_GUATEMALA         0x01
-#define SUBLANG_KINYARWANDA_RWANDA      0x01
-#define SUBLANG_KONKANI_INDIA           0x01
-#define SUBLANG_KOREAN                  0x01
-#define SUBLANG_KYRGYZ_KYRGYZSTAN       0x01
-#define SUBLANG_LAO_LAO                 0x01
-#define SUBLANG_LATVIAN_LATVIA          0x01
-#define SUBLANG_LITHUANIAN              0x01
-#define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01
-#define SUBLANG_MACEDONIAN_MACEDONIA    0x01
-#define SUBLANG_MALAY_MALAYSIA          0x01
-#define SUBLANG_MALAYALAM_INDIA         0x01
-#define SUBLANG_MALTESE_MALTA           0x01
-#define SUBLANG_MAORI_NEW_ZEALAND       0x01
-#define SUBLANG_MAPUDUNGUN_CHILE        0x01
-#define SUBLANG_MARATHI_INDIA           0x01
-#define SUBLANG_MOHAWK_MOHAWK           0x01
-#define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01
-#define SUBLANG_NEPALI_NEPAL            0x01
-#define SUBLANG_NORWEGIAN_BOKMAL        0x01
-#define SUBLANG_OCCITAN_FRANCE          0x01
-#define SUBLANG_ORIYA_INDIA             0x01
-#define SUBLANG_PASHTO_AFGHANISTAN      0x01
-#define SUBLANG_PERSIAN_IRAN            0x01
-#define SUBLANG_POLISH_POLAND           0x01
-#define SUBLANG_PORTUGUESE_BRAZILIAN    0x01
-#define SUBLANG_PUNJABI_INDIA           0x01
-#define SUBLANG_QUECHUA_BOLIVIA         0x01
-#define SUBLANG_ROMANIAN_ROMANIA        0x01
-#define SUBLANG_ROMANSH_SWITZERLAND     0x01
-#define SUBLANG_RUSSIAN_RUSSIA          0x01
-#define SUBLANG_SAMI_NORTHERN_NORWAY    0x01
-#define SUBLANG_SANSKRIT_INDIA          0x01
-#define SUBLANG_SERBIAN_CROATIA         0x01
-#define SUBLANG_SINDHI_INDIA            0x01
-#define SUBLANG_SINHALESE_SRI_LANKA     0x01
-#define SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA 0x01
-#define SUBLANG_SLOVAK_SLOVAKIA         0x01
-#define SUBLANG_SLOVENIAN_SLOVENIA      0x01
-#define SUBLANG_SPANISH                 0x01
-#define SUBLANG_SWAHILI_KENYA           0x01
-#define SUBLANG_SWEDISH                 0x01
-#define SUBLANG_SYRIAC_SYRIA            0x01
-#define SUBLANG_TAJIK_TAJIKISTAN        0x01
-#define SUBLANG_TAMIL_INDIA             0x01
-#define SUBLANG_TATAR_RUSSIA            0x01
-#define SUBLANG_TELUGU_INDIA            0x01
-#define SUBLANG_THAI_THAILAND           0x01
-#define SUBLANG_TIBETAN_PRC             0x01
-#define SUBLANG_TSWANA_SOUTH_AFRICA     0x01
-#define SUBLANG_TURKISH_TURKEY          0x01
-#define SUBLANG_TURKMEN_TURKMENISTAN    0x01
-#define SUBLANG_UIGHUR_PRC              0x01
-#define SUBLANG_UKRAINIAN_UKRAINE       0x01
-#define SUBLANG_UPPER_SORBIAN_GERMANY   0x01
-#define SUBLANG_URDU_PAKISTAN           0x01
-#define SUBLANG_UZBEK_LATIN             0x01
-#define SUBLANG_VIETNAMESE_VIETNAM      0x01
-#define SUBLANG_WELSH_UNITED_KINGDOM    0x01
-#define SUBLANG_WOLOF_SENEGAL           0x01
-#define SUBLANG_XHOSA_SOUTH_AFRICA      0x01
-#define SUBLANG_YAKUT_RUSSIA            0x01
-#define SUBLANG_YI_PRC                  0x01
-#define SUBLANG_YORUBA_NIGERIA          0x01
-#define SUBLANG_ZULU_SOUTH_AFRICA       0x01
-#define SORT_INVARIANT_MATH             0x1
-#define SORT_JAPANESE_UNICODE           0x1
-#define SORT_CHINESE_UNICODE            0x1
-#define SORT_KOREAN_UNICODE             0x1
-#define SORT_GERMAN_PHONE_BOOK          0x1
-#define SORT_HUNGARIAN_TECHNICAL        0x1
-#define SORT_GEORGIAN_MODERN            0x1
-#define VS_VERSION_INFO                 1
-#define VFFF_ISSHAREDFILE               0x0001
-#define VFF_CURNEDEST                   0x0001
-#define VIFF_FORCEINSTALL               0x0001
-#define SW_SHOWMINIMIZED                2
-#define SHOW_ICONWINDOW                 2
-#define SW_OTHERZOOM                    2
-#define VK_RBUTTON                      0x02
-#define WM_DESTROY                      0x0002
-#define WA_CLICKACTIVE                  2
-#define PWR_SUSPENDRESUME               2
-#define NFR_UNICODE                     2
-#define UIS_CLEAR                       2
-#define UISF_HIDEACCEL                  0x2
-#define XBUTTON2                        0x0002
-#define WMSZ_RIGHT                      2
-#define HTCAPTION                       2
-#define SMTO_ABORTIFHUNG                0x0002
-#define MA_ACTIVATEANDEAT               2
-#define ICON_SMALL2                     2
-#define SIZE_MAXIMIZED                  2
-#define MK_RBUTTON                      0x0002
-#define TME_LEAVE                       0x00000002
-#define CS_HREDRAW                      0x0002
-#define CF_BITMAP                       2
-#define IDCANCEL                        2
-#define BN_HILITE                       2
-#define BST_INDETERMINATE               0x0002
-#define HDS_BUTTONS                     0x0002
-#define TBSTYLE_CHECK                   0x0002
-#define TTS_NOPREFIX                    0x02
-#define TBS_VERT                        0x0002
-#define UDS_SETBUDDYINT                 0x0002
-#define LWS_IGNORERETURN                0x0002
-#define LVS_SMALLICON                   0x0002
-#define TVS_HASLINES                    0x0002
-#define TVS_EX_MULTISELECT              0x0002
-#define TCS_BOTTOM                      0x0002
-#define TCS_RIGHT                       0x0002
-#define ACS_TRANSPARENT                 0x0002
-#define MCS_MULTISELECT                 0x0002
-#define DTS_SHOWNONE                    0x0002
-#define PGS_AUTOSCROLL                  0x00000002
-#define NFS_STATIC                      0x0002
-#define BCSIF_IMAGE                     0x0002
-#define BCSS_STRETCH                    0x0002
-#define LANG_BULGARIAN                  0x02
-#define SUBLANG_SYS_DEFAULT             0x02
-#define SUBLANG_ARABIC_IRAQ             0x02
-#define SUBLANG_AZERI_CYRILLIC          0x02
-#define SUBLANG_BENGALI_BANGLADESH      0x02
-#define SUBLANG_CHINESE_SIMPLIFIED      0x02
-#define SUBLANG_DUTCH_BELGIAN           0x02
-#define SUBLANG_ENGLISH_UK              0x02
-#define SUBLANG_FRENCH_BELGIAN          0x02
-#define SUBLANG_GERMAN_SWISS            0x02
-#define SUBLANG_INUKTITUT_CANADA_LATIN  0x02
-#define SUBLANG_IRISH_IRELAND           0x02
-#define SUBLANG_ITALIAN_SWISS           0x02
-#define SUBLANG_KASHMIRI_SASIA          0x02
-#define SUBLANG_KASHMIRI_INDIA          0x02
-#define SUBLANG_LOWER_SORBIAN_GERMANY   0x02
-#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
-#define SUBLANG_MONGOLIAN_PRC           0x02
-#define SUBLANG_NEPALI_INDIA            0x02
-#define SUBLANG_NORWEGIAN_NYNORSK       0x02
-#define SUBLANG_PORTUGUESE              0x02
-#define SUBLANG_QUECHUA_ECUADOR         0x02
-#define SUBLANG_SAMI_NORTHERN_SWEDEN    0x02
-#define SUBLANG_SERBIAN_LATIN           0x02
-#define SUBLANG_SINDHI_PAKISTAN         0x02
-#define SUBLANG_SINDHI_AFGHANISTAN      0x02
-#define SUBLANG_SPANISH_MEXICAN         0x02
-#define SUBLANG_SWEDISH_FINLAND         0x02
-#define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02
-#define SUBLANG_TIGRIGNA_ERITREA        0x02
-#define SUBLANG_URDU_INDIA              0x02
-#define SUBLANG_UZBEK_CYRILLIC          0x02
-#define SORT_CHINESE_PRC                0x2
-#define VFF_FILEINUSE                   0x0002
-#define VIFF_DONTDELETEOLD              0x0002
-#define SW_SHOWMAXIMIZED                3
-#define SW_MAXIMIZE                     3
-#define SHOW_FULLSCREEN                 3
-#define SW_PARENTOPENING                3
-#define VK_CANCEL                       0x03
-#define WM_MOVE                         0x0003
-#define PWR_CRITICALRESUME              3
-#define NF_QUERY                        3
-#define UIS_INITIALIZE                  3
-#define WMSZ_TOP                        3
-#define HTSYSMENU                       3
-#define MA_NOACTIVATE                   3
-#define SIZE_MAXSHOW                    3
-#define CF_METAFILEPICT                 3
-#define IDABORT                         3
-#define BN_UNHILITE                     3
-#define LVS_LIST                        0x0003
-#define LVS_TYPEMASK                    0x0003
-#define LANG_CATALAN                    0x03
-#define SUBLANG_CUSTOM_DEFAULT          0x03
-#define SUBLANG_ARABIC_EGYPT            0x03
-#define SUBLANG_CHINESE_HONGKONG        0x03
-#define SUBLANG_ENGLISH_AUS             0x03
-#define SUBLANG_FRENCH_CANADIAN         0x03
-#define SUBLANG_GERMAN_AUSTRIAN         0x03
-#define SUBLANG_QUECHUA_PERU            0x03
-#define SUBLANG_SAMI_NORTHERN_FINLAND   0x03
-#define SUBLANG_SERBIAN_CYRILLIC        0x03
-#define SUBLANG_SPANISH_MODERN          0x03
-#define SORT_CHINESE_BOPOMOFO           0x3
-#define SW_SHOWNOACTIVATE               4
-#define SHOW_OPENNOACTIVATE             4
-#define SW_OTHERUNZOOM                  4
-#define VK_MBUTTON                      0x04
-#define NF_REQUERY                      4
-#define UISF_ACTIVE                     0x4
-#define WMSZ_TOPLEFT                    4
-#define HTGROWBOX                       4
-#define MA_NOACTIVATEANDEAT             4
-#define SIZE_MAXHIDE                    4
-#define MK_SHIFT                        0x0004
-#define CF_SYLK                         4
-#define IDRETRY                         4
-#define BN_DISABLE                      4
-#define BST_PUSHED                      0x0004
-#define HDS_HOTTRACK                    0x0004
-#define TBSTYLE_GROUP                   0x0004
-#define TBS_TOP                         0x0004
-#define TBS_LEFT                        0x0004
-#define UDS_ALIGNRIGHT                  0x0004
-#define PBS_VERTICAL                    0x04
-#define LWS_NOPREFIX                    0x0004
-#define LVS_SINGLESEL                   0x0004
-#define TVS_LINESATROOT                 0x0004
-#define TVS_EX_DOUBLEBUFFER             0x0004
-#define TCS_MULTISELECT                 0x0004
-#define ACS_AUTOPLAY                    0x0004
-#define MCS_WEEKNUMBERS                 0x0004
-#define DTS_LONGDATEFORMAT              0x0004
-#define PGS_DRAGNDROP                   0x00000004
-#define NFS_LISTCOMBO                   0x0004
-#define BCSIF_STYLE                     0x0004
-#define BCSS_ALIGNLEFT                  0x0004
-#define LANG_CHINESE                    0x04
-#define LANG_CHINESE_SIMPLIFIED         0x04
-#define SUBLANG_CUSTOM_UNSPECIFIED      0x04
-#define SUBLANG_ARABIC_LIBYA            0x04
-#define SUBLANG_CHINESE_SINGAPORE       0x04
-#define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04
-#define SUBLANG_ENGLISH_CAN             0x04
-#define SUBLANG_FRENCH_SWISS            0x04
-#define SUBLANG_GERMAN_LUXEMBOURG       0x04
-#define SUBLANG_SAMI_LULE_NORWAY        0x04
-#define SUBLANG_SPANISH_GUATEMALA       0x04
-#define SORT_JAPANESE_RADICALSTROKE     0x4
-#define VFF_BUFFTOOSMALL                0x0004
-#define SW_SHOW                         5
-#define VK_XBUTTON1                     0x05
-#define WM_SIZE                         0x0005
-#define WMSZ_TOPRIGHT                   5
-#define HTMENU                          5
-#define CF_DIF                          5
-#define IDIGNORE                        5
-#define BN_DOUBLECLICKED                5
-#define LANG_CZECH                      0x05
-#define SUBLANG_UI_CUSTOM_DEFAULT       0x05
-#define SUBLANG_ARABIC_ALGERIA          0x05
-#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05
-#define SUBLANG_CHINESE_MACAU           0x05
-#define SUBLANG_ENGLISH_NZ              0x05
-#define SUBLANG_FRENCH_LUXEMBOURG       0x05
-#define SUBLANG_GERMAN_LIECHTENSTEIN    0x05
-#define SUBLANG_SAMI_LULE_SWEDEN        0x05
-#define SUBLANG_SPANISH_COSTA_RICA      0x05
-#define SW_MINIMIZE                     6
-#define VK_XBUTTON2                     0x06
-#define WM_ACTIVATE                     0x0006
-#define WMSZ_BOTTOM                     6
-#define HTHSCROLL                       6
-#define CF_TIFF                         6
-#define IDYES                           6
-#define BN_SETFOCUS                     6
-#define LANG_DANISH                     0x06
-#define SUBLANG_ARABIC_MOROCCO          0x06
-#define SUBLANG_ENGLISH_EIRE            0x06
-#define SUBLANG_FRENCH_MONACO           0x06
-#define SUBLANG_SAMI_SOUTHERN_NORWAY    0x06
-#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN 0x06
-#define SUBLANG_SPANISH_PANAMA          0x06
-#define SW_SHOWMINNOACTIVE              7
-#define WM_SETFOCUS                     0x0007
-#define WMSZ_BOTTOMLEFT                 7
-#define HTVSCROLL                       7
-#define CF_OEMTEXT                      7
-#define IDNO                            7
-#define BN_KILLFOCUS                    7
-#define LANG_GERMAN                     0x07
-#define SUBLANG_ARABIC_TUNISIA          0x07
-#define SUBLANG_ENGLISH_SOUTH_AFRICA    0x07
-#define SUBLANG_SAMI_SOUTHERN_SWEDEN    0x07
-#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x07
-#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
-#define SW_SHOWNA                       8
-#define VK_BACK                         0x08
-#define WM_KILLFOCUS                    0x0008
-#define WMSZ_BOTTOMRIGHT                8
-#define HTMINBUTTON                     8
-#define SMTO_NOTIMEOUTIFNOTHUNG         0x0008
-#define MK_CONTROL                      0x0008
-#define CS_DBLCLKS                      0x0008
-#define CF_DIB                          8
-#define IDCLOSE                         8
-#define BST_FOCUS                       0x0008
-#define HDS_HIDDEN                      0x0008
-#define TBSTYLE_DROPDOWN                0x0008
-#define TBS_BOTH                        0x0008
-#define UDS_ALIGNLEFT                   0x0008
-#define PBS_MARQUEE                     0x08
-#define LWS_USEVISUALSTYLE              0x0008
-#define LVS_SHOWSELALWAYS               0x0008
-#define TVS_EDITLABELS                  0x0008
-#define TVS_EX_NOINDENTSTATE            0x0008
-#define TCS_FLATBUTTONS                 0x0008
-#define ACS_TIMER                       0x0008
-#define MCS_NOTODAYCIRCLE               0x0008
-#define NFS_BUTTON                      0x0008
-#define BCSIF_SIZE                      0x0008
-#define BCSS_IMAGE                      0x0008
-#define LANG_GREEK                      0x08
-#define SUBLANG_ARABIC_OMAN             0x08
-#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08
-#define SUBLANG_ENGLISH_JAMAICA         0x08
-#define SUBLANG_SAMI_SKOLT_FINLAND      0x08
-#define SUBLANG_SPANISH_VENEZUELA       0x08
-#define SW_RESTORE                      9
-#define VK_TAB                          0x09
-#define HTMAXBUTTON                     9
-#define CF_PALETTE                      9
-#define IDHELP                          9
-#define DTS_TIMEFORMAT                  0x0009
-#define LANG_ENGLISH                    0x09
-#define SUBLANG_ARABIC_YEMEN            0x09
-#define SUBLANG_ENGLISH_CARIBBEAN       0x09
-#define SUBLANG_SAMI_INARI_FINLAND      0x09
-#define SUBLANG_SPANISH_COLOMBIA        0x09
-#define SW_SHOWDEFAULT                  10
-#define WM_ENABLE                       0x000A
-#define HTLEFT                          10
-#define CF_PENDATA                      10
-#define IDTRYAGAIN                      10
-#define HELP_CONTEXTMENU                0x000a
-#define LANG_SPANISH                    0x0a
-#define SUBLANG_ARABIC_SYRIA            0x0a
-#define SUBLANG_ENGLISH_BELIZE          0x0a
-#define SUBLANG_SPANISH_PERU            0x0a
-#define SW_FORCEMINIMIZE                11
-#define SW_MAX                          11
-#define WM_SETREDRAW                    0x000B
-#define HTRIGHT                         11
-#define CF_RIFF                         11
-#define IDCONTINUE                      11
-#define HELP_FINDER                     0x000b
-#define LANG_FINNISH                    0x0b
-#define SUBLANG_ARABIC_JORDAN           0x0b
-#define SUBLANG_ENGLISH_TRINIDAD        0x0b
-#define SUBLANG_SPANISH_ARGENTINA       0x0b
-#define VK_CLEAR                        0x0C
-#define WM_SETTEXT                      0x000C
-#define HTTOP                           12
-#define CF_WAVE                         12
-#define HELP_WM_HELP                    0x000c
-#define DTS_SHORTDATECENTURYFORMAT      0x000C
-#define LANG_FRENCH                     0x0c
-#define SUBLANG_ARABIC_LEBANON          0x0c
-#define SUBLANG_ENGLISH_ZIMBABWE        0x0c
-#define SUBLANG_SPANISH_ECUADOR         0x0c
-#define VK_RETURN                       0x0D
-#define WM_GETTEXT                      0x000D
-#define HTTOPLEFT                       13
-#define CF_UNICODETEXT                  13
-#define HELP_SETPOPUP_POS               0x000d
-#define LANG_HEBREW                     0x0d
-#define SUBLANG_ARABIC_KUWAIT           0x0d
-#define SUBLANG_ENGLISH_PHILIPPINES     0x0d
-#define SUBLANG_SPANISH_CHILE           0x0d
-#define WM_GETTEXTLENGTH                0x000E
-#define HTTOPRIGHT                      14
-#define CF_ENHMETAFILE                  14
-#define LANG_HUNGARIAN                  0x0e
-#define SUBLANG_ARABIC_UAE              0x0e
-#define SUBLANG_SPANISH_URUGUAY         0x0e
-#define WM_PAINT                        0x000F
-#define HTBOTTOM                        15
-#define CF_HDROP                        15
-#define LANG_ICELANDIC                  0x0f
-#define SUBLANG_ARABIC_BAHRAIN          0x0f
-#define SUBLANG_SPANISH_PARAGUAY        0x0f
-#define VK_SHIFT                        0x10
-#define WM_CLOSE                        0x0010
-#define HTBOTTOMLEFT                    16
-#define WVR_ALIGNTOP                    0x0010
-#define MK_MBUTTON                      0x0010
-#define TME_NONCLIENT                   0x00000010
-#define CF_LOCALE                       16
-#define HELP_TCARD_DATA                 0x0010
-#define TBSTYLE_AUTOSIZE                0x0010
-#define TTS_NOANIMATE                   0x10
-#define TBS_NOTICKS                     0x0010
-#define UDS_AUTOBUDDY                   0x0010
-#define PBS_SMOOTHREVERSE               0x10
-#define LWS_USECUSTOMTEXT               0x0010
-#define LVS_SORTASCENDING               0x0010
-#define TVS_DISABLEDRAGDROP             0x0010
-#define TVS_EX_RICHTOOLTIP              0x0010
-#define TCS_FORCEICONLEFT               0x0010
-#define MCS_NOTODAY                     0x0010
-#define DTS_APPCANPARSE                 0x0010
-#define NFS_ALL                         0x0010
-#define LANG_ITALIAN                    0x10
-#define SUBLANG_ARABIC_QATAR            0x10
-#define SUBLANG_ENGLISH_INDIA           0x10
-#define SUBLANG_SPANISH_BOLIVIA         0x10
-#define VK_CONTROL                      0x11
-#define WM_QUERYENDSESSION              0x0011
-#define HTBOTTOMRIGHT                   17
-#define CF_DIBV5                        17
-#define HELP_TCARD_OTHER_CALLER         0x0011
-#define LANG_JAPANESE                   0x11
-#define SUBLANG_ENGLISH_MALAYSIA        0x11
-#define SUBLANG_SPANISH_EL_SALVADOR     0x11
-#define VK_MENU                         0x12
-#define WM_QUIT                         0x0012
-#define HTBORDER                        18
-#define CF_MAX                          18
-#define LANG_KOREAN                     0x12
-#define SUBLANG_ENGLISH_SINGAPORE       0x12
-#define SUBLANG_SPANISH_HONDURAS        0x12
-#define VK_PAUSE                        0x13
-#define WM_QUERYOPEN                    0x0013
-#define HTOBJECT                        19
-#define LANG_DUTCH                      0x13
-#define SUBLANG_SPANISH_NICARAGUA       0x13
-#define VK_CAPITAL                      0x14
-#define WM_ERASEBKGND                   0x0014
-#define HTCLOSE                         20
-#define LANG_NORWEGIAN                  0x14
-#define SUBLANG_SPANISH_PUERTO_RICO     0x14
-#define VK_KANA                         0x15
-#define VK_HANGEUL                      0x15
-#define VK_HANGUL                       0x15
-#define WM_SYSCOLORCHANGE               0x0015
-#define HTHELP                          21
-#define LANG_POLISH                     0x15
-#define SUBLANG_SPANISH_US              0x15
-#define WM_ENDSESSION                   0x0016
-#define LANG_PORTUGUESE                 0x16
-#define VK_JUNJA                        0x17
-#define LANG_ROMANSH                    0x17
-#define VK_FINAL                        0x18
-#define WM_SHOWWINDOW                   0x0018
-#define LANG_ROMANIAN                   0x18
-#define VK_HANJA                        0x19
-#define VK_KANJI                        0x19
-#define LANG_RUSSIAN                    0x19
-#define WM_WININICHANGE                 0x001A
-#define LANG_BOSNIAN                    0x1a
-#define LANG_CROATIAN                   0x1a
-#define LANG_SERBIAN                    0x1a
-#define VK_ESCAPE                       0x1B
-#define WM_DEVMODECHANGE                0x001B
-#define LANG_SLOVAK                     0x1b
-#define VK_CONVERT                      0x1C
-#define WM_ACTIVATEAPP                  0x001C
-#define LANG_ALBANIAN                   0x1c
-#define VK_NONCONVERT                   0x1D
-#define WM_FONTCHANGE                   0x001D
-#define LANG_SWEDISH                    0x1d
-#define VK_ACCEPT                       0x1E
-#define WM_TIMECHANGE                   0x001E
-#define LANG_THAI                       0x1e
-#define VK_MODECHANGE                   0x1F
-#define WM_CANCELMODE                   0x001F
-#define LANG_TURKISH                    0x1f
-#define VK_SPACE                        0x20
-#define WM_SETCURSOR                    0x0020
-#define SMTO_ERRORONEXIT                0x0020
-#define WVR_ALIGNLEFT                   0x0020
-#define MK_XBUTTON1                     0x0020
-#define CS_OWNDC                        0x0020
-#define TBSTYLE_NOPREFIX                0x0020
-#define TTS_NOFADE                      0x20
-#define TBS_ENABLESELRANGE              0x0020
-#define UDS_ARROWKEYS                   0x0020
-#define LWS_RIGHT                       0x0020
-#define LVS_SORTDESCENDING              0x0020
-#define TVS_SHOWSELALWAYS               0x0020
-#define TVS_EX_AUTOHSCROLL              0x0020
-#define TCS_FORCELABELLEFT              0x0020
-#define DTS_RIGHTALIGN                  0x0020
-#define NFS_USEFONTASSOC                0x0020
-#define LANG_URDU                       0x20
-#define VK_PRIOR                        0x21
-#define WM_MOUSEACTIVATE                0x0021
-#define LANG_INDONESIAN                 0x21
-#define VK_NEXT                         0x22
-#define WM_CHILDACTIVATE                0x0022
-#define LANG_UKRAINIAN                  0x22
-#define VK_END                          0x23
-#define WM_QUEUESYNC                    0x0023
-#define LANG_BELARUSIAN                 0x23
-#define VK_HOME                         0x24
-#define WM_GETMINMAXINFO                0x0024
-#define LANG_SLOVENIAN                  0x24
-#define VK_LEFT                         0x25
-#define LANG_ESTONIAN                   0x25
-#define VK_UP                           0x26
-#define WM_PAINTICON                    0x0026
-#define LANG_LATVIAN                    0x26
-#define VK_RIGHT                        0x27
-#define WM_ICONERASEBKGND               0x0027
-#define LANG_LITHUANIAN                 0x27
-#define VK_DOWN                         0x28
-#define WM_NEXTDLGCTL                   0x0028
-#define LANG_TAJIK                      0x28
-#define VK_SELECT                       0x29
-#define LANG_FARSI                      0x29
-#define LANG_PERSIAN                    0x29
-#define VK_PRINT                        0x2A
-#define WM_SPOOLERSTATUS                0x002A
-#define LANG_VIETNAMESE                 0x2a
-#define VK_EXECUTE                      0x2B
-#define WM_DRAWITEM                     0x002B
-#define LANG_ARMENIAN                   0x2b
-#define VK_SNAPSHOT                     0x2C
-#define WM_MEASUREITEM                  0x002C
-#define LANG_AZERI                      0x2c
-#define VK_INSERT                       0x2D
-#define WM_DELETEITEM                   0x002D
-#define LANG_BASQUE                     0x2d
-#define VK_DELETE                       0x2E
-#define WM_VKEYTOITEM                   0x002E
-#define LANG_LOWER_SORBIAN              0x2e
-#define LANG_UPPER_SORBIAN              0x2e
-#define VK_HELP                         0x2F
-#define WM_CHARTOITEM                   0x002F
-#define LANG_MACEDONIAN                 0x2f
-#define WM_SETFONT                      0x0030
-#define WM_GETFONT                      0x0031
-#define WM_SETHOTKEY                    0x0032
-#define LANG_TSWANA                     0x32
-#define WM_GETHOTKEY                    0x0033
-#define LANG_XHOSA                      0x34
-#define LANG_ZULU                       0x35
-#define LANG_AFRIKAANS                  0x36
-#define WM_QUERYDRAGICON                0x0037
-#define LANG_GEORGIAN                   0x37
-#define LANG_FAEROESE                   0x38
-#define WM_COMPAREITEM                  0x0039
-#define LANG_HINDI                      0x39
-#define LANG_MALTESE                    0x3a
-#define LANG_SAMI                       0x3b
-#define LANG_IRISH                      0x3c
-#define WM_GETOBJECT                    0x003D
-#define LANG_MALAY                      0x3e
-#define LANG_KAZAK                      0x3f
-#define WVR_ALIGNBOTTOM                 0x0040
-#define MK_XBUTTON2                     0x0040
-#define CS_CLASSDC                      0x0040
-#define HDS_DRAGDROP                    0x0040
-#define BTNS_SHOWTEXT                   0x0040
-#define TTS_BALLOON                     0x40
-#define TBS_FIXEDLENGTH                 0x0040
-#define UDS_HORZ                        0x0040
-#define LVS_SHAREIMAGELISTS             0x0040
-#define TVS_RTLREADING                  0x0040
-#define TVS_EX_FADEINOUTEXPANDOS        0x0040
-#define TCS_HOTTRACK                    0x0040
-#define MCS_NOTRAILINGDATES             0x0040
-#define LANG_KYRGYZ                     0x40
-#define WM_COMPACTING                   0x0041
-#define LANG_SWAHILI                    0x41
-#define LANG_TURKMEN                    0x42
-#define LANG_UZBEK                      0x43
-#define WM_COMMNOTIFY                   0x0044
-#define LANG_TATAR                      0x44
-#define LANG_BENGALI                    0x45
-#define WM_WINDOWPOSCHANGING            0x0046
-#define LANG_PUNJABI                    0x46
-#define WM_WINDOWPOSCHANGED             0x0047
-#define LANG_GUJARATI                   0x47
-#define WM_POWER                        0x0048
-#define LANG_ORIYA                      0x48
-#define LANG_TAMIL                      0x49
-#define WM_COPYDATA                     0x004A
-#define LANG_TELUGU                     0x4a
-#define WM_CANCELJOURNAL                0x004B
-#define LANG_KANNADA                    0x4b
-#define LANG_MALAYALAM                  0x4c
-#define LANG_ASSAMESE                   0x4d
-#define WM_NOTIFY                       0x004E
-#define LANG_MARATHI                    0x4e
-#define LANG_SANSKRIT                   0x4f
-#define WM_INPUTLANGCHANGEREQUEST       0x0050
-#define LANG_MONGOLIAN                  0x50
-#define WM_INPUTLANGCHANGE              0x0051
-#define LANG_TIBETAN                    0x51
-#define WM_TCARD                        0x0052
-#define LANG_WELSH                      0x52
-#define WM_HELP                         0x0053
-#define LANG_KHMER                      0x53
-#define WM_USERCHANGED                  0x0054
-#define LANG_LAO                        0x54
-#define WM_NOTIFYFORMAT                 0x0055
-#define LANG_GALICIAN                   0x56
-#define LANG_KONKANI                    0x57
-#define LANG_MANIPURI                   0x58
-#define LANG_SINDHI                     0x59
-#define LANG_SYRIAC                     0x5a
-#define VK_LWIN                         0x5B
-#define LANG_SINHALESE                  0x5b
-#define VK_RWIN                         0x5C
-#define VK_APPS                         0x5D
-#define LANG_INUKTITUT                  0x5d
-#define LANG_AMHARIC                    0x5e
-#define VK_SLEEP                        0x5F
-#define LANG_TAMAZIGHT                  0x5f
-#define VK_NUMPAD0                      0x60
-#define LANG_KASHMIRI                   0x60
-#define VK_NUMPAD1                      0x61
-#define LANG_NEPALI                     0x61
-#define VK_NUMPAD2                      0x62
-#define LANG_FRISIAN                    0x62
-#define VK_NUMPAD3                      0x63
-#define LANG_PASHTO                     0x63
-#define VK_NUMPAD4                      0x64
-#define LANG_FILIPINO                   0x64
-#define VS_USER_DEFINED                 100
-#define VK_NUMPAD5                      0x65
-#define LANG_DIVEHI                     0x65
-#define VK_NUMPAD6                      0x66
-#define VK_NUMPAD7                      0x67
-#define VK_NUMPAD8                      0x68
-#define LANG_HAUSA                      0x68
-#define VK_NUMPAD9                      0x69
-#define VK_MULTIPLY                     0x6A
-#define LANG_YORUBA                     0x6a
-#define VK_ADD                          0x6B
-#define LANG_QUECHUA                    0x6b
-#define VK_SEPARATOR                    0x6C
-#define LANG_SOTHO                      0x6c
-#define VK_SUBTRACT                     0x6D
-#define LANG_BASHKIR                    0x6d
-#define VK_DECIMAL                      0x6E
-#define LANG_LUXEMBOURGISH              0x6e
-#define VK_DIVIDE                       0x6F
-#define LANG_GREENLANDIC                0x6f
-#define VK_F1                           0x70
-#define LANG_IGBO                       0x70
-#define VK_F2                           0x71
-#define VK_F3                           0x72
-#define VK_F4                           0x73
-#define LANG_TIGRIGNA                   0x73
-#define VK_F5                           0x74
-#define VK_F6                           0x75
-#define VK_F7                           0x76
-#define VK_F8                           0x77
-#define VK_F9                           0x78
-#define WHEEL_DELTA                     120
-#define LANG_YI                         0x78
-#define VK_F10                          0x79
-#define VK_F11                          0x7A
-#define LANG_MAPUDUNGUN                 0x7a
-#define VK_F12                          0x7B
-#define WM_CONTEXTMENU                  0x007B
-#define VK_F13                          0x7C
-#define WM_STYLECHANGING                0x007C
-#define LANG_MOHAWK                     0x7c
-#define VK_F14                          0x7D
-#define WM_STYLECHANGED                 0x007D
-#define VK_F15                          0x7E
-#define WM_DISPLAYCHANGE                0x007E
-#define LANG_BRETON                     0x7e
-#define VK_F16                          0x7F
-#define WM_GETICON                      0x007F
-#define LANG_INVARIANT                  0x7f
-#define VK_F17                          0x80
-#define WM_SETICON                      0x0080
-#define WVR_ALIGNRIGHT                  0x0080
-#define CS_PARENTDC                     0x0080
-#define CF_OWNERDISPLAY                 0x0080
-#define HDS_FULLDRAG                    0x0080
-#define BTNS_WHOLEDROPDOWN              0x0080
-#define TTS_CLOSE                       0x80
-#define TBS_NOTHUMB                     0x0080
-#define UDS_NOTHOUSANDS                 0x0080
-#define LVS_NOLABELWRAP                 0x0080
-#define TVS_NOTOOLTIPS                  0x0080
-#define TVS_EX_PARTIALCHECKBOXES        0x0080
-#define TCS_VERTICAL                    0x0080
-#define MCS_SHORTDAYSOFWEEK             0x0080
-#define LANG_UIGHUR                     0x80
-#define VK_F18                          0x81
-#define WM_NCCREATE                     0x0081
-#define CF_DSPTEXT                      0x0081
-#define LANG_MAORI                      0x81
-#define VK_F19                          0x82
-#define WM_NCDESTROY                    0x0082
-#define CF_DSPBITMAP                    0x0082
-#define LANG_OCCITAN                    0x82
-#define VK_F20                          0x83
-#define WM_NCCALCSIZE                   0x0083
-#define CF_DSPMETAFILEPICT              0x0083
-#define LANG_CORSICAN                   0x83
-#define VK_F21                          0x84
-#define WM_NCHITTEST                    0x0084
-#define LANG_ALSATIAN                   0x84
-#define VK_F22                          0x85
-#define WM_NCPAINT                      0x0085
-#define LANG_YAKUT                      0x85
-#define VK_F23                          0x86
-#define WM_NCACTIVATE                   0x0086
-#define LANG_KICHE                      0x86
-#define VK_F24                          0x87
-#define WM_GETDLGCODE                   0x0087
-#define LANG_KINYARWANDA                0x87
-#define WM_SYNCPAINT                    0x0088
-#define LANG_WOLOF                      0x88
-#define LANG_DARI                       0x8c
-#define CF_DSPENHMETAFILE               0x008E
-#define VK_NUMLOCK                      0x90
-#define VK_SCROLL                       0x91
-#define VK_OEM_NEC_EQUAL                0x92
-#define VK_OEM_FJ_JISHO                 0x92
-#define VK_OEM_FJ_MASSHOU               0x93
-#define VK_OEM_FJ_TOUROKU               0x94
-#define VK_OEM_FJ_LOYA                  0x95
-#define VK_OEM_FJ_ROYA                  0x96
-#define VK_LSHIFT                       0xA0
-#define WM_NCMOUSEMOVE                  0x00A0
-#define VK_RSHIFT                       0xA1
-#define WM_NCLBUTTONDOWN                0x00A1
-#define VK_LCONTROL                     0xA2
-#define WM_NCLBUTTONUP                  0x00A2
-#define VK_RCONTROL                     0xA3
-#define WM_NCLBUTTONDBLCLK              0x00A3
-#define VK_LMENU                        0xA4
-#define WM_NCRBUTTONDOWN                0x00A4
-#define VK_RMENU                        0xA5
-#define WM_NCRBUTTONUP                  0x00A5
-#define VK_BROWSER_BACK                 0xA6
-#define WM_NCRBUTTONDBLCLK              0x00A6
-#define VK_BROWSER_FORWARD              0xA7
-#define WM_NCMBUTTONDOWN                0x00A7
-#define VK_BROWSER_REFRESH              0xA8
-#define WM_NCMBUTTONUP                  0x00A8
-#define VK_BROWSER_STOP                 0xA9
-#define WM_NCMBUTTONDBLCLK              0x00A9
-#define VK_BROWSER_SEARCH               0xAA
-#define VK_BROWSER_FAVORITES            0xAB
-#define WM_NCXBUTTONDOWN                0x00AB
-#define VK_BROWSER_HOME                 0xAC
-#define WM_NCXBUTTONUP                  0x00AC
-#define VK_VOLUME_MUTE                  0xAD
-#define WM_NCXBUTTONDBLCLK              0x00AD
-#define VK_VOLUME_DOWN                  0xAE
-#define VK_VOLUME_UP                    0xAF
-#define VK_MEDIA_NEXT_TRACK             0xB0
-#define EM_GETSEL                       0x00B0
-#define VK_MEDIA_PREV_TRACK             0xB1
-#define EM_SETSEL                       0x00B1
-#define VK_MEDIA_STOP                   0xB2
-#define EM_GETRECT                      0x00B2
-#define VK_MEDIA_PLAY_PAUSE             0xB3
-#define EM_SETRECT                      0x00B3
-#define VK_LAUNCH_MAIL                  0xB4
-#define EM_SETRECTNP                    0x00B4
-#define VK_LAUNCH_MEDIA_SELECT          0xB5
-#define EM_SCROLL                       0x00B5
-#define VK_LAUNCH_APP1                  0xB6
-#define EM_LINESCROLL                   0x00B6
-#define VK_LAUNCH_APP2                  0xB7
-#define EM_SCROLLCARET                  0x00B7
-#define EM_GETMODIFY                    0x00B8
-#define EM_SETMODIFY                    0x00B9
-#define VK_OEM_1                        0xBA
-#define EM_GETLINECOUNT                 0x00BA
-#define VK_OEM_PLUS                     0xBB
-#define EM_LINEINDEX                    0x00BB
-#define VK_OEM_COMMA                    0xBC
-#define EM_SETHANDLE                    0x00BC
-#define VK_OEM_MINUS                    0xBD
-#define EM_GETHANDLE                    0x00BD
-#define VK_OEM_PERIOD                   0xBE
-#define EM_GETTHUMB                     0x00BE
-#define VK_OEM_2                        0xBF
-#define VK_OEM_3                        0xC0
-#define EM_LINELENGTH                   0x00C1
-#define EM_REPLACESEL                   0x00C2
-#define EM_GETLINE                      0x00C4
-#define EM_LIMITTEXT                    0x00C5
-#define EM_CANUNDO                      0x00C6
-#define EM_UNDO                         0x00C7
-#define EM_FMTLINES                     0x00C8
-#define DLG_MAIN                        200
-#define EM_LINEFROMCHAR                 0x00C9
-#define EM_SETTABSTOPS                  0x00CB
-#define EM_SETPASSWORDCHAR              0x00CC
-#define EM_EMPTYUNDOBUFFER              0x00CD
-#define EM_GETFIRSTVISIBLELINE          0x00CE
-#define EM_SETREADONLY                  0x00CF
-#define EM_SETWORDBREAKPROC             0x00D0
-#define EM_GETWORDBREAKPROC             0x00D1
-#define EM_GETPASSWORDCHAR              0x00D2
-#define EM_SETMARGINS                   0x00D3
-#define EM_GETMARGINS                   0x00D4
-#define EM_GETLIMITTEXT                 0x00D5
-#define EM_POSFROMCHAR                  0x00D6
-#define EM_CHARFROMPOS                  0x00D7
-#define EM_SETIMESTATUS                 0x00D8
-#define EM_GETIMESTATUS                 0x00D9
-#define VK_OEM_4                        0xDB
-#define VK_OEM_5                        0xDC
-#define VK_OEM_6                        0xDD
-#define VK_OEM_7                        0xDE
-#define VK_OEM_8                        0xDF
-#define VK_OEM_AX                       0xE1
-#define VK_OEM_102                      0xE2
-#define VK_ICO_HELP                     0xE3
-#define VK_ICO_00                       0xE4
-#define VK_PROCESSKEY                   0xE5
-#define VK_ICO_CLEAR                    0xE6
-#define VK_PACKET                       0xE7
-#define VK_OEM_RESET                    0xE9
-#define VK_OEM_JUMP                     0xEA
-#define VK_OEM_PA1                      0xEB
-#define VK_OEM_PA2                      0xEC
-#define VK_OEM_PA3                      0xED
-#define VK_OEM_WSCTRL                   0xEE
-#define VK_OEM_CUSEL                    0xEF
-#define VK_OEM_ATTN                     0xF0
-#define BM_GETCHECK                     0x00F0
-#define VK_OEM_FINISH                   0xF1
-#define BM_SETCHECK                     0x00F1
-#define VK_OEM_COPY                     0xF2
-#define BM_GETSTATE                     0x00F2
-#define VK_OEM_AUTO                     0xF3
-#define BM_SETSTATE                     0x00F3
-#define VK_OEM_ENLW                     0xF4
-#define BM_SETSTYLE                     0x00F4
-#define VK_OEM_BACKTAB                  0xF5
-#define BM_CLICK                        0x00F5
-#define VK_ATTN                         0xF6
-#define BM_GETIMAGE                     0x00F6
-#define VK_CRSEL                        0xF7
-#define BM_SETIMAGE                     0x00F7
-#define VK_EXSEL                        0xF8
-#define BM_SETDONTCLICK                 0x00F8
-#define VK_EREOF                        0xF9
-#define VK_PLAY                         0xFA
-#define VK_ZOOM                         0xFB
-#define VK_NONAME                       0xFC
-#define VK_PA1                          0xFD
-#define VK_OEM_CLEAR                    0xFE
-#define WM_INPUT_DEVICE_CHANGE          0x00FE
-#define SUBVERSION_MASK                 0x000000FF
-#define WM_INPUT                        0x00FF
-#define WM_KEYFIRST                     0x0100
-#define WM_KEYDOWN                      0x0100
-#define WVR_HREDRAW                     0x0100
-#define HDS_FILTERBAR                   0x0100
-#define TBSTYLE_TOOLTIPS                0x0100
-#define RBS_TOOLTIPS                    0x00000100
-#define TTS_USEVISUALSTYLE              0x100
-#define SBARS_SIZEGRIP                  0x0100
-#define TBS_TOOLTIPS                    0x0100
-#define UDS_HOTTRACK                    0x0100
-#define LVS_AUTOARRANGE                 0x0100
-#define TVS_CHECKBOXES                  0x0100
-#define TVS_EX_EXCLUSIONCHECKBOXES      0x0100
-#define TCS_BUTTONS                     0x0100
-#define MCS_NOSELCHANGEONNAV            0x0100
-#define WM_KEYUP                        0x0101
-#define WM_CHAR                         0x0102
-#define WM_DEADCHAR                     0x0103
-#define WM_SYSKEYDOWN                   0x0104
-#define WM_SYSKEYUP                     0x0105
-#define WM_SYSCHAR                      0x0106
-#define WM_SYSDEADCHAR                  0x0107
-#define WM_UNICHAR                      0x0109
-#define WM_IME_STARTCOMPOSITION         0x010D
-#define WM_IME_ENDCOMPOSITION           0x010E
-#define WM_IME_COMPOSITION              0x010F
-#define WM_IME_KEYLAST                  0x010F
-#define WM_INITDIALOG                   0x0110
-#define WM_COMMAND                      0x0111
-#define WM_SYSCOMMAND                   0x0112
-#define WM_TIMER                        0x0113
-#define WM_HSCROLL                      0x0114
-#define WM_VSCROLL                      0x0115
-#define WM_INITMENU                     0x0116
-#define WM_INITMENUPOPUP                0x0117
-#define WM_MENUSELECT                   0x011F
-#define WM_MENUCHAR                     0x0120
-#define WM_ENTERIDLE                    0x0121
-#define WM_MENURBUTTONUP                0x0122
-#define WM_MENUDRAG                     0x0123
-#define WM_MENUGETOBJECT                0x0124
-#define WM_UNINITMENUPOPUP              0x0125
-#define WM_MENUCOMMAND                  0x0126
-#define WM_CHANGEUISTATE                0x0127
-#define WM_UPDATEUISTATE                0x0128
-#define WM_QUERYUISTATE                 0x0129
-#define DLG_ICON                        300
-#define WM_CTLCOLORMSGBOX               0x0132
-#define WM_CTLCOLOREDIT                 0x0133
-#define WM_CTLCOLORLISTBOX              0x0134
-#define WM_CTLCOLORBTN                  0x0135
-#define WM_CTLCOLORDLG                  0x0136
-#define WM_CTLCOLORSCROLLBAR            0x0137
-#define WM_CTLCOLORSTATIC               0x0138
-#define MN_GETHMENU                     0x01E1
-#define _WIN32_IE_IE20                  0x0200
-#define WM_MOUSEFIRST                   0x0200
-#define WM_MOUSEMOVE                    0x0200
-#define WVR_VREDRAW                     0x0200
-#define CS_NOCLOSE                      0x0200
-#define CF_PRIVATEFIRST                 0x0200
-#define HDS_FLAT                        0x0200
-#define TBSTYLE_WRAPABLE                0x0200
-#define RBS_VARHEIGHT                   0x00000200
-#define TBS_REVERSED                    0x0200
-#define LVS_EDITLABELS                  0x0200
-#define TVS_TRACKSELECT                 0x0200
-#define TVS_EX_DIMMEDCHECKBOXES         0x0200
-#define TCS_MULTILINE                   0x0200
-#define WM_LBUTTONDOWN                  0x0201
-#define WM_LBUTTONUP                    0x0202
-#define WM_LBUTTONDBLCLK                0x0203
-#define WM_RBUTTONDOWN                  0x0204
-#define WM_RBUTTONUP                    0x0205
-#define WM_RBUTTONDBLCLK                0x0206
-#define WM_MBUTTONDOWN                  0x0207
-#define WM_MBUTTONUP                    0x0208
-#define WM_MBUTTONDBLCLK                0x0209
-#define WM_MOUSEWHEEL                   0x020A
-#define WM_XBUTTONDOWN                  0x020B
-#define WM_XBUTTONUP                    0x020C
-#define WM_XBUTTONDBLCLK                0x020D
-#define WM_MOUSEHWHEEL                  0x020E
-#define WM_PARENTNOTIFY                 0x0210
-#define WM_ENTERMENULOOP                0x0211
-#define WM_EXITMENULOOP                 0x0212
-#define WM_NEXTMENU                     0x0213
-#define WM_SIZING                       0x0214
-#define WM_CAPTURECHANGED               0x0215
-#define WM_MOVING                       0x0216
-#define WM_POWERBROADCAST               0x0218
-#define WM_DEVICECHANGE                 0x0219
-#define WM_MDICREATE                    0x0220
-#define WM_MDIDESTROY                   0x0221
-#define WM_MDIACTIVATE                  0x0222
-#define WM_MDIRESTORE                   0x0223
-#define WM_MDINEXT                      0x0224
-#define WM_MDIMAXIMIZE                  0x0225
-#define WM_MDITILE                      0x0226
-#define WM_MDICASCADE                   0x0227
-#define WM_MDIICONARRANGE               0x0228
-#define WM_MDIGETACTIVE                 0x0229
-#define WM_MDISETMENU                   0x0230
-#define WM_ENTERSIZEMOVE                0x0231
-#define WM_EXITSIZEMOVE                 0x0232
-#define WM_DROPFILES                    0x0233
-#define WM_MDIREFRESHMENU               0x0234
-#define WM_IME_SETCONTEXT               0x0281
-#define WM_IME_NOTIFY                   0x0282
-#define WM_IME_CONTROL                  0x0283
-#define WM_IME_COMPOSITIONFULL          0x0284
-#define WM_IME_SELECT                   0x0285
-#define WM_IME_CHAR                     0x0286
-#define WM_IME_REQUEST                  0x0288
-#define WM_IME_KEYDOWN                  0x0290
-#define WM_IME_KEYUP                    0x0291
-#define WM_NCMOUSEHOVER                 0x02A0
-#define WM_MOUSEHOVER                   0x02A1
-#define WM_NCMOUSELEAVE                 0x02A2
-#define WM_MOUSELEAVE                   0x02A3
-#define WM_WTSSESSION_CHANGE            0x02B1
-#define WM_TABLET_FIRST                 0x02c0
-#define WM_TABLET_LAST                  0x02df
-#define CF_PRIVATELAST                  0x02FF
-#define _WIN32_IE_IE30                  0x0300
-#define WM_CUT                          0x0300
-#define CF_GDIOBJFIRST                  0x0300
-#define WM_COPY                         0x0301
-#define _WIN32_IE_IE302                 0x0302
-#define WM_PASTE                        0x0302
-#define WM_CLEAR                        0x0303
-#define WM_UNDO                         0x0304
-#define WM_RENDERFORMAT                 0x0305
-#define WM_RENDERALLFORMATS             0x0306
-#define WM_DESTROYCLIPBOARD             0x0307
-#define WM_DRAWCLIPBOARD                0x0308
-#define WM_PAINTCLIPBOARD               0x0309
-#define WM_VSCROLLCLIPBOARD             0x030A
-#define WM_SIZECLIPBOARD                0x030B
-#define WM_ASKCBFORMATNAME              0x030C
-#define WM_CHANGECBCHAIN                0x030D
-#define WM_HSCROLLCLIPBOARD             0x030E
-#define WM_QUERYNEWPALETTE              0x030F
-#define WM_PALETTEISCHANGING            0x0310
-#define WM_PALETTECHANGED               0x0311
-#define WM_HOTKEY                       0x0312
-#define WM_PRINT                        0x0317
-#define WM_PRINTCLIENT                  0x0318
-#define WM_APPCOMMAND                   0x0319
-#define WM_THEMECHANGED                 0x031A
-#define WM_CLIPBOARDUPDATE              0x031D
-#define WM_DWMCOMPOSITIONCHANGED        0x031E
-#define WM_DWMNCRENDERINGCHANGED        0x031F
-#define WM_DWMCOLORIZATIONCOLORCHANGED  0x0320
-#define WM_DWMWINDOWMAXIMIZEDCHANGE     0x0321
-#define WM_GETTITLEBARINFOEX            0x033F
-#define WM_HANDHELDFIRST                0x0358
-#define WM_HANDHELDLAST                 0x035F
-#define WM_AFXFIRST                     0x0360
-#define WM_AFXLAST                      0x037F
-#define WM_PENWINFIRST                  0x0380
-#define WM_PENWINLAST                   0x038F
-#define WM_DDE_FIRST                    0x03E0
-#define IDC_STATUS                      1000
-#define IDC_LIST1                       1000
-#define IDC_LEFT                        1001
-#define IDC_RIGHT                       1002
-#define IDC_TOP                         1003
-#define IDC_MIDDLE                      1004
-#define IDC_BOTTOM                      1005
-#define IDC_EDIT                        1010
-#define IDC_CLEAR                       1011
-#define CF_GDIOBJLAST                   0x03FF
-#define _WIN32_WINNT_NT4                0x0400
-#define _WIN32_IE_IE40                  0x0400
-#define WM_USER                         0x0400
-#define WVR_VALIDRECTS                  0x0400
-#define HDS_CHECKBOXES                  0x0400
-#define TBSTYLE_ALTDRAG                 0x0400
-#define RBS_BANDBORDERS                 0x00000400
-#define TBS_DOWNISLEFT                  0x0400
-#define LVS_OWNERDRAWFIXED              0x0400
-#define TVS_SINGLEEXPAND                0x0400
-#define TVS_EX_DRAWIMAGEASYNC           0x0400
-#define TCS_FIXEDWIDTH                  0x0400
-#define ctlFirst                        0x0400
-#define psh1                            0x0400
-#define _WIN32_IE_IE401                 0x0401
-#define psh2                            0x0401
-#define psh3                            0x0402
-#define psh4                            0x0403
-#define psh5                            0x0404
-#define psh6                            0x0405
-#define psh7                            0x0406
-#define psh8                            0x0407
-#define psh9                            0x0408
-#define psh10                           0x0409
-#define psh11                           0x040a
-#define psh12                           0x040b
-#define psh13                           0x040c
-#define psh14                           0x040d
-#define psh15                           0x040e
-#define psh16                           0x040f
-#define _WIN32_WINDOWS                  0x0410
-#define chx1                            0x0410
-#define chx2                            0x0411
-#define chx3                            0x0412
-#define chx4                            0x0413
-#define chx5                            0x0414
-#define chx6                            0x0415
-#define chx7                            0x0416
-#define chx8                            0x0417
-#define chx9                            0x0418
-#define chx10                           0x0419
-#define chx11                           0x041a
-#define chx12                           0x041b
-#define chx13                           0x041c
-#define chx14                           0x041d
-#define chx15                           0x041e
-#define chx16                           0x041f
-#define rad1                            0x0420
-#define rad2                            0x0421
-#define rad3                            0x0422
-#define rad4                            0x0423
-#define rad5                            0x0424
-#define rad6                            0x0425
-#define rad7                            0x0426
-#define rad8                            0x0427
-#define rad9                            0x0428
-#define rad10                           0x0429
-#define rad11                           0x042a
-#define rad12                           0x042b
-#define rad13                           0x042c
-#define rad14                           0x042d
-#define rad15                           0x042e
-#define rad16                           0x042f
-#define grp1                            0x0430
-#define grp2                            0x0431
-#define grp3                            0x0432
-#define grp4                            0x0433
-#define frm1                            0x0434
-#define frm2                            0x0435
-#define frm3                            0x0436
-#define frm4                            0x0437
-#define rct1                            0x0438
-#define rct2                            0x0439
-#define rct3                            0x043a
-#define rct4                            0x043b
-#define ico1                            0x043c
-#define ico2                            0x043d
-#define ico3                            0x043e
-#define ico4                            0x043f
-#define stc1                            0x0440
-#define stc2                            0x0441
-#define stc3                            0x0442
-#define stc4                            0x0443
-#define stc5                            0x0444
-#define stc6                            0x0445
-#define stc7                            0x0446
-#define stc8                            0x0447
-#define stc9                            0x0448
-#define stc10                           0x0449
-#define stc11                           0x044a
-#define stc12                           0x044b
-#define stc13                           0x044c
-#define stc14                           0x044d
-#define stc15                           0x044e
-#define stc16                           0x044f
-#define stc17                           0x0450
-#define stc18                           0x0451
-#define stc19                           0x0452
-#define stc20                           0x0453
-#define stc21                           0x0454
-#define stc22                           0x0455
-#define stc23                           0x0456
-#define stc24                           0x0457
-#define stc25                           0x0458
-#define stc26                           0x0459
-#define stc27                           0x045a
-#define stc28                           0x045b
-#define stc29                           0x045c
-#define stc30                           0x045d
-#define stc31                           0x045e
-#define stc32                           0x045f
-#define lst1                            0x0460
-#define lst2                            0x0461
-#define lst3                            0x0462
-#define lst4                            0x0463
-#define lst5                            0x0464
-#define lst6                            0x0465
-#define lst7                            0x0466
-#define lst8                            0x0467
-#define lst9                            0x0468
-#define lst10                           0x0469
-#define lst11                           0x046a
-#define lst12                           0x046b
-#define lst13                           0x046c
-#define lst14                           0x046d
-#define lst15                           0x046e
-#define lst16                           0x046f
-#define cmb1                            0x0470
-#define cmb2                            0x0471
-#define cmb3                            0x0472
-#define cmb4                            0x0473
-#define cmb5                            0x0474
-#define cmb6                            0x0475
-#define cmb7                            0x0476
-#define cmb8                            0x0477
-#define cmb9                            0x0478
-#define cmb10                           0x0479
-#define cmb11                           0x047a
-#define cmb12                           0x047b
-#define cmb13                           0x047c
-#define cmb14                           0x047d
-#define cmb15                           0x047e
-#define cmb16                           0x047f
-#define edt1                            0x0480
-#define edt2                            0x0481
-#define edt3                            0x0482
-#define edt4                            0x0483
-#define edt5                            0x0484
-#define edt6                            0x0485
-#define edt7                            0x0486
-#define edt8                            0x0487
-#define edt9                            0x0488
-#define edt10                           0x0489
-#define edt11                           0x048a
-#define edt12                           0x048b
-#define edt13                           0x048c
-#define edt14                           0x048d
-#define edt15                           0x048e
-#define edt16                           0x048f
-#define scr1                            0x0490
-#define scr2                            0x0491
-#define scr3                            0x0492
-#define scr4                            0x0493
-#define scr5                            0x0494
-#define scr6                            0x0495
-#define scr7                            0x0496
-#define scr8                            0x0497
-#define ctl1                            0x04A0
-#define ctlLast                         0x04ff
-#define _WIN32_WINNT_WIN2K              0x0500
-#define _WIN32_IE_IE50                  0x0500
-#define _WIN32_WINNT_WINXP              0x0501
-#define _WIN32_IE_IE501                 0x0501
-#define _WIN32_WINNT_WS03               0x0502
-#define _WIN32_IE_IE55                  0x0550
-#define _WIN32_WINNT_LONGHORN           0x0600
-#define _WIN32_IE_IE60                  0x0600
-#define FILEOPENORD                     1536
-#define _WIN32_IE_IE60SP1               0x0601
-#define MULTIFILEOPENORD                1537
-#define _WIN32_IE_WS03                  0x0602
-#define PRINTDLGORD                     1538
-#define _WIN32_IE_IE60SP2               0x0603
-#define PRNSETUPDLGORD                  1539
-#define FINDDLGORD                      1540
-#define REPLACEDLGORD                   1541
-#define FONTDLGORD                      1542
-#define FORMATDLGORD31                  1543
-#define FORMATDLGORD30                  1544
-#define RUNDLGORD                       1545
-#define PAGESETUPDLGORD                 1546
-#define NEWFILEOPENORD                  1547
-#define PRINTDLGEXORD                   1549
-#define PAGESETUPDLGORDMOTIF            1550
-#define COLORMGMTDLGORD                 1551
-#define NEWFILEOPENV2ORD                1552
-#define NEWFILEOPENV3ORD                1553
-#define _WIN32_IE_IE70                  0x0700
-#define CS_SAVEBITS                     0x0800
-#define HDS_NOSIZING                    0x0800
-#define TBSTYLE_FLAT                    0x0800
-#define RBS_FIXEDORDER                  0x00000800
-#define SBARS_TOOLTIPS                  0x0800
-#define SBT_TOOLTIPS                    0x0800
-#define TBS_NOTIFYBEFOREMOVE            0x0800
-#define LVS_ALIGNLEFT                   0x0800
-#define TVS_INFOTIP                     0x0800
-#define TCS_RAGGEDRIGHT                 0x0800
-#define LVS_ALIGNMASK                   0x0c00
-#define CS_BYTEALIGNCLIENT              0x1000
-#define HDS_OVERFLOW                    0x1000
-#define TBSTYLE_LIST                    0x1000
-#define RBS_REGISTERDROP                0x00001000
-#define TBS_TRANSPARENTBKGND            0x1000
-#define LVS_OWNERDATA                   0x1000
-#define TVS_FULLROWSELECT               0x1000
-#define TCS_FOCUSONBUTTONDOWN           0x1000
-#define CS_BYTEALIGNWINDOW              0x2000
-#define TBSTYLE_CUSTOMERASE             0x2000
-#define RBS_AUTOSIZE                    0x00002000
-#define LVS_NOSCROLL                    0x2000
-#define TVS_NOSCROLL                    0x2000
-#define TCS_OWNERDRAWFIXED              0x2000
-#define CS_GLOBALCLASS                  0x4000
-#define TBSTYLE_REGISTERDROP            0x4000
-#define RBS_VERTICALGRIPPER             0x00004000
-#define LVS_NOCOLUMNHEADER              0x4000
-#define TVS_NONEVENHEIGHT               0x4000
-#define TCS_TOOLTIPS                    0x4000
-#define IDH_NO_HELP                     28440
-#define IDH_MISSING_CONTEXT             28441
-#define IDH_GENERIC_HELP_BUTTON         28442
-#define IDH_OK                          28443
-#define IDH_CANCEL                      28444
-#define IDH_HELP                        28445
-#define LANG_BOSNIAN_NEUTRAL            0x781a
-#define LANG_CHINESE_TRADITIONAL        0x7c04
-#define LANG_SERBIAN_NEUTRAL            0x7c1a
-#define IDTIMEOUT                       32000
-#define OCR_NORMAL                      32512
-#define OIC_SAMPLE                      32512
-#define OCR_IBEAM                       32513
-#define OIC_HAND                        32513
-#define OCR_WAIT                        32514
-#define OIC_QUES                        32514
-#define OCR_CROSS                       32515
-#define OIC_BANG                        32515
-#define OCR_UP                          32516
-#define OIC_NOTE                        32516
-#define OIC_WINLOGO                     32517
-#define OIC_SHIELD                      32518
-#define OCR_SIZE                        32640
-#define OCR_ICON                        32641
-#define OCR_SIZENWSE                    32642
-#define OCR_SIZENESW                    32643
-#define OCR_SIZEWE                      32644
-#define OCR_SIZENS                      32645
-#define OCR_SIZEALL                     32646
-#define OCR_ICOCUR                      32647
-#define OCR_NO                          32648
-#define OCR_HAND                        32649
-#define OCR_APPSTARTING                 32650
-#define OBM_LFARROWI                    32734
-#define OBM_RGARROWI                    32735
-#define OBM_DNARROWI                    32736
-#define OBM_UPARROWI                    32737
-#define OBM_COMBO                       32738
-#define OBM_MNARROW                     32739
-#define OBM_LFARROWD                    32740
-#define OBM_RGARROWD                    32741
-#define OBM_DNARROWD                    32742
-#define OBM_UPARROWD                    32743
-#define OBM_RESTORED                    32744
-#define OBM_ZOOMD                       32745
-#define OBM_REDUCED                     32746
-#define OBM_RESTORE                     32747
-#define OBM_ZOOM                        32748
-#define OBM_REDUCE                      32749
-#define OBM_LFARROW                     32750
-#define OBM_RGARROW                     32751
-#define OBM_DNARROW                     32752
-#define OBM_UPARROW                     32753
-#define OBM_CLOSE                       32754
-#define OBM_OLD_RESTORE                 32755
-#define OBM_OLD_ZOOM                    32756
-#define OBM_OLD_REDUCE                  32757
-#define OBM_BTNCORNERS                  32758
-#define OBM_CHECKBOXES                  32759
-#define OBM_CHECK                       32760
-#define OBM_BTSIZE                      32761
-#define OBM_OLD_LFARROW                 32762
-#define OBM_OLD_RGARROW                 32763
-#define OBM_OLD_DNARROW                 32764
-#define OBM_OLD_UPARROW                 32765
-#define OBM_SIZE                        32766
-#define OBM_OLD_CLOSE                   32767
-#define WM_APP                          0x8000
-#define HELP_TCARD                      0x8000
-#define TBSTYLE_TRANSPARENT             0x8000
-#define RBS_DBLCLKTOGGLE                0x00008000
-#define LVS_NOSORTHEADER                0x8000
-#define TVS_NOHSCROLL                   0x8000
-#define TCS_FOCUSNEVER                  0x8000
-#define SC_SIZE                         0xF000
-#define SC_SEPARATOR                    0xF00F
-#define SC_MOVE                         0xF010
-#define SC_MINIMIZE                     0xF020
-#define SC_MAXIMIZE                     0xF030
-#define SC_NEXTWINDOW                   0xF040
-#define SC_PREVWINDOW                   0xF050
-#define SC_CLOSE                        0xF060
-#define SC_VSCROLL                      0xF070
-#define SC_HSCROLL                      0xF080
-#define SC_MOUSEMENU                    0xF090
-#define SC_KEYMENU                      0xF100
-#define SC_ARRANGE                      0xF110
-#define SC_RESTORE                      0xF120
-#define SC_TASKLIST                     0xF130
-#define SC_SCREENSAVE                   0xF140
-#define SC_HOTKEY                       0xF150
-#define SC_DEFAULT                      0xF160
-#define SC_MONITORPOWER                 0xF170
-#define SC_CONTEXTHELP                  0xF180
-#define LVS_TYPESTYLEMASK               0xfc00
-#define SPVERSION_MASK                  0x0000FF00
-#define UNICODE_NOCHAR                  0xFFFF
-#define IDC_STATIC                      -1
-
-// Next default values for new objects
-// 
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        101
-#define _APS_NEXT_COMMAND_VALUE         40001
-#define _APS_NEXT_CONTROL_VALUE         1002
-#define _APS_NEXT_SYMED_VALUE           101
-#endif
-#endif
diff --git a/PC/associator.rc b/PC/associator.rc
deleted file mode 100644
index 374a3b8..0000000
--- a/PC/associator.rc
+++ /dev/null
@@ -1,97 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "associator.h"
-#include "winuser.h"
-/////////////////////////////////////////////////////////////////////////////
-// English (U.K.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-DLG_ICON                ICON                    "launcher.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-DLG_MAIN DIALOGEX 20, 40, 236, 183
-// Make the dialog visible after positioning at centre
-STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_NOPARENTNOTIFY
-CAPTION "Python File Associations Have Ceased To Be!"
-FONT 10, "Arial", 400, 0, 0x0
-BEGIN
-    LTEXT           "You've uninstalled the Python Launcher, so now there are no applications associated with Python files.",IDC_STATIC,7,7,225,18
-    LTEXT           "You may wish to associate Python files with one of the Python versions installed on your machine, listed below:",IDC_STATIC,7,27,225,18
-    CONTROL         "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,6,49,224,105
-    PUSHBUTTON      "&Associate with selected Python",IDOK,6,164,117,14,WS_DISABLED
-    PUSHBUTTON      "Do&n't associate Python files",IDCANCEL,128,164,102,14
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE 
-BEGIN
-    "resource.h\0"
-END
-
-2 TEXTINCLUDE 
-BEGIN
-    "\0"
-END
-
-3 TEXTINCLUDE 
-BEGIN
-    "\r\n"
-    "\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO 
-BEGIN
-    DLG_MAIN, DIALOG
-    BEGIN
-        RIGHTMARGIN, 238
-    END
-END
-#endif    // APSTUDIO_INVOKED
-
-#endif    // English (U.K.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif    // not APSTUDIO_INVOKED
-
diff --git a/PCbuild/associator.vcxproj b/PCbuild/associator.vcxproj
deleted file mode 100644
index 595b2ce..0000000
--- a/PCbuild/associator.vcxproj
+++ /dev/null
@@ -1,84 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{023B3CDA-59C8-45FD-95DC-F8973322ED34}</ProjectGuid>
-    <RootNamespace>associator</RootNamespace>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="pyproject.props" />
-    <Import Project="debug.props" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="pyproject.props" />
-    <Import Project="release.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup />
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\PC\associator.c" />
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="..\PC\associator.rc" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\PC\associator.h" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/PCbuild/associator.vcxproj.filters b/PCbuild/associator.vcxproj.filters
deleted file mode 100644
index 0846afa..0000000
--- a/PCbuild/associator.vcxproj.filters
+++ /dev/null
@@ -1,32 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\PC\associator.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="..\PC\associator.rc">
-      <Filter>Resource Files</Filter>
-    </ResourceCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\PC\associator.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln
index 17bfe96..add8d1a 100644
--- a/PCbuild/pcbuild.sln
+++ b/PCbuild/pcbuild.sln
@@ -72,8 +72,6 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pywlauncher", "pywlauncher.vcxproj", "{1D4B18D3-7C12-4ECB-9179-8531FF876CE6}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "associator", "associator.vcxproj", "{023B3CDA-59C8-45FD-95DC-F8973322ED34}"
-EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
