25#define WIN32_NO_STATUS
31#include <wine/winternl.h>
36#include <commoncontrols.h>
37#include "../shellrecyclebin/recyclebin.h"
40#include <wine/unicode.h>
64#define MRUF_STRING_LIST 0
65#define MRUF_BINARY_LIST 1
66#define MRUF_DELAYED_SAVE 2
97 if (*(
src++)==
',') nField--;
127 if (*
src++ ==
',') nField--;
164 GetOpenFileNameProc pGetOpenFileNameW;
168 TRACE(
"%p, %s, %d, %s, %s, %s, %s)\n",
169 hwndOwner,
debugstr_w(lpstrFile), nMaxFile, lpstrInitialDir, lpstrDefExt,
170 lpstrFilter, lpstrTitle);
175 if(!pGetOpenFileNameW)
192 ret = pGetOpenFileNameW(&
ofn);
205 FIXME(
"%p 0x%08x TRUE\n", lpss, dwMask);
227 TRACE(
"(%p 0x%08x)\n",lpsfs,dwMask);
295 FIXME(
"%p %08x %08lx stub\n",hwndCabinet, uMessage,
lParam);
320 else if (dwType == 0)
325 ERR(
"Unsupported argument");
373 TRACE(
"(%p,%p,%p,%p,%08x)\n",
379 pszTitle = lpCaption;
449 pszTitle = lpCaption;
469 WARN(
"Failed to load id %d\n",
LOWORD(lpText));
478 pszText, 0, 0, (
LPSTR)&pszTemp, 0, &
args);
500 TRACE(
"(%p,%p,%p,%p,%08x)\n",
506 pszTitle = lpCaption;
514 pszText, 0, 0, (
LPSTR)&pszTemp, 0, &
args);
542 LPDROPTARGET pDropTarget)
549 if (!ole_initialized)
554 ole_initialized =
TRUE;
597 LPDROPSOURCE lpDropSource,
601 FIXME(
"(%p %p %p 0x%08x %p):stub.\n",
602 hWnd, lpDataObject, lpDropSource, dwOKEffect, pdwEffect);
603 return DoDragDrop(lpDataObject, lpDropSource, dwOKEffect, pdwEffect);
614 TRACE(
"(%p 0x%08x %p 0x%04x %p):stub.\n",
628 FIXME(
"(%p):stub.\n", pidl);
654 "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
658 "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
660 TRACE(
"No Explorer Policies location exists. Policy wanted=%s\n",
713 cb = (cchTargetTitle + 1 + cchTargetPath + 1 + cchLinkTitle + 2) *
sizeof(
WCHAR);
719 cb = (cchTargetTitle + 1) *
sizeof(
WCHAR);
720 if (ib +
cb > *pcbBuffer)
725 cb = (cchTargetPath + 1) *
sizeof(
WCHAR);
726 if (ib +
cb > *pcbBuffer)
731 cb = (cchLinkTitle + 1) *
sizeof(
WCHAR);
732 if (ib +
cb > *pcbBuffer)
775 wlen=
lstrlenA(new_lnk_name) + 1 + 12;
776 *((
short int*)
ptr) = wlen;
820 LPWSTR pchDotExt, pchTargetTitle, pchLinkTitle;
834 ERR(
"Error %d getting policy \"NoRecentDocsHistory\"\n",
ret);
840 ERR(
"Error policy data for \"NoRecentDocsHistory\" not formatted correctly, type=%d, len=%d\n",
845 TRACE(
"policy value for NoRecentDocsHistory = %08x\n",
data[0]);
880 ERR(
"serious issues 1\n");
883 TRACE(
"Users Recent dir %S\n", szLinkDir);
891 ERR(
"Failed to RegCreateKeyExW: 0x%08X\n",
error);
897 TRACE(
"pv is NULL, so delete all shortcut files in %S\n", szLinkDir);
930 ERR(
"CoInitialize: %08X\n",
hr);
943 ERR(
"IShellLink_ConstructFromPath: 0x%08X\n",
hr);
948 IShellLinkW_Release(psl);
981 cbBuffer =
sizeof(
Buffer);
982 ret = DoStoreMRUData(
Buffer, &cbBuffer, pchTargetTitle, szTargetPath, pchLinkTitle);
985 ERR(
"DoStoreMRUData failed: %d\n",
ret);
993 mru.
hKey = hExplorerKey;
999 ERR(
"CreateMRUListW failed\n");
1013 TRACE(
"Just touch file '%S'.\n", szLinkFile);
1023 ERR(
"AddMRUData failed: %d\n",
ret);
1030 &IID_IShellLinkW, (
LPVOID *)&psl);
1033 ERR(
"CoInitialize for IID_IShellLinkW: %08X\n",
hr);
1040 ERR(
"IShellLinkW_QueryInterface: %08X\n",
hr);
1045 hr = IShellLinkW_SetIDList(psl, pv);
1047 hr = IShellLinkW_SetPath(psl, pv);
1051 hr = IPersistFile_Save(pPf, szLinkFile,
TRUE);
1054 ERR(
"IPersistFile_Save: 0x%08X\n",
hr);
1057 hr = IPersistFile_SaveCompleted(pPf, szLinkFile);
1060 ERR(
"IPersistFile_SaveCompleted: 0x%08X\n",
hr);
1067 IPersistFile_Release(pPf);
1069 IShellLinkW_Release(psl);
1112 ERR(
"Error %d getting policy \"NoRecentDocsHistory\"\n",
ret);
1118 ERR(
"Error policy data for \"NoRecentDocsHistory\" not formatted correctly, type=%d, len=%d\n",
1123 TRACE(
"policy value for NoRecentDocsHistory = %08x\n",
data[0]);
1136 "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer",
1137 0, 0, 0,
KEY_READ, 0, &HCUbasekey, 0)) {
1138 ERR(
"Failed to create 'Software\\Microsoft\\Windows\\CurrentVersion\\Explorer'\n");
1148 IMalloc_Free(
ppM, pidl);
1153 ERR(
"serious issues 1\n");
1155 IMalloc_Release(
ppM);
1160 ERR(
"serious issues 2\n");
1162 TRACE(
"Users Recent dir %s\n", link_dir);
1177 FIXME(
"should delete all files in %s\\\n", link_dir);
1207 WARN(
"can't get path from PIDL\n");
1255 mymru.
hKey = HCUbasekey;
1261 ERR(
"MRU processing failed, handle zero\n");
1275 slen = *((
short int*)
ptr);
1288 ERR(
"Delete for %s failed, err=%d, attr=%08x\n",
1292 TRACE(
"old .lnk file %s did not exist\n",
1297 ERR(
"Delete for %s failed, attr=%08x\n",
1298 old_lnk_name,
attr);
1302 TRACE(
"deleted old .lnk file %s\n", old_lnk_name);
1310 wsprintfA(new_lnk_name,
"%s.lnk", doc_name);
1311 lstrcpyA(new_lnk_filepath, link_dir);
1317 wsprintfA(new_lnk_name,
"%s (%u).lnk", doc_name,
i);
1318 lstrcpyA(new_lnk_filepath, link_dir);
1322 TRACE(
"new shortcut will be %s\n", new_lnk_filepath);
1329 TRACE(
"Updated MRU list, new doc is position %d\n",
pos);
1351 CLSCTX_INPROC_SERVER,
1360 ERR(
"failed QueryInterface for IPersistFile %08x\n",
hres);
1366 hres = IShellLinkA_SetIDList(psl, pv);
1368 hres = IShellLinkA_SetPath(psl, pv);
1372 ERR(
"failed Set{IDList|Path} %08x\n",
hres);
1378 hres = IShellLinkA_SetDescription(psl,
desc);
1381 ERR(
"failed SetDescription %08x\n",
hres);
1388 hres = IPersistFile_Save(pPf, widelink,
TRUE);
1391 ERR(
"failed IPersistFile::Save %08x\n",
hres);
1392 IPersistFile_Release(pPf);
1393 IShellLinkA_Release(psl);
1396 hres = IPersistFile_SaveCompleted(pPf, widelink);
1397 IPersistFile_Release(pPf);
1398 IShellLinkA_Release(psl);
1399 TRACE(
"shortcut %s has been created, result=%08x\n",
1400 new_lnk_filepath,
hres);
1403 ERR(
"CoCreateInstance failed, hres=%08x\n",
hres);
1437 TRACE(
"sf=%p pidl=%p cb=%p mode=0x%08x parm=%p\n",
1442 hRes = IShellView_Constructor(psvcbi->
pshf, &psf);
1447 hRes = IShellView_QueryInterface(psf, &IID_IShellView, (
LPVOID *)
ppv);
1448 IShellView_Release(psf);
1491 wcscat(parameters, commandLine);
1508{
TRACE(
"%p\n", lpUnknown);
1518{
TRACE(
"%p\n", lpUnknown);
1601 FIXME(
"%p %p stub\n",himlTrack, lppt);
1612 FIXME(
"0x%08x stub\n",bShow);
1644 TRACE(
"Initializing shell cabinet settings\n");
1646 cs->cLength =
sizeof(*cs);
1649 cs->fSaveLocalView =
TRUE;
1651 cs->fSimpleDefault =
TRUE;
1656 cs->fAdminsCreateCommonGroups =
TRUE;
1657 cs->fMenuEnumFilter = 96;
1703{
FIXME(
"hwnd=%p 0x%04x stub\n",
u,
v );
1746 TRACE(
"0x%08x stub\n",
u);
1766 FIXME(
"%p %s 0x%08x stub\n",hwndOwner, lpCaption, uType);
1807 FIXME(
"(%p, %s, 0x%08x): stub\n", hwndOwner,
debugstr_w(pszFile), fConnect);
1829 if (
len &&
len < cchString)
1873 if (
len &&
len <= cchString)
1903 TRACE(
"GUIDFromStringA() stub\n");
1979 TRACE(
"(%p,%p,%08lx)\n", hpsxa, lpfnAddPage,
lParam);
2013 WCHAR szHandler[64];
2015 WCHAR szClsidHandler[39];
2022 HKEY hkBase, hkPropSheetHandlers;
2050 dwHandlerLen =
sizeof(szHandler) /
sizeof(szHandler[0]);
2065 dwClsidSize =
sizeof(szClsidHandler);
2069 szClsidHandler[(
sizeof(szClsidHandler) /
sizeof(szClsidHandler[0])) - 1] = 0;
2091 pspsx->lpVtbl->
Release(pspsx);
2095 pspsx->lpVtbl->
Release(pspsx);
2125 TRACE(
"(%p,%u,%p,%08lx)\n", hpsxa, uPageID, lpfnReplaceWith,
lParam);
2155 TRACE(
"(%p)\n", hpsxa);
2183 TRACE(
"(%p, %d, %p, %p)\n", pidlFolder, cpidlFiles, lppidlFiles, ppdataObject);
2187 for (
i=0;
i<cpidlFiles;
i++)
pdump (lppidlFiles[
i]);
2201 const FORMATETC *lpFormats,
2206 TRACE(
"cf=%d fe=%p pef=%p\n", cFormats, lpFormats, ppenumFormatetc);
2212 IEnumFORMATETC_AddRef(pef);
2214 IEnumFORMATETC_Release(pef);
2224 FIXME(
"params ignored: %p %p\n", pidlFolder, pidlSaveFile);
2270 FIXME(
"%p - stub\n", pidlExtra);
2305 WCHAR *dst_basename;
2315 FIXME(
"SHGNLI_PIDL flag unsupported\n");
2336 dst_basename = pszName +
strlenW(pszName);
2360 FIXME(
"%p, %s, %d - stub\n", pszPath,
debugstr_w(pszResModule), idsRes);
2415 FIXME(
"Unsupported image list %i requested\n", iImageList);
2433 hNew = (iImageList ==
SHIL_LARGE ? hLarge : hSmall);
2461 if (!pcsfv || pcsfv->
cbSize !=
sizeof(*pcsfv))
2464 TRACE(
"sf=%p outer=%p callback=%p\n",
2467 hRes = IShellView_Constructor(pcsfv->
pshf, &psf);
2471 hRes = IShellView_QueryInterface(psf, &IID_IShellView, (
LPVOID *)ppsv);
2472 IShellView_Release(psf);
2491 DWORD nSubAuthority0, nSubAuthority1;
2492 DWORD nSubAuthorityCount;
2498 nSubAuthority0 = ulRID;
2500 nSubAuthorityCount= 1;
2505 nSubAuthority1 = ulRID;
2506 nSubAuthorityCount= 2;
2581 for (pch1 = pch2 = pszSanitized; *pch1; ++pch1)
2583 if (pszInvalidChars)
2591 else if (pszValidChars)
2612 LPWSTR pszText, pszSanitized;
2700 if (
wParam == UNICODE_NOCHAR)
2752 ERR(
"HeapAlloc failed.\n");
2761 ERR(
"SetWindowLongPtrW failed\n");
2782 IItemNameLimits *pLimits;
2784 LPWSTR pwszValidChars, pwszInvalidChars;
2797 ERR(
"hr: %x\n",
hr);
2801 pwszValidChars = pwszInvalidChars =
NULL;
2802 hr = pLimits->lpVtbl->GetValidCharacters(pLimits, &pwszValidChars, &pwszInvalidChars);
2805 ERR(
"hr: %x\n",
hr);
2806 pLimits->lpVtbl->Release(pLimits);
2814 pLimits->lpVtbl->Release(pLimits);
HRESULT IDataObject_Constructor(HWND hwndOwner, PCIDLIST_ABSOLUTE pMyPidl, PCUIDLIST_RELATIVE_ARRAY apidl, UINT cidl, BOOL bExtendedObject, IDataObject **dataObject)
HRESULT IEnumFORMATETC_Constructor(UINT cfmt, const FORMATETC afmt[], IEnumFORMATETC **ppFormat)
#define shell32_hInstance
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
#define RegCloseKey(hKey)
INT(CALLBACK * MRUCMPPROCW)(LPCWSTR, LPCWSTR)
HANDLE WINAPI CreateMRUListW(const MRUINFOW *infoW)
#define OFN_FILEMUSTEXIST
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
#define ERROR_NOT_ENOUGH_MEMORY
void pdump(LPCITEMIDLIST pidl)
static const WCHAR szDescription[]
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 RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ 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 RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
LONG WINAPI RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD Reserved, _In_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_ LPDWORD lpdwDisposition)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
BOOL WINAPI CheckTokenMembership(IN HANDLE ExistingTokenHandle, IN PSID SidToCheck, OUT PBOOL IsMember)
BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, PSID *pSid)
PVOID WINAPI FreeSid(PSID pSid)
HRESULT WINAPI HIMAGELIST_QueryInterface(HIMAGELIST himl, REFIID riid, void **ppv)
HIMAGELIST WINAPI ImageList_Duplicate(HIMAGELIST himlSrc)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define ERROR_NO_MORE_ITEMS
#define HeapFree(x, y, z)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
#define WideCharToMultiByte
#define MultiByteToWideChar
static const WCHAR *const ext[]
DWORD WINAPI ExpandEnvironmentStringsA(IN LPCSTR lpSrc, IN LPSTR lpDst, IN DWORD nSize)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
UINT WINAPI SetErrorMode(IN UINT uMode)
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
UINT WINAPI GetDriveTypeW(IN LPCWSTR lpRootPathName)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
static void basename(LPCWSTR path, LPWSTR name)
HRESULT WINAPI OleFlushClipboard(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
void WINAPI DECLSPEC_HOTPATCH CoFreeUnusedLibraries(void)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
HRESULT WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget)
HRESULT WINAPI DoDragDrop(IDataObject *pDataObject, IDropSource *pDropSource, DWORD dwOKEffect, DWORD *pdwEffect)
HRESULT WINAPI RevokeDragDrop(HWND hwnd)
HRESULT WINAPI IShellLink_ConstructFromPath(WCHAR *path, REFIID riid, LPVOID *ppv)
HRESULT WINAPI SHGetMalloc(LPMALLOC *lpmal)
DWORD WINAPI SHCLSIDFromStringW(LPCWSTR clsid, CLSID *id)
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
BOOL WINAPI SHGetSpecialFolderPathW(HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate)
LPWSTR WINAPI PathAddBackslashW(LPWSTR lpszPath)
void WINAPI PathStripPathA(LPSTR lpszPath)
LPWSTR WINAPI PathFindFileNameW(LPCWSTR lpszPath)
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
BOOL WINAPI PathAppendW(LPWSTR lpszPath, LPCWSTR lpszAppend)
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
BOOL WINAPI PathAppendA(LPSTR lpszPath, LPCSTR lpszAppend)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
DWORD WINAPI SHDeleteKeyW(HKEY hKey, LPCWSTR lpszSubKey)
DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
DWORD WINAPI SHQueryValueExA(HKEY hKey, LPCSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
HRESULT WINAPI SHStrDupW(LPCWSTR src, LPWSTR *dest)
LPWSTR WINAPI StrCatBuffW(LPWSTR lpszStr, LPCWSTR lpszCat, INT cchMax)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
WDF_INTERRUPT_POLICY policy
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLuint GLsizei GLsizei * length
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 * u
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
BOOL SIC_Initialize(void)
BOOL WINAPI Shell_GetImageLists(HIMAGELIST *lpBigList, HIMAGELIST *lpSmallList)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
NTSYSAPI NTSTATUS WINAPI RtlGUIDFromString(PUNICODE_STRING, GUID *)
HRESULT ReplacePage([in] EXPPS uPageID, [in] LPFNSVADDPROPSHEETPAGE pfnReplaceWith, [in] LPARAM lParam)
HRESULT AddPages([in] LPFNSVADDPROPSHEETPAGE pfnAddPage, [in] LPARAM lParam)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
nsresult QueryInterface(nsIIDRef riid, void **result)
int const JOCTET unsigned int datalen
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
TCHAR szTitle[MAX_LOADSTRING]
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
static const WCHAR desc[]
static HANDLE ULONG_PTR dwData
static HMODULE MODULEINFO DWORD cb
static const WCHAR invalid[]
struct _PSP * HPROPSHEETPAGE
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
_In_ ACCESS_MASK _In_ ULONG _Out_ PHANDLE TokenHandle
#define SEM_FAILCRITICALERRORS
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define KEY_ENUMERATE_SUB_KEYS
interface IEnumFORMATETC * LPENUMFORMATETC
interface IDataObject * LPDATAOBJECT
const GUID IID_IEnumFORMATETC
const GUID IID_IPersistFile
BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR pszPath)
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
BOOL(CALLBACK * LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
static __inline BOOL SHELL_OsIsUnicode(void)
_In_ LPCSTR _Out_ BOOL * pfMustCopy
BOOL WINAPI SignalFileOpen(PCIDLIST_ABSOLUTE pidl)
struct _PSXA_CALL * PPSXA_CALL
HRESULT WINAPI SHLoadOLE(LPARAM lParam)
static INT CALLBACK SHADD_compare_mru(LPCVOID data1, LPCVOID data2, DWORD cbData)
DWORD WINAPI DoEnvironmentSubstAW(LPVOID x, UINT y)
static BOOL DoSanitizeText(LPWSTR pszSanitized, LPCWSTR pszInvalidChars, LPCWSTR pszValidChars)
HRESULT WINAPI SHRegisterDragDrop(HWND hWnd, LPDROPTARGET pDropTarget)
WORD WINAPI ArrangeWindows(HWND hwndParent, DWORD dwReserved, const RECT *lpRect, WORD cKids, const HWND *lpKids)
DWORD WINAPI DoEnvironmentSubstW(LPWSTR pszString, UINT cchString)
HRESULT WINAPI SHAbortInvokeCommand(void)
BOOL WINAPI DAD_AutoScroll(HWND hwnd, AUTO_SCROLL_DATA *samples, const POINT *pt)
void WINAPI SHUpdateImageW(LPCWSTR pszHashItem, int iIndex, UINT uFlags, int iImageIndex)
void WINAPI SHAddToRecentDocs(UINT uFlags, LPCVOID pv)
HRESULT WINAPI SHStartNetConnectionDialog(HWND hwnd, LPCSTR pszRemoteName, DWORD dwType)
int WINAPI InvalidateDriveType(int u)
VOID WINAPI SHGetSettings(LPSHELLFLAGSTATE lpsfs, DWORD dwMask)
BOOL WINAPI RegisterShellHook(HWND hWnd, DWORD dwType)
BOOL WINAPI SHObjectProperties(HWND hwnd, DWORD dwType, LPCWSTR szObject, LPCWSTR szPage)
void WINAPI SHFreeUnusedLibraries(void)
static BOOL CALLBACK PsxaCall(HPROPSHEETPAGE hpage, LPARAM lParam)
BOOL WINAPI DAD_DragEnter(HWND hwnd)
#define MRUF_DELAYED_SAVE
INT WINAPI SHHandleUpdateImage(PCIDLIST_ABSOLUTE pidlExtra)
void WINAPI SHDestroyPropSheetExtArray(HPSXA hpsxa)
HRESULT WINAPI SHCreateStdEnumFmtEtc(UINT cFormats, const FORMATETC *lpFormats, LPENUMFORMATETC *ppenumFormatetc)
EXTERN_C BOOL WINAPI SHTestTokenMembership(HANDLE TokenHandle, ULONG ulRID)
BOOL WINAPI DAD_SetDragImage(HIMAGELIST himlTrack, LPPOINT lppt)
INT WINAPI FindMRUData(HANDLE hList, LPCVOID lpData, DWORD cbData, LPINT lpRegNum)
HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv)
static void DoSanitizeClipboard(HWND hwnd, UxSubclassInfo *pInfo)
HANDLE WINAPI CreateMRUListA(LPCREATEMRULISTA lpcml)
DWORD WINAPI ParseFieldAW(LPCVOID src, DWORD nField, LPVOID dst, DWORD len)
void WINAPI SHFlushSFCache(void)
BOOL WINAPI LinkWindow_RegisterClass(void)
BOOL WINAPI GUIDFromStringA(LPCSTR str, LPGUID guid)
BOOL WINAPI PathIsTemporaryW(LPWSTR Str)
struct tagCREATEMRULIST * LPCREATEMRULISTA
BOOL WINAPI GUIDFromStringW(LPCWSTR str, LPGUID guid)
BOOL WINAPI LinkWindow_UnregisterClass(DWORD dwUnused)
VOID WINAPI SHUpdateImageA(LPCSTR pszHashItem, INT iIndex, UINT uFlags, INT iImageIndex)
HRESULT WINAPI SHWinHelp(HWND hwnd, LPCWSTR pszHelp, UINT uCommand, ULONG_PTR dwData)
HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, LPDATAOBJECT pDataObj)
DWORD WINAPI ParseFieldW(LPCWSTR src, DWORD nField, LPWSTR dst, DWORD len)
static LRESULT CALLBACK LimitEditWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
BOOL WINAPI ReadCabinetState(CABINETSTATE *cs, int length)
BOOL WINAPI FileIconInit(BOOL bFullInit)
int ShellMessageBoxA(HINSTANCE hInstance, HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType,...)
BOOL WINAPI DAD_ShowDragImage(BOOL bShow)
BOOL WINAPI DAD_DragEnterEx(HWND hwnd, POINT p)
DWORD WINAPI RLBuildListOfPaths(void)
VOID WINAPI FreeMRUList(HANDLE hMRUList)
BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, UINT uFlags)
static INT SHADD_create_add_mru_data(HANDLE mruhandle, LPCSTR doc_name, LPCSTR new_lnk_name, LPSTR buffer, INT *len)
DWORD WINAPI DoEnvironmentSubstA(LPSTR pszString, UINT cchString)
VOID WINAPI SHGetSetSettings(LPSHELLSTATE lpss, DWORD dwMask, BOOL bSet)
static INT SHADD_get_policy(LPCSTR policy, LPDWORD type, LPVOID buffer, LPDWORD len)
HRESULT WINAPI SetAppStartingCursor(HWND u, DWORD v)
HRESULT WINAPI SHRevokeDragDrop(HWND hWnd)
BOOL WINAPI SHRunControlPanel(_In_ LPCWSTR commandLine, _In_opt_ HWND parent)
HRESULT WINAPI SHLimitInputEdit(HWND hWnd, IShellFolder *psf)
struct _PSXA_CALL PSXA_CALL
BOOL WINAPI SHValidateUNC(HWND hwndOwner, PWSTR pszFile, UINT fConnect)
BOOL WINAPI SHWaitForFileToOpen(LPCITEMIDLIST pidl, DWORD dwFlags, DWORD dwTimeout)
HRESULT WINAPI SHGetInstanceExplorer(IUnknown **lpUnknown)
static UxSubclassInfo * UxSubclassInfo_Create(HWND hwnd, LPWSTR valid, LPWSTR invalid)
INT WINAPI EnumMRUListA(HANDLE hList, INT nItemPos, LPVOID lpBuffer, DWORD nBufferSize)
UINT WINAPI SHReplaceFromPropSheetExtArray(HPSXA hpsxa, UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith, LPARAM lParam)
BOOL WINAPI SHGetNewLinkInfoA(LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName, BOOL *pfMustCopy, UINT uFlags)
BOOL WINAPI DAD_DragMove(POINT p)
struct tagCREATEMRULIST CREATEMRULISTA
HRESULT WINAPI SHSetLocalizedName(LPCWSTR pszPath, LPCWSTR pszResModule, int idsRes)
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
VOID WINAPI SHSetInstanceExplorer(LPUNKNOWN lpUnknown)
HRESULT WINAPI SHCreateShellFolderViewEx(LPCSFV psvcbi, IShellView **ppv)
BOOL WINAPI SHFindFiles(PCIDLIST_ABSOLUTE pidlFolder, PCIDLIST_ABSOLUTE pidlSaveFile)
LRESULT WINAPI SHShellFolderView_Message(HWND hwndCabinet, UINT uMessage, LPARAM lParam)
static void UxSubclassInfo_Destroy(UxSubclassInfo *pInfo)
BOOL WINAPI GetFileNameFromBrowse(HWND hwndOwner, LPWSTR lpstrFile, UINT nMaxFile, LPCWSTR lpstrInitialDir, LPCWSTR lpstrDefExt, LPCWSTR lpstrFilter, LPCWSTR lpstrTitle)
HRESULT WINAPI CIDLData_CreateFromIDArray(PCIDLIST_ABSOLUTE pidlFolder, UINT cpidlFiles, PCUIDLIST_RELATIVE_ARRAY lppidlFiles, LPDATAOBJECT *ppdataObject)
UINT WINAPI SHAddFromPropSheetExtArray(HPSXA hpsxa, LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam)
int WINAPI SHOutOfMemoryMessageBox(HWND hwndOwner, LPCSTR lpCaption, UINT uType)
static LPUNKNOWN SHELL32_IExplorerInterface
INT WINAPI AddMRUData(HANDLE hList, LPCVOID lpData, DWORD cbData)
BOOL WINAPI PathIsTemporaryA(LPSTR Str)
HPSXA WINAPI SHCreatePropSheetExtArray(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface)
BOOL WINAPI WriteCabinetState(CABINETSTATE *cs)
HRESULT WINAPI SHDoDragDrop(HWND hWnd, LPDATAOBJECT lpDataObject, LPDROPSOURCE lpDropSource, DWORD dwOKEffect, LPDWORD pdwEffect)
DWORD WINAPI ParseFieldA(LPCSTR src, DWORD nField, LPSTR dst, DWORD len)
HRESULT WINAPI SHFlushClipboard(void)
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
#define SSF_DONTPRETTYPATH
#define SSF_SHOWATTRIBCOL
BOOL WINAPI IsUserAnAdmin(void)
#define SSF_MAPNETDRVBUTTON
#define SSF_SHOWEXTENSIONS
#define SSF_SHOWALLOBJECTS
BOOL WINAPI DAD_DragLeave(void)
DWORD WINAPI SHRestricted(RESTRICTIONS policy)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const PCUIDLIST_RELATIVE * PCUIDLIST_RELATIVE_ARRAY
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
LPFNVIEWCALLBACK pfnCallback
LPFNADDPROPSHEETPAGE lpfnAddReplaceWith
IShellPropSheetExt * pspsx[1]
IShellFolderViewCB * psfvcb
#define FIELD_OFFSET(t, f)
HRESULT WINAPI SHLimitInputCombo(HWND hWnd, IShellFolder *psf)
HWND WINAPI SetTaskmanWindow(HWND)
#define INVALID_FILE_ATTRIBUTES
DWORD WINAPI GetLastError(void)
#define FORMAT_MESSAGE_FROM_STRING
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
_In_ DWORD _In_ DWORD _Out_writes_to_opt_ pcchString LPSTR pszString
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD dwTimeout
#define __ms_va_end(list)
#define __ms_va_start(list, arg)
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
BOOL WINAPI DeregisterShellHookWindow(_In_ HWND)
#define GetWindowLongPtrW
HANDLE WINAPI RemovePropW(_In_ HWND, _In_ LPCWSTR)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI RegisterShellHookWindow(_In_ HWND)
int WINAPI MessageBoxA(_In_opt_ HWND hWnd, _In_opt_ LPCSTR lpText, _In_opt_ LPCSTR lpCaption, _In_ UINT uType)
HANDLE WINAPI SetClipboardData(_In_ UINT, _In_opt_ HANDLE)
#define IS_INTRESOURCE(i)
HWND WINAPI GetTopWindow(_In_opt_ HWND)
BOOL WINAPI CloseClipboard(void)
BOOL WINAPI WinHelpW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_ UINT, _In_ ULONG_PTR)
BOOL WINAPI OpenClipboard(_In_opt_ HWND)
BOOL WINAPI MessageBeep(_In_ UINT uType)
int WINAPI LoadStringA(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPSTR lpBuffer, _In_ int cchBufferMax)
HANDLE WINAPI GetClipboardData(_In_ UINT)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)
BOOL WINAPI IsWindowUnicode(_In_ HWND)
BOOL WINAPI SetPropW(_In_ HWND, _In_ LPCWSTR, _In_opt_ HANDLE)
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)
#define MAKEINTRESOURCEW(i)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
#define SetWindowLongPtrW
LRESULT WINAPI CallWindowProcW(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
SHORT WINAPI GetKeyState(_In_ int)
#define SECURITY_BUILTIN_DOMAIN_RID
#define SECURITY_SERVICE_RID
#define SECURITY_LOCAL_SYSTEM_RID
#define SECURITY_NT_AUTHORITY
#define DOMAIN_ALIAS_RID_ADMINS