Kaydet (Commit) 776db316 authored tarafından Jesús Corrius's avatar Jesús Corrius

set explicit Application User Models IDs in the native Windows launchers

Change-Id: Ib60a2a4f0d28a53d997731eb34b118cc9b9f822d
üst eadcfa4e
......@@ -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 \
......
# -*- 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_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: */
/* -*- 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: */
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