From 4f40fe587b0683c7a14311e1c37fd5b33e507446 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Mon, 4 Apr 2022 19:40:37 +0300 Subject: [PATCH] dbgeng: Update to IDebugControl4 stub. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/dbgeng/dbgeng.c | 828 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 707 insertions(+), 121 deletions(-) diff --git a/dlls/dbgeng/dbgeng.c b/dlls/dbgeng/dbgeng.c index 1439cedfeb3..e0e7c3ff98e 100644 --- a/dlls/dbgeng/dbgeng.c +++ b/dlls/dbgeng/dbgeng.c @@ -62,7 +62,7 @@ struct debug_client IDebugClient7 IDebugClient_iface; IDebugDataSpaces IDebugDataSpaces_iface; IDebugSymbols3 IDebugSymbols3_iface; - IDebugControl2 IDebugControl2_iface; + IDebugControl4 IDebugControl4_iface; IDebugAdvanced IDebugAdvanced_iface; IDebugSystemObjects IDebugSystemObjects_iface; LONG refcount; @@ -252,9 +252,9 @@ static struct debug_client *impl_from_IDebugSymbols3(IDebugSymbols3 *iface) return CONTAINING_RECORD(iface, struct debug_client, IDebugSymbols3_iface); } -static struct debug_client *impl_from_IDebugControl2(IDebugControl2 *iface) +static struct debug_client *impl_from_IDebugControl4(IDebugControl4 *iface) { - return CONTAINING_RECORD(iface, struct debug_client, IDebugControl2_iface); + return CONTAINING_RECORD(iface, struct debug_client, IDebugControl4_iface); } static struct debug_client *impl_from_IDebugAdvanced(IDebugAdvanced *iface) @@ -294,10 +294,12 @@ static HRESULT STDMETHODCALLTYPE debugclient_QueryInterface(IDebugClient7 *iface { *obj = &debug_client->IDebugSymbols3_iface; } - else if (IsEqualIID(riid, &IID_IDebugControl2) + else if (IsEqualIID(riid, &IID_IDebugControl4) + || IsEqualIID(riid, &IID_IDebugControl3) + || IsEqualIID(riid, &IID_IDebugControl2) || IsEqualIID(riid, &IID_IDebugControl)) { - *obj = &debug_client->IDebugControl2_iface; + *obj = &debug_client->IDebugControl4_iface; } else if (IsEqualIID(riid, &IID_IDebugAdvanced)) { @@ -2676,56 +2678,56 @@ static const IDebugSymbols3Vtbl debugsymbolsvtbl = debugsymbols_GetSourceEntryBySourceEntry, }; -static HRESULT STDMETHODCALLTYPE debugcontrol_QueryInterface(IDebugControl2 *iface, REFIID riid, void **obj) +static HRESULT STDMETHODCALLTYPE debugcontrol_QueryInterface(IDebugControl4 *iface, REFIID riid, void **obj) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); IUnknown *unk = (IUnknown *)&debug_client->IDebugClient_iface; return IUnknown_QueryInterface(unk, riid, obj); } -static ULONG STDMETHODCALLTYPE debugcontrol_AddRef(IDebugControl2 *iface) +static ULONG STDMETHODCALLTYPE debugcontrol_AddRef(IDebugControl4 *iface) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); IUnknown *unk = (IUnknown *)&debug_client->IDebugClient_iface; return IUnknown_AddRef(unk); } -static ULONG STDMETHODCALLTYPE debugcontrol_Release(IDebugControl2 *iface) +static ULONG STDMETHODCALLTYPE debugcontrol_Release(IDebugControl4 *iface) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); IUnknown *unk = (IUnknown *)&debug_client->IDebugClient_iface; return IUnknown_Release(unk); } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetInterrupt(IDebugControl2 *iface) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetInterrupt(IDebugControl4 *iface) { FIXME("%p stub.\n", iface); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetInterrupt(IDebugControl2 *iface, ULONG flags) +static HRESULT STDMETHODCALLTYPE debugcontrol_SetInterrupt(IDebugControl4 *iface, ULONG flags) { FIXME("%p, %#lx stub.\n", iface, flags); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetInterruptTimeout(IDebugControl2 *iface, ULONG *timeout) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetInterruptTimeout(IDebugControl4 *iface, ULONG *timeout) { FIXME("%p, %p stub.\n", iface, timeout); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetInterruptTimeout(IDebugControl2 *iface, ULONG timeout) +static HRESULT STDMETHODCALLTYPE debugcontrol_SetInterruptTimeout(IDebugControl4 *iface, ULONG timeout) { FIXME("%p, %lu stub.\n", iface, timeout); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetLogFile(IDebugControl2 *iface, char *buffer, ULONG buffer_size, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetLogFile(IDebugControl4 *iface, char *buffer, ULONG buffer_size, ULONG *file_size, BOOL *append) { FIXME("%p, %p, %lu, %p, %p stub.\n", iface, buffer, buffer_size, file_size, append); @@ -2733,33 +2735,33 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetLogFile(IDebugControl2 *iface, return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_OpenLogFile(IDebugControl2 *iface, const char *file, BOOL append) +static HRESULT STDMETHODCALLTYPE debugcontrol_OpenLogFile(IDebugControl4 *iface, const char *file, BOOL append) { FIXME("%p, %s, %d stub.\n", iface, debugstr_a(file), append); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_CloseLogFile(IDebugControl2 *iface) +static HRESULT STDMETHODCALLTYPE debugcontrol_CloseLogFile(IDebugControl4 *iface) { FIXME("%p stub.\n", iface); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetLogMask(IDebugControl2 *iface, ULONG *mask) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetLogMask(IDebugControl4 *iface, ULONG *mask) { FIXME("%p, %p stub.\n", iface, mask); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetLogMask(IDebugControl2 *iface, ULONG mask) +static HRESULT STDMETHODCALLTYPE debugcontrol_SetLogMask(IDebugControl4 *iface, ULONG mask) { FIXME("%p, %#lx stub.\n", iface, mask); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_Input(IDebugControl2 *iface, char *buffer, ULONG buffer_size, +static HRESULT STDMETHODCALLTYPE debugcontrol_Input(IDebugControl4 *iface, char *buffer, ULONG buffer_size, ULONG *input_size) { FIXME("%p, %p, %lu, %p stub.\n", iface, buffer, buffer_size, input_size); @@ -2767,21 +2769,21 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_Input(IDebugControl2 *iface, char return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_ReturnInput(IDebugControl2 *iface, const char *buffer) +static HRESULT STDMETHODCALLTYPE debugcontrol_ReturnInput(IDebugControl4 *iface, const char *buffer) { FIXME("%p, %s stub.\n", iface, debugstr_a(buffer)); return E_NOTIMPL; } -static HRESULT STDMETHODVCALLTYPE debugcontrol_Output(IDebugControl2 *iface, ULONG mask, const char *format, ...) +static HRESULT STDMETHODVCALLTYPE debugcontrol_Output(IDebugControl4 *iface, ULONG mask, const char *format, ...) { FIXME("%p, %#lx, %s stub.\n", iface, mask, debugstr_a(format)); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_OutputVaList(IDebugControl2 *iface, ULONG mask, const char *format, +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputVaList(IDebugControl4 *iface, ULONG mask, const char *format, va_list args) { FIXME("%p, %#lx, %s stub.\n", iface, mask, debugstr_a(format)); @@ -2789,7 +2791,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_OutputVaList(IDebugControl2 *iface return E_NOTIMPL; } -static HRESULT STDMETHODVCALLTYPE debugcontrol_ControlledOutput(IDebugControl2 *iface, ULONG output_control, +static HRESULT STDMETHODVCALLTYPE debugcontrol_ControlledOutput(IDebugControl4 *iface, ULONG output_control, ULONG mask, const char *format, ...) { FIXME("%p, %lu, %#lx, %s stub.\n", iface, output_control, mask, debugstr_a(format)); @@ -2797,7 +2799,7 @@ static HRESULT STDMETHODVCALLTYPE debugcontrol_ControlledOutput(IDebugControl2 * return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_ControlledOutputVaList(IDebugControl2 *iface, ULONG output_control, +static HRESULT STDMETHODCALLTYPE debugcontrol_ControlledOutputVaList(IDebugControl4 *iface, ULONG output_control, ULONG mask, const char *format, va_list args) { FIXME("%p, %lu, %#lx, %s stub.\n", iface, output_control, mask, debugstr_a(format)); @@ -2805,7 +2807,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_ControlledOutputVaList(IDebugContr return E_NOTIMPL; } -static HRESULT STDMETHODVCALLTYPE debugcontrol_OutputPrompt(IDebugControl2 *iface, ULONG output_control, +static HRESULT STDMETHODVCALLTYPE debugcontrol_OutputPrompt(IDebugControl4 *iface, ULONG output_control, const char *format, ...) { FIXME("%p, %lu, %s stub.\n", iface, output_control, debugstr_a(format)); @@ -2813,7 +2815,7 @@ static HRESULT STDMETHODVCALLTYPE debugcontrol_OutputPrompt(IDebugControl2 *ifac return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_OutputPromptVaList(IDebugControl2 *iface, ULONG output_control, +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputPromptVaList(IDebugControl4 *iface, ULONG output_control, const char *format, va_list args) { FIXME("%p, %lu, %s stub.\n", iface, output_control, debugstr_a(format)); @@ -2821,7 +2823,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_OutputPromptVaList(IDebugControl2 return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetPromptText(IDebugControl2 *iface, char *buffer, ULONG buffer_size, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetPromptText(IDebugControl4 *iface, char *buffer, ULONG buffer_size, ULONG *text_size) { FIXME("%p, %p, %lu, %p stub.\n", iface, buffer, buffer_size, text_size); @@ -2829,7 +2831,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetPromptText(IDebugControl2 *ifac return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_OutputCurrentState(IDebugControl2 *iface, ULONG output_control, +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputCurrentState(IDebugControl4 *iface, ULONG output_control, ULONG flags) { FIXME("%p, %lu, %#lx stub.\n", iface, output_control, flags); @@ -2837,28 +2839,28 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_OutputCurrentState(IDebugControl2 return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_OutputVersionInformation(IDebugControl2 *iface, ULONG output_control) +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputVersionInformation(IDebugControl4 *iface, ULONG output_control) { FIXME("%p, %lu stub.\n", iface, output_control); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetNotifyEventHandle(IDebugControl2 *iface, ULONG64 *handle) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNotifyEventHandle(IDebugControl4 *iface, ULONG64 *handle) { FIXME("%p, %p stub.\n", iface, handle); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetNotifyEventHandle(IDebugControl2 *iface, ULONG64 handle) +static HRESULT STDMETHODCALLTYPE debugcontrol_SetNotifyEventHandle(IDebugControl4 *iface, ULONG64 handle) { FIXME("%p, %s stub.\n", iface, wine_dbgstr_longlong(handle)); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_Assemble(IDebugControl2 *iface, ULONG64 offset, const char *code, +static HRESULT STDMETHODCALLTYPE debugcontrol_Assemble(IDebugControl4 *iface, ULONG64 offset, const char *code, ULONG64 *end_offset) { FIXME("%p, %s, %s, %p stub.\n", iface, wine_dbgstr_longlong(offset), debugstr_a(code), end_offset); @@ -2866,7 +2868,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_Assemble(IDebugControl2 *iface, UL return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_Disassemble(IDebugControl2 *iface, ULONG64 offset, ULONG flags, +static HRESULT STDMETHODCALLTYPE debugcontrol_Disassemble(IDebugControl4 *iface, ULONG64 offset, ULONG flags, char *buffer, ULONG buffer_size, ULONG *disassm_size, ULONG64 *end_offset) { FIXME("%p, %s, %#lx, %p, %lu, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), flags, buffer, buffer_size, @@ -2875,14 +2877,14 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_Disassemble(IDebugControl2 *iface, return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetDisassembleEffectiveOffset(IDebugControl2 *iface, ULONG64 *offset) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetDisassembleEffectiveOffset(IDebugControl4 *iface, ULONG64 *offset) { FIXME("%p, %p stub.\n", iface, offset); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_OutputDisassembly(IDebugControl2 *iface, ULONG output_control, +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputDisassembly(IDebugControl4 *iface, ULONG output_control, ULONG64 offset, ULONG flags, ULONG64 *end_offset) { FIXME("%p, %lu, %s, %#lx, %p stub.\n", iface, output_control, wine_dbgstr_longlong(offset), flags, end_offset); @@ -2890,7 +2892,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_OutputDisassembly(IDebugControl2 * return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_OutputDisassemblyLines(IDebugControl2 *iface, ULONG output_control, +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputDisassemblyLines(IDebugControl4 *iface, ULONG output_control, ULONG prev_lines, ULONG total_lines, ULONG64 offset, ULONG flags, ULONG *offset_line, ULONG64 *start_offset, ULONG64 *end_offset, ULONG64 *line_offsets) { @@ -2900,7 +2902,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_OutputDisassemblyLines(IDebugContr return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetNearInstruction(IDebugControl2 *iface, ULONG64 offset, LONG delta, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNearInstruction(IDebugControl4 *iface, ULONG64 offset, LONG delta, ULONG64 *instr_offset) { FIXME("%p, %s, %ld, %p stub.\n", iface, wine_dbgstr_longlong(offset), delta, instr_offset); @@ -2908,7 +2910,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetNearInstruction(IDebugControl2 return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetStackTrace(IDebugControl2 *iface, ULONG64 frame_offset, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetStackTrace(IDebugControl4 *iface, ULONG64 frame_offset, ULONG64 stack_offset, ULONG64 instr_offset, DEBUG_STACK_FRAME *frames, ULONG frames_size, ULONG *frames_filled) { FIXME("%p, %s, %s, %s, %p, %lu, %p stub.\n", iface, wine_dbgstr_longlong(frame_offset), @@ -2917,14 +2919,14 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetStackTrace(IDebugControl2 *ifac return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetReturnOffset(IDebugControl2 *iface, ULONG64 *offset) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetReturnOffset(IDebugControl4 *iface, ULONG64 *offset) { FIXME("%p, %p stub.\n", iface, offset); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_OutputStackTrace(IDebugControl2 *iface, ULONG output_control, +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputStackTrace(IDebugControl4 *iface, ULONG output_control, DEBUG_STACK_FRAME *frames, ULONG frames_size, ULONG flags) { FIXME("%p, %lu, %p, %lu, %#lx stub.\n", iface, output_control, frames, frames_size, flags); @@ -2932,10 +2934,10 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_OutputStackTrace(IDebugControl2 *i return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetDebuggeeType(IDebugControl2 *iface, ULONG *debug_class, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetDebuggeeType(IDebugControl4 *iface, ULONG *debug_class, ULONG *qualifier) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); static struct target_process *target; FIXME("%p, %p, %p stub.\n", iface, debug_class, qualifier); @@ -2952,16 +2954,16 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetDebuggeeType(IDebugControl2 *if return S_OK; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetActualProcessorType(IDebugControl2 *iface, ULONG *type) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetActualProcessorType(IDebugControl4 *iface, ULONG *type) { FIXME("%p, %p stub.\n", iface, type); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetExecutingProcessorType(IDebugControl2 *iface, ULONG *type) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExecutingProcessorType(IDebugControl4 *iface, ULONG *type) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); static struct target_process *target; HRESULT hr; @@ -2978,7 +2980,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetExecutingProcessorType(IDebugCo return S_OK; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberPossibleExecutingProcessorTypes(IDebugControl2 *iface, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberPossibleExecutingProcessorTypes(IDebugControl4 *iface, ULONG *count) { FIXME("%p, %p stub.\n", iface, count); @@ -2986,7 +2988,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberPossibleExecutingProcesso return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetPossibleExecutingProcessorTypes(IDebugControl2 *iface, ULONG start, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetPossibleExecutingProcessorTypes(IDebugControl4 *iface, ULONG start, ULONG count, ULONG *types) { FIXME("%p, %lu, %lu, %p stub.\n", iface, start, count, types); @@ -2994,14 +2996,14 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetPossibleExecutingProcessorTypes return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberProcessors(IDebugControl2 *iface, ULONG *count) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberProcessors(IDebugControl4 *iface, ULONG *count) { FIXME("%p, %p stub.\n", iface, count); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetSystemVersion(IDebugControl2 *iface, ULONG *platform_id, ULONG *major, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetSystemVersion(IDebugControl4 *iface, ULONG *platform_id, ULONG *major, ULONG *minor, char *sp_string, ULONG sp_string_size, ULONG *sp_string_used, ULONG *sp_number, char *build_string, ULONG build_string_size, ULONG *build_string_used) { @@ -3011,16 +3013,16 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetSystemVersion(IDebugControl2 *i return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetPageSize(IDebugControl2 *iface, ULONG *size) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetPageSize(IDebugControl4 *iface, ULONG *size) { FIXME("%p, %p stub.\n", iface, size); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_IsPointer64Bit(IDebugControl2 *iface) +static HRESULT STDMETHODCALLTYPE debugcontrol_IsPointer64Bit(IDebugControl4 *iface) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); static struct target_process *target; HRESULT hr; @@ -3051,7 +3053,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_IsPointer64Bit(IDebugControl2 *ifa return hr; } -static HRESULT STDMETHODCALLTYPE debugcontrol_ReadBugCheckData(IDebugControl2 *iface, ULONG *code, ULONG64 *arg1, +static HRESULT STDMETHODCALLTYPE debugcontrol_ReadBugCheckData(IDebugControl4 *iface, ULONG *code, ULONG64 *arg1, ULONG64 *arg2, ULONG64 *arg3, ULONG64 *arg4) { FIXME("%p, %p, %p, %p, %p, %p stub.\n", iface, code, arg1, arg2, arg3, arg4); @@ -3059,14 +3061,14 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_ReadBugCheckData(IDebugControl2 *i return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberSupportedProcessorTypes(IDebugControl2 *iface, ULONG *count) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberSupportedProcessorTypes(IDebugControl4 *iface, ULONG *count) { FIXME("%p, %p stub.\n", iface, count); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetSupportedProcessorTypes(IDebugControl2 *iface, ULONG start, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetSupportedProcessorTypes(IDebugControl4 *iface, ULONG start, ULONG count, ULONG *types) { FIXME("%p, %lu, %lu, %p stub.\n", iface, start, count, types); @@ -3074,7 +3076,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetSupportedProcessorTypes(IDebugC return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetProcessorTypeNames(IDebugControl2 *iface, ULONG type, char *full_name, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetProcessorTypeNames(IDebugControl4 *iface, ULONG type, char *full_name, ULONG full_name_buffer_size, ULONG *full_name_size, char *abbrev_name, ULONG abbrev_name_buffer_size, ULONG *abbrev_name_size) { @@ -3084,51 +3086,51 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetProcessorTypeNames(IDebugContro return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetEffectiveProcessorType(IDebugControl2 *iface, ULONG *type) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetEffectiveProcessorType(IDebugControl4 *iface, ULONG *type) { FIXME("%p, %p stub.\n", iface, type); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetEffectiveProcessorType(IDebugControl2 *iface, ULONG type) +static HRESULT STDMETHODCALLTYPE debugcontrol_SetEffectiveProcessorType(IDebugControl4 *iface, ULONG type) { FIXME("%p, %lu stub.\n", iface, type); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetExecutionStatus(IDebugControl2 *iface, ULONG *status) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExecutionStatus(IDebugControl4 *iface, ULONG *status) { FIXME("%p, %p stub.\n", iface, status); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetExecutionStatus(IDebugControl2 *iface, ULONG status) +static HRESULT STDMETHODCALLTYPE debugcontrol_SetExecutionStatus(IDebugControl4 *iface, ULONG status) { FIXME("%p, %lu stub.\n", iface, status); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetCodeLevel(IDebugControl2 *iface, ULONG *level) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetCodeLevel(IDebugControl4 *iface, ULONG *level) { FIXME("%p, %p stub.\n", iface, level); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetCodeLevel(IDebugControl2 *iface, ULONG level) +static HRESULT STDMETHODCALLTYPE debugcontrol_SetCodeLevel(IDebugControl4 *iface, ULONG level) { FIXME("%p, %lu stub.\n", iface, level); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetEngineOptions(IDebugControl2 *iface, ULONG *options) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetEngineOptions(IDebugControl4 *iface, ULONG *options) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); TRACE("%p, %p.\n", iface, options); @@ -3137,9 +3139,9 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetEngineOptions(IDebugControl2 *i return S_OK; } -static HRESULT STDMETHODCALLTYPE debugcontrol_AddEngineOptions(IDebugControl2 *iface, ULONG options) +static HRESULT STDMETHODCALLTYPE debugcontrol_AddEngineOptions(IDebugControl4 *iface, ULONG options) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); TRACE("%p, %#lx.\n", iface, options); @@ -3151,9 +3153,9 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_AddEngineOptions(IDebugControl2 *i return S_OK; } -static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveEngineOptions(IDebugControl2 *iface, ULONG options) +static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveEngineOptions(IDebugControl4 *iface, ULONG options) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); TRACE("%p, %#lx.\n", iface, options); @@ -3162,9 +3164,9 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveEngineOptions(IDebugControl2 return S_OK; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetEngineOptions(IDebugControl2 *iface, ULONG options) +static HRESULT STDMETHODCALLTYPE debugcontrol_SetEngineOptions(IDebugControl4 *iface, ULONG options) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); TRACE("%p, %#lx.\n", iface, options); @@ -3176,7 +3178,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_SetEngineOptions(IDebugControl2 *i return S_OK; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetSystemErrorControl(IDebugControl2 *iface, ULONG *output_level, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetSystemErrorControl(IDebugControl4 *iface, ULONG *output_level, ULONG *break_level) { FIXME("%p, %p, %p stub.\n", iface, output_level, break_level); @@ -3184,7 +3186,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetSystemErrorControl(IDebugContro return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetSystemErrorControl(IDebugControl2 *iface, ULONG output_level, +static HRESULT STDMETHODCALLTYPE debugcontrol_SetSystemErrorControl(IDebugControl4 *iface, ULONG output_level, ULONG break_level) { FIXME("%p, %lu, %lu stub.\n", iface, output_level, break_level); @@ -3192,7 +3194,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_SetSystemErrorControl(IDebugContro return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetTextMacro(IDebugControl2 *iface, ULONG slot, char *buffer, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetTextMacro(IDebugControl4 *iface, ULONG slot, char *buffer, ULONG buffer_size, ULONG *macro_size) { FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, slot, buffer, buffer_size, macro_size); @@ -3200,28 +3202,28 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetTextMacro(IDebugControl2 *iface return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetTextMacro(IDebugControl2 *iface, ULONG slot, const char *macro) +static HRESULT STDMETHODCALLTYPE debugcontrol_SetTextMacro(IDebugControl4 *iface, ULONG slot, const char *macro) { FIXME("%p, %lu, %s stub.\n", iface, slot, debugstr_a(macro)); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetRadix(IDebugControl2 *iface, ULONG *radix) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetRadix(IDebugControl4 *iface, ULONG *radix) { FIXME("%p, %p stub.\n", iface, radix); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetRadix(IDebugControl2 *iface, ULONG radix) +static HRESULT STDMETHODCALLTYPE debugcontrol_SetRadix(IDebugControl4 *iface, ULONG radix) { FIXME("%p, %lu stub.\n", iface, radix); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_Evaluate(IDebugControl2 *iface, const char *expression, +static HRESULT STDMETHODCALLTYPE debugcontrol_Evaluate(IDebugControl4 *iface, const char *expression, ULONG desired_type, DEBUG_VALUE *value, ULONG *remainder_index) { FIXME("%p, %s, %lu, %p, %p stub.\n", iface, debugstr_a(expression), desired_type, value, remainder_index); @@ -3229,7 +3231,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_Evaluate(IDebugControl2 *iface, co return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_CoerceValue(IDebugControl2 *iface, DEBUG_VALUE input, ULONG output_type, +static HRESULT STDMETHODCALLTYPE debugcontrol_CoerceValue(IDebugControl4 *iface, DEBUG_VALUE input, ULONG output_type, DEBUG_VALUE *output) { FIXME("%p, %lu, %p stub.\n", iface, output_type, output); @@ -3237,7 +3239,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_CoerceValue(IDebugControl2 *iface, return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_CoerceValues(IDebugControl2 *iface, ULONG count, DEBUG_VALUE *input, +static HRESULT STDMETHODCALLTYPE debugcontrol_CoerceValues(IDebugControl4 *iface, ULONG count, DEBUG_VALUE *input, ULONG *output_types, DEBUG_VALUE *output) { FIXME("%p, %lu, %p, %p, %p stub.\n", iface, count, input, output_types, output); @@ -3245,7 +3247,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_CoerceValues(IDebugControl2 *iface return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_Execute(IDebugControl2 *iface, ULONG output_control, const char *command, +static HRESULT STDMETHODCALLTYPE debugcontrol_Execute(IDebugControl4 *iface, ULONG output_control, const char *command, ULONG flags) { FIXME("%p, %lu, %s, %#lx stub.\n", iface, output_control, debugstr_a(command), flags); @@ -3253,7 +3255,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_Execute(IDebugControl2 *iface, ULO return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_ExecuteCommandFile(IDebugControl2 *iface, ULONG output_control, +static HRESULT STDMETHODCALLTYPE debugcontrol_ExecuteCommandFile(IDebugControl4 *iface, ULONG output_control, const char *command_file, ULONG flags) { FIXME("%p, %lu, %s, %#lx stub.\n", iface, output_control, debugstr_a(command_file), flags); @@ -3261,14 +3263,14 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_ExecuteCommandFile(IDebugControl2 return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberBreakpoints(IDebugControl2 *iface, ULONG *count) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberBreakpoints(IDebugControl4 *iface, ULONG *count) { FIXME("%p, %p stub.\n", iface, count); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetBreakpointByIndex(IDebugControl2 *iface, ULONG index, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetBreakpointByIndex(IDebugControl4 *iface, ULONG index, IDebugBreakpoint **bp) { FIXME("%p, %lu, %p stub.\n", iface, index, bp); @@ -3276,14 +3278,14 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetBreakpointByIndex(IDebugControl return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetBreakpointById(IDebugControl2 *iface, ULONG id, IDebugBreakpoint **bp) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetBreakpointById(IDebugControl4 *iface, ULONG id, IDebugBreakpoint **bp) { FIXME("%p, %lu, %p stub.\n", iface, id, bp); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetBreakpointParameters(IDebugControl2 *iface, ULONG count, ULONG *ids, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetBreakpointParameters(IDebugControl4 *iface, ULONG count, ULONG *ids, ULONG start, DEBUG_BREAKPOINT_PARAMETERS *parameters) { FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, count, ids, start, parameters); @@ -3291,7 +3293,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetBreakpointParameters(IDebugCont return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_AddBreakpoint(IDebugControl2 *iface, ULONG type, ULONG desired_id, +static HRESULT STDMETHODCALLTYPE debugcontrol_AddBreakpoint(IDebugControl4 *iface, ULONG type, ULONG desired_id, IDebugBreakpoint **bp) { FIXME("%p, %lu, %lu, %p stub.\n", iface, type, desired_id, bp); @@ -3299,14 +3301,14 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_AddBreakpoint(IDebugControl2 *ifac return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveBreakpoint(IDebugControl2 *iface, IDebugBreakpoint *bp) +static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveBreakpoint(IDebugControl4 *iface, IDebugBreakpoint *bp) { FIXME("%p, %p stub.\n", iface, bp); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_AddExtension(IDebugControl2 *iface, const char *path, ULONG flags, +static HRESULT STDMETHODCALLTYPE debugcontrol_AddExtension(IDebugControl4 *iface, const char *path, ULONG flags, ULONG64 *handle) { FIXME("%p, %s, %#lx, %p stub.\n", iface, debugstr_a(path), flags, handle); @@ -3314,14 +3316,14 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_AddExtension(IDebugControl2 *iface return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveExtension(IDebugControl2 *iface, ULONG64 handle) +static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveExtension(IDebugControl4 *iface, ULONG64 handle) { FIXME("%p, %s stub.\n", iface, wine_dbgstr_longlong(handle)); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetExtensionByPath(IDebugControl2 *iface, const char *path, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExtensionByPath(IDebugControl4 *iface, const char *path, ULONG64 *handle) { FIXME("%p, %s, %p stub.\n", iface, debugstr_a(path), handle); @@ -3329,7 +3331,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetExtensionByPath(IDebugControl2 return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_CallExtension(IDebugControl2 *iface, ULONG64 handle, +static HRESULT STDMETHODCALLTYPE debugcontrol_CallExtension(IDebugControl4 *iface, ULONG64 handle, const char *function, const char *args) { FIXME("%p, %s, %s, %s stub.\n", iface, wine_dbgstr_longlong(handle), debugstr_a(function), debugstr_a(args)); @@ -3337,7 +3339,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_CallExtension(IDebugControl2 *ifac return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetExtensionFunction(IDebugControl2 *iface, ULONG64 handle, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExtensionFunction(IDebugControl4 *iface, ULONG64 handle, const char *name, void *function) { FIXME("%p, %s, %s, %p stub.\n", iface, wine_dbgstr_longlong(handle), debugstr_a(name), function); @@ -3345,7 +3347,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetExtensionFunction(IDebugControl return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetWindbgExtensionApis32(IDebugControl2 *iface, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetWindbgExtensionApis32(IDebugControl4 *iface, PWINDBG_EXTENSION_APIS32 api) { FIXME("%p, %p stub.\n", iface, api); @@ -3353,7 +3355,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetWindbgExtensionApis32(IDebugCon return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetWindbgExtensionApis64(IDebugControl2 *iface, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetWindbgExtensionApis64(IDebugControl4 *iface, PWINDBG_EXTENSION_APIS64 api) { FIXME("%p, %p stub.\n", iface, api); @@ -3361,7 +3363,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetWindbgExtensionApis64(IDebugCon return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberEventFilters(IDebugControl2 *iface, ULONG *specific_events, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberEventFilters(IDebugControl4 *iface, ULONG *specific_events, ULONG *specific_exceptions, ULONG *arbitrary_exceptions) { FIXME("%p, %p, %p, %p stub.\n", iface, specific_events, specific_exceptions, arbitrary_exceptions); @@ -3369,7 +3371,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberEventFilters(IDebugContro return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetEventFilterText(IDebugControl2 *iface, ULONG index, char *buffer, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetEventFilterText(IDebugControl4 *iface, ULONG index, char *buffer, ULONG buffer_size, ULONG *text_size) { FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, index, buffer, buffer_size, text_size); @@ -3377,7 +3379,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetEventFilterText(IDebugControl2 return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetEventFilterCommand(IDebugControl2 *iface, ULONG index, char *buffer, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetEventFilterCommand(IDebugControl4 *iface, ULONG index, char *buffer, ULONG buffer_size, ULONG *command_size) { FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, index, buffer, buffer_size, command_size); @@ -3385,7 +3387,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetEventFilterCommand(IDebugContro return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetEventFilterCommand(IDebugControl2 *iface, ULONG index, +static HRESULT STDMETHODCALLTYPE debugcontrol_SetEventFilterCommand(IDebugControl4 *iface, ULONG index, const char *command) { FIXME("%p, %lu, %s stub.\n", iface, index, debugstr_a(command)); @@ -3393,7 +3395,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_SetEventFilterCommand(IDebugContro return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetSpecificFilterParameters(IDebugControl2 *iface, ULONG start, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetSpecificFilterParameters(IDebugControl4 *iface, ULONG start, ULONG count, DEBUG_SPECIFIC_FILTER_PARAMETERS *parameters) { FIXME("%p, %lu, %lu, %p stub.\n", iface, start, count, parameters); @@ -3401,7 +3403,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetSpecificFilterParameters(IDebug return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetSpecificFilterParameters(IDebugControl2 *iface, ULONG start, +static HRESULT STDMETHODCALLTYPE debugcontrol_SetSpecificFilterParameters(IDebugControl4 *iface, ULONG start, ULONG count, DEBUG_SPECIFIC_FILTER_PARAMETERS *parameters) { FIXME("%p, %lu, %lu, %p stub.\n", iface, start, count, parameters); @@ -3409,7 +3411,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_SetSpecificFilterParameters(IDebug return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetSpecificFilterArgument(IDebugControl2 *iface, ULONG index, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetSpecificFilterArgument(IDebugControl4 *iface, ULONG index, char *buffer, ULONG buffer_size, ULONG *argument_size) { FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, index, buffer, buffer_size, argument_size); @@ -3417,7 +3419,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetSpecificFilterArgument(IDebugCo return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetSpecificFilterArgument(IDebugControl2 *iface, ULONG index, +static HRESULT STDMETHODCALLTYPE debugcontrol_SetSpecificFilterArgument(IDebugControl4 *iface, ULONG index, const char *argument) { FIXME("%p, %lu, %s stub.\n", iface, index, debugstr_a(argument)); @@ -3425,7 +3427,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_SetSpecificFilterArgument(IDebugCo return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetExceptionFilterParameters(IDebugControl2 *iface, ULONG count, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExceptionFilterParameters(IDebugControl4 *iface, ULONG count, ULONG *codes, ULONG start, DEBUG_EXCEPTION_FILTER_PARAMETERS *parameters) { FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, count, codes, start, parameters); @@ -3433,7 +3435,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetExceptionFilterParameters(IDebu return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetExceptionFilterParameters(IDebugControl2 *iface, ULONG count, +static HRESULT STDMETHODCALLTYPE debugcontrol_SetExceptionFilterParameters(IDebugControl4 *iface, ULONG count, DEBUG_EXCEPTION_FILTER_PARAMETERS *parameters) { FIXME("%p, %lu, %p stub.\n", iface, count, parameters); @@ -3441,7 +3443,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_SetExceptionFilterParameters(IDebu return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetExceptionFilterSecondCommand(IDebugControl2 *iface, ULONG index, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExceptionFilterSecondCommand(IDebugControl4 *iface, ULONG index, char *buffer, ULONG buffer_size, ULONG *command_size) { FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, index, buffer, buffer_size, command_size); @@ -3449,7 +3451,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetExceptionFilterSecondCommand(ID return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetExceptionFilterSecondCommand(IDebugControl2 *iface, ULONG index, +static HRESULT STDMETHODCALLTYPE debugcontrol_SetExceptionFilterSecondCommand(IDebugControl4 *iface, ULONG index, const char *command) { FIXME("%p, %lu, %s stub.\n", iface, index, debugstr_a(command)); @@ -3457,9 +3459,9 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_SetExceptionFilterSecondCommand(ID return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_WaitForEvent(IDebugControl2 *iface, ULONG flags, ULONG timeout) +static HRESULT STDMETHODCALLTYPE debugcontrol_WaitForEvent(IDebugControl4 *iface, ULONG flags, ULONG timeout) { - struct debug_client *debug_client = impl_from_IDebugControl2(iface); + struct debug_client *debug_client = impl_from_IDebugControl4(iface); struct target_process *target; TRACE("%p, %#lx, %lu.\n", iface, flags, timeout); @@ -3502,7 +3504,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_WaitForEvent(IDebugControl2 *iface return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetLastEventInformation(IDebugControl2 *iface, ULONG *type, ULONG *pid, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetLastEventInformation(IDebugControl4 *iface, ULONG *type, ULONG *pid, ULONG *tid, void *extra_info, ULONG extra_info_size, ULONG *extra_info_used, char *description, ULONG desc_size, ULONG *desc_used) { @@ -3512,35 +3514,35 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetLastEventInformation(IDebugCont return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetCurrentTimeDate(IDebugControl2 *iface, ULONG timedate) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetCurrentTimeDate(IDebugControl4 *iface, ULONG timedate) { FIXME("%p, %lu stub.\n", iface, timedate); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetCurrentSystemUpTime(IDebugControl2 *iface, ULONG uptime) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetCurrentSystemUpTime(IDebugControl4 *iface, ULONG uptime) { FIXME("%p, %lu stub.\n", iface, uptime); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetDumpFormatFlags(IDebugControl2 *iface, ULONG *flags) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetDumpFormatFlags(IDebugControl4 *iface, ULONG *flags) { FIXME("%p, %p stub.\n", iface, flags); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberTextPlacements(IDebugControl2 *iface, ULONG *count) +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberTextPlacements(IDebugControl4 *iface, ULONG *count) { FIXME("%p, %p stub.\n", iface, count); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberTextReplacement(IDebugControl2 *iface, const char *src_text, +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberTextReplacement(IDebugControl4 *iface, const char *src_text, ULONG index, char *src_buffer, ULONG src_buffer_size, ULONG *src_size, char *dst_buffer, ULONG dst_buffer_size, ULONG *dst_size) { @@ -3550,7 +3552,7 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberTextReplacement(IDebugCon return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_SetTextReplacement(IDebugControl2 *iface, const char *src_text, +static HRESULT STDMETHODCALLTYPE debugcontrol_SetTextReplacement(IDebugControl4 *iface, const char *src_text, const char *dst_text) { FIXME("%p, %s, %s stub.\n", iface, debugstr_a(src_text), debugstr_a(dst_text)); @@ -3558,14 +3560,14 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_SetTextReplacement(IDebugControl2 return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveTextReplacements(IDebugControl2 *iface) +static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveTextReplacements(IDebugControl4 *iface) { FIXME("%p stub.\n", iface); return E_NOTIMPL; } -static HRESULT STDMETHODCALLTYPE debugcontrol_OutputTextReplacements(IDebugControl2 *iface, ULONG output_control, +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputTextReplacements(IDebugControl4 *iface, ULONG output_control, ULONG flags) { FIXME("%p, %lu, %#lx stub.\n", iface, output_control, flags); @@ -3573,7 +3575,525 @@ static HRESULT STDMETHODCALLTYPE debugcontrol_OutputTextReplacements(IDebugContr return E_NOTIMPL; } -static const IDebugControl2Vtbl debugcontrolvtbl = +static HRESULT STDMETHODCALLTYPE debugcontrol_GetAssemblyOptions(IDebugControl4 *iface, ULONG *options) +{ + FIXME("%p, %p stub.\n", iface, options); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_AddAssemblyOptions(IDebugControl4 *iface, ULONG options) +{ + FIXME("%p, %#lx stub.\n", iface, options); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveAssemblyOptions(IDebugControl4 *iface, ULONG options) +{ + FIXME("%p, %#lx stub.\n", iface, options); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_SetAssemblyOptions(IDebugControl4 *iface, ULONG options) +{ + FIXME("%p, %#lx stub.\n", iface, options); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExpressionSyntax(IDebugControl4 *iface, ULONG *flags) +{ + FIXME("%p, %p stub.\n", iface, flags); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_SetExpressionSyntax(IDebugControl4 *iface, ULONG flags) +{ + FIXME("%p, %#lx stub.\n", iface, flags); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_SetExpressionSyntaxByName(IDebugControl4 *iface, const char *name) +{ + FIXME("%p, %s stub.\n", iface, debugstr_a(name)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberExpressionSyntaxes(IDebugControl4 *iface, ULONG *number) +{ + FIXME("%p, %p stub.\n", iface, number); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExpressionSyntaxNames(IDebugControl4 *iface, ULONG index, char *fullname, + ULONG fullname_buffer_size, ULONG *fullname_size, char *abbrevname, ULONG abbrevname_buffer_size, ULONG *abbrevname_size) +{ + FIXME("%p, %lu, %p, %lu, %p, %p, %lu, %p stub.\n", iface, index, fullname, fullname_buffer_size, fullname_size, abbrevname, + abbrevname_buffer_size, abbrevname_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetNumberEvents(IDebugControl4 *iface, ULONG *events) +{ + FIXME("%p, %p stub.\n", iface, events); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetEventIndexDescription(IDebugControl4 *iface, ULONG index, ULONG which, + char *buffer, ULONG buffer_size, ULONG *desc_size) +{ + FIXME("%p, %lu, %lu, %p, %lu, %p stub.\n", iface, index, which, buffer, buffer_size, desc_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetCurrentEventIndex(IDebugControl4 *iface, ULONG *index) +{ + FIXME("%p, %p stub.\n", iface, index); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_SetNextEventIndex(IDebugControl4 *iface, ULONG relation, ULONG value, + ULONG *next_index) +{ + FIXME("%p, %lu, %lu, %p stub.\n", iface, relation, value, next_index); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetLogFileWide(IDebugControl4 *iface, WCHAR *buffer, ULONG buffer_size, + ULONG *file_size, BOOL *append) +{ + FIXME("%p, %p, %lu, %p, %p stub.\n", iface, buffer, buffer_size, file_size, append); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_OpenLogFileWide(IDebugControl4 *iface, const WCHAR *filename, BOOL append) +{ + FIXME("%p, %s, %d stub.\n", iface, debugstr_w(filename), append); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_InputWide(IDebugControl4 *iface, WCHAR *buffer, ULONG buffer_size, + ULONG *input_size) +{ + FIXME("%p, %p, %lu, %p stub.\n", iface, buffer, buffer_size, input_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_ReturnInputWide(IDebugControl4 *iface, const WCHAR *buffer) +{ + FIXME("%p, %p stub.\n", iface, buffer); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODVCALLTYPE debugcontrol_OutputWide(IDebugControl4 *iface, ULONG mask, const WCHAR *format, ...) +{ + FIXME("%p, %lx, %s stub.\n", iface, mask, debugstr_w(format)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputVaListWide(IDebugControl4 *iface, ULONG mask, const WCHAR *format, + va_list args) +{ + FIXME("%p, %lx, %s stub.\n", iface, mask, debugstr_w(format)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODVCALLTYPE debugcontrol_ControlledOutputWide(IDebugControl4 *iface, ULONG output_control, ULONG mask, + const WCHAR *format, ...) +{ + FIXME("%p, %lx, %lx, %s stub.\n", iface, output_control, mask, debugstr_w(format)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_ControlledOutputVaListWide(IDebugControl4 *iface, ULONG output_control, + ULONG mask, const WCHAR *format, va_list args) +{ + FIXME("%p, %lx, %lx, %s stub.\n", iface, output_control, mask, debugstr_w(format)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODVCALLTYPE debugcontrol_OutputPromptWide(IDebugControl4 *iface, ULONG output_control, + const WCHAR *format, ...) +{ + FIXME("%p, %lx, %s stub.\n", iface, output_control, debugstr_w(format)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputPromptVaListWide(IDebugControl4 *iface, ULONG output_control, + const WCHAR *format, va_list args) +{ + FIXME("%p, %lx, %s stub.\n", iface, output_control, debugstr_w(format)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetPromptTextWide(IDebugControl4 *iface, WCHAR *buffer, ULONG buffer_size, + ULONG *text_size) +{ + FIXME("%p, %p, %lu, %p stub.\n", iface, buffer, buffer_size, text_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_AssembleWide(IDebugControl4 *iface, ULONG64 offset, const WCHAR *instr, + ULONG64 *end_offset) +{ + FIXME("%p, %s, %s, %p stub.\n", iface, wine_dbgstr_longlong(offset), debugstr_w(instr), end_offset); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_DisassembleWide(IDebugControl4 *iface, ULONG64 offset, ULONG flags, WCHAR *buffer, + ULONG buffer_size, ULONG *size, ULONG64 *end_offset) +{ + FIXME("%p, %s, %#lx, %p, %lu, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), flags, buffer, buffer_size, size, end_offset); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetProcessorTypeNamesWide(IDebugControl4 *iface, ULONG type, WCHAR *fullname, + ULONG fullname_buffer_size, ULONG *fullname_size, WCHAR *abbrevname, ULONG abbrevname_buffer_size, ULONG *abbrevname_size) +{ + FIXME("%p, %lu, %p, %lu, %p, %p, %lu, %p stub.\n", iface, type, fullname, fullname_buffer_size, fullname_size, abbrevname, + abbrevname_buffer_size, abbrevname_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetTextMacroWide(IDebugControl4 *iface, ULONG slot, WCHAR *buffer, + ULONG buffer_size, ULONG *macro_size) +{ + FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, slot, buffer, buffer_size, macro_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_SetTextMacroWide(IDebugControl4 *iface, ULONG slot, const WCHAR *macro) +{ + FIXME("%p, %lu, %s stub.\n", iface, slot, debugstr_w(macro)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_EvaluateWide(IDebugControl4 *iface, const WCHAR *expression, ULONG desired_type, + DEBUG_VALUE *value, ULONG *remainder_index) +{ + FIXME("%p, %s, %lu, %p, %p stub.\n", iface, debugstr_w(expression), desired_type, value, remainder_index); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_ExecuteWide(IDebugControl4 *iface, ULONG output_control, const WCHAR *command, + ULONG flags) +{ + FIXME("%p, %lx, %s, %lx stub.\n", iface, output_control, debugstr_w(command), flags); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_ExecuteCommandFileWide(IDebugControl4 *iface, ULONG output_control, + const WCHAR *commandfile, ULONG flags) +{ + FIXME("%p, %lx, %s, %lx stub.\n", iface, output_control, debugstr_w(commandfile), flags); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetBreakpointByIndex2(IDebugControl4 *iface, ULONG index, PDEBUG_BREAKPOINT2 *bp) +{ + FIXME("%p, %lu, %p stub.\n", iface, index, bp); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetBreakpointById2(IDebugControl4 *iface, ULONG id, PDEBUG_BREAKPOINT2 *bp) +{ + FIXME("%p, %lu, %p stub.\n", iface, id, bp); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_AddBreakpoint2(IDebugControl4 *iface, ULONG type, ULONG desired_id, + PDEBUG_BREAKPOINT2 *bp) +{ + FIXME("%p, %lu, %lu, %p stub.\n", iface, type, desired_id, bp); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_RemoveBreakpoint2(IDebugControl4 *iface, PDEBUG_BREAKPOINT2 bp) +{ + FIXME("%p, %p stub.\n", iface, bp); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_AddExtensionWide(IDebugControl4 *iface, const WCHAR *path, ULONG flags, + ULONG64 *handle) +{ + FIXME("%p, %s, %#lx, %p stub.\n", iface, debugstr_w(path), flags, handle); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExtensionByPathWide(IDebugControl4 *iface, const WCHAR *path, ULONG64 *handle) +{ + FIXME("%p, %s, %p stub.\n", iface, debugstr_w(path), handle); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_CallExtensionWide(IDebugControl4 *iface, ULONG64 handle, const WCHAR *function, + const WCHAR *arguments) +{ + FIXME("%p, %s, %s, %s stub.\n", iface, wine_dbgstr_longlong(handle), debugstr_w(function), debugstr_w(arguments)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExtensionFunctionWide(IDebugControl4 *iface, ULONG64 handle, + const WCHAR *function, FARPROC *func) +{ + FIXME("%p, %s, %s, %p stub.\n", iface, wine_dbgstr_longlong(handle), debugstr_w(function), func); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetEventFilterTextWide(IDebugControl4 *iface, ULONG index, WCHAR *buffer, + ULONG buffer_size, ULONG *text_size) +{ + FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, index, buffer, buffer_size, text_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetEventFilterCommandWide(IDebugControl4 *iface, ULONG index, WCHAR *buffer, + ULONG buffer_size, ULONG *command_size) +{ + FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, index, buffer, buffer_size, command_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_SetEventFilterCommandWide(IDebugControl4 *iface, ULONG index, const WCHAR *command) +{ + FIXME("%p, %lu, %s stub.\n", iface, index, debugstr_w(command)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetSpecificFilterArgumentWide(IDebugControl4 *iface, ULONG index, WCHAR *buffer, + ULONG buffer_size, ULONG *argument_size) +{ + FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, index, buffer, buffer_size, argument_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_SetSpecificFilterArgumentWide(IDebugControl4 *iface, ULONG index, + const WCHAR *argument) +{ + FIXME("%p, %lu, %s stub.\n", iface, index, debugstr_w(argument)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetSpecificFilterSecondCommandWide(IDebugControl4 *iface, ULONG index, + WCHAR *buffer, ULONG buffer_size, ULONG *command_size) +{ + FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, index, buffer, buffer_size, command_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_SetSpecificFilterSecondCommandWide(IDebugControl4 *iface, ULONG index, + const WCHAR *command) +{ + FIXME("%p, %lu, %s stub.\n", iface, index, debugstr_w(command)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetLastEventInformationWide(IDebugControl4 *iface, ULONG *type, ULONG *processid, + ULONG *threadid, void *extra_info, ULONG extra_info_size, ULONG *extra_info_used, WCHAR *desc, ULONG desc_size, + ULONG *desc_used) +{ + FIXME("%p, %p, %p, %p, %p, %lu, %p, %p, %lu, %p stub.\n", iface, type, processid, threadid, extra_info, extra_info_size, + extra_info_used, desc, desc_size, desc_used); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetTextReplacementWide(IDebugControl4 *iface, const WCHAR *src_text, ULONG index, + WCHAR *src_buffer, ULONG src_buffer_size, ULONG *src_size, WCHAR *dst_buffer, ULONG dest_buffer_size, ULONG *dst_size) +{ + FIXME("%p, %s, %lu, %p, %lu, %p, %p, %lu, %p stub.\n", iface, debugstr_w(src_text), index, src_buffer, src_buffer_size, + src_size, dst_buffer, dest_buffer_size, dst_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_SetTextReplacementWide(IDebugControl4 *iface, const WCHAR *src_text, + const WCHAR *dst_text) +{ + FIXME("%p, %s, %s stub.\n", iface, debugstr_w(src_text), debugstr_w(dst_text)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_SetExpressionSyntaxByNameWide(IDebugControl4 *iface, const WCHAR *abbrevname) +{ + FIXME("%p, %s stub.\n", iface, debugstr_w(abbrevname)); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetExpressionSyntaxNamesWide(IDebugControl4 *iface, ULONG index, + WCHAR *fullname_buffer, ULONG fullname_buffer_size, ULONG *fullname_size, WCHAR *abbrevname_buffer, + ULONG abbrevname_buffer_size, ULONG *abbrev_size) +{ + FIXME("%p, %lu, %p, %lu, %p, %p, %lu, %p stub.\n", iface, index, fullname_buffer, fullname_buffer_size, fullname_size, + abbrevname_buffer, abbrevname_buffer_size, abbrev_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetEventIndexDescriptionWide(IDebugControl4 *iface, ULONG index, ULONG which, + WCHAR *buffer, ULONG buffer_size, ULONG *desc_size) +{ + FIXME("%p, %lu, %lu, %p, %lu, %p stub.\n", iface, index, which, buffer, buffer_size, desc_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetLogFile2(IDebugControl4 *iface, char *buffer, ULONG buffer_size, + ULONG *file_size, ULONG *flags) +{ + FIXME("%p, %p, %lu, %p, %p stub.\n", iface, buffer, buffer_size, file_size, flags); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_OpenLogFile2(IDebugControl4 *iface, const char *filename, ULONG flags) +{ + FIXME("%p, %s, %#lx stub.\n", iface, debugstr_a(filename), flags); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetLogFile2Wide(IDebugControl4 *iface, WCHAR *buffer, ULONG buffer_size, + ULONG *file_size, ULONG *flags) +{ + FIXME("%p, %p, %lu, %p, %p stub.\n", iface, buffer, buffer_size, file_size, flags); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_OpenLogFile2Wide(IDebugControl4 *iface, const WCHAR *filename, ULONG flags) +{ + FIXME("%p, %s, %#lx stub.\n", iface, debugstr_w(filename), flags); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetSystemVersionValues(IDebugControl4 *iface, ULONG *platformid, + ULONG *win32major, ULONG *win32minor, ULONG *kdmajor, ULONG *kdminor) +{ + FIXME("%p, %p, %p, %p, %p, %p stub.\n", iface, platformid, win32major, win32minor, kdmajor, kdminor); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetSystemVersionString(IDebugControl4 *iface, ULONG which, char *buffer, + ULONG buffer_size, ULONG *string_size) +{ + FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, which, buffer, buffer_size, string_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetSystemVersionStringWide(IDebugControl4 *iface, ULONG which, WCHAR *buffer, + ULONG buffer_size, ULONG *string_size) +{ + FIXME("%p, %lu, %p, %lu, %p stub.\n", iface, which, buffer, buffer_size, string_size); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetContextStackTrace(IDebugControl4 *iface, void *start_context, + ULONG start_context_size, PDEBUG_STACK_FRAME frames, ULONG frames_size, void *frame_contexts, ULONG frame_contexts_size, + ULONG frame_contexts_entry_size, ULONG *frames_filled) +{ + FIXME("%p, %p, %lu, %p, %lu, %p, %lu, %lu, %p stub.\n", iface, start_context, start_context_size, frames, frames_size, + frame_contexts, frame_contexts_size, frame_contexts_entry_size, frames_filled); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_OutputContextStackTrace(IDebugControl4 *iface, ULONG output_control, + PDEBUG_STACK_FRAME frames, ULONG frames_size, void *frame_contexts, ULONG frame_contexts_size, + ULONG frame_contexts_entry_size, ULONG flags) +{ + FIXME("%p, %#lx, %p, %lu, %p, %lu, %lu, %#lx stub.\n", iface, output_control, frames, frames_size, frame_contexts, + frame_contexts_size, frame_contexts_entry_size, flags); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetStoredEventInformation(IDebugControl4 *iface, ULONG *type, ULONG *processid, + ULONG *threadid, void *context, ULONG context_size, ULONG *context_used, void *extra_info, ULONG extra_info_size, + ULONG *extra_info_used) +{ + FIXME("%p, %p, %p, %p, %p, %lu, %p, %p, %lu, %p stub.\n", iface, type, processid, threadid, context, context_size, + context_used, extra_info, extra_info_size, extra_info_used); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetManagedStatus(IDebugControl4 *iface, ULONG *flags, ULONG which_string, + char *string, ULONG string_size, ULONG string_needed) +{ + FIXME("%p, %p, %lu, %p, %lu, %lu stub.\n", iface, flags, which_string, string, string_size, string_needed); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_GetManagedStatusWide(IDebugControl4 *iface, ULONG *flags, ULONG which_string, + WCHAR *string, ULONG string_size, ULONG string_needed) +{ + FIXME("%p, %p, %lu, %p, %lu, %lu stub.\n", iface, flags, which_string, string, string_size, string_needed); + + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE debugcontrol_ResetManagedStatus(IDebugControl4 *iface, ULONG flags) +{ + FIXME("%p, %#lx stub.\n", iface, flags); + + return E_NOTIMPL; +} + +static const IDebugControl4Vtbl debugcontrolvtbl = { debugcontrol_QueryInterface, debugcontrol_AddRef, @@ -3678,6 +4198,72 @@ static const IDebugControl2Vtbl debugcontrolvtbl = debugcontrol_SetTextReplacement, debugcontrol_RemoveTextReplacements, debugcontrol_OutputTextReplacements, + debugcontrol_GetAssemblyOptions, + debugcontrol_AddAssemblyOptions, + debugcontrol_RemoveAssemblyOptions, + debugcontrol_SetAssemblyOptions, + debugcontrol_GetExpressionSyntax, + debugcontrol_SetExpressionSyntax, + debugcontrol_SetExpressionSyntaxByName, + debugcontrol_GetNumberExpressionSyntaxes, + debugcontrol_GetExpressionSyntaxNames, + debugcontrol_GetNumberEvents, + debugcontrol_GetEventIndexDescription, + debugcontrol_GetCurrentEventIndex, + debugcontrol_SetNextEventIndex, + debugcontrol_GetLogFileWide, + debugcontrol_OpenLogFileWide, + debugcontrol_InputWide, + debugcontrol_ReturnInputWide, + debugcontrol_OutputWide, + debugcontrol_OutputVaListWide, + debugcontrol_ControlledOutputWide, + debugcontrol_ControlledOutputVaListWide, + debugcontrol_OutputPromptWide, + debugcontrol_OutputPromptVaListWide, + debugcontrol_GetPromptTextWide, + debugcontrol_AssembleWide, + debugcontrol_DisassembleWide, + debugcontrol_GetProcessorTypeNamesWide, + debugcontrol_GetTextMacroWide, + debugcontrol_SetTextMacroWide, + debugcontrol_EvaluateWide, + debugcontrol_ExecuteWide, + debugcontrol_ExecuteCommandFileWide, + debugcontrol_GetBreakpointByIndex2, + debugcontrol_GetBreakpointById2, + debugcontrol_AddBreakpoint2, + debugcontrol_RemoveBreakpoint2, + debugcontrol_AddExtensionWide, + debugcontrol_GetExtensionByPathWide, + debugcontrol_CallExtensionWide, + debugcontrol_GetExtensionFunctionWide, + debugcontrol_GetEventFilterTextWide, + debugcontrol_GetEventFilterCommandWide, + debugcontrol_SetEventFilterCommandWide, + debugcontrol_GetSpecificFilterArgumentWide, + debugcontrol_SetSpecificFilterArgumentWide, + debugcontrol_GetSpecificFilterSecondCommandWide, + debugcontrol_SetSpecificFilterSecondCommandWide, + debugcontrol_GetLastEventInformationWide, + debugcontrol_GetTextReplacementWide, + debugcontrol_SetTextReplacementWide, + debugcontrol_SetExpressionSyntaxByNameWide, + debugcontrol_GetExpressionSyntaxNamesWide, + debugcontrol_GetEventIndexDescriptionWide, + debugcontrol_GetLogFile2, + debugcontrol_OpenLogFile2, + debugcontrol_GetLogFile2Wide, + debugcontrol_OpenLogFile2Wide, + debugcontrol_GetSystemVersionValues, + debugcontrol_GetSystemVersionString, + debugcontrol_GetSystemVersionStringWide, + debugcontrol_GetContextStackTrace, + debugcontrol_OutputContextStackTrace, + debugcontrol_GetStoredEventInformation, + debugcontrol_GetManagedStatus, + debugcontrol_GetManagedStatusWide, + debugcontrol_ResetManagedStatus, }; static HRESULT STDMETHODCALLTYPE debugadvanced_QueryInterface(IDebugAdvanced *iface, REFIID riid, void **obj) @@ -4038,7 +4624,7 @@ HRESULT WINAPI DebugCreate(REFIID riid, void **obj) debug_client->IDebugClient_iface.lpVtbl = &debugclientvtbl; debug_client->IDebugDataSpaces_iface.lpVtbl = &debugdataspacesvtbl; debug_client->IDebugSymbols3_iface.lpVtbl = &debugsymbolsvtbl; - debug_client->IDebugControl2_iface.lpVtbl = &debugcontrolvtbl; + debug_client->IDebugControl4_iface.lpVtbl = &debugcontrolvtbl; debug_client->IDebugAdvanced_iface.lpVtbl = &debugadvancedvtbl; debug_client->IDebugSystemObjects_iface.lpVtbl = &debugsystemobjectsvtbl; debug_client->refcount = 1;