34 if (
ss.fShowAllObjects)
35 Flags |= SHCONTF_INCLUDEHIDDEN;
36 if (
ss.fShowSuperHidden)
37 Flags |= SHCONTF_INCLUDESUPERHIDDEN;
45 if (
Query & SFGAO_NONENUMERATED)
47 if ((
Query & SFGAO_HIDDEN) && !(
Flags & SHCONTF_INCLUDEHIDDEN))
49 if ((
Query & (SFGAO_HIDDEN | SFGAO_SYSTEM)) == (SFGAO_HIDDEN | SFGAO_SYSTEM) && !(
Flags & SHCONTF_INCLUDESUPERHIDDEN))
51 if ((
Flags & (SHCONTF_FOLDERS | SHCONTF_NONFOLDERS)) != (SHCONTF_FOLDERS | SHCONTF_NONFOLDERS))
52 return (
Flags & SHCONTF_FOLDERS) ? (
Query & SFGAO_FOLDER) : !(
Query & SFGAO_FOLDER);
123 hr = psfChild->ParseDisplayName(hwndOwner, pbc, szNext, pEaten, &pidlOut, pdwAttributes);
142 *pidlInOut = pidlTemp;
144 TRACE (
"-- pidl=%p ret=0x%08x\n", pidlInOut ? *pidlInOut :
NULL,
hr);
174 ppf3->InitializeEx(
NULL, pidlAbsolute, ppfti);
178 ppf->Initialize(pidlAbsolute);
182 return pShellFolder->QueryInterface(
riid, ppvOut);
189 PERSIST_FOLDER_TARGET_INFO pfti = {0};
190 pfti.dwAttributes = -1;
215 return psf->QueryInterface(
riid, ppvOut);
259 if (isEmpty1 || isEmpty2)
272 return psf2->CompareIDs(
lParam, nextpidl1, nextpidl2);
314 array[*cKeys] = hkey;
332 ASSERT(cidl >= 1 && apidl);
365 swprintf(wszSFA,
L"SystemFileAssociations\\%s", extension);
368 dwSize =
sizeof(wszClass);
371 swprintf(wszSFA,
L"SystemFileAssociations\\%s", wszClass);
392 ERR(
"Got non FS pidl\n");
398 CDataObjectHIDA cida(pDataObject);
426 FIXME(
"%p %s %p %08x %p\n",
hWnd, lpszDir, lpDataObject,
uFlags, lppidlLinks);
442 ERR(
"SHOpenFolderAndSelectItems() is hackplemented\n");
454 HRESULT hr = SHILCombine(pidlFolder, apidl[0], &pidlItem);
462 pidlItem = pidlFolder;
472 hr = psfDesktop->GetDisplayNameOf(pidlItem, SHGDN_FORPARSING, &strret);
482 wcscpy(wszParams,
L"/select,");
483 wcscat(wszParams, wszBuf);
486 memset(&sei, 0,
sizeof sei);
505 CDataObjectHIDA cida(pDataObject);
512 ERR(
"SHMultiFileProperties is not yet implemented\n");
523 ERR(
"SH_ShowPropertiesDialog failed\n");
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
BOOL Query(LPCTSTR *ServiceArgs, DWORD ArgCount, BOOL bExtended)
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
#define DFM_GETDEFSTATICID
#define DFM_MERGECONTEXTMENU
#define DFM_INVOKECOMMAND
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
BOOL WINAPI _ILIsPidlSimple(LPCITEMIDLIST pidl)
#define FAILED_UNEXPECTEDLY(hr)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
BOOL PathIsValidElement(_In_ LPCWSTR pszPath)
HRESULT WINAPI SHCoCreateInstance(LPCWSTR aclsid, const CLSID *clsid, LPUNKNOWN pUnkOuter, REFIID refiid, LPVOID *ppv)
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE pfnThreadProc, VOID *pData, DWORD dwFlags, LPTHREAD_START_ROUTINE pfnCallback)
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
BOOL SH_ShowPropertiesDialog(LPCWSTR pwszPath, IDataObject *pDataObj)
GLenum GLuint GLenum GLsizei const GLchar * buf
HRESULT GetDetailsOf([in] PCUITEMID_CHILD pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd)
HRESULT BindToObject([in] PCUIDLIST_RELATIVE pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut)
HRESULT GetAttributesOf([in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in, out] SFGAOF *rgfInOut)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
interface IBindCtx * LPBC
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST * _ILCopyCidaToaPidl(LPITEMIDLIST *pidl, const CIDA *cida)
HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
FileStructW * _ILGetFileStructW(LPCITEMIDLIST pidl)
BOOL _ILIsFolder(LPCITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
BOOL _ILIsValue(LPCITEMIDLIST pidl)
DWORD _ILSimpleGetTextW(LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define SEE_MASK_WAITFORINPUTIDLE
VOID WINAPI SHGetSetSettings(LPSHELLSTATE lpss, DWORD dwMask, BOOL bSet)
static PCUIDLIST_RELATIVE HIDA_GetPIDLItem(CIDA const *pida, SIZE_T i)
HRESULT HResultFromWin32(DWORD hr)
static PCUIDLIST_ABSOLUTE HIDA_GetPIDLFolder(CIDA const *pida)
#define MAKE_COMPARE_HRESULT(x)
static BOOL ILIsSingle(LPCITEMIDLIST pidl)
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
HRESULT SHELL32_CoCreateInitSF(LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidlChild, const GUID *clsid, REFIID riid, LPVOID *ppvOut)
HRESULT SHELL32_BindToSF(LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidl, const GUID *clsid, REFIID riid, LPVOID *ppvOut)
static DWORD WINAPI _ShowPropertiesDialogThread(LPVOID lpParameter)
HRESULT SHELL32_GetDisplayNameOfChild(IShellFolder2 *psf, LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet)
SHCONTF SHELL_GetDefaultFolderEnumSHCONTF()
HRESULT SHELL32_CompareChildren(IShellFolder2 *psf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
void AddFSClassKeysToArray(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, HKEY *array, UINT *cKeys)
LSTATUS AddClsidKeyToArray(REFCLSID clsid, HKEY *array, UINT *cKeys)
LSTATUS AddClassKeyToArray(const WCHAR *szClass, HKEY *array, UINT *cKeys)
HRESULT SHELL32_CompareDetails(IShellFolder2 *isf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
HRESULT SH_GetApidlFromDataObject(IDataObject *pDataObject, PIDLIST_ABSOLUTE *ppidlfolder, PUITEMID_CHILD **apidlItems, UINT *pcidl)
BOOL SHELL_IncludeItemInFolderEnum(IShellFolder *pSF, PCUITEMID_CHILD pidl, SFGAOF Query, SHCONTF Flags)
HRESULT Shell_NextElement(_Inout_ LPWSTR *ppch, _Out_ LPWSTR pszOut, _In_ INT cchOut, _In_ BOOL bValidate)
EXTERN_C HRESULT WINAPI SHOpenFolderAndSelectItems(PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD dwFlags)
HRESULT SHELL32_DefaultContextMenuCallBack(IShellFolder *psf, IDataObject *pdo, UINT msg)
HRESULT SHELL32_ParseNextElement(IShellFolder2 *psf, HWND hwndOwner, LPBC pbc, LPITEMIDLIST *pidlInOut, LPOLESTR szNext, DWORD *pEaten, DWORD *pdwAttributes)
HRESULT SHELL32_ShowPropertiesDialog(IDataObject *pdtobj)
HRESULT WINAPI SHCreateLinks(HWND hWnd, LPCSTR lpszDir, IDataObject *lpDataObject, UINT uFlags, LPITEMIDLIST *lppidlLinks)
#define SSF_SHOWSUPERHIDDEN
#define SSF_SHOWALLOBJECTS
#define PathFindExtension
ITEMIDLIST UNALIGNED * LPITEMIDLIST
ITEMID_CHILD UNALIGNED * PUITEMID_CHILD
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
ITEMIDLIST_RELATIVE UNALIGNED * PUIDLIST_RELATIVE
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc, size_t cchToCopy)
DWORD WINAPI GetLastError(void)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define HKEY_CLASSES_ROOT
_Must_inspect_result_ _In_ ULONG Flags
#define IID_PPV_ARG(Itype, ppType)