Kaydet (Commit) 67673e9b authored tarafından Jesús Corrius's avatar Jesús Corrius

Move the AppUserModelID code to the launcher

üst e7035b86
...@@ -127,7 +127,6 @@ $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \ ...@@ -127,7 +127,6 @@ $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
directxcanvas \ directxcanvas \
winextendloaderenv \ winextendloaderenv \
winlauncher \ winlauncher \
appusermodelid \
)) ))
else else
......
...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,sbase,\ ...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,sbase,\
$(gb_STDLIBS) \ $(gb_STDLIBS) \
)) ))
$(eval $(call gb_Executable_use_static_libraries,sbase,\
appusermodelid \
))
$(eval $(call gb_Executable_add_libs,sbase,\ $(eval $(call gb_Executable_add_libs,sbase,\
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \ $(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
)) ))
......
...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,scalc,\ ...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,scalc,\
$(gb_STDLIBS) \ $(gb_STDLIBS) \
)) ))
$(eval $(call gb_Executable_use_static_libraries,scalc,\
appusermodelid \
))
$(eval $(call gb_Executable_add_libs,scalc,\ $(eval $(call gb_Executable_add_libs,scalc,\
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \ $(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
)) ))
......
...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,sdraw,\ ...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,sdraw,\
$(gb_STDLIBS) \ $(gb_STDLIBS) \
)) ))
$(eval $(call gb_Executable_use_static_libraries,sdraw,\
appusermodelid \
))
$(eval $(call gb_Executable_add_libs,sdraw,\ $(eval $(call gb_Executable_add_libs,sdraw,\
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \ $(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
)) ))
......
...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,simpress,\ ...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,simpress,\
$(gb_STDLIBS) \ $(gb_STDLIBS) \
)) ))
$(eval $(call gb_Executable_use_static_libraries,simpress,\
appusermodelid \
))
$(eval $(call gb_Executable_add_libs,simpress,\ $(eval $(call gb_Executable_add_libs,simpress,\
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \ $(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
)) ))
......
...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,smath,\ ...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,smath,\
$(gb_STDLIBS) \ $(gb_STDLIBS) \
)) ))
$(eval $(call gb_Executable_use_static_libraries,smath,\
appusermodelid \
))
$(eval $(call gb_Executable_add_libs,smath,\ $(eval $(call gb_Executable_add_libs,smath,\
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \ $(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
)) ))
......
...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,sweb,\ ...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,sweb,\
$(gb_STDLIBS) \ $(gb_STDLIBS) \
)) ))
$(eval $(call gb_Executable_use_static_libraries,sweb,\
appusermodelid \
))
$(eval $(call gb_Executable_add_libs,sweb,\ $(eval $(call gb_Executable_add_libs,sweb,\
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \ $(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
)) ))
......
...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,swriter,\ ...@@ -37,10 +37,6 @@ $(eval $(call gb_Executable_use_libraries,swriter,\
$(gb_STDLIBS) \ $(gb_STDLIBS) \
)) ))
$(eval $(call gb_Executable_use_static_libraries,swriter,\
appusermodelid \
))
$(eval $(call gb_Executable_add_libs,swriter,\ $(eval $(call gb_Executable_add_libs,swriter,\
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \ $(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
)) ))
......
...@@ -77,7 +77,6 @@ ifeq ($(OS),WNT) ...@@ -77,7 +77,6 @@ ifeq ($(OS),WNT)
$(eval $(call gb_Module_add_targets,desktop,\ $(eval $(call gb_Module_add_targets,desktop,\
StaticLibrary_winextendloaderenv \ StaticLibrary_winextendloaderenv \
StaticLibrary_winlauncher \ StaticLibrary_winlauncher \
StaticLibrary_appusermodelid \
Executable_crashrep.com \ Executable_crashrep.com \
Executable_quickstart \ Executable_quickstart \
Executable_sbase \ Executable_sbase \
......
# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
#
# 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 Jesús 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.
$(eval $(call gb_StaticLibrary_StaticLibrary,appusermodelid))
$(eval $(call gb_StaticLibrary_add_defs,appusermodelid,\
-DUNICODE \
))
$(eval $(call gb_StaticLibrary_add_noexception_objects,appusermodelid,\
desktop/win32/source/applauncher/appusermodelid \
))
# vim:set shiftwidth=4 softtabstop=4 expandtab:
/* -*- 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: */
/* -*- 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 Jesús 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: */
...@@ -26,10 +26,7 @@ ...@@ -26,10 +26,7 @@
* *
************************************************************************/ ************************************************************************/
#include "launcher.hxx" #include "launcher.hxx"
#include "appusermodelid.hxx"
#ifndef _WINDOWS_ #ifndef _WINDOWS_
# define WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN
...@@ -38,15 +35,18 @@ ...@@ -38,15 +35,18 @@
#endif #endif
# include <windows.h> # include <windows.h>
# include <shellapi.h> # include <shellapi.h>
# include <winbase.h>
# include <shlwapi.h>
#if defined _MSC_VER #if defined _MSC_VER
#pragma warning(pop) #pragma warning(pop)
#endif #endif
#endif #endif
#include <stdlib.h> #include <stdlib.h>
#include <malloc.h> #include <malloc.h>
#define PACKVERSION(major,minor) MAKELONG(minor,major)
#ifdef __MINGW32__ #ifdef __MINGW32__
extern "C" int APIENTRY WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) extern "C" int APIENTRY WinMain( HINSTANCE, HINSTANCE, LPSTR, int )
...@@ -54,10 +54,40 @@ 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 ) extern "C" int APIENTRY _tWinMain( HINSTANCE, HINSTANCE, LPTSTR, int )
#endif #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. HINSTANCE hinstDll = LoadLibraryW(szShell32);
// SetExplicitAppUserModelID(APPUSERMODELID);
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 // Retreive startup info
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment