diff options
Diffstat (limited to '')
| -rw-r--r-- | src/ext/Util/ca/scasched.cpp | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/src/ext/Util/ca/scasched.cpp b/src/ext/Util/ca/scasched.cpp index d81b1f14..1351fbfd 100644 --- a/src/ext/Util/ca/scasched.cpp +++ b/src/ext/Util/ca/scasched.cpp | |||
| @@ -124,4 +124,49 @@ LExit: | |||
| 124 | 124 | ||
| 125 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; | 125 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; |
| 126 | return WcaFinalize(er); | 126 | return WcaFinalize(er); |
| 127 | } \ No newline at end of file | 127 | } |
| 128 | |||
| 129 | /******************************************************************** | ||
| 130 | ConfigureGroups - CUSTOM ACTION ENTRY POINT for installing groups | ||
| 131 | |||
| 132 | ********************************************************************/ | ||
| 133 | extern "C" UINT __stdcall ConfigureGroups( | ||
| 134 | __in MSIHANDLE hInstall | ||
| 135 | ) | ||
| 136 | { | ||
| 137 | //AssertSz(0, "Debug ConfigureGroups"); | ||
| 138 | |||
| 139 | HRESULT hr = S_OK; | ||
| 140 | UINT er = ERROR_SUCCESS; | ||
| 141 | |||
| 142 | BOOL fInitializedCom = FALSE; | ||
| 143 | SCA_GROUP* psgList = NULL; | ||
| 144 | |||
| 145 | // initialize | ||
| 146 | hr = WcaInitialize(hInstall, "ConfigureGroups"); | ||
| 147 | ExitOnFailure(hr, "Failed to initialize"); | ||
| 148 | |||
| 149 | hr = ::CoInitialize(NULL); | ||
| 150 | ExitOnFailure(hr, "failed to initialize COM"); | ||
| 151 | fInitializedCom = TRUE; | ||
| 152 | |||
| 153 | hr = ScaGroupRead(&psgList); | ||
| 154 | ExitOnFailure(hr, "failed to read Wix4Group,Wix6Group table(s)"); | ||
| 155 | |||
| 156 | hr = ScaGroupExecute(psgList); | ||
| 157 | ExitOnFailure(hr, "failed to add/remove Group actions"); | ||
| 158 | |||
| 159 | LExit: | ||
| 160 | if (psgList) | ||
| 161 | { | ||
| 162 | ScaGroupFreeList(psgList); | ||
| 163 | } | ||
| 164 | |||
| 165 | if (fInitializedCom) | ||
| 166 | { | ||
| 167 | ::CoUninitialize(); | ||
| 168 | } | ||
| 169 | |||
| 170 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; | ||
| 171 | return WcaFinalize(er); | ||
| 172 | } | ||
