Za zdaj sem dodal preizkusni projekt z namestitvijo, da lahko na hitro preizkušam izvedbo akcij.
This commit is contained in:
parent
74480b06af
commit
5a91e49875
@ -1,5 +1,7 @@
|
|||||||
#include "StdAfx.h"
|
#include "StdAfx.h"
|
||||||
|
|
||||||
|
#pragma comment(lib, "msi.lib")
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////
|
||||||
// Globalne spremenljivke
|
// Globalne spremenljivke
|
||||||
@ -19,6 +21,7 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpRes
|
|||||||
switch (dwReason) {
|
switch (dwReason) {
|
||||||
case DLL_PROCESS_ATTACH:
|
case DLL_PROCESS_ATTACH:
|
||||||
MSITSCA::hInstance = hInstance;
|
MSITSCA::hInstance = hInstance;
|
||||||
|
|
||||||
case DLL_THREAD_ATTACH:
|
case DLL_THREAD_ATTACH:
|
||||||
case DLL_THREAD_DETACH:
|
case DLL_THREAD_DETACH:
|
||||||
case DLL_PROCESS_DETACH:
|
case DLL_PROCESS_DETACH:
|
||||||
@ -33,9 +36,84 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpRes
|
|||||||
// Javne funkcije
|
// Javne funkcije
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
UINT MSITSCA_API InstallScheduledTask(MSIHANDLE hSession)
|
UINT MSITSCA_API EvaluateScheduledTasks(MSIHANDLE hInstall)
|
||||||
{
|
{
|
||||||
UNREFERENCED_PARAMETER(hSession);
|
UNREFERENCED_PARAMETER(hInstall);
|
||||||
|
|
||||||
return ERROR_SUCCESS;
|
UINT uiResult;
|
||||||
|
BOOL bIsCoInitialized = SUCCEEDED(::CoInitialize(NULL));
|
||||||
|
CString msg;
|
||||||
|
|
||||||
|
msg.Format(_T("Pripni razhrošèevalnik na proces %u."), ::GetCurrentProcessId());
|
||||||
|
::MessageBox(NULL, msg, _T("MSITSCA"), MB_OK);
|
||||||
|
uiResult = ERROR_SUCCESS;
|
||||||
|
|
||||||
|
if (bIsCoInitialized) ::CoUninitialize();
|
||||||
|
return uiResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UINT MSITSCA_API InstallScheduledTasks(MSIHANDLE hInstall)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(hInstall);
|
||||||
|
assert(::MsiGetMode(hInstall, MSIRUNMODE_SCHEDULED));
|
||||||
|
|
||||||
|
UINT uiResult;
|
||||||
|
BOOL bIsCoInitialized = SUCCEEDED(::CoInitialize(NULL));
|
||||||
|
CString msg;
|
||||||
|
|
||||||
|
msg.Format(_T("Pripni razhrošèevalnik na proces %u."), ::GetCurrentProcessId());
|
||||||
|
::MessageBox(NULL, msg, _T("MSITSCA"), MB_OK);
|
||||||
|
uiResult = ERROR_SUCCESS;
|
||||||
|
|
||||||
|
if (bIsCoInitialized) ::CoUninitialize();
|
||||||
|
return uiResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UINT MSITSCA_API CommitScheduledTasks(MSIHANDLE hInstall)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(hInstall);
|
||||||
|
assert(::MsiGetMode(hInstall, MSIRUNMODE_COMMIT));
|
||||||
|
|
||||||
|
UINT uiResult;
|
||||||
|
BOOL bIsCoInitialized = SUCCEEDED(::CoInitialize(NULL));
|
||||||
|
|
||||||
|
uiResult = ERROR_SUCCESS;
|
||||||
|
|
||||||
|
if (bIsCoInitialized) ::CoUninitialize();
|
||||||
|
return uiResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UINT MSITSCA_API RollbackScheduledTasks(MSIHANDLE hInstall)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(hInstall);
|
||||||
|
assert(::MsiGetMode(hInstall, MSIRUNMODE_ROLLBACK));
|
||||||
|
|
||||||
|
UINT uiResult;
|
||||||
|
BOOL bIsCoInitialized = SUCCEEDED(::CoInitialize(NULL));
|
||||||
|
|
||||||
|
uiResult = ERROR_SUCCESS;
|
||||||
|
|
||||||
|
if (bIsCoInitialized) ::CoUninitialize();
|
||||||
|
return uiResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
UINT MSITSCA_API RemoveScheduledTasks(MSIHANDLE hInstall)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(hInstall);
|
||||||
|
|
||||||
|
UINT uiResult;
|
||||||
|
BOOL bIsCoInitialized = SUCCEEDED(::CoInitialize(NULL));
|
||||||
|
CString msg;
|
||||||
|
|
||||||
|
msg.Format(_T("Pripni razhrošèevalnik na proces %u."), ::GetCurrentProcessId());
|
||||||
|
::MessageBox(NULL, msg, _T("MSITSCA"), MB_OK);
|
||||||
|
uiResult = ERROR_SUCCESS;
|
||||||
|
|
||||||
|
if (bIsCoInitialized) ::CoUninitialize();
|
||||||
|
return uiResult;
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,10 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
UINT MSITSCA_API InstallScheduledTask(MSIHANDLE hSession);
|
UINT MSITSCA_API InstallScheduledTasks(MSIHANDLE hInstall);
|
||||||
|
UINT MSITSCA_API CommitScheduledTasks(MSIHANDLE hInstall);
|
||||||
|
UINT MSITSCA_API RollbackScheduledTasks(MSIHANDLE hInstall);
|
||||||
|
UINT MSITSCA_API RemoveScheduledTasks(MSIHANDLE hInstall);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -34,3 +34,13 @@ using namespace ATL;
|
|||||||
#include "BuildNum.h"
|
#include "BuildNum.h"
|
||||||
|
|
||||||
#include "MSITSCA.h"
|
#include "MSITSCA.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <msi.h>
|
||||||
|
#include <msiquery.h>
|
||||||
|
|
||||||
|
#ifdef NDEBUG
|
||||||
|
#define verify(expr) ((void)(expr))
|
||||||
|
#else
|
||||||
|
#define verify(expr) assert(expr)
|
||||||
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user