Module: wine Branch: master Commit: a4a48d3fc87fb62c7e9266978a197f36e9407cac URL: http://source.winehq.org/git/wine.git/?a=commit;h=a4a48d3fc87fb62c7e9266978a...
Author: Hans Leidekker hans@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@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@XZ (VSSAPI.@) + */ +DEFINE_THISCALL_WRAPPER( VSSAPI_CVssWriter_dtor, 4 ) +void __thiscall VSSAPI_CVssWriter_dtor( struct CVssWriter *writer ) +{ + FIXME( "%p\n", writer ); +} + +/****************************************************************** + * ?Initialize@CVssWriter@@QAGJU_GUID@@PBGW4VSS_USAGE_TYPE@@W4VSS_SOURCE_TYPE@@W4_VSS_APPLICATION_LEVEL@@KW4VSS_ALTERNATE_WRITER_STATE@@_N@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@CVssWriter@@QAGJK@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@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@XZ -@ stub ??0CVssWriter@@QAE@XZ +@ thiscall -arch=i386 ??0CVssWriter@@QAE@XZ(ptr) VSSAPI_CVssWriter_default_ctor @ stub ??1CVssJetWriter@@UAE@XZ -@ stub ??1CVssWriter@@UAE@XZ +@ thiscall -arch=i386 ??1CVssWriter@@UAE@XZ(ptr) VSSAPI_CVssWriter_dtor @ stub ?AreComponentsSelected@CVssJetWriter@@IBG_NXZ @ stub ?AreComponentsSelected@CVssWriter@@IBG_NXZ @ stub ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z @@ -27,7 +27,7 @@ @ stub ?GetSnapshotDeviceName@CVssJetWriter@@IBGJPBGPAPBG@Z @ stub ?GetSnapshotDeviceName@CVssWriter@@IBGJPBGPAPBG@Z @ stub ?Initialize@CVssJetWriter@@QAGJU_GUID@@PBG_N211K@Z -@ stub ?Initialize@CVssWriter@@QAGJU_GUID@@PBGW4VSS_USAGE_TYPE@@W4VSS_SOURCE_TYPE@@W4_VSS_APPLICATION_LEVEL@@KW4VSS_ALTERNATE_WRITER_STATE@@_N@Z +@ thiscall -arch=i386 ?Initialize@CVssWriter@@QAGJU_GUID@@PBGW4VSS_USAGE_TYPE@@W4VSS_SOURCE_TYPE@@W4_VSS_APPLICATION_LEVEL@@KW4VSS_ALTERNATE_WRITER_STATE@@_N@Z(ptr ptr wstr long long long long long long wstr) VSSAPI_CVssWriter_Initialize @ stub ?InstallAlternateWriter@CVssWriter@@QAGJU_GUID@@0@Z @ stub ?IsBootableSystemStateBackedUp@CVssJetWriter@@IBG_NXZ @ stub ?IsBootableSystemStateBackedUp@CVssWriter@@IBG_NXZ @@ -67,9 +67,9 @@ @ stub ?OnVSSShutdown@CVssWriter@@UAG_NXZ @ stub ?SetWriterFailure@CVssJetWriter@@IAGJJ@Z @ stub ?SetWriterFailure@CVssWriter@@IAGJJ@Z -@ stub ?Subscribe@CVssWriter@@QAGJK@Z +@ thiscall -arch=i386 ?Subscribe@CVssWriter@@QAGJK@Z(ptr long) VSSAPI_CVssWriter_Subscribe @ stub ?Uninitialize@CVssJetWriter@@QAGXXZ -@ stub ?Unsubscribe@CVssWriter@@QAGJXZ +@ thiscall -arch=i386 ?Unsubscribe@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 */