dbgeng: Add IDebugSystemObjects stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
a36e03494e
commit
7118bfedd8
|
@ -68,6 +68,7 @@ struct debug_client
|
|||
IDebugSymbols3 IDebugSymbols3_iface;
|
||||
IDebugControl2 IDebugControl2_iface;
|
||||
IDebugAdvanced IDebugAdvanced_iface;
|
||||
IDebugSystemObjects IDebugSystemObjects_iface;
|
||||
LONG refcount;
|
||||
ULONG engine_options;
|
||||
struct list targets;
|
||||
|
@ -265,6 +266,11 @@ static struct debug_client *impl_from_IDebugAdvanced(IDebugAdvanced *iface)
|
|||
return CONTAINING_RECORD(iface, struct debug_client, IDebugAdvanced_iface);
|
||||
}
|
||||
|
||||
static struct debug_client *impl_from_IDebugSystemObjects(IDebugSystemObjects *iface)
|
||||
{
|
||||
return CONTAINING_RECORD(iface, struct debug_client, IDebugSystemObjects_iface);
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugclient_QueryInterface(IDebugClient *iface, REFIID riid, void **obj)
|
||||
{
|
||||
struct debug_client *debug_client = impl_from_IDebugClient(iface);
|
||||
|
@ -295,6 +301,10 @@ static HRESULT STDMETHODCALLTYPE debugclient_QueryInterface(IDebugClient *iface,
|
|||
{
|
||||
*obj = &debug_client->IDebugAdvanced_iface;
|
||||
}
|
||||
else if (IsEqualIID(riid, &IID_IDebugSystemObjects))
|
||||
{
|
||||
*obj = &debug_client->IDebugSystemObjects_iface;
|
||||
}
|
||||
else
|
||||
{
|
||||
WARN("Unsupported interface %s.\n", debugstr_guid(riid));
|
||||
|
@ -3346,6 +3356,275 @@ static const IDebugAdvancedVtbl debugadvancedvtbl =
|
|||
debugadvanced_SetThreadContext,
|
||||
};
|
||||
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_QueryInterface(IDebugSystemObjects *iface, REFIID riid, void **obj)
|
||||
{
|
||||
struct debug_client *debug_client = impl_from_IDebugSystemObjects(iface);
|
||||
IUnknown *unk = (IUnknown *)&debug_client->IDebugClient_iface;
|
||||
return IUnknown_QueryInterface(unk, riid, obj);
|
||||
}
|
||||
|
||||
static ULONG STDMETHODCALLTYPE debugsystemobjects_AddRef(IDebugSystemObjects *iface)
|
||||
{
|
||||
struct debug_client *debug_client = impl_from_IDebugSystemObjects(iface);
|
||||
IUnknown *unk = (IUnknown *)&debug_client->IDebugClient_iface;
|
||||
return IUnknown_AddRef(unk);
|
||||
}
|
||||
|
||||
static ULONG STDMETHODCALLTYPE debugsystemobjects_Release(IDebugSystemObjects *iface)
|
||||
{
|
||||
struct debug_client *debug_client = impl_from_IDebugSystemObjects(iface);
|
||||
IUnknown *unk = (IUnknown *)&debug_client->IDebugClient_iface;
|
||||
return IUnknown_Release(unk);
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetEventThread(IDebugSystemObjects *iface, ULONG *id)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetEventProcess(IDebugSystemObjects *iface, ULONG *id)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetCurrentThreadId(IDebugSystemObjects *iface, ULONG *id)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_SetCurrentThreadId(IDebugSystemObjects *iface, ULONG id)
|
||||
{
|
||||
FIXME("%p, %u stub.\n", iface, id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_SetCurrentProcessId(IDebugSystemObjects *iface, ULONG id)
|
||||
{
|
||||
FIXME("%p, %u stub.\n", iface, id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetNumberThreads(IDebugSystemObjects *iface, ULONG *number)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, number);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetTotalNumberThreads(IDebugSystemObjects *iface, ULONG *total,
|
||||
ULONG *largest_process)
|
||||
{
|
||||
FIXME("%p, %p, %p stub.\n", iface, total, largest_process);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetThreadIdsByIndex(IDebugSystemObjects *iface, ULONG start,
|
||||
ULONG count, ULONG *ids, ULONG *sysids)
|
||||
{
|
||||
FIXME("%p, %u, %u, %p, %p stub.\n", iface, start, count, ids, sysids);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetThreadIdByProcessor(IDebugSystemObjects *iface, ULONG processor,
|
||||
ULONG *id)
|
||||
{
|
||||
FIXME("%p, %u, %p stub.\n", iface, processor, id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetCurrentThreadDataOffset(IDebugSystemObjects *iface,
|
||||
ULONG64 *offset)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, offset);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetThreadIdByDataOffset(IDebugSystemObjects *iface, ULONG64 offset,
|
||||
ULONG *id)
|
||||
{
|
||||
FIXME("%p, %s, %p stub.\n", iface, wine_dbgstr_longlong(offset), id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetCurrentThreadTeb(IDebugSystemObjects *iface, ULONG64 *offset)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, offset);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetThreadIdByTeb(IDebugSystemObjects *iface, ULONG64 offset,
|
||||
ULONG *id)
|
||||
{
|
||||
FIXME("%p, %s, %p stub.\n", iface, wine_dbgstr_longlong(offset), id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetCurrentThreadSystemId(IDebugSystemObjects *iface, ULONG *sysid)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, sysid);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetThreadIdBySystemId(IDebugSystemObjects *iface, ULONG sysid,
|
||||
ULONG *id)
|
||||
{
|
||||
FIXME("%p, %u, %p stub.\n", iface, sysid, id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetCurrentThreadHandle(IDebugSystemObjects *iface, ULONG64 *handle)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, handle);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetThreadIdByHandle(IDebugSystemObjects *iface, ULONG64 handle,
|
||||
ULONG *id)
|
||||
{
|
||||
FIXME("%p, %s, %p stub.\n", iface, wine_dbgstr_longlong(handle), id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetNumberProcesses(IDebugSystemObjects *iface, ULONG *number)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, number);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetProcessIdsByIndex(IDebugSystemObjects *iface, ULONG start,
|
||||
ULONG count, ULONG *ids, ULONG *sysids)
|
||||
{
|
||||
FIXME("%p, %u, %u, %p, %p stub.\n", iface, start, count, ids, sysids);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetCurrentProcessDataOffset(IDebugSystemObjects *iface,
|
||||
ULONG64 *offset)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, offset);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetProcessIdByDataOffset(IDebugSystemObjects *iface,
|
||||
ULONG64 offset, ULONG *id)
|
||||
{
|
||||
FIXME("%p, %s, %p stub.\n", iface, wine_dbgstr_longlong(offset), id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetCurrentProcessPeb(IDebugSystemObjects *iface, ULONG64 *offset)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, offset);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetProcessIdByPeb(IDebugSystemObjects *iface, ULONG64 offset,
|
||||
ULONG *id)
|
||||
{
|
||||
FIXME("%p, %s, %p stub.\n", iface, wine_dbgstr_longlong(offset), id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetCurrentProcessSystemId(IDebugSystemObjects *iface, ULONG *sysid)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, sysid);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetProcessIdBySystemId(IDebugSystemObjects *iface, ULONG sysid,
|
||||
ULONG *id)
|
||||
{
|
||||
FIXME("%p, %u, %p stub.\n", iface, sysid, id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetCurrentProcessHandle(IDebugSystemObjects *iface,
|
||||
ULONG64 *handle)
|
||||
{
|
||||
FIXME("%p, %p stub.\n", iface, handle);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetProcessIdByHandle(IDebugSystemObjects *iface, ULONG64 handle,
|
||||
ULONG *id)
|
||||
{
|
||||
FIXME("%p, %s, %p stub.\n", iface, wine_dbgstr_longlong(handle), id);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE debugsystemobjects_GetCurrentProcessExecutableName(IDebugSystemObjects *iface,
|
||||
char *buffer, ULONG buffer_size, ULONG *exe_size)
|
||||
{
|
||||
FIXME("%p, %p, %u, %p stub.\n", iface, buffer, buffer_size, exe_size);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static const IDebugSystemObjectsVtbl debugsystemobjectsvtbl =
|
||||
{
|
||||
debugsystemobjects_QueryInterface,
|
||||
debugsystemobjects_AddRef,
|
||||
debugsystemobjects_Release,
|
||||
debugsystemobjects_GetEventThread,
|
||||
debugsystemobjects_GetEventProcess,
|
||||
debugsystemobjects_GetCurrentThreadId,
|
||||
debugsystemobjects_SetCurrentThreadId,
|
||||
debugsystemobjects_SetCurrentProcessId,
|
||||
debugsystemobjects_GetNumberThreads,
|
||||
debugsystemobjects_GetTotalNumberThreads,
|
||||
debugsystemobjects_GetThreadIdsByIndex,
|
||||
debugsystemobjects_GetThreadIdByProcessor,
|
||||
debugsystemobjects_GetCurrentThreadDataOffset,
|
||||
debugsystemobjects_GetThreadIdByDataOffset,
|
||||
debugsystemobjects_GetCurrentThreadTeb,
|
||||
debugsystemobjects_GetThreadIdByTeb,
|
||||
debugsystemobjects_GetCurrentThreadSystemId,
|
||||
debugsystemobjects_GetThreadIdBySystemId,
|
||||
debugsystemobjects_GetCurrentThreadHandle,
|
||||
debugsystemobjects_GetThreadIdByHandle,
|
||||
debugsystemobjects_GetNumberProcesses,
|
||||
debugsystemobjects_GetProcessIdsByIndex,
|
||||
debugsystemobjects_GetCurrentProcessDataOffset,
|
||||
debugsystemobjects_GetProcessIdByDataOffset,
|
||||
debugsystemobjects_GetCurrentProcessPeb,
|
||||
debugsystemobjects_GetProcessIdByPeb,
|
||||
debugsystemobjects_GetCurrentProcessSystemId,
|
||||
debugsystemobjects_GetProcessIdBySystemId,
|
||||
debugsystemobjects_GetCurrentProcessHandle,
|
||||
debugsystemobjects_GetProcessIdByHandle,
|
||||
debugsystemobjects_GetCurrentProcessExecutableName,
|
||||
};
|
||||
|
||||
/************************************************************
|
||||
* DebugExtensionInitialize (DBGENG.@)
|
||||
*
|
||||
|
@ -3391,6 +3670,7 @@ HRESULT WINAPI DebugCreate(REFIID riid, void **obj)
|
|||
debug_client->IDebugSymbols3_iface.lpVtbl = &debugsymbolsvtbl;
|
||||
debug_client->IDebugControl2_iface.lpVtbl = &debugcontrolvtbl;
|
||||
debug_client->IDebugAdvanced_iface.lpVtbl = &debugadvancedvtbl;
|
||||
debug_client->IDebugSystemObjects_iface.lpVtbl = &debugsystemobjectsvtbl;
|
||||
debug_client->refcount = 1;
|
||||
list_init(&debug_client->targets);
|
||||
|
||||
|
|
Loading…
Reference in New Issue