37 INT maxID = uIDAdjust;
43 for (
INT i = itemCount - 1;
i >= 0; --
i)
53 uIDAdjust, uIDAdjustMax,
55 maxID =
max(maxID, currentMax);
83 UINT idCmdFirst = lpQcmInfo->idCmdFirst;
95 lpQcmInfo->idCmdFirst,
108 lpQcmInfo->idCmdFirst, lpQcmInfo->idCmdLast);
109 idCmdFirst =
max(idCmdFirst,
id);
114 lpQcmInfo->idCmdFirst = idCmdFirst;
129 PCSTR pchEnd = pszLast ? pszLast : &pszSrc[
lstrlenA(pszSrc)];
130 if (pchEnd == pszSrc)
133 INT_PTR cchEnd = pchEnd - pszSrc;
140 if (!
StrCmpNA(pchEnd, pszSearch, cchSearch) && pchEnd ==
StrEndNA(pszSrc, cchEnd))
142 if (pchEnd == pszSrc)
146 return const_cast<PSTR>(pchEnd);
162 if (pchEnd == pszSrc)
165 INT_PTR cchEnd = pchEnd - pszSrc;
172 if (!
StrCmpNW(pchEnd, pszSearch, cchSearch) && pchEnd ==
StrEndNW(pszSrc, cchEnd))
174 if (pchEnd == pszSrc)
178 return const_cast<PWSTR>(pchEnd);
207 ERR(
"StubWindow32 creation failed\n");
230 if (pszPath[0] !=
L'.')
232 return !pszPath[1] || (pszPath[1] ==
L'.' && !pszPath[2]);
235#define PATH_VALID_ELEMENT ( \
236 PATH_CHAR_CLASS_DOT | PATH_CHAR_CLASS_SEMICOLON | PATH_CHAR_CLASS_COMMA | \
237 PATH_CHAR_CLASS_SPACE | PATH_CHAR_CLASS_OTHER_VALID \
284 HRESULT hr = SHILCombine(*ppidl, pidl, ppidl);
309 if (
state.fWebView &&
345 if (!pBindCtx ||
FAILED(pBindCtx->GetObjectParam(
const_cast<LPWSTR>(pszName), &
punk)))
355 BIND_OPTS BindOpts = {
sizeof(BindOpts) };
356 HRESULT hr = pbc->GetBindOptions(&BindOpts);
360 return BindOpts.grfMode;
368 BIND_OPTS BindOps = {
sizeof(BindOps) };
369 if (
SUCCEEDED(pbc->GetBindOptions(&BindOps)) && BindOps.grfFlags == OLECONTF_LINKS)
380 if (!pBindCtx ||
FAILED(pBindCtx->GetObjectParam((
LPWSTR)STR_FILE_SYS_BIND_DATA, &
punk)))
387 pBindData->GetFindData(pFindData);
426 pShellFolder = psfDesktop;
433 hr = pShellFolder->BindToObject(pidl, pBindCtx,
riid, ppvObj);
542 (oldAttrs & SFGAO_STORAGEANCESTOR) &&
545 dwAttributes &= ~(SFGAO_STREAM | SFGAO_STORAGEANCESTOR);
560 hr = pSL->GetIDList(ppidl);
598 *pdwAttributes =
SHGetAttributes(psfFolder, ppidlLast, *pdwAttributes);
633 static const QITAB c_tab[] =
638 return ::QISearch(
this, c_tab,
riid, ppvObj);
694 hr = (*ppbc)->RegisterObjectParam(pszKey,
punk);
772 TRACE(
"(%lu, %p)\n", dwNumber, pszBuffer);
793 TRACE(
"%p\n", hToken);
837 sizeof(PrevPriv), &PrevPriv, &dwReturnSize);
899 for (iPriv = 0; !
ret && iPriv < cPrivs; ++iPriv)
908 if (hToken == hNewToken)
940 TRACE(
"SHGetShellStyleHInstance called\n");
951 strShellStyle +=
L"\\Shell\\";
953 strShellStyle +=
L"\\ShellStyle.dll";
964 ERR(
"Expand failed\n");
987 _In_ INT cchShellExecuteCommand)
989 DWORD dwType, dwCount, cbSize =
sizeof(dwCount);
997 cbSize =
sizeof(FileTime);
1002 *pFileTime = FileTime;
1010 if (pszShellExecuteCommand && dwType ==
REG_SZ &&
1032 _In_ INT cchShellExecuteCommand)
1042 CStringW strKey =
L"Software\\Microsoft\\Windows\\CurrentVersion\\UnreadMail";
1044 strKey += pszMailAddress;
1051 pszShellExecuteCommand, cchShellExecuteCommand);
1055 if (pszShellExecuteCommand || cchShellExecuteCommand)
1060 error =
RegOpenKeyExW(hKeyUser,
L"Software\\Microsoft\\Windows\\CurrentVersion\\UnreadMail",
1083 *pdwCount += dwCount;
1109 CString strKey =
L"Software\\Microsoft\\Windows\\CurrentVersion\\UnreadMail\\";
1110 strKey += pszMailAddress;
1113 DWORD dwDisposition;
1115 &
hKey, &dwDisposition);
1220 L"Software\\Microsoft\\Windows\\CurrentVersion\\UnreadMail",
1248 TRACE(
"%p %p\n", pidlRoot, pidlSavedSearch);
1252 IID_IContextMenu, (
void **)&pCM);
1255 ERR(
"0x%08X\n",
hr);
1259 CMINVOKECOMMANDINFO InvokeInfo = {
sizeof(InvokeInfo) };
1260 InvokeInfo.lpParameters =
"{996E1EB1-B524-11D1-9120-00A0C98BA67D}";
1275 UINT ich = 0, ichValue;
1276#if (WINVER >= _WIN32_WINNT_VISTA)
1277 BOOL bMinus = (llValue < 0);
1288 szBuff[ich++] = (
WCHAR)(
L'0' + (llValue % 10));
1290 }
while (llValue != 0 && ich <
_countof(szBuff) - 1);
1292#if (WINVER >= _WIN32_WINNT_VISTA)
1293 if (bMinus && ich <
_countof(szBuff))
1294 szBuff[ich++] =
'-';
1297 for (ichValue = 0; ich > 0 && ichValue < cchValue; ++ichValue)
1303 if (ichValue >= cchValue)
1351 pDest->lpDecimalSep = pszDecimal;
1357 pDest->lpThousandSep = pszThousand;
1363 pDest->NegativeOrder =
StrToIntW(szBuff);
1384 WCHAR szValue[80], szDecimalSep[6], szThousandSep[6];
1391 szDecimalSep,
_countof(szDecimalSep),
1392 szThousandSep,
_countof(szThousandSep));
1420 return Int64ToString(pLargeInt->QuadPart, pszOut, cchOut, bUseFormat,
1421 pNumberFormat, dwNumberFlags);
1438 DWORD cbBuff, cbRead, dwSizeToWrite;
1445 TRACE(
"(%p, %p, %p, %I64u)\n", pSrc, pDst, pProgress, dwlSize);
1451 if (
FAILED(pSrc->Stat(&
Stat, STATFLAG_NONAME)))
1454 dwlSize =
Stat.cbSize.QuadPart;
1466 return pSrc->CopyTo(pDst, uliSize,
NULL,
NULL);
1470 if (dwlSize > 0 && dwlSize <=
sizeof(abBuff))
1472 cbBuff =
sizeof(abBuff);
1477#define COPY_STREAM_DEFAULT_BUFFER_SIZE 0x4000
1485 cbBuff =
sizeof(abBuff);
1488#undef COPY_STREAM_DEFAULT_BUFFER_SIZE
1497 pProgress->SetProgress64(cbDone, dwlSize);
1502 hr = pSrc->Read(pBuff, cbBuff, &cbRead);
1510 dwSizeToWrite = cbRead;
1512 if (dwSizeToWrite == 0)
1518 hr = pDst->Write(pBuff, dwSizeToWrite,
NULL);
1522 cbDone += dwSizeToWrite;
1524 if (pProgress->HasUserCancelled())
1529 pProgress->SetProgress64(cbDone, dwlSize);
1531 if (dwlSize > 0 && cbDone >= dwlSize)
1587 strRemoteNameW = pszRemoteName;
1588 pszRemoteNameW = strRemoteNameW;
1606 LPWSTR lpszPath = strPath.GetBuffer((
INT)
max(cchPath1, cchPath2) + 16);
1608 strPath.ReleaseBuffer();
1624 LPWSTR lpszPath = strPath.GetBuffer(cchPath);
1629 strPath.ReleaseBuffer();
1634 if (cchPath >= MAXUINT / 2)
1676 strPath = strPath.Left(
nLength - 1);
1699 strPath1 = pszPath1OrCSIDL;
1736 attrs = SFGAO_FILESYSTEM;
1737 hr = psf->GetAttributesOf(1, &pidlSimple, &attrs);
1739 return SHILClone(pidlSimple, ppidlReal);
1743 return SHILClone(pidlSimple, ppidlReal);
1757 hr = pIC->Initialize(pszCommandName, pPB);
1763 _In_ IExecuteCommand *pEC,
1767 _In_opt_ LPCMINVOKECOMMANDINFOEX pICI,
1773 CScopedSetObjectWithSite
site(pEC, pSite);
1778 pOWS->SetSelection(pSIA);
1780 DWORD dwKeyState = 0, fMask = pICI ? pICI->fMask : 0;
1781 pEC->SetNoShowUI((fMask & CMIC_MASK_FLAG_NO_UI) != 0);
1782 pEC->SetShowWindow(pICI ? pICI->nShow :
SW_SHOW);
1783 if (fMask & CMIC_MASK_SHIFT_DOWN)
1785 if (fMask & CMIC_MASK_CONTROL_DOWN)
1787 pEC->SetKeyState(dwKeyState);
1788 if ((fMask & CMIC_MASK_UNICODE) && pICI->lpDirectoryW)
1789 pEC->SetDirectory(pICI->lpDirectoryW);
1790 if ((fMask & CMIC_MASK_UNICODE) && pICI->lpParametersW)
1791 pEC->SetParameters(pICI->lpParametersW);
1792 if (fMask & CMIC_MASK_PTINVOKE)
1793 pEC->SetPosition(pICI->ptInvoke);
1795 return pEC->Execute();
1800 _In_ IExecuteCommand *pEC,
1804 _In_opt_ LPCMINVOKECOMMANDINFOEX pICI,
1842 LPCSTR pVerbA = pICI->lpVerb;
1844 LPCMINVOKECOMMANDINFOEX pICIX = (LPCMINVOKECOMMANDINFOEX)pICI;
1867 if (pMap[
i].CmdId == CmdId)
1877 switch (
uFlags | GCS_UNICODE)
1882 if ((
uFlags | GCS_UNICODE) == GCS_VERBW)
1886 else if (
uFlags & GCS_UNICODE)
1904 return initIcon->QueryInterface(
riid, ppvOut);
1953 struct CUnknown { CUnknownVtbl *lpVtbl; };
1971 if (!
pName || !puSize)
2015 *puSize = cchUserName;
2033#define COMPUTER_DESCRIPTIONS_KEY \
2034 L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComputerDescriptions"
2043 cchDescMax *=
sizeof(
WCHAR);
2094 if (!pszDescription || !*pszDescription)
2123 pszServerName = szCompName;
2213 if (!pidlTarget || !ppidlNew)
2246 *ppidlNew =
ILCombine(pidlDestRoot, pidlRelative);
2250 if (
pEntry->bCommonDesktop && (*ppidlNew)->mkid.cb >= 3)
2252 (*ppidlNew)->mkid.abID[0] |= (
PT_FS | PT_FS_COMMON_FLAG);
2262 return (*ppidlNew !=
NULL);
2302 cchShortMax =
lstrlenW(pszResModule) + 1;
2312 pszResModule = pszShortPath;
2314 cchShort = cchShortMax;
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
EXTERN_C HRESULT WINAPI SHCreateShellItemArrayFromDataObject(_In_ IDataObject *pdo, _In_ REFIID riid, _Out_ void **ppv)
PRTL_UNICODE_STRING_BUFFER Path
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
#define STDMETHODCALLTYPE
#define RegCloseKey(hKey)
int CompareNoCase(_In_z_ PCXSTR psz) const
HWND GetLastActivePopup() const
STDMETHODIMP QueryInterface(REFIID riid, LPVOID *ppvObj) override
STDMETHODIMP GetWindow(HWND *phWnd) override
STDMETHODIMP_(ULONG) Release() override
STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode) override
STDMETHODIMP_(ULONG) AddRef() override
virtual ~CDummyOleWindow()
bool AllocateBytes(_In_ size_t nBytes)
HRESULT CreateStub(UINT Type, LPCWSTR Path, const POINT *pPt)
static LPCWSTR GetTypePropName()
static HWND FindStubWindow(UINT Type, LPCWSTR Path)
virtual ULONG Release(__in_opt PVOID Tag=NULL, __in LONG Line=0, __in_opt PSTR File=NULL)
BOOL WINAPI InitCommonControlsEx(const INITCOMMONCONTROLSEX *lpInitCtrls)
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
#define ERROR_INSUFFICIENT_BUFFER
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegEnumKeyW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, DWORD cbName)
BOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName, LPCWSTR lpPrivilegeName, PLUID lpLuid)
BOOL WINAPI GetUserNameW(LPWSTR lpszName, LPDWORD lpSize)
BOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
BOOL WINAPI OpenThreadToken(HANDLE ThreadHandle, DWORD DesiredAccess, BOOL OpenAsSelf, HANDLE *TokenHandle)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(void *reserved, DWORD model)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
INT WINAPI StrToIntW(LPCWSTR lpString)
INT WINAPI StrCmpNW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
INT WINAPI StrCmpNA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen)
#define ERROR_INVALID_PARAMETER
#define GetCurrentProcess()
#define ERROR_NO_MORE_ITEMS
#define HeapFree(x, y, z)
static DWORD DWORD * dwLength
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
BOOL WINAPI IsBadReadPtr(IN LPCVOID lp, IN UINT_PTR ucb)
BOOL NTAPI IsBadCodePtr(FARPROC lpfn)
BOOL WINAPI CreateDirectoryW(IN LPCWSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
DWORD WINAPI GetShortPathNameW(IN LPCWSTR lpszLongPath, OUT LPWSTR lpszShortPath, IN DWORD cchBuffer)
VOID WINAPI GetSystemTimeAsFileTime(OUT PFILETIME lpFileTime)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
#define IS_INTRESOURCE(x)
int WINAPI PathCommonPrefixW(const WCHAR *file1, const WCHAR *file2, WCHAR *path)
void WINAPI PathRemoveExtensionW(WCHAR *path)
BOOL WINAPI PathRemoveFileSpecW(WCHAR *path)
BOOL WINAPI PathUnExpandEnvStringsW(const WCHAR *path, WCHAR *buffer, UINT buf_len)
BOOL WINAPI PathIsValidCharW(WCHAR c, DWORD class)
BOOL WINAPI SHRegGetBoolUSValueW(const WCHAR *subkey, const WCHAR *value, BOOL ignore_hkcu, BOOL default_value)
LPSTR WINAPI CharNextA(const char *ptr)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
_ACRTIMP int __cdecl _wcsnicmp(const wchar_t *, const wchar_t *, size_t)
NET_API_STATUS WINAPI NetApiBufferFree(LPVOID Buffer)
NET_API_STATUS WINAPI NetServerGetInfo(LMSTR servername, DWORD level, LPBYTE *bufptr)
NET_API_STATUS WINAPI NetUserGetInfo(LPCWSTR servername, LPCWSTR username, DWORD level, LPBYTE *bufptr)
static const WCHAR IconIndex[]
#define CSTUBWINDOW32_CLASSNAME
EXTERN_C WORD WINAPI ExtractIconResInfoW(_In_ HANDLE hHandle, _In_ LPCWSTR lpFileName, _In_ WORD wIndex, _Out_ LPWORD lpSize, _Out_ LPHANDLE lpIcon)
EXTERN_C HRESULT WINAPI SHSetFolderPathW(_In_ INT csidl, _In_ HANDLE hToken, _In_ DWORD dwFlags, _In_ LPCWSTR pszPath)
EXTERN_C HRESULT WINAPI SHStartNetConnectionDialogW(_In_ HWND hwnd, _In_ LPCWSTR pszRemoteName, _In_ DWORD dwType)
EXTERN_C BOOL WINAPI PathIsSlowW(_In_ LPCWSTR pszFile, _In_ DWORD dwAttr)
HRESULT SHELL_DisplayNameOf(_In_opt_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_opt_ UINT Flags, _Out_ PWSTR *ppStr)
static DWORD SHELL_ReadSingleUnreadMailCount(_In_ HKEY hKey, _Out_opt_ PDWORD pdwCount, _Out_opt_ PFILETIME pFileTime, _Out_writes_opt_(cchShellExecuteCommand) LPWSTR pszShellExecuteCommand, _In_ INT cchShellExecuteCommand)
BOOL WINAPI IsSuspendAllowed(VOID)
HRESULT SHELL_CreateShell32DefaultExtractIcon(int IconIndex, REFIID riid, LPVOID *ppvOut)
EXTERN_C HRESULT WINAPI SHGetPathCchFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath, SIZE_T cchPathMax)
EXTERN_C HRESULT WINAPI SHGetComputerDisplayNameW(_In_opt_ PWSTR pszServerName, _In_ DWORD dwFlags, _Out_writes_z_(cchNameMax) PWSTR pszName, _In_ DWORD cchNameMax)
EXTERN_C HRESULT WINAPI SHEnumerateUnreadMailAccountsW(_In_opt_ HKEY hKeyUser, _In_ DWORD dwIndex, _Out_writes_(cchMailAddress) PWSTR pszMailAddress, _In_ INT cchMailAddress)
static const CMVERBMAP * FindVerbMapEntry(UINT_PTR CmdId, const CMVERBMAP *pMap)
#define PATH_VALID_ELEMENT
EXTERN_C HRESULT WINAPI SHGetUnreadMailCountW(_In_opt_ HKEY hKeyUser, _In_opt_ PCWSTR pszMailAddress, _Out_opt_ PDWORD pdwCount, _Inout_opt_ PFILETIME pFileTime, _Out_writes_opt_(cchShellExecuteCommand) PWSTR pszShellExecuteCommand, _In_ INT cchShellExecuteCommand)
DWORD SHGetAttributes(_In_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ DWORD dwAttributes)
static HRESULT SHELL_GetComputerDescription(_Out_writes_z_(cchDescMax) PWSTR pszDesc, _In_ SIZE_T cchDescMax, _In_ PWSTR pszServerName)
static VOID DynamicPathRemoveBackslashW(_Out_ CStringW &strPath)
EXTERN_C BOOL SHELL32_ReparentAsAliasPidl(_In_opt_ HWND hwnd, _In_opt_ HANDLE hToken, _In_ LPCITEMIDLIST pidlTarget, _Out_ LPITEMIDLIST *ppidlNew, _In_ DWORD dwFlags)
Translate a PIDL to an "alias" PIDL.
EXTERN_C WORD WINAPI ExtractIconResInfoA(_In_ HANDLE hHandle, _In_ LPCSTR lpFileName, _In_ WORD wIndex, _Out_ LPWORD lpSize, _Out_ LPHANDLE lpIcon)
EXTERN_C PSTR WINAPI StrRStrA(_In_ PCSTR pszSrc, _In_opt_ PCSTR pszLast, _In_ PCSTR pszSearch)
HRESULT SHGetNameAndFlagsW(_In_ LPCITEMIDLIST pidl, _In_ DWORD dwFlags, _Out_opt_ LPWSTR pszText, _In_ UINT cchBuf, _Inout_opt_ DWORD *pdwAttributes)
HRESULT SHILClone(_In_opt_ LPCITEMIDLIST pidl, _Outptr_ LPITEMIDLIST *ppidl)
static const ALIAS_MAPPING g_AliasTable[]
PIDL alias table.
static HRESULT GetCommandStringA(_In_ IContextMenu *pCM, _In_ UINT_PTR Id, _In_ UINT GCS, _Out_writes_(cchMax) LPSTR Buf, _In_ UINT cchMax)
EXTERN_C BOOL WINAPI PathIsEqualOrSubFolder(_In_ LPCWSTR pszPath1OrCSIDL, _In_ LPCWSTR pszPath2)
EXTERN_C HRESULT WINAPI SHGetRealIDL(_In_ IShellFolder *psf, _In_ PCUITEMID_CHILD pidlSimple, _Outptr_ PITEMID_CHILD *ppidlReal)
EXTERN_C DWORD WINAPI SHGetUserSessionId(_In_opt_ HANDLE hToken)
#define COPY_STREAM_DEFAULT_BUFFER_SIZE
static VOID Int64GetNumFormat(_Out_ NUMBERFMTW *pDest, _In_opt_ const NUMBERFMTW *pSrc, _In_ DWORD dwNumberFlags, _Out_writes_(cchDecimal) LPWSTR pszDecimal, _In_ INT cchDecimal, _Out_writes_(cchThousand) LPWSTR pszThousand, _In_ INT cchThousand)
static INT _SHMergePopupMenus(HMENU hMenu, HMENU hPopupMenu, UINT uIDAdjust, UINT uIDAdjustMax)
EXTERN_C BOOL WINAPI SHTestTokenPrivilegeW(_In_opt_ HANDLE hToken, _In_ LPCWSTR lpName)
DWORD BindCtx_GetMode(_In_ IBindCtx *pbc, _In_ DWORD dwDefault)
static HRESULT SHELL_BuildDisplayMachineName(_Out_writes_z_(cchNameMax) PWSTR pszName, _In_ DWORD cchNameMax, _In_ PCWSTR pszServerName, _In_ PCWSTR pszDescription)
static VOID SHELL_CacheComputerDescription(_In_ PCWSTR pszServerName, _In_ PCWSTR pszDesc)
EXTERN_C HRESULT WINAPI SHInvokePrivilegedFunctionW(_In_ LPCWSTR pszName, _In_ PRIVILEGED_FUNCTION fn, _In_opt_ LPARAM lParam)
BOOL BindCtx_ContainsObject(_In_ IBindCtx *pBindCtx, _In_ LPCWSTR pszName)
HRESULT SHIsFileSysBindCtx(_In_ IBindCtx *pBindCtx, _Out_opt_ WIN32_FIND_DATAW *pFindData)
BOOL PathIsValidElement(_In_ LPCWSTR pszPath)
EXTERN_C HRESULT InvokeIExecuteCommand(_In_ IExecuteCommand *pEC, _In_ PCWSTR pszCommandName, _In_opt_ IPropertyBag *pPB, _In_opt_ IShellItemArray *pSIA, _In_opt_ LPCMINVOKECOMMANDINFOEX pICI, _In_opt_ IUnknown *pSite)
EXTERN_C LPWSTR WINAPI ShortSizeFormatW(_In_ DWORD dwNumber, _Out_writes_(0x8FFF) LPWSTR pszBuffer)
static PCSTR StrEndNA(_In_ PCSTR psz, _In_ INT_PTR cch)
EXTERN_C LPSTR WINAPI SheRemoveQuotesA(LPSTR psz)
BOOL Shell_FailForceReturn(_In_ HRESULT hr)
EXTERN_C HRESULT SHBindToObject(_In_opt_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ REFIID riid, _Out_ void **ppvObj)
void DCIA_AddShellExSubkey(HDCIA hDCIA, HKEY hProgId, PCWSTR pszSubkey)
static PCWSTR StrEndNW(_In_ PCWSTR psz, _In_ INT_PTR cch)
static INT DynamicPathCommonPrefixW(_In_ LPCWSTR lpszPath1, _In_ LPCWSTR lpszPath2, _Out_ CStringW &strPath)
EXTERN_C HRESULT IUnknown_InitializeCommand(_In_ IUnknown *pUnk, _In_ PCWSTR pszCommandName, _In_opt_ IPropertyBag *pPB)
static HRESULT DynamicSHGetPathFromIDListW(_In_ LPCITEMIDLIST pidl, _Out_ CStringW &strPath)
EXTERN_C INT WINAPI Int64ToString(_In_ LONGLONG llValue, _Out_writes_(cchOut) LPWSTR pszOut, _In_ UINT cchOut, _In_ BOOL bUseFormat, _In_opt_ const NUMBERFMTW *pNumberFormat, _In_ DWORD dwNumberFlags)
EXTERN_C BOOL WINAPI Activate_RunDLL(_In_ HWND hwnd, _In_ HINSTANCE hinst, _In_ LPCWSTR cmdline, _In_ INT cmdshow)
EXTERN_C BOOL WINAPI PathIsSlowA(_In_ LPCSTR pszFile, _In_ DWORD dwAttr)
UINT GetDfmCmd(_In_ IContextMenu *pCM, _In_ LPCSTR verba)
HRESULT SHELL_GetCommandStringImpl(SIZE_T CmdId, UINT uFlags, LPSTR Buf, UINT cchBuf, const CMVERBMAP *pMap)
EXTERN_C HRESULT WINAPI DisplayNameOfW(_In_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ DWORD dwFlags, _Out_ LPWSTR pszBuf, _In_ UINT cchBuf)
EXTERN_C HRESULT WINAPI SHSetUnreadMailCountW(_In_ PCWSTR pszMailAddress, _In_ DWORD dwCount, _In_ PCWSTR pszShellExecuteCommand)
EXTERN_C INT WINAPI LargeIntegerToString(_In_ const LARGE_INTEGER *pLargeInt, _Out_writes_(cchOut) LPWSTR pszOut, _In_ UINT cchOut, _In_ BOOL bUseFormat, _In_opt_ const NUMBERFMTW *pNumberFormat, _In_ DWORD dwNumberFlags)
EXTERN_C VOID WINAPI CDefFolderMenu_MergeMenu(_In_ HINSTANCE hInstance, _In_ UINT uMainMerge, _In_ UINT uPopupMerge, _Inout_ LPQCMINFO lpQcmInfo)
EXTERN_C HINSTANCE WINAPI SHGetShellStyleHInstance(VOID)
EXTERN_C HRESULT SHELL_GetUIObjectOfAbsoluteItem(_In_opt_ HWND hWnd, _In_ PCIDLIST_ABSOLUTE pidl, _In_ REFIID riid, _Out_ void **ppvObj)
EXTERN_C PWSTR WINAPI StrRStrW(_In_ PCWSTR pszSrc, _In_opt_ PCWSTR pszLast, _In_ PCWSTR pszSearch)
static HRESULT SHELL_GetCachedComputerDescription(_Out_writes_z_(cchDescMax) PWSTR pszDesc, _In_ DWORD cchDescMax, _In_ PCWSTR pszServerName)
EXTERN_C HRESULT BindCtx_RegisterObjectParam(_In_ IBindCtx *pBindCtx, _In_ LPOLESTR pszKey, _In_opt_ IUnknown *punk, _Out_ LPBC *ppbc)
EXTERN_C HRESULT WINAPI CopyStreamUI(_In_ IStream *pSrc, _Out_ IStream *pDst, _Inout_opt_ IProgressDialog *pProgress, _In_opt_ DWORDLONG dwlSize)
EXTERN_C HRESULT WINAPI SHGetUserDisplayName(_Out_writes_to_(*puSize, *puSize) PWSTR pName, _Inout_ PULONG puSize)
#define COMPUTER_DESCRIPTIONS_KEY
static BOOL OpenEffectiveToken(_In_ DWORD DesiredAccess, _Out_ HANDLE *phToken)
EXTERN_C BOOL WINAPI SHFindComputer(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch)
static HRESULT Int64ToStr(_In_ LONGLONG llValue, _Out_writes_(cchValue) LPWSTR pszValue, _In_ UINT cchValue)
int DCIA_AddEntry(HDCIA hDCIA, REFCLSID rClsId)
EXTERN_C HRESULT WINAPI SHSetLocalizedName(_In_ PCWSTR pszPath, _In_ PCWSTR pszResModule, _In_ INT idsRes)
HRESULT SHELL_MapContextMenuVerbToCmdId(LPCMINVOKECOMMANDINFO pICI, const CMVERBMAP *pMap)
EXTERN_C LPWSTR WINAPI SheRemoveQuotesW(LPWSTR psz)
EXTERN_C BOOL WINAPI SHIsBadInterfacePtr(_In_ LPCVOID pv, _In_ UINT_PTR ucb)
EXTERN_C HRESULT WINAPI SHCreatePropertyBag(_In_ REFIID riid, _Out_ void **ppvObj)
struct tagALIAS_MAPPING * PALIAS_MAPPING
EXTERN_C HRESULT InvokeIExecuteCommandWithDataObject(_In_ IExecuteCommand *pEC, _In_ PCWSTR pszCommandName, _In_opt_ IPropertyBag *pPB, _In_ IDataObject *pDO, _In_opt_ LPCMINVOKECOMMANDINFOEX pICI, _In_opt_ IUnknown *pSite)
EXTERN_C HWND BindCtx_GetUIWindow(_In_ IBindCtx *pBindCtx)
static HMENU SHLoadPopupMenu(HINSTANCE hInstance, UINT uMenuId)
HRESULT SHBindToObjectEx(_In_opt_ IShellFolder *pShellFolder, _In_ LPCITEMIDLIST pidl, _In_opt_ IBindCtx *pBindCtx, _In_ REFIID riid, _Out_ void **ppvObj)
EXTERN_C HRESULT WINAPI SHSetFolderPathA(_In_ INT csidl, _In_ HANDLE hToken, _In_ DWORD dwFlags, _In_ LPCSTR pszPath)
BOOL IsShutdownAllowed(VOID)
BOOL SHSkipJunctionBinding(_In_ IBindCtx *pbc, _In_ CLSID *pclsid)
HRESULT SHELL_GetIDListTarget(_In_ LPCITEMIDLIST pidl, _Out_ PIDLIST_ABSOLUTE *ppidl)
BOOL PathIsDotOrDotDotW(_In_ LPCWSTR pszPath)
static PCWSTR SHELL_SkipServerSlashes(_In_ PCWSTR pszPath)
EXTERN_C HRESULT WINAPI SHStartNetConnectionDialogA(_In_ HWND hwnd, _In_ LPCSTR pszRemoteName, _In_ DWORD dwType)
HRESULT SHILAppend(_Inout_ LPITEMIDLIST pidl, _Inout_ LPITEMIDLIST *ppidl)
struct tagALIAS_MAPPING ALIAS_MAPPING
EXTERN_C BOOL WINAPI LinkWindow_UnregisterClass(_In_ DWORD dwUnused)
EXTERN_C HRESULT WINAPI SHShouldShowWizards(_In_ IUnknown *pUnknown)
EXTERN_C BOOL WINAPI SHOpenEffectiveToken(_Out_ LPHANDLE phToken)
static HRESULT DynamicSHGetSpecialFolderPathW(_In_ HWND hwndOwner, _Out_ CStringW &strPath, _In_ INT nCSIDL, _In_ BOOL bCreate)
EXTERN_C HRESULT SHELL32_AliasTranslatePidl(_In_ LPCITEMIDLIST pidl, _Out_ LPITEMIDLIST *ppidlNew, _In_ DWORD dwFlags)
Translate a PIDL to an "alias" PIDL.
HRESULT SHCoInitializeAnyApartment(VOID)
BOOL PathIsDosDevice(_In_ LPCWSTR pszName)
#define DCIA_GetEntry(hDCIA, iItem)
void WINAPI SHFree(LPVOID pv)
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
HRESULT WINAPI SHGetFolderLocation(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPITEMIDLIST *ppidl)
HMENU WINAPI SHGetMenuFromID(HMENU hMenu, UINT uID)
DWORD WINAPI SHGetObjectCompatFlags(IUnknown *pUnk, const CLSID *clsid)
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd)
BOOL WINAPI SHSkipJunction(IBindCtx *pbc, const CLSID *pclsid)
DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
DWORD WINAPI SHQueryValueExW(HKEY hKey, LPCWSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
DWORD WINAPI SHSetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, DWORD dwType, LPCVOID pvData, DWORD cbData)
DWORD WINAPI SHAnsiToUnicode(LPCSTR lpSrcStr, LPWSTR lpDstStr, int iLen)
INT WINAPI SHUnicodeToAnsi(LPCWSTR lpSrcStr, LPSTR lpDstStr, INT iLen)
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
HRESULT WINAPI StrRetToStrW(LPSTRRET lpStrRet, const ITEMIDLIST *pidl, LPWSTR *ppszName)
#define FAILED_UNEXPECTEDLY
#define IShellFolder_ParseDisplayName
#define IShellFolder_GetDisplayNameOf
int WINAPIV wnsprintfW(LPWSTR lpOut, int cchLimitIn, LPCWSTR lpFmt,...)
HRESULT WINAPI GetCurrentThemeName(LPWSTR pszThemeFileName, int dwMaxNameChars, LPWSTR pszColorBuff, int cchMaxColorChars, LPWSTR pszSizeBuff, int cchMaxSizeChars)
static const WCHAR szColorName[]
static const WCHAR Cleanup[]
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
WCHAR swShell32Name[MAX_PATH]
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
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
HRESULT GetUIObjectOf([in] HWND hwndOwner, [in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in] REFIID riid, [in, out, unique] UINT *prgfInOut, [out, iid_is(riid)] void **ppvOut)
HRESULT ParseDisplayName([in] HWND hwndOwner, [in] LPBC pbcReserved, [in, string] LPOLESTR lpszDisplayName, [out] ULONG *pchEaten, [out] PIDLIST_RELATIVE *ppidl, [in, out, unique] ULONG *pdwAttributes)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
nsresult QueryInterface(nsIIDRef riid, void **result)
unsigned long long DWORDLONG
int WINAPI lstrlenA(LPCSTR lpString)
void WINAPI CoTaskMemFree(void *ptr)
#define ERROR_ALREADY_EXISTS
#define ERROR_FILE_NOT_FOUND
#define comment(fmt, arg1)
static HRESULT QueryInterface(REFIID, void **)
static IActiveScriptSite * site
static ULONG WINAPI AddRef(IStream *iface)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
unsigned __int3264 UINT_PTR
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define _Out_writes_z_(s)
#define _Out_writes_opt_(s)
#define _Out_writes_to_(s, c)
#define KEY_ENUMERATE_SUB_KEYS
#define LOCALE_USER_DEFAULT
#define UNREFERENCED_PARAMETER(P)
@ COINIT_APARTMENTTHREADED
interface IBindCtx * LPBC
HRESULT WINAPI CreateBindCtx(DWORD reserved, IBindCtx **bind_context)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
PUIDLIST_RELATIVE WINAPI ILFindChild(PIDLIST_ABSOLUTE pidl1, PCIDLIST_ABSOLUTE pidl2)
BOOLEAN WINAPI IsPwrSuspendAllowed(VOID)
static const WCHAR szName[]
EXTERN_C HRESULT WINAPI SHCreatePropertyBagOnMemory(_In_ DWORD dwMode, _In_ REFIID riid, _Out_ void **ppvObj)
#define DSA_AppendItem(hdsa, pitem)
#define IsEqualGUID(rguid1, rguid2)
#define QITABENT(Cthis, Ifoo)
_In_opt_ LPCSTR _In_opt_ LPCSTR pszValue
#define ALIAS_USER_FOLDER
BOOL WINAPI LinkWindow_RegisterClass(void)
VOID WINAPI SHGetSetSettings(LPSHELLSTATE lpss, DWORD dwMask, BOOL bSet)
#define CSIDL_COMMON_DESKTOPDIRECTORY
_In_ int _In_ BOOL bCreate
#define CSIDL_DESKTOPDIRECTORY
#define CSIDL_FLAG_NO_ALIAS
#define CSIDL_FLAG_DONT_VERIFY
#define MM_SUBMENUSHAVEIDS
#define MM_DONTREMOVESEPS
@ REST_ALLOWCOMMENTTOGGLE
#define CSIDL_COMMON_DOCUMENTS
DWORD WINAPI SHRestricted(RESTRICTIONS rest)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
BOOLEAN WINAPI GetUserNameExW(EXTENDED_NAME_FORMAT NameFormat, LPWSTR lpNameBuffer, PULONG nSize)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszSrc)
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]
static unsigned int bufptr
#define SHGCDN_NOSERVERNAME
#define FMT_USE_NUMDIGITS
#define FMT_USE_NEGNUMBER
HRESULT(CALLBACK * PRIVILEGED_FUNCTION)(LPARAM lParam)
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
static GLenum _GLUfuncptr fn
HRESULT SHELL_GetShellExtensionRegCLSID(HKEY hKey, LPCWSTR KeyName, CLSID *pClsId)
VOID WINAPI SwitchToThisWindow(HWND hwnd, BOOL fAltTab)
BOOL WINAPI AllowSetForegroundWindow(DWORD dwProcessId)
_In_opt_ LPSTR _In_opt_ LPSTR _In_ DWORD _In_ DWORD _Out_opt_ PHANDLE phToken
DWORD WINAPI GetLastError(void)
#define FORMAT_MESSAGE_FROM_STRING
HANDLE WINAPI GetCurrentThread(void)
#define LOAD_LIBRARY_AS_DATAFILE
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
#define INVALID_FILE_SIZE
#define FORMAT_MESSAGE_ARGUMENT_ARRAY
_In_ PSID _Out_writes_to_opt_ cchName LPSTR _Inout_ LPDWORD cchName
#define MAX_COMPUTERNAME_LENGTH
WINBASEAPI _In_ DWORD nLength
#define ERROR_BAD_NETPATH
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define ERROR_CLASS_ALREADY_EXISTS
#define E_NOT_SUFFICIENT_BUFFER
#define ERROR_PATH_NOT_FOUND
#define ERROR_BAD_NET_NAME
#define ERROR_NONE_MAPPED
#define LOCALE_INEGNUMBER
#define HKEY_CURRENT_USER
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
BOOL WINAPI GetClassInfoExW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _Out_ LPWNDCLASSEXW)
HWND WINAPI FindWindowExW(_In_opt_ HWND, _In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
BOOL WINAPI RemoveMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
BOOL WINAPI SetPropW(_In_ HWND, _In_ LPCWSTR, _In_opt_ HANDLE)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)
BOOL WINAPI DestroyMenu(_In_ HMENU)
BOOL WINAPI GetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOW)
#define MAKEINTRESOURCEW(i)
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
_Must_inspect_result_ _In_ ULONG Flags
#define RtlEqualLuid(Luid1, Luid2)
#define TOKEN_ADJUST_PRIVILEGES
struct _TOKEN_PRIVILEGES * PTOKEN_PRIVILEGES
#define SE_PRIVILEGE_ENABLED
#define IID_PPV_ARG(Itype, ppType)