[BROWSEUI]

* Initial implementation of the explorer command line parser. Not used by explorer-new, yet.

svn path=/branches/shell-experiments/; revision=64081
This commit is contained in:
David Quintana
2014-09-08 01:59:18 +00:00
parent 4c1828ea4b
commit 34158fc46f
5 changed files with 483 additions and 5 deletions
+24
View File
@@ -1862,6 +1862,30 @@ HRESULT WINAPI SHCreateStreamWrapper(LPBYTE,DWORD,DWORD,struct IStream**);
#endif /* NO_SHLWAPI_STREAM */
#ifndef NO_SHLWAPI_SHARED
PVOID
WINAPI
SHLockShared(
_In_ HANDLE hData,
_In_ DWORD dwProcessId
);
BOOL
WINAPI
SHUnlockShared(
_In_ void *pvData
);
BOOL
WINAPI
SHFreeShared(
_In_ HANDLE hData,
_In_ DWORD dwProcessId
);
#endif /* NO_SHLWAPI_SHARED */
/* SHAutoComplete flags */
#define SHACF_DEFAULT 0x00000000
#define SHACF_FILESYSTEM 0x00000001
+40 -1
View File
@@ -45,6 +45,45 @@ struct IEThreadParamBlock
long filler4; // unknown contents
};
struct ExplorerCommandLineParseResults
{
LPWSTR strPath;
LPITEMIDLIST pidlPath;
DWORD dwFlags;
DWORD unk_12;
DWORD unk_16;
DWORD unk_20;
DWORD unk_24;
DWORD unk_28;
LPITEMIDLIST pidlRoot;
DWORD unk_36;
DWORD unk_40;
DWORD unk_44;
DWORD unk_48;
GUID guidInproc;
};
#define SH_EXPLORER_CMDLINE_FLAG_ONE 0x00000001
#define SH_EXPLORER_CMDLINE_FLAG_S 0x00000002
// unknown/unused 0x00000004
#define SH_EXPLORER_CMDLINE_FLAG_E 0x00000008
// unknown/unused 0x00000010
// unknown/unused 0x00000020
#define SH_EXPLORER_CMDLINE_FLAG_SELECT 0x00000040
#define SH_EXPLORER_CMDLINE_FLAG_EMBED 0x00000080
// unknown/unused 0x00000100
#define SH_EXPLORER_CMDLINE_FLAG_IDLIST 0x00000200
#define SH_EXPLORER_CMDLINE_FLAG_INPROC 0x00000400
// unknown/unused 0x00000800
#define SH_EXPLORER_CMDLINE_FLAG_NOUI 0x00001000
// unknown/unused 0x00002000
#define SH_EXPLORER_CMDLINE_FLAG_N 0x00004000
// unknown/unused 0x00008000
// unknown/unused 0x00010000
#define SH_EXPLORER_CMDLINE_FLAG_SEPARATE 0x00020000
#define SH_EXPLORER_CMDLINE_FLAG_STRING 0x02000000
BOOL WINAPI SHAboutInfoA(LPSTR lpszDest, DWORD dwDestLen);
BOOL WINAPI SHAboutInfoW(LPWSTR lpszDest, DWORD dwDestLen);
HRESULT WINAPI IUnknown_QueryStatus(IUnknown *lpUnknown, REFGUID pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT* pCmdText);
@@ -86,7 +125,7 @@ void WINAPI InitOCHostClass(long param8);
long WINAPI SHOpenFolderWindow(IEThreadParamBlock *param8);
void WINAPI SHCreateSavedWindows(void);
long WINAPI SHCreateFromDesktop(long param8);
long WINAPI SHExplorerParseCmdLine(LPCTSTR commandLine);
UINT WINAPI SHExplorerParseCmdLine(ExplorerCommandLineParseResults * pParseResults);
void WINAPI UEMRegisterNotify(long param8, long paramC);
HRESULT WINAPI SHCreateBandForPidl(LPCITEMIDLIST param8, IUnknown *paramC, BOOL param10);
HRESULT WINAPI SHPidlFromDataObject(IDataObject *param8, long *paramC, long param10, FILEDESCRIPTORW *param14);