Sync with trunk r62754.
[reactos.git] / dll / win32 / wuapi / installer.c
index 1a2c553..ae2e5ae 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#define COBJMACROS
-
-#include "config.h"
-#include <stdarg.h>
-
-#include "windef.h"
-#include "winbase.h"
-#include "winuser.h"
-#include "ole2.h"
-#include "wuapi.h"
-
-#include "wine/debug.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(wuapi);
+#include "wuapi_private.h"
 
 typedef struct _update_installer
 {
-    const struct IUpdateInstallerVtbl *vtbl;
+    IUpdateInstaller IUpdateInstaller_iface;
     LONG refs;
 } update_installer;
 
 static inline update_installer *impl_from_IUpdateInstaller( IUpdateInstaller *iface )
 {
-    return (update_installer *)((char *)iface - FIELD_OFFSET( update_installer, vtbl ));
+    return CONTAINING_RECORD(iface, update_installer, IUpdateInstaller_iface);
 }
 
 static ULONG WINAPI update_installer_AddRef(
@@ -213,6 +200,103 @@ static HRESULT WINAPI update_installer_put_Updates(
     return E_NOTIMPL;
 }
 
+static HRESULT WINAPI update_installer_BeginInstall(
+    IUpdateInstaller *This,
+    IUnknown *onProgressChanged,
+    IUnknown *onCompleted,
+    VARIANT state,
+    IInstallationJob **retval )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI update_installer_BeginUninstall(
+    IUpdateInstaller *This,
+    IUnknown *onProgressChanged,
+    IUnknown *onCompleted,
+    VARIANT state,
+    IInstallationJob **retval )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI update_installer_EndInstall(
+    IUpdateInstaller *This,
+    IInstallationJob *value,
+    IInstallationResult **retval )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI update_installer_EndUninstall(
+    IUpdateInstaller *This,
+    IInstallationJob *value,
+    IInstallationResult **retval )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI update_installer_Install(
+    IUpdateInstaller *This,
+    IInstallationResult **retval )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI update_installer_RunWizard(
+    IUpdateInstaller *This,
+    BSTR dialogTitle,
+    IInstallationResult **retval )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI update_installer_get_IsBusy(
+    IUpdateInstaller *This,
+    VARIANT_BOOL *retval )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI update_installer_Uninstall(
+    IUpdateInstaller *This,
+    IInstallationResult **retval )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI update_installer_get_AllowSourcePrompts(
+    IUpdateInstaller *This,
+    VARIANT_BOOL *retval )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI update_installer_put_AllowSourcePrompts(
+    IUpdateInstaller *This,
+    VARIANT_BOOL value )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI update_installer_get_RebootRequiredBeforeInstallation(
+    IUpdateInstaller *This,
+    VARIANT_BOOL *retval )
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
 static const struct IUpdateInstallerVtbl update_installer_vtbl =
 {
     update_installer_QueryInterface,
@@ -232,6 +316,17 @@ static const struct IUpdateInstallerVtbl update_installer_vtbl =
     update_installer_get_ParentWindow,
     update_installer_get_Updates,
     update_installer_put_Updates,
+    update_installer_BeginInstall,
+    update_installer_BeginUninstall,
+    update_installer_EndInstall,
+    update_installer_EndUninstall,
+    update_installer_Install,
+    update_installer_RunWizard,
+    update_installer_get_IsBusy,
+    update_installer_Uninstall,
+    update_installer_get_AllowSourcePrompts,
+    update_installer_put_AllowSourcePrompts,
+    update_installer_get_RebootRequiredBeforeInstallation
 };
 
 HRESULT UpdateInstaller_create( IUnknown *pUnkOuter, LPVOID *ppObj )
@@ -243,10 +338,10 @@ HRESULT UpdateInstaller_create( IUnknown *pUnkOuter, LPVOID *ppObj )
     installer = HeapAlloc( GetProcessHeap(), 0, sizeof(*installer) );
     if (!installer) return E_OUTOFMEMORY;
 
-    installer->vtbl = &update_installer_vtbl;
+    installer->IUpdateInstaller_iface.lpVtbl = &update_installer_vtbl;
     installer->refs = 1;
 
-    *ppObj = &installer->vtbl;
+    *ppObj = &installer->IUpdateInstaller_iface;
 
     TRACE("returning iface %p\n", *ppObj);
     return S_OK;