diff options
author | Jesús Corrius <jesus@softcatala.org> | 2012-06-04 11:26:20 +0200 |
---|---|---|
committer | Jesús Corrius <jesus@softcatala.org> | 2012-06-04 11:26:20 +0200 |
commit | 67673e9ba6788f4c85bfdaac6091148086f12941 (patch) | |
tree | 6e1b9de8b424f6a163bb76f93e8ef9e867f00810 /desktop/win32 | |
parent | e7035b865f200ca26f4ba197180a36dd498ca4ee (diff) |
Move the AppUserModelID code to the launcher
Diffstat (limited to 'desktop/win32')
-rw-r--r-- | desktop/win32/source/applauncher/appusermodelid.cxx | 72 | ||||
-rw-r--r-- | desktop/win32/source/applauncher/appusermodelid.hxx | 34 | ||||
-rw-r--r-- | desktop/win32/source/applauncher/launcher.cxx | 44 |
3 files changed, 37 insertions, 113 deletions
diff --git a/desktop/win32/source/applauncher/appusermodelid.cxx b/desktop/win32/source/applauncher/appusermodelid.cxx deleted file mode 100644 index 209581768f93..000000000000 --- a/desktop/win32/source/applauncher/appusermodelid.cxx +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Version: MPL 1.1 / GPLv3+ / LGPLv3+ - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License or as specified alternatively below. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * Major Contributor(s): - * Copyright (C) 2012 Jess Corrius <jesus@softcatala.org> (initial developer) - * - * All Rights Reserved. - * - * For minor contributions see the git repository. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 3 or later (the "GPLv3+"), or - * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), - * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable - * instead of those above. - */ - -#include "appusermodelid.hxx" - -#include <winbase.h> -#include <shlwapi.h> - -#define PACKVERSION(major,minor) MAKELONG(minor,major) - -void SetExplicitAppUserModelID(PCWSTR AppID) -{ - WCHAR szShell32[MAX_PATH]; - GetSystemDirectoryW(szShell32, MAX_PATH); - wcscat(szShell32, L"\\Shell32.dll"); - - HINSTANCE hinstDll = LoadLibraryW(szShell32); - - if(hinstDll) - { - DLLVERSIONINFO dvi; - ZeroMemory(&dvi, sizeof(dvi)); - dvi.cbSize = sizeof(dvi); - - DLLGETVERSIONPROC pDllGetVersion; - pDllGetVersion = (DLLGETVERSIONPROC)GetProcAddress(hinstDll, "DllGetVersion"); - HRESULT hr = (*pDllGetVersion)(&dvi); - - if(SUCCEEDED(hr)) - { - DWORD dwVersion = PACKVERSION(dvi.dwMajorVersion, dvi.dwMinorVersion); - if(dwVersion >= PACKVERSION(6,1)) // Shell32 version in Windows 7 - { - typedef HRESULT (WINAPI *SETCURRENTPROCESSEXPLICITAPPUSERMODELID)(PCWSTR); - SETCURRENTPROCESSEXPLICITAPPUSERMODELID pSetCurrentProcessExplicitAppUserModelID; - pSetCurrentProcessExplicitAppUserModelID = - (SETCURRENTPROCESSEXPLICITAPPUSERMODELID)GetProcAddress(hinstDll, "SetCurrentProcessExplicitAppUserModelID"); - - if(pSetCurrentProcessExplicitAppUserModelID) - (*pSetCurrentProcessExplicitAppUserModelID) (AppID); - } - } - } - FreeLibrary(hinstDll); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/desktop/win32/source/applauncher/appusermodelid.hxx b/desktop/win32/source/applauncher/appusermodelid.hxx deleted file mode 100644 index 42941d0653b6..000000000000 --- a/desktop/win32/source/applauncher/appusermodelid.hxx +++ /dev/null @@ -1,34 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Version: MPL 1.1 / GPLv3+ / LGPLv3+ - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License or as specified alternatively below. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * Major Contributor(s): - * Copyright (C) 2012 Jess Corrius <jesus@softcatala.org> (initial developer) - * - * All Rights Reserved. - * - * For minor contributions see the git repository. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 3 or later (the "GPLv3+"), or - * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), - * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable - * instead of those above. - */ - -#pragma once -#include <windows.h> - -void SetExplicitAppUserModelID(LPCWSTR AppID); - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/desktop/win32/source/applauncher/launcher.cxx b/desktop/win32/source/applauncher/launcher.cxx index 074e2b533270..24843a41ef02 100644 --- a/desktop/win32/source/applauncher/launcher.cxx +++ b/desktop/win32/source/applauncher/launcher.cxx @@ -26,10 +26,7 @@ * ************************************************************************/ - #include "launcher.hxx" -#include "appusermodelid.hxx" - #ifndef _WINDOWS_ # define WIN32_LEAN_AND_MEAN @@ -38,15 +35,18 @@ #endif # include <windows.h> # include <shellapi.h> +# include <winbase.h> +# include <shlwapi.h> #if defined _MSC_VER #pragma warning(pop) #endif #endif - #include <stdlib.h> #include <malloc.h> +#define PACKVERSION(major,minor) MAKELONG(minor,major) + #ifdef __MINGW32__ extern "C" int APIENTRY WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) @@ -54,10 +54,40 @@ extern "C" int APIENTRY WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) extern "C" int APIENTRY _tWinMain( HINSTANCE, HINSTANCE, LPTSTR, int ) #endif { - // Set an explicit Application User Model ID for the process + // Set an explicit Application User Model ID for the process + + WCHAR szShell32[MAX_PATH]; + GetSystemDirectoryW(szShell32, MAX_PATH); + wcscat(szShell32, L"\\Shell32.dll"); - // FIXME: Comment this out until I find a fix for minGW. - // SetExplicitAppUserModelID(APPUSERMODELID); + HINSTANCE hinstDll = LoadLibraryW(szShell32); + + if(hinstDll) + { + DLLVERSIONINFO dvi; + ZeroMemory(&dvi, sizeof(dvi)); + dvi.cbSize = sizeof(dvi); + + DLLGETVERSIONPROC pDllGetVersion; + pDllGetVersion = (DLLGETVERSIONPROC)GetProcAddress(hinstDll, "DllGetVersion"); + HRESULT hr = (*pDllGetVersion)(&dvi); + + if(SUCCEEDED(hr)) + { + DWORD dwVersion = PACKVERSION(dvi.dwMajorVersion, dvi.dwMinorVersion); + if(dwVersion >= PACKVERSION(6,1)) // Shell32 version in Windows 7 + { + typedef HRESULT (WINAPI *SETCURRENTPROCESSEXPLICITAPPUSERMODELID)(PCWSTR); + SETCURRENTPROCESSEXPLICITAPPUSERMODELID pSetCurrentProcessExplicitAppUserModelID; + pSetCurrentProcessExplicitAppUserModelID = + (SETCURRENTPROCESSEXPLICITAPPUSERMODELID)GetProcAddress(hinstDll, "SetCurrentProcessExplicitAppUserModelID"); + + if(pSetCurrentProcessExplicitAppUserModelID) + (*pSetCurrentProcessExplicitAppUserModelID) (APPUSERMODELID); + } + } + } + FreeLibrary(hinstDll); // Retreive startup info |