43 DWORD attrs = (pdwAttributes ? *pdwAttributes : 0) | SFGAO_STREAM;
46 CComPtr<IShellFolder> psfDesktop;
50 CComPtr<IBindCtx> pBindCtx;
54 BIND_OPTS BindOps = {
sizeof(BindOps) };
56 pBindCtx->SetBindOptions(&BindOps);
57 hr = psfDesktop->ParseDisplayName(hwndOwner, pBindCtx,
59 pchEaten, ppidl, &attrs);
72 CComHeapPtr<ITEMIDLIST> pidlLocation;
79 CComPtr<IShellFolder> psfFolder;
83 CComHeapPtr<ITEMIDLIST> pidlNew;
84 hr = psfFolder->ParseDisplayName(hwndOwner, pbc,
pch, pchEaten, &pidlNew, &attrs);
87 hr = SHILCombine(pidlLocation, pidlNew, ppidl);
102 *ppidl = pidlLocation.Detach();
117 *pdwAttributes = attrs;
133 DWORD *pdwAttributes)
160 L"CurrentVersion\\Explorer\\HideDesktopIcons\\ClassicStartMenu";
166 dwResult =
sizeof(
DWORD);
205 DWORD j = 0, dwVal, Val, dwType, dwIID;
217 dwIID =
sizeof(iid) /
sizeof(
WCHAR);
243 static const WCHAR MyDocumentsClassString[] =
L"{450D8FBA-AD25-11D0-98A8-0800361B1103}";
244 static const WCHAR InternetClassString[] =
L"{871C5380-42A0-1069-A2EA-08002B30309D}";
258 while((
S_OK == pRegEnumerator->
Next(1, &pidl, &dwFetched)) && dwFetched)
296#define DESKTOPSHELLVIEWCOLUMNS 6
299 SFGAO_HASSUBFOLDER | SFGAO_FILESYSTEM | SFGAO_FOLDER | SFGAO_FILESYSANCESTOR |
300 SFGAO_STORAGEANCESTOR | SFGAO_HASPROPSHEET | SFGAO_STORAGE;
302 SFGAO_CANRENAME | SFGAO_CANDELETE | SFGAO_HASPROPSHEET | SFGAO_DROPTARGET |
303 SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_CANLINK;
305 SFGAO_CANRENAME | SFGAO_CANDELETE | SFGAO_HASPROPSHEET | SFGAO_DROPTARGET |
306 SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_CANLINK;
330 &CLSID_ShellFSFolder,
338 &CLSID_ShellFSFolder,
374 int cLen =
wcslen(szFileName);
391 DWORD *pdwAttributes)
396 CComHeapPtr<ITEMIDLIST> pidlParent;
398 WCHAR wch = *lpszDisplayName;
399 if (((
L'A' <= wch && wch <=
L'Z') || (
L'a' <= wch && wch <=
L'z')) &&
400 (lpszDisplayName[1] ==
L':'))
417 CComPtr<IShellFolder> pParentFolder;
420 CComHeapPtr<ITEMIDLIST> pidlChild;
421 HRESULT hr = pParentFolder->ParseDisplayName(hwndOwner, pbc, lpszDisplayName,
422 pchEaten, &pidlChild, pdwAttributes);
426 *ppidl =
ILCombine(pidlParent, pidlChild);
448 CComPtr<IShellFolder> psfDesktop;
454 return psfDesktop->ParseDisplayName(hwndOwner, pbc,
szPath, pchEaten, ppidl,
482 WARN(
"We don't support 'ms-shell-rooted:' and 'ms-shell-idlist:' schemes\n");
508 DWORD *pdwAttributes)
510 TRACE (
"(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n",
511 this, hwndOwner, pbc, lpszDisplayName,
debugstr_w(lpszDisplayName),
512 pchEaten, ppidl, pdwAttributes);
519 if (!lpszDisplayName)
522 if (!*lpszDisplayName)
528 if (lpszDisplayName[0] ==
':' && lpszDisplayName[1] ==
':')
530 return m_regFolder->ParseDisplayName(hwndOwner, pbc, lpszDisplayName, pchEaten, ppidl,
540 CComHeapPtr<ITEMIDLIST> pidlAlias;
544 *ppidl = pidlAlias.Detach();
548 TRACE (
"(%p)->(-- ret=0x%08x)\n",
this,
hr);
561 BIND_OPTS BindOps = {
sizeof(BindOps) };
565 BindOps.grfMode &= ~STGM_CREATE;
567 pbc->SetBindOptions(&BindOps);
593 pbc->SetBindOptions(&BindOps);
602 TRACE (
"(%p)->(-- ret=0x%08x)\n",
this,
hr);
612 CComPtr<IEnumIDList> pRegEnumerator;
613 CComPtr<IEnumIDList> pDesktopEnumerator;
614 CComPtr<IEnumIDList> pCommonDesktopEnumerator;
619 ERR(
"EnumObjects for reg folder failed\n");
623 ERR(
"EnumObjects for desktop fs folder failed\n");
627 ERR(
"EnumObjects for shared desktop fs folder failed\n");
629 return ShellObjectCreatorInit<CDesktopFolderEnum>(
dwFlags,pRegEnumerator, pDesktopEnumerator, pCommonDesktopEnumerator,
IID_PPV_ARG(
IEnumIDList, ppEnumIDList));
644 CComPtr<IShellFolder2> psf;
649 return psf->BindToObject(pidl, pbcReserved,
riid, ppvOut);
661 FIXME (
"(%p)->(pidl=%p,%p,%s,%p) stub\n",
673 bool bIsDesktopFolder1, bIsDesktopFolder2;
675 if (!pidl1 || !pidl2)
677 ERR(
"Got null pidl pointer (%Ix %p %p)!\n",
lParam, pidl1, pidl2);
683 if (bIsDesktopFolder1 || bIsDesktopFolder2)
702 TRACE (
"(%p)->(hwnd=%p,%s,%p)\n",
721 dcm.
hwnd = hwndOwner;
737 TRACE (
"-- (%p)->(interface=%p)\n",
this, ppvOut);
751 TRACE(
"(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n",
752 this, cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0);
765 for (
UINT i = 0;
i < cidl; ++
i)
776 CComPtr<IShellFolder2> psf;
781 psf->GetAttributesOf(1, &apidl[
i], rgfInOut);
784 ERR(
"Got an unknown pidl type!!!\n");
788 *rgfInOut &= ~SFGAO_VALIDATE;
790 TRACE(
"-- result=0x%08x\n", *rgfInOut);
818 TRACE (
"(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n",
828 CComPtr<IShellFolder2> psf;
833 return psf->GetUIObjectOf(hwndOwner, cidl, apidl,
riid, prgfInOut, ppvOut);
855 dcm.
hwnd = hwndOwner;
877 CComPtr<IShellFolder> psfChild;
882 return psfChild->CreateViewObject(
NULL,
riid, ppvOut);
891 TRACE (
"(%p)->hr=0x%08x\n",
this,
hr);
903 TRACE (
"(%p)->(pidl=%p,0x%08x,%p)\n",
this, pidl,
dwFlags, strRet);
922 CComPtr<IShellFolder2> psf;
927 return psf->GetDisplayNameOf(pidl,
dwFlags, strRet);
949 CComPtr<IShellFolder2> psf;
954 return psf->SetNameOf(hwndOwner, pidl,
lpName,
dwFlags, pPidlOut);
959 FIXME (
"(%p)\n",
this);
965 FIXME (
"(%p)\n",
this);
971 TRACE (
"(%p)\n",
this);
983 TRACE (
"(%p)\n",
this);
998 FIXME (
"(%p)\n",
this);
1018 CComPtr<IShellFolder2> psf;
1023 hr = psf->GetDetailsOf(pidl, iColumn, psd);
1032 FIXME (
"(%p)\n",
this);
1038 TRACE (
"(%p)\n",
this);
1043 *lpClassId = CLSID_ShellDesktop;
1050 TRACE (
"(%p)->(%p)\n",
this, pidl);
1060 TRACE (
"(%p)->(%p)\n",
this, pidl);
1115 TRACE(
"-- %p->(%p)\n",psf, *psf);
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
static INT IsNamespaceExtensionHidden(const WCHAR *iid)
HRESULT WINAPI IEParseDisplayNameWithBCW(DWORD codepage, LPCWSTR lpszDisplayName, LPBC pbc, LPITEMIDLIST *ppidl)
static const DWORD dwMyComputerAttributes
#define DESKTOPSHELLVIEWCOLUMNS
static const WCHAR ClassicStartMenuW[]
static const shvheader DesktopSFHeader[]
static const DWORD dwDesktopAttributes
static DWORD dwMyNetPlacesAttributes
int SHELL_ConfirmMsgBox(HWND hWnd, LPWSTR lpszText, LPWSTR lpszCaption, HICON hIcon, BOOL bYesToAll)
static HRESULT SHELL32_CoCreateInitSF(LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidlChild, const GUID *clsid, REFIID riid, LPVOID *ppvOut)
HRESULT IDataObject_Constructor(HWND hwndOwner, PCIDLIST_ABSOLUTE pMyPidl, PCUIDLIST_RELATIVE_ARRAY apidl, UINT cidl, BOOL bExtendedObject, IDataObject **dataObject)
HRESULT CRegFolder_CreateInstance(const GUID *pGuid, LPCITEMIDLIST pidlRoot, LPCWSTR lpszPath, LPCWSTR lpszEnumKeyName, REFIID riid, void **ppv)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
#define RegCloseKey(hKey)
HRESULT WINAPI Initialize(DWORD dwFlags, IEnumIDList *pRegEnumerator, IEnumIDList *pDesktopEnumerator, IEnumIDList *pCommonDesktopEnumerator)
void AddItemsFromClassicStartMenuKey(HKEY hKeyRoot)
STDMETHOD() GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD *rgfInOut) override
CComPtr< IShellFolder2 > m_SharedDesktopFSFolder
STDMETHOD() BindToObject(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
HRESULT WINAPI FinalConstruct()
STDMETHOD() Initialize(PCIDLIST_ABSOLUTE pidl) override
STDMETHOD() GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet) override
STDMETHOD() CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2) override
STDMETHOD() GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags) override
STDMETHOD() SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut) override
STDMETHOD() GetDefaultSearchGUID(GUID *pguid) override
STDMETHOD() CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut) override
STDMETHOD() MapColumnToSCID(UINT column, SHCOLUMNID *pscid) override
STDMETHOD() GetDetailsEx(PCUITEMID_CHILD pidl, const SHCOLUMNID *pscid, VARIANT *pv) override
STDMETHOD() BindToStorage(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
STDMETHOD() CallBack(IShellFolder *psf, HWND hwndOwner, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam) override
HRESULT _GetSFFromPidl(LPCITEMIDLIST pidl, IShellFolder2 **psf)
CComPtr< IShellFolder2 > m_DesktopFSFolder
STDMETHODIMP HttpUrlParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes)
STDMETHOD() ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes) override
STDMETHOD() GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay) override
STDMETHOD() GetCurFolder(PIDLIST_ABSOLUTE *pidl) override
STDMETHOD() GetClassID(CLSID *lpClassId) override
STDMETHOD() EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList) override
STDMETHOD() EnumSearches(IEnumExtraSearch **ppenum) override
STDMETHOD() GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *psd) override
CComPtr< IShellFolder2 > m_regFolder
STDMETHODIMP ShellUrlParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes)
STDMETHOD() GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut) override
HRESULT _ParseDisplayNameByParent(HWND hwndOwner, LPBC pbc, LPOLESTR pszPath, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes)
BOOL HasItemWithCLSID(LPITEMIDLIST pidl)
BOOL AddToEnumList(LPITEMIDLIST pidl)
HRESULT AppendItemsFromEnumerator(IEnumIDList *pEnum)
void pdump(LPCITEMIDLIST pidl)
const char * shdebugstr_guid(const struct _GUID *id)
#define IDS_SHV_COLUMN_TYPE
#define IDS_SHV_COLUMN_NAME
#define GET_SHGDN_RELATION(dwFlags)
#define DFM_MERGECONTEXTMENU
#define DFM_INVOKECOMMAND
#define GET_SHGDN_FOR(dwFlags)
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)
LONG WINAPI RegEnumValueW(_In_ HKEY hKey, _In_ DWORD index, _Out_ LPWSTR value, _Inout_ PDWORD val_count, _Reserved_ PDWORD reserved, _Out_opt_ PDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ PDWORD count)
BOOL WINAPI _ILIsPidlSimple(LPCITEMIDLIST pidl)
#define FAILED_UNEXPECTEDLY(hr)
EXTERN_C INT Shell_ParseSpecialFolder(_In_ LPCWSTR pszStart, _Out_ LPWSTR *ppch, _Out_ INT *pcch)
HRESULT SHGetNameAndFlagsW(_In_ LPCITEMIDLIST pidl, _In_ DWORD dwFlags, _Out_opt_ LPWSTR pszText, _In_ UINT cchBuf, _Inout_opt_ DWORD *pdwAttributes)
HRESULT SHBindToObject(_In_opt_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ REFIID riid, _Out_ void **ppvObj)
HRESULT WINAPI Shell_DefaultContextMenuCallBack(IShellFolder *psf, IDataObject *pdtobj)
BOOL BindCtx_ContainsObject(_In_ IBindCtx *pBindCtx, _In_ LPCWSTR pszName)
HRESULT SHIsFileSysBindCtx(_In_ IBindCtx *pBindCtx, _Out_opt_ WIN32_FIND_DATAW *pFindData)
BOOL Shell_FailForceReturn(_In_ HRESULT hr)
HRESULT Shell_TranslateIDListAlias(_In_ LPCITEMIDLIST pidl, _In_ HANDLE hToken, _Out_ LPITEMIDLIST *ppidlAlias, _In_ DWORD dwFlags)
BOOL SHSkipJunctionBinding(_In_ IBindCtx *pbc, _In_ CLSID *pclsid)
void WINAPI SHFree(LPVOID pv)
LPVOID WINAPI SHAlloc(SIZE_T len)
HRESULT WINAPI SHGetFolderLocation(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPITEMIDLIST *ppidl)
BOOL WINAPI SHGetSpecialFolderPathW(HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate)
HRESULT WINAPI PathCreateFromUrlW(LPCWSTR pszUrl, LPWSTR pszPath, LPDWORD pcchPath, DWORD dwReserved)
BOOL WINAPI PathIsUNCW(LPCWSTR lpszPath)
HRESULT WINAPI ParseURLW(LPCWSTR x, PARSEDURLW *y)
BOOL WINAPI UrlIsW(LPCWSTR pszUrl, URLIS Urlis)
static BOOL _ILIsSpecialFolder(LPCITEMIDLIST pidl)
GLdouble GLdouble GLdouble r
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] PITEMID_CHILD *rgelt, [out] ULONG *pceltFetched)
#define COM_INTERFACE_ENTRY_IID(iid, x)
#define ERROR_FILE_NOT_FOUND
static DWORD DWORD void LPSTR DWORD cch
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
unsigned __int3264 UINT_PTR
interface IBindCtx * LPBC
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
const GUID IID_IDataObject
#define PathAddBackslashW
LPITEMIDLIST _ILCreateMyComputer(void)
LPITEMIDLIST _ILCreateIExplore(void)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
LPITEMIDLIST _ILCreateDesktop(void)
LPITEMIDLIST _ILCreateNetwork(void)
BOOL _ILIsFolder(LPCITEMIDLIST pidl)
BOOL _ILIsMyComputer(LPCITEMIDLIST pidl)
BOOL _ILIsNetHood(LPCITEMIDLIST pidl)
LPITEMIDLIST _ILCreateGuidFromStrW(LPCWSTR szGUID)
IID * _ILGetGUIDPointer(LPCITEMIDLIST pidl)
BOOL _ILIsValue(LPCITEMIDLIST pidl)
LPITEMIDLIST _ILCreateMyDocuments(void)
DWORD _ILSimpleGetTextW(LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
#define IsEqualIID(riid1, riid2)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define CSIDL_FLAG_CREATE
#define MAKE_COMPARE_HRESULT(x)
HRESULT SHELL32_GetDisplayNameOfChild(IShellFolder2 *psf, LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet)
void AddFSClassKeysToArray(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, HKEY *array, UINT *cKeys)
static __inline int SHELL32_GUIDToStringW(REFGUID guid, LPWSTR str)
LSTATUS AddClassKeyToArray(const WCHAR *szClass, HKEY *array, UINT *cKeys)
void WINAPI _InsertMenuItemW(HMENU hmenu, UINT indexMenu, BOOL fByPosition, UINT wID, UINT fType, LPCWSTR dwTypeData, UINT fState)
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
#define CSIDL_COMMON_DESKTOPDIRECTORY
_In_ int _In_ BOOL bCreate
#define CSIDL_DESKTOPDIRECTORY
struct _SFV_CREATE SFV_CREATE
#define DFM_CMD_PROPERTIES
@ URL_SCHEME_MSSHELLROOTED
@ URL_SCHEME_MSSHELLIDLIST
#define IDS_SHV_COLUMN_SIZE
#define IDS_SHV_COLUMN_MODIFIED
#define IDS_SHV_COLUMN_COMMENTS
#define IDS_SHV_COLUMN_ATTRIBUTES
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
const ITEMIDLIST_RELATIVE UNALIGNED * PCUIDLIST_RELATIVE
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
#define INVALID_FILE_ATTRIBUTES
#define GetFileAttributes
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define ERROR_PATH_NOT_FOUND
#define HRESULT_FROM_WIN32(x)
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
HMENU WINAPI CreatePopupMenu(void)
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define MAKEINTRESOURCEW(i)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
#define IID_PPV_ARG(Itype, ppType)