aboutsummaryrefslogtreecommitdiff
path: root/src/ext/Util/ca/scasched.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext/Util/ca/scasched.cpp')
-rw-r--r--src/ext/Util/ca/scasched.cpp47
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/********************************************************************
130ConfigureGroups - CUSTOM ACTION ENTRY POINT for installing groups
131
132********************************************************************/
133extern "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
159LExit:
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}