60 { CLSID_ControlPanel,
NULL, REGITEMORDER_MYCOMPUTER_CONTROLS },
67 L"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}",
73 if (pidl && pidl->mkid.cb == 2 + 2 +
sizeof(
CLSID))
76 return (
const CLSID*)(&pidl->mkid.abID[2]);
84 return pClass && *pClass ==
clsid;
91 BYTE letter = ((
PIDLDATA*)pidl->mkid.abID)->u.drive.szDriveName[0];
106 if (DrvNum < 0 || DrvNum >= 26)
110 WCHAR DrvPath[] = {
LOWORD(
'A' + DrvNum),
':',
'\\',
'\0' };
111 return ::GetDriveTypeW(DrvPath);
161 ERR(
"pidl %p is not a drive\n", pidl);
170 if (DrvNum < 0 || DrvPath[1] !=
':' || (DrvPath[2] && (DrvPath[2] !=
'\\' || DrvPath[3])))
176 return wsprintfW(AriPath,
L"%c:\\autorun.inf", DrvPath[0]);
180bool SHELL_CanInvokeAutoRunOnDrive(
PCWSTR DrvPath)
207#define RETRY_SLEEP 250
210 DWORD dwError, dwBytesReturned;
260 0, &dwBytesReturned,
NULL);
298 return stub.DestroyWindow();
333 WCHAR szDrive[8] = {0};
336 ERR(
"pidl is not a drive\n");
387 WCHAR wszBuf[4] =
L"A:\\";
388 wszBuf[0] = (
WCHAR)szDrive[0];
443 WCHAR szFormat[128], szMessage[128];
451 CMINVOKECOMMANDINFOEX ici = {
sizeof(ici), CMIC_MASK_UNICODE };
493 wcscpy(wszPath, pszDrivePath);
497 wszAutoRunInfPath) && wszValue[0] != 0)
527 wszAutoRunInfPath) && wszTemp[0] != 0)
554 WCHAR szKey[200], chDrv =
'A' + DriveNum;
561 wsprintfW(szKey,
L"Applications\\Explorer.exe\\Drives\\%c\\DefaultIcon", chDrv);
572 CComPtr<IDefaultExtractIconInit> initIcon;
578 int icon_idx, reg_idx = 0;
610 initIcon->SetNormalIcon(wTemp, icon_idx);
615 initIcon->SetNormalIcon(wTemp, icon_idx);
617 else if (reg_idx && HLM_GetIconW(reg_idx - 1, wTemp,
_countof(wTemp), &icon_idx))
619 initIcon->SetNormalIcon(wTemp, icon_idx);
624 initIcon->SetNormalIcon(wTemp, icon_idx);
635 return initIcon->QueryInterface(
riid, ppvOut);
647 WCHAR wszDriveName[] = {
'A',
':',
'\\',
'\0'};
649 for (; wszDriveName[0] <=
'Z'; wszDriveName[0]++)
681 SFGAO_CANRENAME | SFGAO_CANDELETE | SFGAO_HASPROPSHEET | SFGAO_DROPTARGET |
682 SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_CANLINK;
684 SFGAO_HASSUBFOLDER | SFGAO_FOLDER | SFGAO_CANLINK;
686 SFGAO_HASSUBFOLDER | SFGAO_FILESYSTEM | SFGAO_FOLDER | SFGAO_FILESYSANCESTOR |
687 SFGAO_DROPTARGET | SFGAO_HASPROPSHEET | SFGAO_CANRENAME | SFGAO_CANLINK | SFGAO_CANCOPY;
697 TRACE(
"-- destroying IShellFolder(%p)\n",
this);
723 TRACE(
"(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n",
this,
724 hwndOwner, pbc, lpszDisplayName,
debugstr_w (lpszDisplayName),
725 pchEaten, ppidl, pdwAttributes);
732 if (!lpszDisplayName)
736 if (lpszDisplayName[0] ==
L':' && lpszDisplayName[1] ==
L':')
738 return m_regFolder->ParseDisplayName(hwndOwner, pbc, lpszDisplayName, pchEaten, ppidl,
742 if (((
L'A' <= lpszDisplayName[0] && lpszDisplayName[0] <=
L'Z') ||
743 (
L'a' <= lpszDisplayName[0] && lpszDisplayName[0] <=
L'z')) &&
744 lpszDisplayName[1] ==
L':' && (lpszDisplayName[2] ==
L'\\' || !lpszDisplayName[2]))
763 if (lpszDisplayName[2] && lpszDisplayName[3])
765 CComPtr<IShellFolder> pChildFolder;
771 CComHeapPtr<ITEMIDLIST> pidlChild;
772 hr = pChildFolder->ParseDisplayName(hwndOwner, pbc, &lpszDisplayName[3], &chEaten,
773 &pidlChild, pdwAttributes);
777 hr = SHILCombine(pidlTemp, pidlChild, ppidl);
781 *ppidl = pidlTemp.Detach();
782 if (pdwAttributes && *pdwAttributes)
788 TRACE(
"(%p)->(-- ret=0x%08x)\n",
this,
hr);
798 CComPtr<IEnumIDList> pRegEnumerator;
809 TRACE(
"(%p)->(pidl=%p,%p,%s,%p)\n",
this,
820 PERSIST_FOLDER_TARGET_INFO pfti = {0};
821 pfti.dwAttributes = -1;
823 pfti.szTargetParsingName[0] = *pchDrive;
824 pfti.szTargetParsingName[1] =
L':';
825 pfti.szTargetParsingName[2] =
L'\\';
830 &CLSID_ShellFSFolder,
844 FIXME(
"(%p)->(pidl=%p,%p,%s,%p) stub\n",
this,
862 if (!pidl1 || !pidl2)
864 ERR(
"Got null pidl pointer (%Ix %p %p)!\n",
lParam, pidl1, pidl2);
880 if (!pszDrive1 && !pszDrive2)
882 else if (pszDrive1 && pszDrive2)
885 result = (
int)!pszDrive1 - (
int)!pszDrive2;
893 if (!pszDrive1 || !pszDrive2)
899 ULARGE_INTEGER Drive1Available, Drive1Total, Drive2Available, Drive2Total;
918 if (bValid1 != bValid2)
945 CComPtr<IShellView> pShellView;
948 TRACE(
"(%p)->(hwnd=%p,%s,%p)\n",
this,
958 WARN(
"IDropTarget not implemented\n");
971 TRACE(
"-- (%p)->(interface=%p)\n",
this, ppvOut);
980 TRACE(
"(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n",
981 this, cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0);
993 for (
UINT i = 0;
i < cidl; ++
i)
1000 *rgfInOut &= ~SFGAO_CANRENAME;
1002 else if (
IsRegItem(apidl[
i], CLSID_ControlPanel))
1012 ERR(
"Got unknown pidl type!\n");
1018 *rgfInOut &= ~SFGAO_VALIDATE;
1020 TRACE(
"-- result=0x%08x\n", *rgfInOut);
1043 TRACE(
"(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n",
this,
1056 hr =
m_regFolder->GetUIObjectOf(hwndOwner, cidl, apidl,
riid, prgfInOut, &pObj);
1068 hr =
m_regFolder->GetUIObjectOf(hwndOwner, cidl, apidl,
riid, prgfInOut, &pObj);
1072 CComPtr<IShellFolder> psfChild;
1077 return psfChild->CreateViewObject(
NULL,
riid, ppvOut);
1086 TRACE(
"(%p)->hr=0x%08x\n",
this,
hr);
1097 TRACE(
"(%p)->(pidl=%p,0x%08x,%p)\n",
this, pidl,
dwFlags, strRet);
1113 ERR(
"Wrong pidl type\n");
1137 PWSTR pszLabel = pszPath;
1143 pszLabel +=
wsprintfW(pszPath,
L"(%c:) ", szDrive[0]);
1162 if (!*pszLabel && !bEditLabel)
1164 else if (!bNoLetter && !bEditLabel)
1168 if (!*pszPath && !bEditLabel)
1172 wcscpy(pszPath, szDrive);
1221 *pguid = CLSID_ShellSearchExt;
1233 TRACE(
"(%p)\n",
this);
1239 TRACE(
"(%p)\n",
this);
1250 if (pscid->
fmtid == FMTID_ShellDetails)
1272 return m_regFolder->GetDetailsEx(pidl, pscid, pv);
1280 TRACE(
"(%p)->(%p %i %p)\n",
this, pidl, iColumn, psd);
1301 return SHSetStrRetEmpty(&psd->
str);
1323 hr = SHSetStrRetEmpty(&psd->
str);
1344 hr = SHSetStrRetEmpty(&psd->
str);
1369 TRACE(
"(%p)\n",
this);
1374 *lpClassId = CLSID_MyComputer;
1393 TRACE(
"(%p)->(%p)\n",
this, pidl);
1432 #if ROSPOLICY_DRIVESFOLDER_DEFLARGEICONS
static const REGFOLDERINFO g_RegFolderInfo
static const CLSID * IsRegItem(LPCITEMIDLIST pidl)
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
BOOL SHELL32_IsShellFolderNamespaceItemHidden(LPCWSTR SubKey, REFCLSID Clsid)
Returns true if the item should be hidden in DefView but not in the Explorer folder tree.
static HRESULT DoFormatDriveAsync(HWND hwnd, UINT nDrive)
UINT _ILGetDriveType(LPCITEMIDLIST pidl)
static bool IsFloppyDrive(PCWSTR DrivePath)
static UINT _ILGetRemovableTypeId(LPCITEMIDLIST pidl)
HRESULT CDrivesContextMenu_CreateInstance(PCIDLIST_ABSOLUTE pidlFolder, HWND hwnd, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, IShellFolder *psf, IContextMenu **ppcm)
static const CLSID * IsRegItem(PCUITEMID_CHILD pidl)
static BOOL TryToLockOrUnlockDrive(HANDLE hDrive, BOOL bLock)
static HRESULT getIconLocationForDrive(_In_ PCWSTR pszDrivePath, _Out_writes_z_(cchMax) PWSTR szIconFile, _In_ UINT cchMax, _Out_ int *piIndex, _Out_ UINT *pGilOut)
HRESULT CALLBACK DrivesContextMenuCallback(IShellFolder *psf, HWND hwnd, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam)
static BOOL DoEjectDrive(const WCHAR *physical, UINT nDriveType, INT *pnStringID)
static const DWORD dwComputerAttributes
BOOL SHELL32_IsShellFolderNamespaceItemHidden(LPCWSTR SubKey, REFCLSID Clsid)
Returns true if the item should be hidden in DefView but not in the Explorer folder tree.
static UINT GetCachedDriveType(INT8 DrvNum)
static const REGFOLDERINFO g_RegFolderInfo
static HRESULT GetRawDriveLabel(PCWSTR DrivePath, LPWSTR szLabel, UINT cchMax)
static int iDriveIconIds[7]
static const shvheader MyComputerSFHeader[]
static int iDriveTypeIds[7]
static INT8 GetDriveNumber(PCUITEMID_CHILD pidl)
INT8 GetDrivePath(PCUITEMID_CHILD pidl, PWSTR Path)
static const REQUIREDREGITEM g_RequiredItems[]
static HRESULT getLabelForDriveFromAutoRun(PCWSTR wszPath, LPWSTR szLabel, UINT cchMax)
static const CMVERBMAP g_VerbMap[]
static const DWORD dwDriveAttributes
static const DWORD dwControlPanelAttributes
static HRESULT GetDriveLabel(PCWSTR DrivePath, LPWSTR szLabel, UINT cchMax)
static UINT SHELL_GetAutoRunInfPath(PCWSTR DrvPath, PWSTR AriPath, BOOL ForInvoke=FALSE)
static DWORD CALLBACK DoFormatDriveThread(LPVOID args)
HRESULT CDrivesExtractIcon_CreateInstance(IShellFolder *psf, LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
static bool GetRegCustomizedDriveIcon(_In_ INT8 DriveNum, _Out_writes_z_(cchMax) PWSTR szIconFile, _In_ UINT cchMax, _Out_ int *piIndex, _Out_ UINT *pGilOut)
HRESULT IDataObject_Constructor(HWND hwndOwner, PCIDLIST_ABSOLUTE pMyPidl, PCUIDLIST_RELATIVE_ARRAY apidl, UINT cidl, BOOL bExtendedObject, IDataObject **dataObject)
HRESULT CRegFolder_CreateInstance(PREGFOLDERINITDATA pInit, LPCITEMIDLIST pidlRoot, REFIID riid, void **ppv)
#define IID_PPV_ARG(Itype, ppType)
PRTL_UNICODE_STRING_BUFFER Path
#define shell32_hInstance
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
HRESULT WINAPI Initialize(HWND hwndOwner, DWORD dwFlags, IEnumIDList *pRegEnumerator)
STDMETHOD() GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut) override
STDMETHOD() GetCurFolder(PIDLIST_ABSOLUTE *pidl) override
STDMETHOD() GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD *rgfInOut) override
STDMETHOD() GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet) override
STDMETHOD() Initialize(PCIDLIST_ABSOLUTE pidl) override
STDMETHOD() EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList) override
STDMETHOD() GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *psd) override
STDMETHOD() BindToStorage(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
STDMETHOD() GetDefaultSearchGUID(GUID *pguid) override
STDMETHOD() CallBack(IShellFolder *psf, HWND hwndOwner, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam) override
STDMETHOD() ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes) override
STDMETHOD() ShouldShow(IShellFolder *psf, PCIDLIST_ABSOLUTE pidlFolder, PCUITEMID_CHILD pidlItem) override
STDMETHODIMP MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam) override
STDMETHOD() GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags) override
STDMETHOD() GetDetailsEx(PCUITEMID_CHILD pidl, const SHCOLUMNID *pscid, VARIANT *pv) override
STDMETHOD() GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay) override
STDMETHOD() MapColumnToSCID(UINT column, SHCOLUMNID *pscid) override
CComPtr< IShellFolder2 > m_regFolder
static HRESULT SetDriveLabel(HWND hwndOwner, PCWSTR DrivePath, PCWSTR Label)
STDMETHOD() CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut) override
STDMETHOD() CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2) override
HRESULT WINAPI FinalConstruct()
STDMETHOD() SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut) override
STDMETHOD() BindToObject(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
STDMETHOD() GetClassID(CLSID *lpClassId) override
STDMETHOD() EnumSearches(IEnumExtraSearch **ppenum) override
BOOL AddToEnumList(LPITEMIDLIST pidl)
HRESULT AppendItemsFromEnumerator(IEnumIDList *pEnum)
#define ERROR_INVALID_FUNCTION
void pdump(LPCITEMIDLIST pidl)
const char * shdebugstr_guid(const struct _GUID *id)
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
#define IDS_SHV_COLUMN_TYPE
#define IDS_SHV_COLUMN_NAME
#define GET_SHGDN_RELATION(dwFlags)
#define DFM_MERGECONTEXTMENU
#define DFM_INVOKECOMMAND
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
void *WINAPI CoTaskMemAlloc(SIZE_T size)
#define INVALID_HANDLE_VALUE
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
BOOL WINAPI GetDiskFreeSpaceExW(IN LPCWSTR lpDirectoryName OPTIONAL, OUT PULARGE_INTEGER lpFreeBytesAvailableToCaller, OUT PULARGE_INTEGER lpTotalNumberOfBytes, OUT PULARGE_INTEGER lpTotalNumberOfFreeBytes)
BOOL WINAPI GetDiskFreeSpaceExA(IN LPCSTR lpDirectoryName OPTIONAL, OUT PULARGE_INTEGER lpFreeBytesAvailableToCaller, OUT PULARGE_INTEGER lpTotalNumberOfBytes, OUT PULARGE_INTEGER lpTotalNumberOfFreeBytes)
BOOL WINAPI GetVolumeInformationW(IN LPCWSTR lpRootPathName, IN LPWSTR lpVolumeNameBuffer, IN DWORD nVolumeNameSize, OUT LPDWORD lpVolumeSerialNumber OPTIONAL, OUT LPDWORD lpMaximumComponentLength OPTIONAL, OUT LPDWORD lpFileSystemFlags OPTIONAL, OUT LPWSTR lpFileSystemNameBuffer OPTIONAL, IN DWORD nFileSystemNameSize)
BOOL WINAPI GetVolumeInformationA(IN LPCSTR lpRootPathName, IN LPSTR lpVolumeNameBuffer, IN DWORD nVolumeNameSize, OUT LPDWORD lpVolumeSerialNumber OPTIONAL, OUT LPDWORD lpMaximumComponentLength OPTIONAL, OUT LPDWORD lpFileSystemFlags OPTIONAL, OUT LPSTR lpFileSystemNameBuffer OPTIONAL, IN DWORD nFileSystemNameSize)
BOOL WINAPI SetVolumeLabelW(IN LPCWSTR lpRootPathName, IN LPCWSTR lpVolumeName OPTIONAL)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
INT WINAPI GetPrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR def_val, LPWSTR buffer, UINT len, LPCWSTR filename)
BOOL WINAPI PathIsRelativeW(const WCHAR *path)
int WINAPI PathParseIconLocationW(WCHAR *path)
LONG WINAPI SHRegGetUSValueW(const WCHAR *subkey, const WCHAR *value, DWORD *type, void *data, DWORD *data_len, BOOL ignore_hkcu, void *default_data, DWORD default_data_len)
DWORD WINAPI GetVersion(void)
DWORD WINAPI DECLSPEC_HOTPATCH GetLogicalDrives(void)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE thread_proc, void *data, DWORD flags, LPTHREAD_START_ROUTINE callback)
BOOL IsDriveFloppyW(LPCWSTR pszDriveRoot)
DWORD WINAPI SHFormatDrive(HWND hwnd, UINT drive, UINT fmtID, UINT options)
#define SHELL_ExecuteControlPanelCPL(hwnd, cpl)
DWORD BindCtx_GetMode(_In_ IBindCtx *pbc, _In_ DWORD dwDefault)
HRESULT SHIsFileSysBindCtx(_In_ IBindCtx *pBindCtx, _Out_opt_ WIN32_FIND_DATAW *pFindData)
HRESULT SHELL32_DefaultContextMenuCallBack(IShellFolder *psf, IDataObject *pdo, UINT msg)
HRESULT SHELL_MapContextMenuVerbToCmdId(LPCMINVOKECOMMANDINFO pICI, const CMVERBMAP *pMap)
void WINAPI SHFree(LPVOID pv)
LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive)
LPSTR WINAPI StrFormatByteSize64A(LONGLONG llBytes, LPSTR lpszDest, UINT cchMax)
#define FAILED_UNEXPECTEDLY
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
WCHAR swShell32Name[MAX_PATH]
LSTATUS AddClassKeyToArray(const WCHAR *szClass, HKEY *array, UINT *cKeys)
#define FILE_READ_ONLY_VOLUME
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
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
HRESULT SHELL32_ShowFilesystemItemPropertiesDialogAsync(IDataObject *pDO)
#define COM_INTERFACE_ENTRY_IID(iid, x)
static unsigned int number
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define _Out_writes_z_(s)
#define FSCTL_LOCK_VOLUME
#define FSCTL_UNLOCK_VOLUME
#define FSCTL_DISMOUNT_VOLUME
#define DEFAULT_UNREACHABLE
#define PID_STG_STORAGETYPE
interface IBindCtx * LPBC
const FMTID FMTID_SummaryInformation
const GUID IID_IDataObject
LPITEMIDLIST _ILCreateMyComputer(void)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
LPITEMIDLIST _ILCreateDrive(LPCWSTR lpszNew)
LPPIDLDATA _ILGetDataPointer(LPCITEMIDLIST pidl)
BOOL _ILIsSpecialFolder(LPCITEMIDLIST pidl)
DWORD _ILGetDrive(LPCITEMIDLIST pidl, LPWSTR pOut, UINT uSize)
void _ILFreeaPidl(LPITEMIDLIST *apidl, UINT cidl)
BOOL _ILIsDrive(LPCITEMIDLIST pidl)
#define IsEqualIID(riid1, riid2)
#define IOCTL_STORAGE_EJECT_MEDIA
#define IOCTL_STORAGE_MEDIA_REMOVAL
#define SHRegGetBoolUSValue
HMENU WINAPI CreatePopupMenu(void)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define MAKEINTRESOURCEW(i)
#define REGSTR_PATH_EXPLORER
BOOL HCR_GetIconW(LPCWSTR szClass, LPWSTR szDest, LPCWSTR szName, DWORD len, int *picon_idx)
static HRESULT SHELL_CreateSHDESCRIPTIONID(VARIANT *pVar, DWORD Id, const CLSID *pCLSID)
BOOL WINAPI _ILIsPidlSimple(LPCITEMIDLIST pidl)
#define MAKE_COMPARE_HRESULT(x)
HRESULT SH32_GetDetailsOfPKeyAsVariant(IShellFolder2 *pSF, PCUITEMID_CHILD pidl, const SHCOLUMNID *pscid, VARIANT *pVar, BOOL UseFsColMap)
HRESULT SHELL32_BindToSF(LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidl, const GUID *clsid, REFIID riid, LPVOID *ppvOut)
#define SHFSF_COL_COMMENT
static HRESULT MakeSCID(SHCOLUMNID &scid, REFCLSID fmtid, UINT pid)
HRESULT SHELL32_GetDisplayNameOfChild(IShellFolder2 *psf, LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet)
HRESULT SHELL32_CompareChildren(IShellFolder2 *psf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
static __inline int SHELL32_GUIDToStringW(REFGUID guid, LPWSTR str)
HRESULT SHELL32_CompareDetails(IShellFolder2 *isf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
HRESULT SH_GetApidlFromDataObject(IDataObject *pDataObject, PIDLIST_ABSOLUTE *ppidlfolder, PUITEMID_CHILD **apidlItems, UINT *pcidl)
void WINAPI _InsertMenuItemW(HMENU hmenu, UINT indexMenu, BOOL fByPosition, UINT wID, UINT fType, LPCWSTR dwTypeData, UINT fState)
#define PID_DESCRIPTIONID
#define SHDID_COMPUTER_NETDRIVE
#define SHDID_COMPUTER_FIXED
#define SHCNE_DRIVEREMOVED
#define SHDID_COMPUTER_REMOVABLE
#define SHCNE_RENAMEFOLDER
#define SHCNE_MEDIAREMOVED
#define SHDID_COMPUTER_CDROM
#define DFM_MAPCOMMANDNAME
#define SHDID_COMPUTER_OTHER
#define SHDID_COMPUTER_DRIVE35
struct _SFV_CREATE SFV_CREATE
#define DFM_CMD_PROPERTIES
#define SHCNF_FLUSHNOWAIT
@ REST_NODRIVETYPEAUTORUN
#define SHDID_COMPUTER_RAMDISK
#define SHDID_ROOT_REGITEM
DWORD WINAPI SHRestricted(RESTRICTIONS rest)
#define IDS_CANTDISMOUNTVOLUME
#define IDI_SHELL_NOT_CONNECTED_HDD
#define IDS_DRIVE_NETWORK
#define IDS_DRIVE_REMOVABLE
#define IDI_SHELL_3_14_FLOPPY
#define IDI_SHELL_NETDRIVE
#define IDS_CANTLOCKVOLUME
#define IDS_SHV_COLUMN_DISK_AVAILABLE
#define IDS_CANTEJECTMEDIA
#define IDI_SHELL_RAMDISK
#define IDS_CANTDISCONNECT
#define IDI_SHELL_REMOVEABLE
#define IDS_SHV_COLUMN_DISK_CAPACITY
#define IDS_SHV_COLUMN_COMMENTS
ITEMID_CHILD UNALIGNED * PUITEMID_CHILD
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
const ITEMIDLIST_RELATIVE UNALIGNED * PCUIDLIST_RELATIVE
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
union tagPIDLDATA::@697 u
struct tagDriveStruct drive
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
#define DRIVE_NO_ROOT_DIR
DWORD WINAPI GetLastError(void)
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define ERROR_PATH_NOT_FOUND
#define HKEY_LOCAL_MACHINE
#define HKEY_CLASSES_ROOT
DWORD WINAPI WNetCancelConnection2W(LPCWSTR lpName, DWORD dwFlags, BOOL fForce)