set explicit Application User Models IDs in the native Windows launchers
Change-Id: Ib60a2a4f0d28a53d997731eb34b118cc9b9f822d
This commit is contained in:
@@ -121,6 +121,7 @@ $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
|
||||
directxcanvas \
|
||||
winextendloaderenv \
|
||||
winlauncher \
|
||||
appusermodelid \
|
||||
))
|
||||
|
||||
else
|
||||
|
||||
@@ -37,6 +37,10 @@ $(eval $(call gb_Executable_use_libraries,sbase,\
|
||||
$(gb_STDLIBS) \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_use_static_libraries,sbase,\
|
||||
appusermodelid \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_add_libs,sbase,\
|
||||
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
|
||||
))
|
||||
|
||||
@@ -37,6 +37,10 @@ $(eval $(call gb_Executable_use_libraries,scalc,\
|
||||
$(gb_STDLIBS) \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_use_static_libraries,scalc,\
|
||||
appusermodelid \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_add_libs,scalc,\
|
||||
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
|
||||
))
|
||||
|
||||
@@ -37,6 +37,10 @@ $(eval $(call gb_Executable_use_libraries,sdraw,\
|
||||
$(gb_STDLIBS) \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_use_static_libraries,sdraw,\
|
||||
appusermodelid \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_add_libs,sdraw,\
|
||||
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
|
||||
))
|
||||
|
||||
@@ -37,6 +37,10 @@ $(eval $(call gb_Executable_use_libraries,simpress,\
|
||||
$(gb_STDLIBS) \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_use_static_libraries,simpress,\
|
||||
appusermodelid \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_add_libs,simpress,\
|
||||
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
|
||||
))
|
||||
|
||||
@@ -37,6 +37,10 @@ $(eval $(call gb_Executable_use_libraries,smath,\
|
||||
$(gb_STDLIBS) \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_use_static_libraries,smath,\
|
||||
appusermodelid \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_add_libs,smath,\
|
||||
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
|
||||
))
|
||||
|
||||
@@ -37,6 +37,10 @@ $(eval $(call gb_Executable_use_libraries,sweb,\
|
||||
$(gb_STDLIBS) \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_use_static_libraries,sweb,\
|
||||
appusermodelid \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_add_libs,sweb,\
|
||||
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
|
||||
))
|
||||
|
||||
@@ -37,6 +37,10 @@ $(eval $(call gb_Executable_use_libraries,swriter,\
|
||||
$(gb_STDLIBS) \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_use_static_libraries,swriter,\
|
||||
appusermodelid \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Executable_add_libs,swriter,\
|
||||
$(call gb_CxxObject_get_target,desktop/win32/source/applauncher/launcher) \
|
||||
))
|
||||
|
||||
@@ -77,6 +77,7 @@ ifeq ($(OS),WNT)
|
||||
$(eval $(call gb_Module_add_targets,desktop,\
|
||||
StaticLibrary_winextendloaderenv \
|
||||
StaticLibrary_winlauncher \
|
||||
StaticLibrary_appusermodelid \
|
||||
Executable_crashrep.com \
|
||||
Executable_quickstart \
|
||||
Executable_sbase \
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# -*- 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:
|
||||
@@ -0,0 +1,72 @@
|
||||
/* -*- 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.
|
||||
*/
|
||||
|
||||
#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_s(szShell32, MAX_PATH, 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: */
|
||||
@@ -0,0 +1,34 @@
|
||||
/* -*- 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: */
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
|
||||
#include "launcher.hxx"
|
||||
#include "appusermodelid.hxx"
|
||||
|
||||
|
||||
#ifndef _WINDOWS_
|
||||
@@ -53,6 +54,10 @@ 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
|
||||
|
||||
SetExplicitAppUserModelID(APPUSERMODELID);
|
||||
|
||||
// Retreive startup info
|
||||
|
||||
STARTUPINFO aStartupInfo;
|
||||
@@ -86,6 +91,7 @@ extern "C" int APIENTRY _tWinMain( HINSTANCE, HINSTANCE, LPTSTR, int )
|
||||
_tsplitpath( szApplicationName, szDrive, szDir, szFileName, szExt );
|
||||
_tmakepath( szApplicationName, szDrive, szDir, OFFICE_IMAGE_NAME, _T(".exe") );
|
||||
|
||||
|
||||
PROCESS_INFORMATION aProcessInfo;
|
||||
|
||||
BOOL fSuccess = CreateProcess(
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
#error Need C++ to compile
|
||||
#endif
|
||||
|
||||
#include <Windows.h>
|
||||
|
||||
#ifndef _INC_TCHAR
|
||||
# ifdef UNICODE
|
||||
# define _UNICODE
|
||||
@@ -20,5 +22,6 @@
|
||||
#define OFFICE_IMAGE_NAME _T("soffice")
|
||||
|
||||
extern _TCHAR APPLICATION_SWITCH[];
|
||||
extern LPCWSTR APPUSERMODELID;
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
||||
@@ -32,4 +32,6 @@
|
||||
|
||||
_TCHAR APPLICATION_SWITCH[] = _T( "--base" );
|
||||
|
||||
LPCWSTR APPUSERMODELID = L"TheDocumentFoundation.LibreOffice.Base";
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
||||
@@ -32,4 +32,6 @@
|
||||
|
||||
_TCHAR APPLICATION_SWITCH[] = _T( "--calc" );
|
||||
|
||||
LPCWSTR APPUSERMODELID = L"TheDocumentFoundation.LibreOffice.Calc";
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
||||
@@ -32,4 +32,6 @@
|
||||
|
||||
_TCHAR APPLICATION_SWITCH[] = _T( "--draw" );
|
||||
|
||||
LPCWSTR APPUSERMODELID = L"TheDocumentFoundation.LibreOffice.Draw";
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
||||
@@ -32,4 +32,6 @@
|
||||
|
||||
_TCHAR APPLICATION_SWITCH[] = _T( "--impress" );
|
||||
|
||||
LPCWSTR APPUSERMODELID = L"TheDocumentFoundation.LibreOffice.Impress";
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
||||
@@ -32,4 +32,6 @@
|
||||
|
||||
_TCHAR APPLICATION_SWITCH[] = _T( "--math" );
|
||||
|
||||
LPCWSTR APPUSERMODELID = L"TheDocumentFoundation.LibreOffice.Math";
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
||||
@@ -32,4 +32,6 @@
|
||||
|
||||
_TCHAR APPLICATION_SWITCH[] = _T( "--web" );
|
||||
|
||||
LPCWSTR APPUSERMODELID = L"TheDocumentFoundation.LibreOffice.Writer";
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
||||
@@ -30,4 +30,6 @@
|
||||
|
||||
_TCHAR APPLICATION_SWITCH[] = _T( "--writer" );
|
||||
|
||||
LPCWSTR APPUSERMODELID = L"TheDocumentFoundation.LibreOffice.Writer";
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
||||
Reference in New Issue
Block a user