msi: Create installer object initializing automation object data.

This commit is contained in:
Nikolay Sivov 2012-01-14 16:38:58 +03:00 committed by Alexandre Julliard
parent 9505a1bf28
commit b79311b175
1 changed files with 22 additions and 3 deletions

View File

@ -2410,10 +2410,29 @@ static HRESULT InstallerImpl_Invoke(
}
}
/* Wrapper around create_automation_object to create an installer object. */
HRESULT create_msiserver(IUnknown *pOuter, LPVOID *ppObj)
HRESULT create_msiserver(IUnknown *outer, void **ppObj)
{
return create_automation_object(0, pOuter, ppObj, &DIID_Installer, InstallerImpl_Invoke, NULL, 0);
AutomationObject *installer;
HRESULT hr;
TRACE("(%p %p)\n", outer, ppObj);
if (outer)
return CLASS_E_NOAGGREGATION;
installer = msi_alloc(sizeof(AutomationObject));
if (!installer) return E_OUTOFMEMORY;
hr = init_automation_object(installer, 0, &DIID_Installer, InstallerImpl_Invoke, NULL);
if (hr != S_OK)
{
msi_free(installer);
return hr;
}
*ppObj = &installer->IDispatch_iface;
return hr;
}
HRESULT create_session(MSIHANDLE msiHandle, IDispatch *installer, IDispatch **disp)