| /* | |
| * 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 ); | |
| #undef __thiscall | |
| #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; | |
| } |