diff options
Diffstat (limited to 'src/ext/Util/ca/scasched.cpp')
-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 | } | ||