Projekta MSICATS in MSICACert sem združil v MSICA, ker sta tako ali tako vsebovala kodo drug od drugega (95 % kode je bilo iz skupne knjižnice MSICALib.
This commit is contained in:
parent
b4750608b3
commit
5aabd7a036
36
.gitattributes
vendored
36
.gitattributes
vendored
@ -1,17 +1,17 @@
|
|||||||
* text=auto !eol
|
* text=auto !eol
|
||||||
/MSICA.sln svneol=CRLF#text/plain eol=crlf
|
/MSICA.sln svneol=CRLF#text/plain eol=crlf
|
||||||
MSICACert/L10N/sl_SI.po -text
|
MSICA/L10N/sl_SI.po -text
|
||||||
MSICACert/MSIBuild/Makefile -text
|
MSICA/MSIBuild/Makefile -text
|
||||||
MSICACert/MSIBuild/build_all.bat -text
|
MSICA/MSIBuild/build_all.bat -text
|
||||||
MSICACert/MSIBuild/clean_all.bat -text
|
MSICA/MSIBuild/clean_all.bat -text
|
||||||
MSICACert/MSICACert.cpp -text
|
MSICA/MSICA.cpp -text
|
||||||
MSICACert/MSICACert.h -text
|
MSICA/MSICA.h -text
|
||||||
MSICACert/MSICACert.vcxproj -text svneol=unset#text/xml
|
MSICA/MSICA.vcxproj -text svneol=unset#text/xml
|
||||||
MSICACert/MSICACert.vcxproj.filters -text svneol=unset#text/xml
|
MSICA/MSICA.vcxproj.filters -text svneol=unset#text/xml
|
||||||
MSICACert/res/MSICACert.rc -text svneol=unset#unset
|
MSICA/res/MSICA.rc -text svneol=unset#unset
|
||||||
MSICACert/res/MSICACert.rcx -text svneol=unset#unset
|
MSICA/res/MSICA.rcx -text svneol=unset#unset
|
||||||
MSICACert/stdafx.cpp -text
|
MSICA/stdafx.cpp -text
|
||||||
MSICACert/stdafx.h -text
|
MSICA/stdafx.h -text
|
||||||
MSICALib/L10N/sl_SI.po -text
|
MSICALib/L10N/sl_SI.po -text
|
||||||
MSICALib/MSIBuild/Makefile -text
|
MSICALib/MSIBuild/Makefile -text
|
||||||
MSICALib/MSIBuild/build_all.bat -text
|
MSICALib/MSIBuild/build_all.bat -text
|
||||||
@ -27,18 +27,6 @@ MSICALib/OpSvc.cpp -text
|
|||||||
MSICALib/OpTS.cpp -text
|
MSICALib/OpTS.cpp -text
|
||||||
MSICALib/stdafx.cpp -text
|
MSICALib/stdafx.cpp -text
|
||||||
MSICALib/stdafx.h -text
|
MSICALib/stdafx.h -text
|
||||||
MSICATS/L10N/sl_SI.po -text
|
|
||||||
MSICATS/MSIBuild/Makefile -text
|
|
||||||
MSICATS/MSIBuild/build_all.bat -text
|
|
||||||
MSICATS/MSIBuild/clean_all.bat -text
|
|
||||||
MSICATS/MSICATS.cpp -text
|
|
||||||
MSICATS/MSICATS.h -text
|
|
||||||
MSICATS/MSICATS.vcxproj -text svneol=unset#text/xml
|
|
||||||
MSICATS/MSICATS.vcxproj.filters -text svneol=unset#text/xml
|
|
||||||
MSICATS/res/MSICATS.rc -text svneol=unset#unset
|
|
||||||
MSICATS/res/MSICATS.rcx -text svneol=unset#unset
|
|
||||||
MSICATS/stdafx.cpp -text
|
|
||||||
MSICATS/stdafx.h -text
|
|
||||||
include/Debug.props -text svneol=unset#text/xml
|
include/Debug.props -text svneol=unset#text/xml
|
||||||
include/Release.props -text svneol=unset#text/xml
|
include/Release.props -text svneol=unset#text/xml
|
||||||
include/Win32.props -text svneol=unset#text/xml
|
include/Win32.props -text svneol=unset#text/xml
|
||||||
|
36
.gitignore
vendored
36
.gitignore
vendored
@ -1,18 +1,18 @@
|
|||||||
/*.opensdf
|
/*.opensdf
|
||||||
/*.sdf
|
/*.sdf
|
||||||
/*.suo
|
/*.suo
|
||||||
MSICACert/*.user
|
MSICA/*.user
|
||||||
MSICACert/L10N/*.mo
|
MSICA/L10N/*.mo
|
||||||
MSICACert/MSIBuild/*-1.idt
|
MSICA/MSIBuild/*-1.idt
|
||||||
MSICACert/MSIBuild/*-2.idt
|
MSICA/MSIBuild/*-2.idt
|
||||||
MSICACert/MSIBuild/*-2.idtx
|
MSICA/MSIBuild/*-2.idtx
|
||||||
MSICACert/MSIBuild/*.Binary-1
|
MSICA/MSIBuild/*.Binary-1
|
||||||
MSICACert/MSIBuild/*.Binary-2
|
MSICA/MSIBuild/*.Binary-2
|
||||||
MSICACert/MSIBuild/*.Icon-1
|
MSICA/MSIBuild/*.Icon-1
|
||||||
MSICACert/MSIBuild/*.Icon-2
|
MSICA/MSIBuild/*.Icon-2
|
||||||
MSICACert/MSIBuild/*.lst
|
MSICA/MSIBuild/*.lst
|
||||||
MSICACert/MSIBuild/*.msm
|
MSICA/MSIBuild/*.msm
|
||||||
MSICACert/temp
|
MSICA/temp
|
||||||
MSICALib/*.user
|
MSICALib/*.user
|
||||||
MSICALib/L10N/*.mo
|
MSICALib/L10N/*.mo
|
||||||
MSICALib/MSIBuild/*-1.idt
|
MSICALib/MSIBuild/*-1.idt
|
||||||
@ -25,17 +25,5 @@ MSICALib/MSIBuild/*.Icon-2
|
|||||||
MSICALib/MSIBuild/*.lst
|
MSICALib/MSIBuild/*.lst
|
||||||
MSICALib/MSIBuild/*.msm
|
MSICALib/MSIBuild/*.msm
|
||||||
MSICALib/temp
|
MSICALib/temp
|
||||||
MSICATS/*.user
|
|
||||||
MSICATS/L10N/*.mo
|
|
||||||
MSICATS/MSIBuild/*-1.idt
|
|
||||||
MSICATS/MSIBuild/*-2.idt
|
|
||||||
MSICATS/MSIBuild/*-2.idtx
|
|
||||||
MSICATS/MSIBuild/*.Binary-1
|
|
||||||
MSICATS/MSIBuild/*.Binary-2
|
|
||||||
MSICATS/MSIBuild/*.Icon-1
|
|
||||||
MSICATS/MSIBuild/*.Icon-2
|
|
||||||
MSICATS/MSIBuild/*.lst
|
|
||||||
MSICATS/MSIBuild/*.msm
|
|
||||||
MSICATS/temp
|
|
||||||
/ipch
|
/ipch
|
||||||
/output
|
/output
|
||||||
|
12
MSICA.sln
12
MSICA.sln
@ -3,15 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 11.00
|
|||||||
# Visual Studio 2010
|
# Visual Studio 2010
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MSICALib", "MSICALib\MSICALib.vcxproj", "{8552EE55-177E-4F51-B51B-BAF7D6462CDE}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MSICALib", "MSICALib\MSICALib.vcxproj", "{8552EE55-177E-4F51-B51B-BAF7D6462CDE}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MSICATS", "MSICATS\MSICATS.vcxproj", "{A7D9EBC1-1E64-4399-9C88-6692F8742153}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MSICA", "MSICA\MSICA.vcxproj", "{A7D9EBC1-1E64-4399-9C88-6692F8742153}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F3D5C008-7728-49CA-84F1-12C186FC87F8}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F3D5C008-7728-49CA-84F1-12C186FC87F8}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
include\version.h = include\version.h
|
include\version.h = include\version.h
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MSICACert", "MSICACert\MSICACert.vcxproj", "{0379563D-9835-44AC-928E-24D4E316CE5D}"
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Win32 = Debug|Win32
|
Debug|Win32 = Debug|Win32
|
||||||
@ -36,14 +34,6 @@ Global
|
|||||||
{A7D9EBC1-1E64-4399-9C88-6692F8742153}.Release|Win32.Build.0 = Release|Win32
|
{A7D9EBC1-1E64-4399-9C88-6692F8742153}.Release|Win32.Build.0 = Release|Win32
|
||||||
{A7D9EBC1-1E64-4399-9C88-6692F8742153}.Release|x64.ActiveCfg = Release|x64
|
{A7D9EBC1-1E64-4399-9C88-6692F8742153}.Release|x64.ActiveCfg = Release|x64
|
||||||
{A7D9EBC1-1E64-4399-9C88-6692F8742153}.Release|x64.Build.0 = Release|x64
|
{A7D9EBC1-1E64-4399-9C88-6692F8742153}.Release|x64.Build.0 = Release|x64
|
||||||
{0379563D-9835-44AC-928E-24D4E316CE5D}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{0379563D-9835-44AC-928E-24D4E316CE5D}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{0379563D-9835-44AC-928E-24D4E316CE5D}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{0379563D-9835-44AC-928E-24D4E316CE5D}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{0379563D-9835-44AC-928E-24D4E316CE5D}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{0379563D-9835-44AC-928E-24D4E316CE5D}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{0379563D-9835-44AC-928E-24D4E316CE5D}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{0379563D-9835-44AC-928E-24D4E316CE5D}.Release|x64.Build.0 = Release|x64
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: MSICATS\n"
|
"Project-Id-Version: MSICA\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2014-03-14 11:12+0100\n"
|
"POT-Creation-Date: 2014-03-20 13:36+0100\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
||||||
"Language-Team: Amebis, d. o. o., Kamnik <simon.rozman@amebis.si>\n"
|
"Language-Team: Amebis, d. o. o., Kamnik <simon.rozman@amebis.si>\n"
|
||||||
@ -20,19 +20,19 @@ msgstr ""
|
|||||||
# Language Code and Windows Charset (hexadecimal)
|
# Language Code and Windows Charset (hexadecimal)
|
||||||
# If we do not intend to provide different localization of same base language (like merging Portugal Portugeese and Brasil Portugese into the same Portugeese), use the code of Microsoft defined default sublanguage.
|
# If we do not intend to provide different localization of same base language (like merging Portugal Portugeese and Brasil Portugese into the same Portugeese), use the code of Microsoft defined default sublanguage.
|
||||||
# For example: Use LANG_PORTUGUESE + SUBLANG_DEFAULT = 0x416, although 0x416 represents Brasil Portugese (too).
|
# For example: Use LANG_PORTUGUESE + SUBLANG_DEFAULT = 0x416, although 0x416 represents Brasil Portugese (too).
|
||||||
#: res/MSICATS.rcx:42
|
#: res/MSICA.rcx:42
|
||||||
msgid "040904e4"
|
msgid "040904e4"
|
||||||
msgstr "042404e2"
|
msgstr "042404e2"
|
||||||
|
|
||||||
# Language Code (hexadecimal)
|
# Language Code (hexadecimal)
|
||||||
# If we do not intend to provide different localization of same base language (like merging Portugal Portugeese and Brasil Portugese into the same Portugeese), use the code of Microsoft defined default sublanguage.
|
# If we do not intend to provide different localization of same base language (like merging Portugal Portugeese and Brasil Portugese into the same Portugeese), use the code of Microsoft defined default sublanguage.
|
||||||
# For example: Use LANG_PORTUGUESE + SUBLANG_DEFAULT = 0x416, although 0x416 represents Brasil Portugese (too).
|
# For example: Use LANG_PORTUGUESE + SUBLANG_DEFAULT = 0x416, although 0x416 represents Brasil Portugese (too).
|
||||||
#: res/MSICATS.rcx:60
|
#: res/MSICA.rcx:60
|
||||||
msgid "0x409"
|
msgid "0x409"
|
||||||
msgstr "0x424"
|
msgstr "0x424"
|
||||||
|
|
||||||
# Windows charset for this language (decimal)
|
# Windows charset for this language (decimal)
|
||||||
#: res/MSICATS.rcx:60 MSIBuild/En.Win32.Debug.ActionText-2.idtx:3
|
#: res/MSICA.rcx:60 MSIBuild/En.Win32.Debug.ActionText-2.idtx:3
|
||||||
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:3
|
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:3
|
||||||
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:3
|
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:3
|
||||||
#: MSIBuild/En.x64.Release.ActionText-2.idtx:3
|
#: MSIBuild/En.x64.Release.ActionText-2.idtx:3
|
||||||
@ -40,37 +40,33 @@ msgid "1252"
|
|||||||
msgstr "1250"
|
msgstr "1250"
|
||||||
|
|
||||||
# The name of the constant in RC to include the resources in this language.
|
# The name of the constant in RC to include the resources in this language.
|
||||||
#: res/MSICATS.rcx:41 res/MSICATS.rcx:59 res/MSICATS.rcx:75
|
#: res/MSICA.rcx:41 res/MSICA.rcx:59 res/MSICA.rcx:75
|
||||||
msgid "AFX_TARG_ENU"
|
msgid "AFX_TARG_ENU"
|
||||||
msgstr "AFX_TARG_SLV"
|
msgstr "AFX_TARG_SLV"
|
||||||
|
|
||||||
#: res/MSICATS.rcx:44
|
#: res/MSICA.rcx:44
|
||||||
msgid "Amebis, d. o. o., Kamnik"
|
msgid "Amebis, d. o. o., Kamnik"
|
||||||
msgstr "Amebis, d. o. o., Kamnik"
|
msgstr "Amebis, d. o. o., Kamnik"
|
||||||
|
|
||||||
#: res/MSICATS.rcx:48
|
#: res/MSICA.rcx:48
|
||||||
msgid "Copyright © Amebis, d. o. o., Kamnik, 2012"
|
msgid "Copyright © Amebis, d. o. o., Kamnik, 2012"
|
||||||
msgstr "Vse pravice pridržane © Amebis, d. o. o., Kamnik, 2012"
|
msgstr "Vse pravice pridržane © Amebis, d. o. o., Kamnik, 2012"
|
||||||
|
|
||||||
|
#: res/MSICA.rcx:45
|
||||||
|
msgid "Installation Support Library"
|
||||||
|
msgstr "Podporna knjižnica za namestitve"
|
||||||
|
|
||||||
# Language Identifier (see http://msdn.microsoft.com/en-us/library/windows/desktop/dd318693(v=vs.85).aspx)
|
# Language Identifier (see http://msdn.microsoft.com/en-us/library/windows/desktop/dd318693(v=vs.85).aspx)
|
||||||
#: res/MSICATS.rcx:77
|
#: res/MSICA.rcx:77
|
||||||
msgid "LANG_ENGLISH"
|
msgid "LANG_ENGLISH"
|
||||||
msgstr "LANG_SLOVENIAN"
|
msgstr "LANG_SLOVENIAN"
|
||||||
|
|
||||||
#: res/MSICATS.rcx:49
|
#: res/MSICA.rcx:47 res/MSICA.rcx:49
|
||||||
msgid "MSICA"
|
msgid "MSICA"
|
||||||
msgstr "MSICA"
|
msgstr "MSICA"
|
||||||
|
|
||||||
#: res/MSICATS.rcx:47
|
|
||||||
msgid "MSICATS"
|
|
||||||
msgstr "MSICATS"
|
|
||||||
|
|
||||||
#: res/MSICATS.rcx:45
|
|
||||||
msgid "Scheduled Task Installation Support Library"
|
|
||||||
msgstr "Podporna knjižnica za nameščanje načrtovanih opravil"
|
|
||||||
|
|
||||||
# Sublanguage Identifier (see http://msdn.microsoft.com/en-us/library/windows/desktop/dd318693(v=vs.85).aspx)
|
# Sublanguage Identifier (see http://msdn.microsoft.com/en-us/library/windows/desktop/dd318693(v=vs.85).aspx)
|
||||||
#: res/MSICATS.rcx:77
|
#: res/MSICA.rcx:77
|
||||||
msgid "SUBLANG_DEFAULT"
|
msgid "SUBLANG_DEFAULT"
|
||||||
msgstr "SUBLANG_DEFAULT"
|
msgstr "SUBLANG_DEFAULT"
|
||||||
|
|
||||||
@ -78,12 +74,32 @@ msgstr "SUBLANG_DEFAULT"
|
|||||||
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:4
|
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:4
|
||||||
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:4
|
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:4
|
||||||
#: MSIBuild/En.x64.Release.ActionText-2.idtx:4
|
#: MSIBuild/En.x64.Release.ActionText-2.idtx:4
|
||||||
msgid "Registering scheduled tasks"
|
msgid "Certificate: [1]"
|
||||||
msgstr "Registracija razporejenih opravil"
|
msgstr "Digitalno potrdilo: [1]"
|
||||||
|
|
||||||
#: MSIBuild/En.Win32.Debug.ActionText-2.idtx:4
|
#: MSIBuild/En.Win32.Debug.ActionText-2.idtx:4
|
||||||
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:4
|
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:4
|
||||||
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:4
|
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:4
|
||||||
#: MSIBuild/En.x64.Release.ActionText-2.idtx:4
|
#: MSIBuild/En.x64.Release.ActionText-2.idtx:4
|
||||||
|
msgid "Installing certificates"
|
||||||
|
msgstr "Nameščanje digitalnih potrdil"
|
||||||
|
|
||||||
|
#: MSIBuild/En.Win32.Debug.ActionText-2.idtx:5
|
||||||
|
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:5
|
||||||
|
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:5
|
||||||
|
#: MSIBuild/En.x64.Release.ActionText-2.idtx:5
|
||||||
|
msgid "Registering scheduled tasks"
|
||||||
|
msgstr "Registracija razporejenih opravil"
|
||||||
|
|
||||||
|
#: MSIBuild/En.Win32.Debug.ActionText-2.idtx:5
|
||||||
|
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:5
|
||||||
|
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:5
|
||||||
|
#: MSIBuild/En.x64.Release.ActionText-2.idtx:5
|
||||||
msgid "Scheduled task: [1]"
|
msgid "Scheduled task: [1]"
|
||||||
msgstr "Razporejeno opravilo: [1]"
|
msgstr "Razporejeno opravilo: [1]"
|
||||||
|
|
||||||
|
#~ msgid "Scheduled Task Installation Support Library"
|
||||||
|
#~ msgstr "Podporna knjižnica za nameščanje načrtovanih opravil"
|
||||||
|
|
||||||
|
#~ msgid "MSICACert"
|
||||||
|
#~ msgstr "MSICACert"
|
@ -14,6 +14,13 @@ All :: "$(LANG).$(PLAT).$(CFG)._Validation-1.idt"
|
|||||||
Table Column Nullable MinValue MaxValue KeyTable KeyColumn Category Set Description
|
Table Column Nullable MinValue MaxValue KeyTable KeyColumn Category Set Description
|
||||||
s32 s32 s4 I4 I4 S255 I2 S32 S255 S255
|
s32 s32 s4 I4 I4 S255 I2 S32 S255 S255
|
||||||
_Validation Table Column
|
_Validation Table Column
|
||||||
|
Certificate Certificate N Identifier Primary key, non-localized token.
|
||||||
|
Certificate Store N Formatted MY;Root;Trust;CA Certificate store name for CertOpenStore() function call. The store provider is always CERT_STORE_PROV_SYSTEM. Therefore, possible values are: MY, Root, Trust, or CA.
|
||||||
|
Certificate Flags N DoubleInteger Flags for CertOpenStore() function call.
|
||||||
|
Certificate Encoding N DoubleInteger 0;1;65536;65537 Certificate encoding (combination of X509_ASN_ENCODING(1) and PKCS_7_ASN_ENCODING(65536) flags).
|
||||||
|
Certificate Binary_ N Binary 1 Identifier The certificate file. The binary information is looked up from the Binary Table.
|
||||||
|
Certificate Condition Y Condition Optional expression which skips the certificate if evaluates to expFalse. If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.
|
||||||
|
Certificate Component_ N Component 1 Identifier Component the certificate is part of.
|
||||||
ScheduledTask Task N Identifier Primary key, non-localized token.
|
ScheduledTask Task N Identifier Primary key, non-localized token.
|
||||||
ScheduledTask DisplayName N Formatted Task name.
|
ScheduledTask DisplayName N Formatted Task name.
|
||||||
ScheduledTask Application N Formatted Task application name.
|
ScheduledTask Application N Formatted Task application name.
|
||||||
@ -60,6 +67,7 @@ All :: "$(LANG).$(PLAT).$(CFG).ActionText-2.idt"
|
|||||||
Action Description Template
|
Action Description Template
|
||||||
s$(MSIBUILD_LENGTH_ID) L0 L0
|
s$(MSIBUILD_LENGTH_ID) L0 L0
|
||||||
1252 ActionText Action
|
1252 ActionText Action
|
||||||
|
InstallCertificates Installing certificates Certificate: [1]
|
||||||
InstallScheduledTasks Registering scheduled tasks Scheduled task: [1]
|
InstallScheduledTasks Registering scheduled tasks Scheduled task: [1]
|
||||||
<<NOKEEP
|
<<NOKEEP
|
||||||
|
|
||||||
@ -81,7 +89,7 @@ InstallScheduledTasks Registering scheduled tasks Scheduled task: [1]
|
|||||||
|
|
||||||
All :: \
|
All :: \
|
||||||
"$(LANG).$(PLAT).$(CFG).Binary-1.idt" \
|
"$(LANG).$(PLAT).$(CFG).Binary-1.idt" \
|
||||||
"$(LANG).$(PLAT).$(CFG).Binary-1\MSICATS.dll"
|
"$(LANG).$(PLAT).$(CFG).Binary-1\MSICA.dll"
|
||||||
|
|
||||||
"$(LANG).$(PLAT).$(CFG).Binary-1.idt" : "Makefile" "..\..\..\include\MSIBuildCfg.mak" "$(LANG).$(PLAT).$(CFG).Binary-1"
|
"$(LANG).$(PLAT).$(CFG).Binary-1.idt" : "Makefile" "..\..\..\include\MSIBuildCfg.mak" "$(LANG).$(PLAT).$(CFG).Binary-1"
|
||||||
-if exist $@ del /f /q $@
|
-if exist $@ del /f /q $@
|
||||||
@ -89,13 +97,27 @@ All :: \
|
|||||||
Name Data
|
Name Data
|
||||||
s$(MSIBUILD_LENGTH_ID) v0
|
s$(MSIBUILD_LENGTH_ID) v0
|
||||||
Binary Name
|
Binary Name
|
||||||
binMSICATS.dll MSICATS.dll
|
binMSICA.dll MSICA.dll
|
||||||
<<NOKEEP
|
<<NOKEEP
|
||||||
|
|
||||||
"$(LANG).$(PLAT).$(CFG).Binary-1\MSICATS.dll" : "..\..\output\$(PLAT).$(CFG)\MSICATS.dll"
|
"$(LANG).$(PLAT).$(CFG).Binary-1\MSICA.dll" : "..\..\output\$(PLAT).$(CFG)\MSICA.dll"
|
||||||
copy /y $** $@ > NUL
|
copy /y $** $@ > NUL
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# Certificate
|
||||||
|
|
||||||
|
All :: "$(LANG).$(PLAT).$(CFG).Certificate-1.idt"
|
||||||
|
|
||||||
|
"$(LANG).$(PLAT).$(CFG).Certificate-1.idt" : "Makefile" "..\..\..\include\MSIBuildCfg.mak"
|
||||||
|
-if exist $@ del /f /q $@
|
||||||
|
move /y << $@ > NUL
|
||||||
|
Certificate Store Flags Encoding Binary_ Condition Component_
|
||||||
|
s$(MSIBUILD_LENGTH_ID) s255 i4 i4 s$(MSIBUILD_LENGTH_ID) S255 s$(MSIBUILD_LENGTH_ID)
|
||||||
|
Certificate Certificate
|
||||||
|
<<NOKEEP
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# CustomAction
|
# CustomAction
|
||||||
|
|
||||||
@ -107,10 +129,14 @@ All :: "$(LANG).$(PLAT).$(CFG).CustomAction-1.idt"
|
|||||||
Action Type Source Target
|
Action Type Source Target
|
||||||
s$(MSIBUILD_LENGTH_ID) i2 S$(MSIBUILD_LENGTH_ID) S255
|
s$(MSIBUILD_LENGTH_ID) i2 S$(MSIBUILD_LENGTH_ID) S255
|
||||||
CustomAction Action
|
CustomAction Action
|
||||||
EvaluateScheduledTasks 1 binMSICATS.dll EvaluateSequence
|
EvaluateCertificates 1 binMSICACert.dll EvaluateCertificates
|
||||||
InstallScheduledTasks 3073 binMSICATS.dll ExecuteSequence
|
InstallCertificates 3073 binMSICACert.dll ExecuteSequence
|
||||||
RollbackScheduledTasks 3329 binMSICATS.dll ExecuteSequence
|
RollbackCertificates 3329 binMSICACert.dll ExecuteSequence
|
||||||
CommitScheduledTasks 3585 binMSICATS.dll ExecuteSequence
|
CommitCertificates 3585 binMSICACert.dll ExecuteSequence
|
||||||
|
EvaluateScheduledTasks 1 binMSICA.dll EvaluateScheduledTasks
|
||||||
|
InstallScheduledTasks 3073 binMSICA.dll ExecuteSequence
|
||||||
|
RollbackScheduledTasks 3329 binMSICA.dll ExecuteSequence
|
||||||
|
CommitScheduledTasks 3585 binMSICA.dll ExecuteSequence
|
||||||
<<NOKEEP
|
<<NOKEEP
|
||||||
|
|
||||||
|
|
||||||
@ -125,6 +151,10 @@ All :: "$(LANG).$(PLAT).$(CFG).InstallExecuteSequence-1.idt"
|
|||||||
Action Condition Sequence
|
Action Condition Sequence
|
||||||
s$(MSIBUILD_LENGTH_ID) S255 I2
|
s$(MSIBUILD_LENGTH_ID) S255 I2
|
||||||
InstallExecuteSequence Action
|
InstallExecuteSequence Action
|
||||||
|
EvaluateCertificates 6577
|
||||||
|
RollbackCertificates 6576
|
||||||
|
InstallCertificates 6578
|
||||||
|
CommitCertificates 6579
|
||||||
EvaluateScheduledTasks 6580
|
EvaluateScheduledTasks 6580
|
||||||
RollbackScheduledTasks 6581
|
RollbackScheduledTasks 6581
|
||||||
InstallScheduledTasks 6582
|
InstallScheduledTasks 6582
|
@ -5,7 +5,8 @@
|
|||||||
// Local constants
|
// Local constants
|
||||||
////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#define MSICACERT_CERT_TICK_SIZE (4*1024)
|
#define MSICA_CERT_TICK_SIZE (4*1024)
|
||||||
|
#define MSICA_TASK_TICK_SIZE (16*1024)
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////
|
||||||
@ -25,7 +26,7 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpRes
|
|||||||
// Exported functions
|
// Exported functions
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
UINT MSICACERT_API EvaluateSequence(MSIHANDLE hInstall)
|
UINT MSICA_API EvaluateCertificates(MSIHANDLE hInstall)
|
||||||
{
|
{
|
||||||
//::MessageBox(NULL, _T(__FUNCTION__), _T("MSICACert"), MB_OK);
|
//::MessageBox(NULL, _T(__FUNCTION__), _T("MSICACert"), MB_OK);
|
||||||
|
|
||||||
@ -134,15 +135,15 @@ UINT MSICACERT_API EvaluateSequence(MSIHANDLE hInstall)
|
|||||||
|
|
||||||
if (iAction >= INSTALLSTATE_LOCAL) {
|
if (iAction >= INSTALLSTATE_LOCAL) {
|
||||||
// Component is or should be installed. Install the certificate.
|
// Component is or should be installed. Install the certificate.
|
||||||
olExecute.AddTail(new MSICA::COpCertInstall(binCert.GetData(), binCert.GetCount(), sStore, iEncoding, iFlags, MSICACERT_CERT_TICK_SIZE));
|
olExecute.AddTail(new MSICA::COpCertInstall(binCert.GetData(), binCert.GetCount(), sStore, iEncoding, iFlags, MSICA_CERT_TICK_SIZE));
|
||||||
} else if (iAction >= INSTALLSTATE_REMOVED) {
|
} else if (iAction >= INSTALLSTATE_REMOVED) {
|
||||||
// Component is installed, but should be degraded to advertised/removed. Delete the certificate.
|
// Component is installed, but should be degraded to advertised/removed. Delete the certificate.
|
||||||
olExecute.AddTail(new MSICA::COpCertRemove(binCert.GetData(), binCert.GetCount(), sStore, iEncoding, iFlags, MSICACERT_CERT_TICK_SIZE));
|
olExecute.AddTail(new MSICA::COpCertRemove(binCert.GetData(), binCert.GetCount(), sStore, iEncoding, iFlags, MSICA_CERT_TICK_SIZE));
|
||||||
}
|
}
|
||||||
|
|
||||||
// The amount of tick space to add for each certificate to progress indicator.
|
// The amount of tick space to add for each certificate to progress indicator.
|
||||||
::MsiRecordSetInteger(hRecordProg, 1, 3 );
|
::MsiRecordSetInteger(hRecordProg, 1, 3 );
|
||||||
::MsiRecordSetInteger(hRecordProg, 2, MSICACERT_CERT_TICK_SIZE);
|
::MsiRecordSetInteger(hRecordProg, 2, MSICA_CERT_TICK_SIZE);
|
||||||
if (::MsiProcessMessage(hInstall, INSTALLMESSAGE_PROGRESS, hRecordProg) == IDCANCEL) { uiResult = ERROR_INSTALL_USEREXIT; break; }
|
if (::MsiProcessMessage(hInstall, INSTALLMESSAGE_PROGRESS, hRecordProg) == IDCANCEL) { uiResult = ERROR_INSTALL_USEREXIT; break; }
|
||||||
}
|
}
|
||||||
::MsiViewClose(hViewCert);
|
::MsiViewClose(hViewCert);
|
||||||
@ -176,9 +177,141 @@ UINT MSICACERT_API EvaluateSequence(MSIHANDLE hInstall)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
UINT MSICACERT_API ExecuteSequence(MSIHANDLE hInstall)
|
UINT MSICA_API EvaluateScheduledTasks(MSIHANDLE hInstall)
|
||||||
{
|
{
|
||||||
//::MessageBox(NULL, _T(__FUNCTION__), _T("MSICACert"), MB_OK);
|
UINT uiResult;
|
||||||
|
BOOL bIsCoInitialized = SUCCEEDED(::CoInitialize(NULL));
|
||||||
|
MSICA::COpList olExecute;
|
||||||
|
BOOL bRollbackEnabled;
|
||||||
|
PMSIHANDLE
|
||||||
|
hDatabase,
|
||||||
|
hRecordProg = ::MsiCreateRecord(3);
|
||||||
|
ATL::CAtlString sValue;
|
||||||
|
|
||||||
|
// Check and add the rollback enabled state.
|
||||||
|
uiResult = ::MsiGetProperty(hInstall, _T("RollbackDisabled"), sValue);
|
||||||
|
bRollbackEnabled = uiResult == NO_ERROR ?
|
||||||
|
_ttoi(sValue) || !sValue.IsEmpty() && _totlower(sValue.GetAt(0)) == _T('y') ? FALSE : TRUE :
|
||||||
|
TRUE;
|
||||||
|
olExecute.AddTail(new MSICA::COpRollbackEnable(bRollbackEnabled));
|
||||||
|
|
||||||
|
// Open MSI database.
|
||||||
|
hDatabase = ::MsiGetActiveDatabase(hInstall);
|
||||||
|
if (hDatabase) {
|
||||||
|
// Check if ScheduledTask table exists. If it doesn't exist, there's nothing to do.
|
||||||
|
MSICONDITION condition = ::MsiDatabaseIsTablePersistent(hDatabase, _T("ScheduledTask"));
|
||||||
|
if (condition == MSICONDITION_FALSE || condition == MSICONDITION_TRUE) {
|
||||||
|
PMSIHANDLE hViewST;
|
||||||
|
|
||||||
|
// Prepare a query to get a list/view of tasks.
|
||||||
|
uiResult = ::MsiDatabaseOpenView(hDatabase, _T("SELECT Task,DisplayName,Application,Parameters,Directory_,Flags,Priority,User,Password,Author,Description,IdleMin,IdleDeadline,MaxRuntime,Condition,Component_ FROM ScheduledTask"), &hViewST);
|
||||||
|
if (uiResult == NO_ERROR) {
|
||||||
|
// Execute query!
|
||||||
|
uiResult = ::MsiViewExecute(hViewST, NULL);
|
||||||
|
if (uiResult == NO_ERROR) {
|
||||||
|
//ATL::CAtlString sComponent;
|
||||||
|
ATL::CAtlStringW sDisplayName;
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
PMSIHANDLE hRecord;
|
||||||
|
INSTALLSTATE iInstalled, iAction;
|
||||||
|
|
||||||
|
// Fetch one record from the view.
|
||||||
|
uiResult = ::MsiViewFetch(hViewST, &hRecord);
|
||||||
|
if (uiResult == ERROR_NO_MORE_ITEMS) {
|
||||||
|
uiResult = NO_ERROR;
|
||||||
|
break;
|
||||||
|
} else if (uiResult != NO_ERROR)
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Read and evaluate task's condition.
|
||||||
|
uiResult = ::MsiRecordGetString(hRecord, 15, sValue);
|
||||||
|
if (uiResult != NO_ERROR) break;
|
||||||
|
condition = ::MsiEvaluateCondition(hInstall, sValue);
|
||||||
|
if (condition == MSICONDITION_FALSE)
|
||||||
|
continue;
|
||||||
|
else if (condition == MSICONDITION_ERROR) {
|
||||||
|
uiResult = ERROR_INVALID_FIELD;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read task's Component ID.
|
||||||
|
uiResult = ::MsiRecordGetString(hRecord, 16, sValue);
|
||||||
|
if (uiResult != NO_ERROR) break;
|
||||||
|
|
||||||
|
// Get the component state.
|
||||||
|
uiResult = ::MsiGetComponentState(hInstall, sValue, &iInstalled, &iAction);
|
||||||
|
if (uiResult != NO_ERROR) break;
|
||||||
|
|
||||||
|
// Get task's DisplayName.
|
||||||
|
uiResult = ::MsiRecordFormatStringW(hInstall, hRecord, 2, sDisplayName);
|
||||||
|
|
||||||
|
if (iAction >= INSTALLSTATE_LOCAL) {
|
||||||
|
// Component is or should be installed. Create the task.
|
||||||
|
PMSIHANDLE hViewTT;
|
||||||
|
MSICA::COpTaskCreate *opCreateTask = new MSICA::COpTaskCreate(sDisplayName, MSICA_TASK_TICK_SIZE);
|
||||||
|
|
||||||
|
// Populate the operation with task's data.
|
||||||
|
uiResult = opCreateTask->SetFromRecord(hInstall, hRecord);
|
||||||
|
if (uiResult != NO_ERROR) break;
|
||||||
|
|
||||||
|
// Perform another query to get task's triggers.
|
||||||
|
uiResult = ::MsiDatabaseOpenView(hDatabase, _T("SELECT Trigger,BeginDate,EndDate,StartTime,StartTimeRand,MinutesDuration,MinutesInterval,Flags,Type,DaysInterval,WeeksInterval,DaysOfTheWeek,DaysOfMonth,WeekOfMonth,MonthsOfYear FROM TaskTrigger WHERE Task_=?"), &hViewTT);
|
||||||
|
if (uiResult != NO_ERROR) break;
|
||||||
|
|
||||||
|
// Execute query!
|
||||||
|
uiResult = ::MsiViewExecute(hViewTT, hRecord);
|
||||||
|
if (uiResult == NO_ERROR) {
|
||||||
|
// Populate trigger list.
|
||||||
|
uiResult = opCreateTask->SetTriggersFromView(hViewTT);
|
||||||
|
::MsiViewClose(hViewTT);
|
||||||
|
if (uiResult != NO_ERROR) break;
|
||||||
|
} else
|
||||||
|
break;
|
||||||
|
|
||||||
|
olExecute.AddTail(opCreateTask);
|
||||||
|
} else if (iAction >= INSTALLSTATE_REMOVED) {
|
||||||
|
// Component is installed, but should be degraded to advertised/removed. Delete the task.
|
||||||
|
olExecute.AddTail(new MSICA::COpTaskDelete(sDisplayName, MSICA_TASK_TICK_SIZE));
|
||||||
|
}
|
||||||
|
|
||||||
|
// The amount of tick space to add for each task to progress indicator.
|
||||||
|
::MsiRecordSetInteger(hRecordProg, 1, 3 );
|
||||||
|
::MsiRecordSetInteger(hRecordProg, 2, MSICA_TASK_TICK_SIZE);
|
||||||
|
if (::MsiProcessMessage(hInstall, INSTALLMESSAGE_PROGRESS, hRecordProg) == IDCANCEL) { uiResult = ERROR_INSTALL_USEREXIT; break; }
|
||||||
|
}
|
||||||
|
::MsiViewClose(hViewST);
|
||||||
|
|
||||||
|
if (uiResult == NO_ERROR) {
|
||||||
|
// Save the sequences.
|
||||||
|
uiResult = MSICA::SaveSequence(hInstall, _T("InstallScheduledTasks"), _T("CommitScheduledTasks"), _T("RollbackScheduledTasks"), olExecute);
|
||||||
|
} else if (uiResult != ERROR_INSTALL_USEREXIT) {
|
||||||
|
::MsiRecordSetInteger(hRecordProg, 1, ERROR_INSTALL_OPLIST_CREATE);
|
||||||
|
::MsiRecordSetInteger(hRecordProg, 2, uiResult );
|
||||||
|
::MsiProcessMessage(hInstall, INSTALLMESSAGE_ERROR, hRecordProg);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
::MsiRecordSetInteger(hRecordProg, 1, uiResult);
|
||||||
|
::MsiProcessMessage(hInstall, INSTALLMESSAGE_ERROR, hRecordProg);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
::MsiRecordSetInteger(hRecordProg, 1, uiResult);
|
||||||
|
::MsiProcessMessage(hInstall, INSTALLMESSAGE_ERROR, hRecordProg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
uiResult = ERROR_INSTALL_DATABASE_OPEN;
|
||||||
|
::MsiRecordSetInteger(hRecordProg, 1, uiResult);
|
||||||
|
::MsiProcessMessage(hInstall, INSTALLMESSAGE_ERROR, hRecordProg);
|
||||||
|
}
|
||||||
|
|
||||||
|
olExecute.Free();
|
||||||
|
if (bIsCoInitialized) ::CoUninitialize();
|
||||||
|
return uiResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UINT MSICA_API ExecuteSequence(MSIHANDLE hInstall)
|
||||||
|
{
|
||||||
return MSICA::ExecuteSequence(hInstall);
|
return MSICA::ExecuteSequence(hInstall);
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
#ifndef __MSICATS_H__
|
#ifndef __MSICA_H__
|
||||||
#define __MSICATS_H__
|
#define __MSICA_H__
|
||||||
|
|
||||||
#include <msi.h>
|
#include <msi.h>
|
||||||
|
|
||||||
@ -8,12 +8,12 @@
|
|||||||
// Calling declaration
|
// Calling declaration
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if defined(MSICATS_DLL)
|
#if defined(MSICA_DLL)
|
||||||
#define MSICATS_API __declspec(dllexport)
|
#define MSICA_API __declspec(dllexport)
|
||||||
#elif defined(MSICATS_DLLIMP)
|
#elif defined(MSICA_DLLIMP)
|
||||||
#define MSICATS_API __declspec(dllimport)
|
#define MSICA_API __declspec(dllimport)
|
||||||
#else
|
#else
|
||||||
#define MSICATS_API
|
#define MSICA_API
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -24,11 +24,12 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
UINT MSICATS_API EvaluateSequence(MSIHANDLE hInstall);
|
UINT MSICA_API EvaluateCertificates(MSIHANDLE hInstall);
|
||||||
UINT MSICATS_API ExecuteSequence(MSIHANDLE hInstall);
|
UINT MSICA_API EvaluateScheduledTasks(MSIHANDLE hInstall);
|
||||||
|
UINT MSICA_API ExecuteSequence(MSIHANDLE hInstall);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // __MSICATS_H__
|
#endif // __MSICA_H__
|
@ -138,7 +138,7 @@
|
|||||||
<ClCompile />
|
<ClCompile />
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="MSICATS.cpp" />
|
<ClCompile Include="MSICA.cpp" />
|
||||||
<ClCompile Include="stdafx.cpp">
|
<ClCompile Include="stdafx.cpp">
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||||
@ -147,14 +147,14 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="MSICATS.h" />
|
<ClInclude Include="MSICA.h" />
|
||||||
<ClInclude Include="stdafx.h" />
|
<ClInclude Include="stdafx.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="res\MSICATS.rc" />
|
<ResourceCompile Include="res\MSICA.rc" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceLocalizator Include="res\MSICATS.rcx" />
|
<ResourceLocalizator Include="res\MSICA.rcx" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="L10N\sl_SI.po" />
|
<None Include="L10N\sl_SI.po" />
|
@ -15,7 +15,7 @@
|
|||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="MSICATS.cpp">
|
<ClCompile Include="MSICA.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="stdafx.cpp">
|
<ClCompile Include="stdafx.cpp">
|
||||||
@ -23,7 +23,7 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="MSICATS.h">
|
<ClInclude Include="MSICA.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="stdafx.h">
|
<ClInclude Include="stdafx.h">
|
||||||
@ -31,12 +31,12 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="res\MSICATS.rc">
|
<ResourceCompile Include="res\MSICA.rc">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceLocalizator Include="res\MSICATS.rcx">
|
<ResourceLocalizator Include="res\MSICA.rcx">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</ResourceLocalizator>
|
</ResourceLocalizator>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
BIN
MSICA/res/MSICA.rc
Normal file
BIN
MSICA/res/MSICA.rc
Normal file
Binary file not shown.
Binary file not shown.
@ -20,7 +20,7 @@
|
|||||||
#define _WIN32_WINNT 0x0501 // Include Windows XP symbols
|
#define _WIN32_WINNT 0x0501 // Include Windows XP symbols
|
||||||
#define _WINSOCKAPI_ // Prevent inclusion of winsock.h in windows.h
|
#define _WINSOCKAPI_ // Prevent inclusion of winsock.h in windows.h
|
||||||
#ifdef _WINDLL
|
#ifdef _WINDLL
|
||||||
#define MSICATS_DLL // This is a DLL
|
#define MSICA_DLL // This is a DLL
|
||||||
#endif
|
#endif
|
||||||
#define _ATL_APARTMENT_THREADED
|
#define _ATL_APARTMENT_THREADED
|
||||||
|
|
||||||
@ -34,4 +34,4 @@
|
|||||||
|
|
||||||
#include "..\MSICALib\MSICALib.h"
|
#include "..\MSICALib\MSICALib.h"
|
||||||
|
|
||||||
#include "MSICATS.h"
|
#include "MSICA.h"
|
@ -1,95 +0,0 @@
|
|||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: MSICACert\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2014-03-14 11:10+0100\n"
|
|
||||||
"PO-Revision-Date: \n"
|
|
||||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
|
||||||
"Language-Team: Amebis, d. o. o., Kamnik <simon.rozman@amebis.si>\n"
|
|
||||||
"Language: sl\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"X-Poedit-SourceCharset: UTF-8\n"
|
|
||||||
"X-Poedit-KeywordsList: __\n"
|
|
||||||
"X-Poedit-Basepath: ..\n"
|
|
||||||
"X-Generator: Poedit 1.5.7\n"
|
|
||||||
"X-Poedit-SearchPath-0: MSIBuild\n"
|
|
||||||
"X-Poedit-SearchPath-1: res\n"
|
|
||||||
|
|
||||||
# Language Code and Windows Charset (hexadecimal)
|
|
||||||
# If we do not intend to provide different localization of same base language (like merging Portugal Portugeese and Brasil Portugese into the same Portugeese), use the code of Microsoft defined default sublanguage.
|
|
||||||
# For example: Use LANG_PORTUGUESE + SUBLANG_DEFAULT = 0x416, although 0x416 represents Brasil Portugese (too).
|
|
||||||
#: res/MSICACert.rcx:42
|
|
||||||
msgid "040904e4"
|
|
||||||
msgstr "042404e2"
|
|
||||||
|
|
||||||
# Language Code (hexadecimal)
|
|
||||||
# If we do not intend to provide different localization of same base language (like merging Portugal Portugeese and Brasil Portugese into the same Portugeese), use the code of Microsoft defined default sublanguage.
|
|
||||||
# For example: Use LANG_PORTUGUESE + SUBLANG_DEFAULT = 0x416, although 0x416 represents Brasil Portugese (too).
|
|
||||||
#: res/MSICACert.rcx:60
|
|
||||||
msgid "0x409"
|
|
||||||
msgstr "0x424"
|
|
||||||
|
|
||||||
# Windows charset for this language (decimal)
|
|
||||||
#: res/MSICACert.rcx:60 MSIBuild/En.Win32.Debug.ActionText-2.idtx:3
|
|
||||||
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:3
|
|
||||||
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:3
|
|
||||||
#: MSIBuild/En.x64.Release.ActionText-2.idtx:3
|
|
||||||
msgid "1252"
|
|
||||||
msgstr "1250"
|
|
||||||
|
|
||||||
# The name of the constant in RC to include the resources in this language.
|
|
||||||
#: res/MSICACert.rcx:41 res/MSICACert.rcx:59 res/MSICACert.rcx:75
|
|
||||||
msgid "AFX_TARG_ENU"
|
|
||||||
msgstr "AFX_TARG_SLV"
|
|
||||||
|
|
||||||
#: res/MSICACert.rcx:44
|
|
||||||
msgid "Amebis, d. o. o., Kamnik"
|
|
||||||
msgstr "Amebis, d. o. o., Kamnik"
|
|
||||||
|
|
||||||
#: res/MSICACert.rcx:45
|
|
||||||
msgid "Certificate Installation Support Library"
|
|
||||||
msgstr "Podporna knjižnica za nameščanje certifikatov"
|
|
||||||
|
|
||||||
#: res/MSICACert.rcx:48
|
|
||||||
msgid "Copyright © Amebis, d. o. o., Kamnik, 2012"
|
|
||||||
msgstr "Vse pravice pridržane © Amebis, d. o. o., Kamnik, 2012"
|
|
||||||
|
|
||||||
# Language Identifier (see http://msdn.microsoft.com/en-us/library/windows/desktop/dd318693(v=vs.85).aspx)
|
|
||||||
#: res/MSICACert.rcx:77
|
|
||||||
msgid "LANG_ENGLISH"
|
|
||||||
msgstr "LANG_SLOVENIAN"
|
|
||||||
|
|
||||||
#: res/MSICACert.rcx:49
|
|
||||||
msgid "MSICA"
|
|
||||||
msgstr "MSICA"
|
|
||||||
|
|
||||||
#: res/MSICACert.rcx:47
|
|
||||||
msgid "MSICACert"
|
|
||||||
msgstr "MSICACert"
|
|
||||||
|
|
||||||
# Sublanguage Identifier (see http://msdn.microsoft.com/en-us/library/windows/desktop/dd318693(v=vs.85).aspx)
|
|
||||||
#: res/MSICACert.rcx:77
|
|
||||||
msgid "SUBLANG_DEFAULT"
|
|
||||||
msgstr "SUBLANG_DEFAULT"
|
|
||||||
|
|
||||||
#: MSIBuild/En.Win32.Debug.ActionText-2.idtx:4
|
|
||||||
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:4
|
|
||||||
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:4
|
|
||||||
#: MSIBuild/En.x64.Release.ActionText-2.idtx:4
|
|
||||||
msgid "Certificate: [1]"
|
|
||||||
msgstr "Digitalno potrdilo: [1]"
|
|
||||||
|
|
||||||
#: MSIBuild/En.Win32.Debug.ActionText-2.idtx:4
|
|
||||||
#: MSIBuild/En.Win32.Release.ActionText-2.idtx:4
|
|
||||||
#: MSIBuild/En.x64.Debug.ActionText-2.idtx:4
|
|
||||||
#: MSIBuild/En.x64.Release.ActionText-2.idtx:4
|
|
||||||
msgid "Installing certificates"
|
|
||||||
msgstr "Nameščanje digitalnih potrdil"
|
|
||||||
|
|
||||||
#~ msgid "Scheduled task: [1]"
|
|
||||||
#~ msgstr "Razporejeno opravilo: [1]"
|
|
||||||
|
|
||||||
#~ msgid "Registering scheduled tasks"
|
|
||||||
#~ msgstr "Registracija razporejenih opravil"
|
|
@ -1,128 +0,0 @@
|
|||||||
!INCLUDE "..\..\..\include\MSIBuildCfg.mak"
|
|
||||||
|
|
||||||
MSIBUILD_IS_LOCALIZEABLE=1
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# _Validation
|
|
||||||
|
|
||||||
All :: "$(LANG).$(PLAT).$(CFG)._Validation-1.idt"
|
|
||||||
|
|
||||||
"$(LANG).$(PLAT).$(CFG)._Validation-1.idt" : "Makefile" "..\..\..\include\MSIBuildCfg.mak"
|
|
||||||
-if exist $@ del /f /q $@
|
|
||||||
move /y << $@ > NUL
|
|
||||||
Table Column Nullable MinValue MaxValue KeyTable KeyColumn Category Set Description
|
|
||||||
s32 s32 s4 I4 I4 S255 I2 S32 S255 S255
|
|
||||||
_Validation Table Column
|
|
||||||
Certificate Certificate N Identifier Primary key, non-localized token.
|
|
||||||
Certificate Store N Formatted MY;Root;Trust;CA Certificate store name for CertOpenStore() function call. The store provider is always CERT_STORE_PROV_SYSTEM. Therefore, possible values are: MY, Root, Trust, or CA.
|
|
||||||
Certificate Flags N DoubleInteger Flags for CertOpenStore() function call.
|
|
||||||
Certificate Encoding N DoubleInteger 0;1;65536;65537 Certificate encoding (combination of X509_ASN_ENCODING(1) and PKCS_7_ASN_ENCODING(65536) flags).
|
|
||||||
Certificate Binary_ N Binary 1 Identifier The certificate file. The binary information is looked up from the Binary Table.
|
|
||||||
Certificate Condition Y Condition Optional expression which skips the certificate if evaluates to expFalse. If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.
|
|
||||||
Certificate Component_ N Component 1 Identifier Component the certificate is part of.
|
|
||||||
<<NOKEEP
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# ActionText
|
|
||||||
|
|
||||||
All :: "$(LANG).$(PLAT).$(CFG).ActionText-2.idt"
|
|
||||||
|
|
||||||
"En.$(PLAT).$(CFG).ActionText-2.idtx" : "Makefile" "..\..\..\include\MSIBuildCfg.mak"
|
|
||||||
-if exist $@ del /f /q $@
|
|
||||||
move /y << $@ > NUL
|
|
||||||
Action Description Template
|
|
||||||
s$(MSIBUILD_LENGTH_ID) L0 L0
|
|
||||||
1252 ActionText Action
|
|
||||||
InstallCertificates Installing certificates Certificate: [1]
|
|
||||||
<<NOKEEP
|
|
||||||
|
|
||||||
"De.$(PLAT).$(CFG).ActionText-2.idt" : "En.$(PLAT).$(CFG).ActionText-2.idtx" "..\L10N\de_DE.po"
|
|
||||||
rcxgettext.exe idtp $@ $**
|
|
||||||
|
|
||||||
"En.$(PLAT).$(CFG).ActionText-2.idt" : "En.$(PLAT).$(CFG).ActionText-2.idtx"
|
|
||||||
copy /y $** $@ > NUL
|
|
||||||
|
|
||||||
"It.$(PLAT).$(CFG).ActionText-2.idt" : "En.$(PLAT).$(CFG).ActionText-2.idtx" "..\L10N\it_IT.po"
|
|
||||||
rcxgettext.exe idtp $@ $**
|
|
||||||
|
|
||||||
"Sl.$(PLAT).$(CFG).ActionText-2.idt" : "En.$(PLAT).$(CFG).ActionText-2.idtx" "..\L10N\sl_SI.po"
|
|
||||||
rcxgettext.exe idtp $@ $**
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# Binary
|
|
||||||
|
|
||||||
All :: \
|
|
||||||
"$(LANG).$(PLAT).$(CFG).Binary-1.idt" \
|
|
||||||
"$(LANG).$(PLAT).$(CFG).Binary-1\MSICACert.dll"
|
|
||||||
|
|
||||||
"$(LANG).$(PLAT).$(CFG).Binary-1.idt" : "Makefile" "..\..\..\include\MSIBuildCfg.mak" "$(LANG).$(PLAT).$(CFG).Binary-1"
|
|
||||||
-if exist $@ del /f /q $@
|
|
||||||
move /y << $@ > NUL
|
|
||||||
Name Data
|
|
||||||
s$(MSIBUILD_LENGTH_ID) v0
|
|
||||||
Binary Name
|
|
||||||
binMSICACert.dll MSICACert.dll
|
|
||||||
<<NOKEEP
|
|
||||||
|
|
||||||
"$(LANG).$(PLAT).$(CFG).Binary-1\MSICACert.dll" : "..\..\output\$(PLAT).$(CFG)\MSICACert.dll"
|
|
||||||
copy /y $** $@ > NUL
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# Certificate
|
|
||||||
|
|
||||||
All :: "$(LANG).$(PLAT).$(CFG).Certificate-1.idt"
|
|
||||||
|
|
||||||
"$(LANG).$(PLAT).$(CFG).Certificate-1.idt" : "Makefile" "..\..\..\include\MSIBuildCfg.mak"
|
|
||||||
-if exist $@ del /f /q $@
|
|
||||||
move /y << $@ > NUL
|
|
||||||
Certificate Store Flags Encoding Binary_ Condition Component_
|
|
||||||
s$(MSIBUILD_LENGTH_ID) s255 i4 i4 s$(MSIBUILD_LENGTH_ID) S255 s$(MSIBUILD_LENGTH_ID)
|
|
||||||
Certificate Certificate
|
|
||||||
<<NOKEEP
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# CustomAction
|
|
||||||
|
|
||||||
All :: "$(LANG).$(PLAT).$(CFG).CustomAction-1.idt"
|
|
||||||
|
|
||||||
"$(LANG).$(PLAT).$(CFG).CustomAction-1.idt" : "Makefile" "..\..\..\include\MSIBuildCfg.mak"
|
|
||||||
-if exist $@ del /f /q $@
|
|
||||||
move /y << $@ > NUL
|
|
||||||
Action Type Source Target
|
|
||||||
s$(MSIBUILD_LENGTH_ID) i2 S$(MSIBUILD_LENGTH_ID) S255
|
|
||||||
CustomAction Action
|
|
||||||
EvaluateCertificates 1 binMSICACert.dll EvaluateSequence
|
|
||||||
InstallCertificates 3073 binMSICACert.dll ExecuteSequence
|
|
||||||
RollbackCertificates 3329 binMSICACert.dll ExecuteSequence
|
|
||||||
CommitCertificates 3585 binMSICACert.dll ExecuteSequence
|
|
||||||
<<NOKEEP
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# InstallExecuteSequence
|
|
||||||
|
|
||||||
All :: "$(LANG).$(PLAT).$(CFG).InstallExecuteSequence-1.idt"
|
|
||||||
|
|
||||||
"$(LANG).$(PLAT).$(CFG).InstallExecuteSequence-1.idt" : "Makefile" "..\..\..\include\MSIBuildCfg.mak"
|
|
||||||
-if exist $@ del /f /q $@
|
|
||||||
move /y << $@ > NUL
|
|
||||||
Action Condition Sequence
|
|
||||||
s$(MSIBUILD_LENGTH_ID) S255 I2
|
|
||||||
InstallExecuteSequence Action
|
|
||||||
EvaluateCertificates 6577
|
|
||||||
RollbackCertificates 6576
|
|
||||||
InstallCertificates 6578
|
|
||||||
CommitCertificates 6579
|
|
||||||
<<NOKEEP
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# Build MSM module!
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
!INCLUDE "..\..\..\MSIBuild\MSM.mak"
|
|
@ -1,34 +0,0 @@
|
|||||||
#ifndef __MSICACERT_H__
|
|
||||||
#define __MSICACERT_H__
|
|
||||||
|
|
||||||
#include <msi.h>
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
// Calling declaration
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#if defined(MSICACERT_DLL)
|
|
||||||
#define MSICACERT_API __declspec(dllexport)
|
|
||||||
#elif defined(MSICACERT_DLLIMP)
|
|
||||||
#define MSICACERT_API __declspec(dllimport)
|
|
||||||
#else
|
|
||||||
#define MSICACERT_API
|
|
||||||
#endif
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
// Exported functions
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
UINT MSICACERT_API EvaluateSequence(MSIHANDLE hInstall);
|
|
||||||
UINT MSICACERT_API ExecuteSequence(MSIHANDLE hInstall);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // __MSICACERT_H__
|
|
@ -1,171 +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="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{0379563D-9835-44AC-928E-24D4E316CE5D}</ProjectGuid>
|
|
||||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseOfAtl>Static</UseOfAtl>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseOfAtl>Static</UseOfAtl>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseOfAtl>Static</UseOfAtl>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseOfAtl>Static</UseOfAtl>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
<Import Project="$(VCTargetsPath)\BuildCustomizations\rcxgettext.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\include\common.props" />
|
|
||||||
<Import Project="..\include\Win32.props" />
|
|
||||||
<Import Project="..\include\Release.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\include\common.props" />
|
|
||||||
<Import Project="..\include\Win32.props" />
|
|
||||||
<Import Project="..\include\Debug.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\include\common.props" />
|
|
||||||
<Import Project="..\include\x64.props" />
|
|
||||||
<Import Project="..\include\Release.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\include\common.props" />
|
|
||||||
<Import Project="..\include\x64.props" />
|
|
||||||
<Import Project="..\include\Debug.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\output\$(Platform).$(Configuration)\</OutDir>
|
|
||||||
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</IgnoreImportLibrary>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\output\$(Platform).$(Configuration)\</OutDir>
|
|
||||||
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</IgnoreImportLibrary>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\output\$(Platform).$(Configuration)\</OutDir>
|
|
||||||
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</IgnoreImportLibrary>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\output\$(Platform).$(Configuration)\</OutDir>
|
|
||||||
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
</Link>
|
|
||||||
<Midl>
|
|
||||||
<HeaderFileName>%(Filename)_h.h</HeaderFileName>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile />
|
|
||||||
<ResourceLocalizator>
|
|
||||||
<LanguageCatalogs>L10N\sl_SI.po</LanguageCatalogs>
|
|
||||||
</ResourceLocalizator>
|
|
||||||
<ClCompile />
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
</Link>
|
|
||||||
<Midl>
|
|
||||||
<HeaderFileName>%(Filename)_h.h</HeaderFileName>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile />
|
|
||||||
<ResourceLocalizator>
|
|
||||||
<LanguageCatalogs>L10N\sl_SI.po</LanguageCatalogs>
|
|
||||||
</ResourceLocalizator>
|
|
||||||
<ClCompile />
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
</Link>
|
|
||||||
<Midl>
|
|
||||||
<HeaderFileName>%(Filename)_h.h</HeaderFileName>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile />
|
|
||||||
<ResourceLocalizator>
|
|
||||||
<LanguageCatalogs>L10N\sl_SI.po</LanguageCatalogs>
|
|
||||||
</ResourceLocalizator>
|
|
||||||
<ClCompile />
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
</Link>
|
|
||||||
<Midl>
|
|
||||||
<HeaderFileName>%(Filename)_h.h</HeaderFileName>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile />
|
|
||||||
<ResourceLocalizator>
|
|
||||||
<LanguageCatalogs>L10N\sl_SI.po</LanguageCatalogs>
|
|
||||||
</ResourceLocalizator>
|
|
||||||
<ClCompile />
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="MSICACert.cpp" />
|
|
||||||
<ClCompile Include="stdafx.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="MSICACert.h" />
|
|
||||||
<ClInclude Include="stdafx.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="res\MSICACert.rc" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceLocalizator Include="res\MSICACert.rcx" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="L10N\sl_SI.po" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\MSICALib\MSICALib.vcxproj">
|
|
||||||
<Project>{8552ee55-177e-4f51-b51b-baf7d6462cde}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
<Import Project="$(VCTargetsPath)\BuildCustomizations\rcxgettext.targets" />
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
@ -1,48 +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;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;rcx;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;po</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="MSICACert.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="stdafx.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="MSICACert.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="stdafx.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="res\MSICACert.rc">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceLocalizator Include="res\MSICACert.rcx">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</ResourceLocalizator>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="L10N\sl_SI.po">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
Binary file not shown.
@ -1,37 +0,0 @@
|
|||||||
// stdafx.h : include file for standard system include files,
|
|
||||||
// or project specific include files that are used frequently,
|
|
||||||
// but are changed infrequently
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#if defined(_UNICODE) && !defined(UNICODE)
|
|
||||||
#define UNICODE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_WIN32) && !defined(WIN32)
|
|
||||||
#define WIN32
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef STRICT
|
|
||||||
#define STRICT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
|
||||||
#define _WIN32_WINNT 0x0501 // Include Windows XP symbols
|
|
||||||
#define _WINSOCKAPI_ // Prevent inclusion of winsock.h in windows.h
|
|
||||||
#ifdef _WINDLL
|
|
||||||
#define MSICACERT_DLL // This is a DLL
|
|
||||||
#endif
|
|
||||||
#define _ATL_APARTMENT_THREADED
|
|
||||||
|
|
||||||
#include <atlbase.h>
|
|
||||||
#include <atlfile.h>
|
|
||||||
#include <atlstr.h>
|
|
||||||
|
|
||||||
#include <corerror.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
#include "..\MSICALib\MSICALib.h"
|
|
||||||
|
|
||||||
#include "MSICACert.h"
|
|
@ -1,9 +0,0 @@
|
|||||||
@echo off
|
|
||||||
nmake.exe /ls All LANG=En CFG=Debug PLAT=Win32
|
|
||||||
nmake.exe /ls All LANG=Sl CFG=Debug PLAT=Win32
|
|
||||||
nmake.exe /ls All LANG=En CFG=Debug PLAT=x64
|
|
||||||
nmake.exe /ls All LANG=Sl CFG=Debug PLAT=x64
|
|
||||||
nmake.exe /ls All LANG=En CFG=Release PLAT=Win32
|
|
||||||
nmake.exe /ls All LANG=Sl CFG=Release PLAT=Win32
|
|
||||||
nmake.exe /ls All LANG=En CFG=Release PLAT=x64
|
|
||||||
nmake.exe /ls All LANG=Sl CFG=Release PLAT=x64
|
|
@ -1,9 +0,0 @@
|
|||||||
@echo off
|
|
||||||
nmake.exe /ls Clean LANG=En CFG=Debug PLAT=Win32
|
|
||||||
nmake.exe /ls Clean LANG=Sl CFG=Debug PLAT=Win32
|
|
||||||
nmake.exe /ls Clean LANG=En CFG=Debug PLAT=x64
|
|
||||||
nmake.exe /ls Clean LANG=Sl CFG=Debug PLAT=x64
|
|
||||||
nmake.exe /ls Clean LANG=En CFG=Release PLAT=Win32
|
|
||||||
nmake.exe /ls Clean LANG=Sl CFG=Release PLAT=Win32
|
|
||||||
nmake.exe /ls Clean LANG=En CFG=Release PLAT=x64
|
|
||||||
nmake.exe /ls Clean LANG=Sl CFG=Release PLAT=x64
|
|
@ -1,165 +0,0 @@
|
|||||||
#include "stdafx.h"
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Local constants
|
|
||||||
////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#define MSICATS_TASK_TICK_SIZE (16*1024)
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Global functions
|
|
||||||
////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
|
|
||||||
{
|
|
||||||
UNREFERENCED_PARAMETER(hInstance);
|
|
||||||
UNREFERENCED_PARAMETER(lpReserved);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
// Exported functions
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
UINT MSICATS_API EvaluateSequence(MSIHANDLE hInstall)
|
|
||||||
{
|
|
||||||
UINT uiResult;
|
|
||||||
BOOL bIsCoInitialized = SUCCEEDED(::CoInitialize(NULL));
|
|
||||||
MSICA::COpList olExecute;
|
|
||||||
BOOL bRollbackEnabled;
|
|
||||||
PMSIHANDLE
|
|
||||||
hDatabase,
|
|
||||||
hRecordProg = ::MsiCreateRecord(3);
|
|
||||||
ATL::CAtlString sValue;
|
|
||||||
|
|
||||||
// Check and add the rollback enabled state.
|
|
||||||
uiResult = ::MsiGetProperty(hInstall, _T("RollbackDisabled"), sValue);
|
|
||||||
bRollbackEnabled = uiResult == NO_ERROR ?
|
|
||||||
_ttoi(sValue) || !sValue.IsEmpty() && _totlower(sValue.GetAt(0)) == _T('y') ? FALSE : TRUE :
|
|
||||||
TRUE;
|
|
||||||
olExecute.AddTail(new MSICA::COpRollbackEnable(bRollbackEnabled));
|
|
||||||
|
|
||||||
// Open MSI database.
|
|
||||||
hDatabase = ::MsiGetActiveDatabase(hInstall);
|
|
||||||
if (hDatabase) {
|
|
||||||
// Check if ScheduledTask table exists. If it doesn't exist, there's nothing to do.
|
|
||||||
MSICONDITION condition = ::MsiDatabaseIsTablePersistent(hDatabase, _T("ScheduledTask"));
|
|
||||||
if (condition == MSICONDITION_FALSE || condition == MSICONDITION_TRUE) {
|
|
||||||
PMSIHANDLE hViewST;
|
|
||||||
|
|
||||||
// Prepare a query to get a list/view of tasks.
|
|
||||||
uiResult = ::MsiDatabaseOpenView(hDatabase, _T("SELECT Task,DisplayName,Application,Parameters,Directory_,Flags,Priority,User,Password,Author,Description,IdleMin,IdleDeadline,MaxRuntime,Condition,Component_ FROM ScheduledTask"), &hViewST);
|
|
||||||
if (uiResult == NO_ERROR) {
|
|
||||||
// Execute query!
|
|
||||||
uiResult = ::MsiViewExecute(hViewST, NULL);
|
|
||||||
if (uiResult == NO_ERROR) {
|
|
||||||
//ATL::CAtlString sComponent;
|
|
||||||
ATL::CAtlStringW sDisplayName;
|
|
||||||
|
|
||||||
for (;;) {
|
|
||||||
PMSIHANDLE hRecord;
|
|
||||||
INSTALLSTATE iInstalled, iAction;
|
|
||||||
|
|
||||||
// Fetch one record from the view.
|
|
||||||
uiResult = ::MsiViewFetch(hViewST, &hRecord);
|
|
||||||
if (uiResult == ERROR_NO_MORE_ITEMS) {
|
|
||||||
uiResult = NO_ERROR;
|
|
||||||
break;
|
|
||||||
} else if (uiResult != NO_ERROR)
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Read and evaluate task's condition.
|
|
||||||
uiResult = ::MsiRecordGetString(hRecord, 15, sValue);
|
|
||||||
if (uiResult != NO_ERROR) break;
|
|
||||||
condition = ::MsiEvaluateCondition(hInstall, sValue);
|
|
||||||
if (condition == MSICONDITION_FALSE)
|
|
||||||
continue;
|
|
||||||
else if (condition == MSICONDITION_ERROR) {
|
|
||||||
uiResult = ERROR_INVALID_FIELD;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Read task's Component ID.
|
|
||||||
uiResult = ::MsiRecordGetString(hRecord, 16, sValue);
|
|
||||||
if (uiResult != NO_ERROR) break;
|
|
||||||
|
|
||||||
// Get the component state.
|
|
||||||
uiResult = ::MsiGetComponentState(hInstall, sValue, &iInstalled, &iAction);
|
|
||||||
if (uiResult != NO_ERROR) break;
|
|
||||||
|
|
||||||
// Get task's DisplayName.
|
|
||||||
uiResult = ::MsiRecordFormatStringW(hInstall, hRecord, 2, sDisplayName);
|
|
||||||
|
|
||||||
if (iAction >= INSTALLSTATE_LOCAL) {
|
|
||||||
// Component is or should be installed. Create the task.
|
|
||||||
PMSIHANDLE hViewTT;
|
|
||||||
MSICA::COpTaskCreate *opCreateTask = new MSICA::COpTaskCreate(sDisplayName, MSICATS_TASK_TICK_SIZE);
|
|
||||||
|
|
||||||
// Populate the operation with task's data.
|
|
||||||
uiResult = opCreateTask->SetFromRecord(hInstall, hRecord);
|
|
||||||
if (uiResult != NO_ERROR) break;
|
|
||||||
|
|
||||||
// Perform another query to get task's triggers.
|
|
||||||
uiResult = ::MsiDatabaseOpenView(hDatabase, _T("SELECT Trigger,BeginDate,EndDate,StartTime,StartTimeRand,MinutesDuration,MinutesInterval,Flags,Type,DaysInterval,WeeksInterval,DaysOfTheWeek,DaysOfMonth,WeekOfMonth,MonthsOfYear FROM TaskTrigger WHERE Task_=?"), &hViewTT);
|
|
||||||
if (uiResult != NO_ERROR) break;
|
|
||||||
|
|
||||||
// Execute query!
|
|
||||||
uiResult = ::MsiViewExecute(hViewTT, hRecord);
|
|
||||||
if (uiResult == NO_ERROR) {
|
|
||||||
// Populate trigger list.
|
|
||||||
uiResult = opCreateTask->SetTriggersFromView(hViewTT);
|
|
||||||
::MsiViewClose(hViewTT);
|
|
||||||
if (uiResult != NO_ERROR) break;
|
|
||||||
} else
|
|
||||||
break;
|
|
||||||
|
|
||||||
olExecute.AddTail(opCreateTask);
|
|
||||||
} else if (iAction >= INSTALLSTATE_REMOVED) {
|
|
||||||
// Component is installed, but should be degraded to advertised/removed. Delete the task.
|
|
||||||
olExecute.AddTail(new MSICA::COpTaskDelete(sDisplayName, MSICATS_TASK_TICK_SIZE));
|
|
||||||
}
|
|
||||||
|
|
||||||
// The amount of tick space to add for each task to progress indicator.
|
|
||||||
::MsiRecordSetInteger(hRecordProg, 1, 3 );
|
|
||||||
::MsiRecordSetInteger(hRecordProg, 2, MSICATS_TASK_TICK_SIZE);
|
|
||||||
if (::MsiProcessMessage(hInstall, INSTALLMESSAGE_PROGRESS, hRecordProg) == IDCANCEL) { uiResult = ERROR_INSTALL_USEREXIT; break; }
|
|
||||||
}
|
|
||||||
::MsiViewClose(hViewST);
|
|
||||||
|
|
||||||
if (uiResult == NO_ERROR) {
|
|
||||||
// Save the sequences.
|
|
||||||
uiResult = MSICA::SaveSequence(hInstall, _T("InstallScheduledTasks"), _T("CommitScheduledTasks"), _T("RollbackScheduledTasks"), olExecute);
|
|
||||||
} else if (uiResult != ERROR_INSTALL_USEREXIT) {
|
|
||||||
::MsiRecordSetInteger(hRecordProg, 1, ERROR_INSTALL_OPLIST_CREATE);
|
|
||||||
::MsiRecordSetInteger(hRecordProg, 2, uiResult );
|
|
||||||
::MsiProcessMessage(hInstall, INSTALLMESSAGE_ERROR, hRecordProg);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
::MsiRecordSetInteger(hRecordProg, 1, uiResult);
|
|
||||||
::MsiProcessMessage(hInstall, INSTALLMESSAGE_ERROR, hRecordProg);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
::MsiRecordSetInteger(hRecordProg, 1, uiResult);
|
|
||||||
::MsiProcessMessage(hInstall, INSTALLMESSAGE_ERROR, hRecordProg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
uiResult = ERROR_INSTALL_DATABASE_OPEN;
|
|
||||||
::MsiRecordSetInteger(hRecordProg, 1, uiResult);
|
|
||||||
::MsiProcessMessage(hInstall, INSTALLMESSAGE_ERROR, hRecordProg);
|
|
||||||
}
|
|
||||||
|
|
||||||
olExecute.Free();
|
|
||||||
if (bIsCoInitialized) ::CoUninitialize();
|
|
||||||
return uiResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
UINT MSICATS_API ExecuteSequence(MSIHANDLE hInstall)
|
|
||||||
{
|
|
||||||
return MSICA::ExecuteSequence(hInstall);
|
|
||||||
}
|
|
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
|||||||
#include "stdafx.h"
|
|
Loading…
x
Reference in New Issue
Block a user