mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 13:45:50 +00:00
[SHLEXTDBG] Added more SEI flags (#8091)
This commit is contained in:
parent
901af6a681
commit
4b87ae3dca
1 changed files with 52 additions and 0 deletions
|
@ -101,6 +101,38 @@ static bool CLSIDPrefix(T& String, CLSID& Clsid)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct CLoggingServiceProvider : public IServiceProvider
|
||||||
|
{
|
||||||
|
HRESULT WINAPI QueryInterface(REFIID riid, void **ppv) override
|
||||||
|
{
|
||||||
|
static const QITAB c_tab[] =
|
||||||
|
{
|
||||||
|
QITABENT(CLoggingServiceProvider, IServiceProvider),
|
||||||
|
{ NULL }
|
||||||
|
};
|
||||||
|
return ::QISearch(this, c_tab, riid, ppv);
|
||||||
|
}
|
||||||
|
ULONG WINAPI AddRef() override { return 1; }
|
||||||
|
ULONG WINAPI Release() override { return 1; }
|
||||||
|
|
||||||
|
HRESULT WINAPI QueryService(REFGUID rcls, REFIID riid, void **ppv) override
|
||||||
|
{
|
||||||
|
WCHAR szCls[42], szIid[42];
|
||||||
|
wprintf(L"INFO: QS %ls:%ls\n",
|
||||||
|
StringFromGUID2(rcls, szCls, _countof(szCls)) ? szCls : L"?",
|
||||||
|
StringFromGUID2(riid, szIid, _countof(szIid)) ? szIid : L"?");
|
||||||
|
if (ppv)
|
||||||
|
*ppv = NULL;
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static IServiceProvider* GetLoggingServiceProvider()
|
||||||
|
{
|
||||||
|
static CLoggingServiceProvider g_SP;
|
||||||
|
return &g_SP;
|
||||||
|
}
|
||||||
|
|
||||||
static HRESULT GetUIObjectOfAbsolute(LPCITEMIDLIST pidl, REFIID riid, void** ppv)
|
static HRESULT GetUIObjectOfAbsolute(LPCITEMIDLIST pidl, REFIID riid, void** ppv)
|
||||||
{
|
{
|
||||||
CComPtr<IShellFolder> shellFolder;
|
CComPtr<IShellFolder> shellFolder;
|
||||||
|
@ -675,6 +707,10 @@ int wmain(int argc, WCHAR **argv)
|
||||||
{
|
{
|
||||||
if (argv[n][0] != '-' && argv[n][0] != '/')
|
if (argv[n][0] != '-' && argv[n][0] != '/')
|
||||||
break;
|
break;
|
||||||
|
else if (isCmd(argc, argv, n, L"MIN"))
|
||||||
|
sei.nShow = SW_SHOWMINNOACTIVE;
|
||||||
|
else if (isCmd(argc, argv, n, L"MAX"))
|
||||||
|
sei.nShow = SW_SHOWMAXIMIZED;
|
||||||
else if (isCmd(argc, argv, n, L"INVOKE"))
|
else if (isCmd(argc, argv, n, L"INVOKE"))
|
||||||
sei.fMask |= SEE_MASK_INVOKEIDLIST;
|
sei.fMask |= SEE_MASK_INVOKEIDLIST;
|
||||||
else if (isCmd(argc, argv, n, L"NOUI"))
|
else if (isCmd(argc, argv, n, L"NOUI"))
|
||||||
|
@ -683,6 +719,22 @@ int wmain(int argc, WCHAR **argv)
|
||||||
sei.fMask |= SEE_MASK_ASYNCOK ;
|
sei.fMask |= SEE_MASK_ASYNCOK ;
|
||||||
else if (isCmd(argc, argv, n, L"NOASYNC"))
|
else if (isCmd(argc, argv, n, L"NOASYNC"))
|
||||||
sei.fMask |= SEE_MASK_NOASYNC;
|
sei.fMask |= SEE_MASK_NOASYNC;
|
||||||
|
else if (isCmd(argc, argv, n, L"NOCONSOLE"))
|
||||||
|
sei.fMask |= SEE_MASK_NO_CONSOLE;
|
||||||
|
else if (isCmd(argc, argv, n, L"1000"))
|
||||||
|
sei.fMask |= 0x00001000; // Unknown flag
|
||||||
|
else if (isCmd(argc, argv, n, L"NOHOOKS"))
|
||||||
|
sei.fMask |= 0x00002000;
|
||||||
|
else if (isCmd(argc, argv, n, L"SITE"))
|
||||||
|
{
|
||||||
|
sei.fMask |= 0x08000000; // SEE_MASK_FLAG_HINST_IS_SITE
|
||||||
|
sei.hInstApp = (HINSTANCE)GetLoggingServiceProvider();
|
||||||
|
}
|
||||||
|
else if (isCmd(argc, argv, n, L"FILL"))
|
||||||
|
{
|
||||||
|
sei.hInstApp = (HINSTANCE)UlongToHandle(0xCAFE);
|
||||||
|
sei.hProcess = UlongToHandle(0xDEADF00D);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
wprintf(L"WARN: Ignoring switch %s\n", argv[n]);
|
wprintf(L"WARN: Ignoring switch %s\n", argv[n]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue