From 157cb4445d45051f29b7184e88e115cb4d442074 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Thu, 29 Nov 2012 15:13:57 +0000 Subject: [PATCH] =?UTF-8?q?Za=20zdaj=20sem=20dodal=20preizkusni=20projekt?= =?UTF-8?q?=20z=20namestitvijo,=20da=20lahko=20na=20hitro=20preizku=C5=A1a?= =?UTF-8?q?m=20izvedbo=20akcij.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MSITSCA.cpp | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++-- MSITSCA.h | 5 +++- StdAfx.h | 10 +++++++ 3 files changed, 95 insertions(+), 4 deletions(-) diff --git a/MSITSCA.cpp b/MSITSCA.cpp index 027763f..5f5be86 100644 --- a/MSITSCA.cpp +++ b/MSITSCA.cpp @@ -1,5 +1,7 @@ #include "StdAfx.h" +#pragma comment(lib, "msi.lib") + //////////////////////////////////////////////////////////////////////////// // Globalne spremenljivke @@ -19,6 +21,7 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpRes switch (dwReason) { case DLL_PROCESS_ATTACH: MSITSCA::hInstance = hInstance; + case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: @@ -33,9 +36,84 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpRes // 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; } diff --git a/MSITSCA.h b/MSITSCA.h index cfbd419..e8bcad3 100644 --- a/MSITSCA.h +++ b/MSITSCA.h @@ -49,7 +49,10 @@ extern "C" { #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 } diff --git a/StdAfx.h b/StdAfx.h index 0337262..ede3615 100644 --- a/StdAfx.h +++ b/StdAfx.h @@ -34,3 +34,13 @@ using namespace ATL; #include "BuildNum.h" #include "MSITSCA.h" + +#include +#include +#include + +#ifdef NDEBUG +#define verify(expr) ((void)(expr)) +#else +#define verify(expr) assert(expr) +#endif