8#define _ATL_NO_EXCEPTIONS
13#define IShellFolder_GetDisplayNameOf _disabled_IShellFolder_GetDisplayNameOf_
14#define IShellFolder_ParseDisplayName _disabled_IShellFolder_ParseDisplayName_
15#define IShellFolder_CompareIDs _disabled_IShellFolder_CompareIDs_
29#ifndef FAILED_UNEXPECTEDLY
30#define FAILED_UNEXPECTEDLY FAILED
54 szBuff,
cch, lpString,
cch);
67 szDest,
cch, lpString,
cch);
113 CMINVOKECOMMANDINFOEX
info = {
sizeof(
info), fCMIC,
hWnd, pszVerb };
133 hr = pCM->QueryContextMenu(hMenu, 0, 1,
MAXSHORT, fCMF | CMF_DEFAULTONLY);
144 info.fMask |= CMF_OPTIMIZEFORINVOKE;
148 info.fMask |= CMIC_MASK_UNICODE;
149 info.lpVerbW = wideverb;
154 hr = pCM->QueryContextMenu(hMenu, 0, 1,
MAXSHORT, fCMF);
163 info.fMask |= CMIC_MASK_FLAG_NO_UI;
168 info.fMask |= CMIC_MASK_UNICODE;
169 info.lpDirectoryW = pwszDir;
174 hr = pCM->InvokeCommand((LPCMINVOKECOMMANDINFO)&
info);
221 for (
const signed char *
pch = (
const signed char *)psz; *
pch; ++
pch)
243 CMINVOKECOMMANDINFOEX ici;
259 hr = pCM->QueryContextMenu(hMenu, 0, 1,
MAXSHORT, (cVerbs ? 0 : CMF_DEFAULTONLY));
266 if (idDefault != (
UINT)-1)
271 ici.cbSize =
sizeof(ici);
279 pszVerbA = pVerbs[iVerb];
281 if (!pszVerbA && idDefault == (
UINT)-1)
288 ici.lpVerb = pszVerbA;
294 for (ich = 0; pszVerbA[ich] && ich + 1 <
_countof(szVerbW); ++ich)
296 szVerbW[ich] = (
BYTE)pszVerbA[ich];
300 ici.lpVerbW = szVerbW;
301 ici.fMask |= CMIC_MASK_UNICODE;
304 hr = pCM->InvokeCommand((LPCMINVOKECOMMANDINFO)&ici);
310 }
while (iVerb < cVerbs);
336 hr = pShellFolder->GetUIObjectOf(
hWnd, 1, &pidl, IID_IContextMenu,
NULL, (
void**)&pCM);
339 fCMIC |= CMIC_MASK_FLAG_LOG_USAGE;
433 cb =
sizeof(szClient);
437 cb =
sizeof(szClient);
464 TRACE(
"(%s, 0x%lX, %p)\n",
debugstr_w(pszPath), dwWhich, pdwFileAttributes);
466 if (pdwFileAttributes)
477 if (pdwFileAttributes)
482 if (pdwFileAttributes)
527 TRACE(
"(%p)->(%p, 0x%lX, %p, 0x%lX)\n", psf, pidl,
uFlags,
lpName, dwRetryFlags);
535 if ((
uFlags & SHGDN_FORPARSING) == 0)
542 if (!(dwRetryFlags &
pData->dwRetryFlags))
549 hr = psf->GetDisplayNameOf(pidl, uNewFlags,
lpName);
575 ULONG dummy1, dummy2;
577 TRACE(
"(%p)->(%p, %p, %s, %p, %p, %p)\n", psf, hwndOwner, pbcReserved,
578 debugstr_w(lpszDisplayName), pchEaten, ppidl, pdwAttributes);
583 pdwAttributes = &dummy1;
595 return psf->ParseDisplayName(hwndOwner, pbcReserved, lpszDisplayName, pchEaten,
596 ppidl, pdwAttributes);
612 TRACE(
"(%p, %p, %p, %p)\n", psf,
lParam, pidl1, pidl2);
619 lParam &= SHCIDS_COLUMNMASK;
624 return psf->CompareIDs(
lParam, pidl1, pidl2);
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
static const WCHAR version[]
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
INT WINAPI LCMapStringA(LCID lcid, DWORD flags, LPCSTR src, INT srclen, LPSTR dst, INT dstlen)
INT WINAPI LCMapStringW(LCID lcid, DWORD flags, LPCWSTR src, INT srclen, LPWSTR dst, INT dstlen)
#define IS_INTRESOURCE(x)
void WINAPI PathUnquoteSpacesW(WCHAR *path)
LPWSTR WINAPI PathFindExtensionW(const WCHAR *path)
WCHAR *WINAPI PathGetArgsW(const WCHAR *path)
DWORD WINAPI GetVersion(void)
HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site)
void WINAPI PathRemoveArgsW(LPWSTR lpszPath)
BOOL WINAPI PathFileExistsAndAttributesW(LPCWSTR lpszPath, DWORD *dwAttr)
BOOL WINAPI PathFileExistsDefExtW(LPWSTR lpszPath, DWORD dwWhich)
DWORD WINAPI SHAnsiToUnicode(LPCSTR lpSrcStr, LPWSTR lpDstStr, int iLen)
INT WINAPI SHUnicodeToAnsi(LPCWSTR lpSrcStr, LPSTR lpDstStr, INT iLen)
EXTERN_C HRESULT WINAPI RunRegCommand(_In_opt_ HWND hWnd, _In_ HKEY hKey, _In_opt_ PCWSTR pszSubKey)
EXTERN_C HRESULT WINAPI SHInvokeCommandOnContextMenu(_In_opt_ HWND hWnd, _In_opt_ IUnknown *pUnk, _In_ IContextMenu *pCM, _In_ UINT fCMIC, _In_opt_ LPCSTR pszVerb)
EXTERN_C LSTATUS WINAPI RegGetValueW(HKEY, LPCWSTR, LPCWSTR, DWORD, LPDWORD, PVOID, LPDWORD)
static BOOL IsTextAsciiOnly(PCSTR psz)
struct tagSHDIALOG * PSHDIALOG
EXTERN_C HRESULT WINAPI RunIndirectRegCommand(_In_opt_ HWND hWnd, _In_ HKEY hKey, _In_opt_ PCWSTR pszSubKey, _In_ PCWSTR pszVerb)
static HRESULT ShellExecuteCommand(_In_opt_ HWND hWnd, _In_ PCWSTR Command, _In_opt_ UINT Flags)
EXTERN_C HRESULT WINAPI SHInvokeCommandWithFlagsAndSite(_In_opt_ HWND hWnd, _In_opt_ IUnknown *pUnk, _In_ IShellFolder *pShellFolder, _In_ LPCITEMIDLIST pidl, _In_ UINT fCMIC, _In_opt_ LPCSTR pszVerb)
EXTERN_C PWSTR WINAPI CharLowerNoDBCSW(_Inout_ PWSTR lpString)
EXTERN_C INT_PTR WINAPI SHDialogBox(_In_opt_ HINSTANCE hInstance, _In_ PCSTR lpTemplateName, _In_opt_ HWND hWndParent, _In_opt_ SHDIALOGPROC fn, _In_opt_ PVOID pThis)
EXTERN_C PSTR WINAPI CharUpperNoDBCSA(_Inout_ PSTR lpString)
EXTERN_C HRESULT WINAPI SHInvokeCommandOnContextMenuEx(_In_opt_ HWND hWnd, _In_opt_ IUnknown *pUnk, _In_ IContextMenu *pCM, _In_ UINT fCMIC, _In_ UINT fCMF, _In_opt_ LPCSTR pszVerb, _In_opt_ LPCWSTR pwszDir)
EXTERN_C BOOL WINAPI IContextMenu_Invoke(_In_ IContextMenu *pContextMenu, _In_ HWND hwnd, _In_ LPCSTR lpVerb, _In_ UINT uFlags)
EXTERN_C PSTR WINAPI CharLowerNoDBCSA(_Inout_ PSTR lpString)
static const RETRY_DATA g_RetryData[]
EXTERN_C HRESULT WINAPI SHInvokeCommandsOnContextMenu(_In_opt_ HWND hwnd, _In_opt_ IUnknown *punkSite, _In_ IContextMenu *pCM, _In_ DWORD fMask, _In_reads_opt_(cVerbs) PCSTR *pVerbs, _In_ UINT cVerbs)
struct tagSHDIALOG SHDIALOG
static BOOL CharLowerNoDBCSWWorker(PWSTR lpString, INT cchMax, BOOL bUppercase)
static HRESULT SHInvokeCommandOnContextMenuInternal(_In_opt_ HWND hWnd, _In_opt_ IUnknown *pUnk, _In_ IContextMenu *pCM, _In_ UINT fCMIC, _In_ UINT fCMF, _In_opt_ LPCSTR pszVerb, _In_opt_ LPCWSTR pwszDir, _In_ bool ForceQCM)
#define FAILED_UNEXPECTEDLY
static BOOL CharLowerNoDBCSAWorker(PSTR lpString, INT cchMax, BOOL bUppercase)
EXTERN_C HRESULT WINAPI SHRunIndirectRegClientCommand(_In_opt_ HWND hWnd, _In_ PCWSTR pszClientType)
#define IShellFolder_ParseDisplayName
#define IShellFolder_CompareIDs
static WORD GetVersionMajorMinor()
EXTERN_C PWSTR WINAPI CharUpperNoDBCSW(_Inout_ PWSTR lpString)
BOOL WINAPI PathFileExistsDefExtAndAttributesW(_Inout_ LPWSTR pszPath, _In_ DWORD dwWhich, _Out_opt_ LPDWORD pdwFileAttributes)
static INT_PTR CALLBACK SHDialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define IShellFolder_GetDisplayNameOf
static BOOL SHLWAPI_IsBogusHRESULT(HRESULT hr)
static const WCHAR Cleanup[]
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define SFGDNO_RETRYWITHFORPARSING
#define SFGDNO_RETRYALWAYS
int WINAPI lstrlenA(LPCSTR lpString)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
#define _In_reads_opt_(s)
#define LOCALE_SYSTEM_DEFAULT
interface IBindCtx * LPBC
_In_opt_ LPCSTR pszSubKey
#define _WIN32_WINNT_WIN7
#define SEE_MASK_FLAG_LOG_USAGE
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
#define PPCF_FORCEQUALIFY
LONG WINAPI PathProcessCommand(_In_ LPCWSTR, _Out_writes_(cchDest) LPWSTR, int cchDest, DWORD)
#define PPCF_ADDARGUMENTS
INT_PTR(CALLBACK * SHDIALOGPROC)(PVOID pThis, HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
const ITEMIDLIST_RELATIVE UNALIGNED * PCUIDLIST_RELATIVE
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszSrc)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define INVALID_FILE_ATTRIBUTES
static GLenum _GLUfuncptr fn
DWORD WINAPI GetLastError(void)
#define ERROR_BUFFER_OVERFLOW
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
#define SetWindowLongPtrA
HMENU WINAPI CreatePopupMenu(void)
UINT WINAPI GetMenuDefaultItem(_In_ HMENU hMenu, _In_ UINT fByPos, _In_ UINT gmdiFlags)
#define DLGC_UNDEFPUSHBUTTON
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
#define GetWindowLongPtrA
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
#define DLGC_DEFPUSHBUTTON
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define MAKEINTRESOURCEA(i)
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define MAKEINTRESOURCEW(i)
INT_PTR WINAPI DialogBoxParamA(_In_opt_ HINSTANCE, _In_ LPCSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
_Must_inspect_result_ _In_ ULONG Flags