Hans Leidekker : vssapi: Add stub implementations for a couple of functions.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Nov 27 16:07:42 CST 2014
Module: wine
Branch: master
Commit: a4a48d3fc87fb62c7e9266978a197f36e9407cac
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a4a48d3fc87fb62c7e9266978a197f36e9407cac
Author: Hans Leidekker <hans at codeweavers.com>
Date: Thu Nov 27 12:16:54 2014 +0100
vssapi: Add stub implementations for a couple of functions.
---
dlls/vssapi/Makefile.in | 3 ++
dlls/vssapi/main.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++
dlls/vssapi/vssapi.spec | 10 ++---
include/Makefile.in | 2 +
include/vss.idl | 31 ++++++++++++++
include/vswriter.h | 47 +++++++++++++++++++++
6 files changed, 196 insertions(+), 5 deletions(-)
diff --git a/dlls/vssapi/Makefile.in b/dlls/vssapi/Makefile.in
index 583ec1c..867a562 100644
--- a/dlls/vssapi/Makefile.in
+++ b/dlls/vssapi/Makefile.in
@@ -1 +1,4 @@
MODULE = vssapi.dll
+
+C_SRCS = \
+ main.c
diff --git a/dlls/vssapi/main.c b/dlls/vssapi/main.c
new file mode 100644
index 0000000..133f4c5
--- /dev/null
+++ b/dlls/vssapi/main.c
@@ -0,0 +1,108 @@
+/*
+ * Copyright 2014 Hans Leidekker for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "config.h"
+#include <stdarg.h>
+#include "windef.h"
+#include "winbase.h"
+#include "vss.h"
+#include "vswriter.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL( vssapi );
+
+#ifdef __i386__ /* thiscall functions are i386-specific */
+
+#define THISCALL(func) __thiscall_ ## func
+#define THISCALL_NAME(func) __ASM_NAME("__thiscall_" #func)
+#define __thiscall __stdcall
+#define DEFINE_THISCALL_WRAPPER(func,args) \
+ extern void THISCALL(func)(void); \
+ __ASM_GLOBAL_FUNC(__thiscall_ ## func, \
+ "popl %eax\n\t" \
+ "pushl %ecx\n\t" \
+ "pushl %eax\n\t" \
+ "jmp " __ASM_NAME(#func) __ASM_STDCALL(args) )
+#else /* __i386__ */
+
+#define THISCALL(func) func
+#define THISCALL_NAME(func) __ASM_NAME(#func)
+#define __thiscall __cdecl
+#define DEFINE_THISCALL_WRAPPER(func,args) /* nothing */
+
+#endif /* __i386__ */
+
+struct CVssWriter
+{
+ void **vtable;
+};
+
+/******************************************************************
+ * ??0CVssWriter@@QAE at XZ (VSSAPI.@)
+ */
+DEFINE_THISCALL_WRAPPER( VSSAPI_CVssWriter_default_ctor, 4 )
+struct CVssWriter * __thiscall VSSAPI_CVssWriter_default_ctor( struct CVssWriter *writer )
+{
+ FIXME( "%p\n", writer );
+ writer->vtable = NULL;
+ return writer;
+}
+
+/******************************************************************
+ * ??1CVssWriter@@UAE at XZ (VSSAPI.@)
+ */
+DEFINE_THISCALL_WRAPPER( VSSAPI_CVssWriter_dtor, 4 )
+void __thiscall VSSAPI_CVssWriter_dtor( struct CVssWriter *writer )
+{
+ FIXME( "%p\n", writer );
+}
+
+/******************************************************************
+ * ?Initialize at CVssWriter@@QAGJU_GUID@@PBGW4VSS_USAGE_TYPE@@W4VSS_SOURCE_TYPE@@W4_VSS_APPLICATION_LEVEL@@KW4VSS_ALTERNATE_WRITER_STATE@@_N at Z
+ */
+DEFINE_THISCALL_WRAPPER( VSSAPI_CVssWriter_Initialize, 52 )
+HRESULT __thiscall VSSAPI_CVssWriter_Initialize( struct CVssWriter *writer, VSS_ID id,
+ LPCWSTR name, VSS_USAGE_TYPE usage_type, VSS_SOURCE_TYPE source_type,
+ VSS_APPLICATION_LEVEL level, DWORD timeout, VSS_ALTERNATE_WRITER_STATE alt_writer_state,
+ BOOL throttle, LPCWSTR instance )
+{
+ FIXME( "%p, %s, %s, %u, %u, %u, %u, %u, %d, %s\n", writer, debugstr_guid(&id),
+ debugstr_w(name), usage_type, source_type, level, timeout, alt_writer_state,
+ throttle, debugstr_w(instance) );
+ return S_OK;
+}
+
+/******************************************************************
+ * ?Subscribe at CVssWriter@@QAGJK at Z
+ */
+DEFINE_THISCALL_WRAPPER( VSSAPI_CVssWriter_Subscribe, 8 )
+HRESULT __thiscall VSSAPI_CVssWriter_Subscribe( struct CVssWriter *writer, DWORD flags )
+{
+ FIXME( "%p, %x\n", writer, flags );
+ return S_OK;
+}
+
+/******************************************************************
+ * ?Unsubscribe at CVssWriter@@QAGJXZ
+ */
+DEFINE_THISCALL_WRAPPER( VSSAPI_CVssWriter_Unsubscribe, 4 )
+HRESULT __thiscall VSSAPI_CVssWriter_Unsubscribe( struct CVssWriter *writer )
+{
+ FIXME( "%p\n", writer );
+ return S_OK;
+}
diff --git a/dlls/vssapi/vssapi.spec b/dlls/vssapi/vssapi.spec
index 4ad38a3..77599ab 100644
--- a/dlls/vssapi/vssapi.spec
+++ b/dlls/vssapi/vssapi.spec
@@ -2,9 +2,9 @@
@ stub VssFreeSnapshotProperties
@ stub ShouldBlockRevert
@ stub ??0CVssJetWriter@@QAE at XZ
-@ stub ??0CVssWriter@@QAE at XZ
+@ thiscall -arch=i386 ??0CVssWriter@@QAE at XZ(ptr) VSSAPI_CVssWriter_default_ctor
@ stub ??1CVssJetWriter@@UAE at XZ
-@ stub ??1CVssWriter@@UAE at XZ
+@ thiscall -arch=i386 ??1CVssWriter@@UAE at XZ(ptr) VSSAPI_CVssWriter_dtor
@ stub ?AreComponentsSelected at CVssJetWriter@@IBG_NXZ
@ stub ?AreComponentsSelected at CVssWriter@@IBG_NXZ
@ stub ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z
@@ -27,7 +27,7 @@
@ stub ?GetSnapshotDeviceName at CVssJetWriter@@IBGJPBGPAPBG at Z
@ stub ?GetSnapshotDeviceName at CVssWriter@@IBGJPBGPAPBG at Z
@ stub ?Initialize at CVssJetWriter@@QAGJU_GUID@@PBG_N211K at Z
-@ stub ?Initialize at CVssWriter@@QAGJU_GUID@@PBGW4VSS_USAGE_TYPE@@W4VSS_SOURCE_TYPE@@W4_VSS_APPLICATION_LEVEL@@KW4VSS_ALTERNATE_WRITER_STATE@@_N at Z
+@ thiscall -arch=i386 ?Initialize at CVssWriter@@QAGJU_GUID@@PBGW4VSS_USAGE_TYPE@@W4VSS_SOURCE_TYPE@@W4_VSS_APPLICATION_LEVEL@@KW4VSS_ALTERNATE_WRITER_STATE@@_N at Z(ptr ptr wstr long long long long long long wstr) VSSAPI_CVssWriter_Initialize
@ stub ?InstallAlternateWriter at CVssWriter@@QAGJU_GUID@@0 at Z
@ stub ?IsBootableSystemStateBackedUp at CVssJetWriter@@IBG_NXZ
@ stub ?IsBootableSystemStateBackedUp at CVssWriter@@IBG_NXZ
@@ -67,9 +67,9 @@
@ stub ?OnVSSShutdown at CVssWriter@@UAG_NXZ
@ stub ?SetWriterFailure at CVssJetWriter@@IAGJJ at Z
@ stub ?SetWriterFailure at CVssWriter@@IAGJJ at Z
-@ stub ?Subscribe at CVssWriter@@QAGJK at Z
+@ thiscall -arch=i386 ?Subscribe at CVssWriter@@QAGJK at Z(ptr long) VSSAPI_CVssWriter_Subscribe
@ stub ?Uninitialize at CVssJetWriter@@QAGXXZ
-@ stub ?Unsubscribe at CVssWriter@@QAGJXZ
+@ thiscall -arch=i386 ?Unsubscribe at CVssWriter@@QAGJXZ(ptr) VSSAPI_CVssWriter_Unsubscribe
@ stub CreateVssBackupComponentsInternal
@ stub CreateVssExamineWriterMetadataInternal
@ stub CreateVssExpressWriterInternal
diff --git a/include/Makefile.in b/include/Makefile.in
index e8d2379..a952964 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -118,6 +118,7 @@ PUBLIC_IDL_H_SRCS = \
urlhist.idl \
urlmon.idl \
vmr9.idl \
+ vss.idl \
wbemcli.idl \
wbemdisp.idl \
wbemprov.idl \
@@ -577,6 +578,7 @@ SRCDIR_INCLUDES = \
vmrender.idl \
vsstyle.h \
vssym32.h \
+ vswriter.h \
werapi.h \
wfext.h \
wia.h \
diff --git a/include/vss.idl b/include/vss.idl
new file mode 100644
index 0000000..62335ea
--- /dev/null
+++ b/include/vss.idl
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2014 Hans Leidekker for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "oaidl.idl";
+
+typedef GUID VSS_ID;
+
+typedef enum _VSS_APPLICATION_LEVEL
+{
+ VSS_APP_AUTO = -1,
+ VSS_APP_UNKNOWN = 0,
+ VSS_APP_SYSTEM = 1,
+ VSS_APP_BACK_END = 2,
+ VSS_APP_FRONT_END = 3,
+ VSS_APP_SYSTEM_RM = 4
+} VSS_APPLICATION_LEVEL;
diff --git a/include/vswriter.h b/include/vswriter.h
new file mode 100644
index 0000000..043b871
--- /dev/null
+++ b/include/vswriter.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2014 Hans Leidekker for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_VSWRITER_H
+#define __WINE_VSWRITER_H
+
+typedef enum
+{
+ VSS_UT_UNDEFINED,
+ VSS_UT_BOOTABLESYSTEMSTATE,
+ VSS_UT_SYSTEMSERVICE,
+ VSS_UT_USERDATA,
+ VSS_UT_OTHER
+} VSS_USAGE_TYPE;
+
+typedef enum
+{
+ VSS_ST_UNDEFINED,
+ VSS_ST_TRANSACTEDDB,
+ VSS_ST_NONTRANSACTEDDB,
+ VSS_ST_OTHER
+} VSS_SOURCE_TYPE;
+
+typedef enum
+{
+ VSS_AWS_UNDEFINED,
+ VSS_AWS_NO_ALTERNATE_WRITER,
+ VSS_AWS_ALTERNATE_WRITER_EXISTS,
+ VSS_AWS_THIS_IS_ALTERNATE_WRITER
+} VSS_ALTERNATE_WRITER_STATE;
+
+#endif /* ___WINE_VSWRITER_H */
More information about the wine-cvs
mailing list