152#define ICON_LINK_WINDOWS_COMPAT
154#define SHLINK_LOCAL 0
155#define SHLINK_REMOTE 1
306 TRACE(
"-- destroying IShellLink(%p)\n",
this);
323 TRACE(
"%p %p\n",
this, pclsid);
327 *pclsid = CLSID_ShellLink;
336 TRACE(
"(%p)\n",
this);
357 TRACE(
"-- returning hr %08x\n",
hr);
411 *ppszFileName =
NULL;
495 TRACE(
"ret = %d type %d serial %08x name %s\n", bRet,
505 unsigned char data[1];
597 if (
n && n < loc->dwTotalSize)
600 TRACE(
"type %d serial %08x name %s path %s\n",
volume->type,
634 ERR(
"Ooops. This structure is not as expected...\n");
649 TRACE(
"%p %p\n",
this, stm);
657 ULONG dwBytesRead = 0;
662 if (dwBytesRead !=
sizeof(
m_Header))
783#if (NTDDI_VERSION < NTDDI_LONGHORN)
865 DWORD volume_info_size =
sizeof(*vol) + label_size;
866 DWORD final_path_size = 1;
867 DWORD total_size =
sizeof(*loc) + volume_info_size + path_size + final_path_size;
883 loc->
dwFinalPathOfs =
sizeof(*loc) + volume_info_size + path_size;
886 vol->
dwSize = volume_info_size;
912 TRACE(
"%p %p %x\n",
this, stm, fClearDirty);
938 UINT NT6SimpleFlags =
LOBYTE(
GetVersion()) > 6 ? (0x00040000 | 0x00400000 | 0x00800000 | 0x02000000) : 0;
941#if (NTDDI_VERSION < NTDDI_LONGHORN)
972 ERR(
"Write failed\n");
983 ERR(
"Failed to write PIDL\n");
1053 TRACE(
"(%p)\n",
this);
1071 if (!
path || !psPath)
1074 if (!*psPath && sPathRel)
1109 wcscpy(abs_path, sPathRel);
1125 TRACE(
"(%p)->(pfile=%p len=%u find_data=%p flags=%u)(%s)\n",
1134 hr =
GetPath(pszFileW, cchMaxPath, &wfd, fFlags);
1161 pfd->cAlternateFileName,
sizeof(
pfd->cAlternateFileName),
NULL,
NULL);
1170 TRACE(
"(%p)->(ppidl=%p)\n",
this, ppidl);
1184 TRACE(
"(%p)->(pidl=%p)\n",
this, pidl);
1190 TRACE(
"(%p)->(%p len=%u)\n",
this, pszName, cchMaxName);
1204 TRACE(
"(%p)->(pName=%s)\n",
this, pszName);
1222 TRACE(
"(%p)->(%p len=%u)\n",
this,
pszDir, cchMaxPath);
1254 TRACE(
"(%p)->(%p len=%u)\n",
this, pszArgs, cchMaxPath);
1268 TRACE(
"(%p)->(args=%s)\n",
this, pszArgs);
1293 TRACE(
"(%p)->(hotkey=%x)\n",
this, wHotkey);
1310 TRACE(
"(%p) %d\n",
this, iShowCmd);
1323 TRACE(
"(%p)->(%p len=%u iicon=%p)\n",
this, pszIconPath, cchIconPath, piIcon);
1335 pszIconPath, cchIconPath,
NULL,
NULL);
1348 TRACE(
"(%p)->(%u %p len=%u piIndex=%p pwFlags=%p)\n",
this,
uFlags, pszIconFile,
cchMax, piIndex, pwFlags);
1370 TRACE(
"(%p)->(path=%s iicon=%u)\n",
this, pszFile, nIconIndex);
1390 TRACE(
"(%p)->(path=%s iicon=%u)\n",
this, pszIconPath, iIcon);
1452 TRACE(
"(%p)->(hwnd=%p flags=%x)\n",
this,
hwnd, fFlags);
1458#if (NTDDI_VERSION < NTDDI_LONGHORN)
1462 FIXME(
"Logo3 links are not supported yet!\n");
1518 TRACE(
"(%p)->(path=%s)\n",
this, pszFile);
1537 TRACE(
"(%p)->(pfile=%p len=%u find_data=%p flags=%u)(%s)\n",
1573 pfd->nFileSizeHigh = 0;
1598 if (pInfo && (pInfo->
cbSize ==
sizeof(*pInfo)))
1605 if (fFlags)
FIXME(
"(%p): Unsupported flags %lu\n",
this, fFlags);
1616 TRACE(
"(%p)->(%p len=%u)\n",
this, pszName, cchMaxName);
1645 TRACE(
"(%p)->(%p len %u)\n",
this,
pszDir, cchMaxPath);
1676 TRACE(
"(%p)->(%p len=%u)\n",
this, pszArgs, cchMaxPath);
1707 TRACE(
"(%p)->(%p len=%u iicon=%p)\n",
this, pszIconPath, cchIconPath, piIcon);
1722 if (pInfo && (pInfo->
cbSize ==
sizeof(*pInfo)))
1754 hr = pei->GetIconLocation(
uFlags, pszIconFile,
cchMax, piIndex, pwFlags);
1775 if (
uFlags & GIL_FORSHORTCUT)
1783 uFlags |= GIL_FORSHORTCUT;
1785 if (
uFlags & GIL_DEFAULTICON)
1796 *pwFlags = GIL_NOTFILENAME | GIL_PERCLASS;
1810 *phiconLarge =
NULL;
1813 if (*phiconLarge ==
NULL)
1819 *phiconSmall =
NULL;
1822 if (*phiconSmall ==
NULL)
1828 if (phiconLarge && *phiconLarge)
1831 *phiconLarge =
NULL;
1833 if (phiconSmall && *phiconSmall)
1836 *phiconSmall =
NULL;
1845BOOL PathFullyUnExpandEnvStringsW(
1855 while (*pszPath && cchBuf > 0)
1864 p = pszPath +
wcslen(pszPath);
1868 if (
p - pszPath >= cchBuf)
1872 wcsncpy(pszBuf, pszPath,
p - pszPath);
1873 pszBuf[
p - pszPath] =
L'\0';
1876 cchBuf -= (
p - pszPath);
1877 pszBuf += (
p - pszPath);
1878 pszPath += (
p - pszPath);
1896 p = pszPath +
wcslen(pszPath);
1898 while ((*
p == *
q) && (
p > pszPath) && (
q > pszBuf))
1906 cchBuf -= (
q - pszBuf);
1923 TRACE(
"(%p)->(path=%s iicon=%u)\n",
this,
debugstr_w(pszIconPath), iIcon);
1937#ifdef ICON_LINK_WINDOWS_COMPAT
1941 if (bSuccess &&
wcscmp(pszIconPath, szIconPath) != 0)
1951 if (
wcscmp(pszIconPath, szIconPath) != 0)
1961#ifdef ICON_LINK_WINDOWS_COMPAT
1963 LPCWSTR pszOrgIconPath = pszIconPath;
1964 pszIconPath = szIconPath;
1970 if (pInfo->
cbSize !=
sizeof(*pInfo))
1972 ERR(
"Ooops. This structure is not as expected...\n");
2000#ifdef ICON_LINK_WINDOWS_COMPAT
2002 pszIconPath = pszOrgIconPath;
2005 pszIconPath = szIconPath;
2021#ifdef ICON_LINK_WINDOWS_COMPAT
2088 && (dwSig != EXP_LOGO3_ID_SIG)
2102 if (pInfo->
dbh.
cbSize !=
sizeof(*pInfo))
2104 ERR(
"Ooops. This structure is not as expected...\n");
2109#if (NTDDI_VERSION < NTDDI_LONGHORN)
2110 else if (dwSig == EXP_LOGO3_ID_SIG)
2124 buffer.dbh.dwSignature = dwSig;
2138#if (NTDDI_VERSION < NTDDI_LONGHORN)
2139 else if (dwSig == EXP_LOGO3_ID_SIG)
2160 if (
str[0] !=
':' ||
str[1] !=
':')
2209#if (NTDDI_VERSION < NTDDI_LONGHORN)
2222#if (NTDDI_VERSION < NTDDI_LONGHORN)
2241 if (pidl && pszFile)
2330 if (pszFile[0] ==
L'"' && pszFile[
len-1] ==
L'"')
2382 if (pInfo->
cbSize !=
sizeof(*pInfo))
2384 ERR(
"Ooops. This structure is not as expected...\n");
2453 TRACE(
"%p %08x %p\n",
this, dwSig, ppDataBlock);
2455 *ppDataBlock =
NULL;
2460 ERR(
"unknown datablock %08x (not found)\n", dwSig);
2470 *ppDataBlock = pDataBlock;
2486 TRACE(
"%p %p\n",
this, pdwFlags);
2507 TRACE(
"%p %p %p %p\n",
this, pidlFolder, pdtobj, hkeyProgID);
2515 format.dwAspect = DVASPECT_CONTENT;
2517 format.tymed = TYMED_HGLOBAL;
2548 TRACE(
"%p %p %u %u %u %u\n",
this,
2549 hMenu, indexMenu, idCmdFirst, idCmdLast,
uFlags);
2559 mii.
cbSize =
sizeof(mii);
2563 mii.
wID = idCmdFirst +
id++;
2572 mii.
wID = idCmdFirst +
id++;
2592 ERR(
"ret: %08lX\n",
ret);
2601 TRACE(
"%p %p\n",
this, lpici);
2613 TRACE(
"failed to resolve component error 0x%08x\n",
hr);
2618 TRACE(
"idCmd: %d\n", idCmd);
2634 const BOOL unicode = IsUnicode(*lpici);
2673 sei.
fMask &= ~SEE_MASK_DOENVSUBST;
2698 FIXME(
"%p %lu %u %p %p %u\n",
this, idCmd, uType, pwReserved, pszName,
cchMax);
2748 ERR(
"SHGetFileInfoW failed for %ls (%lu)\n", pszFullPath,
GetLastError());
2769 TRACE(
"CShellLink::OnInitDialog(hwnd %p hwndFocus %p lParam %p)\n", hwndDlg, hwndFocus,
lParam);
2870 disablecontrols =
TRUE;
2890 disablecontrols =
TRUE;
3007 if (unquoted[0] ==
'"' && unquoted[
wcslen(unquoted) - 1] ==
'"')
3092 pThis->OnDestroy(hwndDlg);
3109 (
LPARAM)
this,
NULL, &PropSheetPageLifetimeCallback<CShellLink>);
3115 enum { CShellLink_PageIndex_Shortcut = 0 };
3116 return 1 + CShellLink_PageIndex_Shortcut;
3121 TRACE(
"(%p) (uPageID %u, pfnReplacePage %p lParam %p\n",
this, uPageID, pfnReplacePage,
lParam);
3127 TRACE(
"%p %p\n",
this, punk);
3141 return m_site->QueryInterface(iid, ppvSite);
3147 TRACE(
"(%p)->(DataObject=%p)\n",
this, pDataObject);
3164 TRACE(
"(%p)\n",
this);
3173 TRACE(
"(%p)\n",
this);
3187 TRACE(
"(%p)\n",
this);
3209 return ppf->QueryInterface(
riid,
ppv);
#define PRF_TRYPROGRAMEXTENSIONS
#define shell32_hInstance
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static WCHAR * strdupW(const WCHAR *src)
void shell(int argc, const char *argv[])
#define STDMETHODCALLTYPE
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
STDMETHOD() SetWorkingDirectory(LPCSTR pszDir) override
STDMETHOD() SetShowCmd(INT iShowCmd) override
HRESULT DoOpen(LPCMINVOKECOMMANDINFO lpici)
STDMETHOD() GetPath(LPSTR pszFile, INT cchMaxPath, WIN32_FIND_DATAA *pfd, DWORD fFlags) override
STDMETHOD() Extract(PCSTR pszFile, UINT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize) override
STDMETHOD() InvokeCommand(LPCMINVOKECOMMANDINFO lpici) override
STDMETHOD() GetSite(REFIID iid, void **ppvSite) override
CComPtr< IDropTarget > m_DropTarget
STDMETHOD() DragLeave() override
STDMETHOD() DragEnter(IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect) override
STDMETHOD() GetDescription(LPSTR pszName, INT cchMaxName) override
LRESULT OnNotify(HWND hwndDlg, int idFrom, LPNMHDR pnmhdr)
STDMETHOD() CopyDataBlock(DWORD dwSig, void **ppDataBlock) override
STDMETHOD() Drop(IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect) override
STDMETHOD() Save(LPCOLESTR pszFileName, BOOL fRemember) override
SHELL_LINK_HEADER m_Header
void OnCommand(HWND hwndDlg, int id, HWND hwndCtl, UINT codeNotify)
HICON CreateShortcutIcon(LPCWSTR wszIconPath, INT IconIndex)
STDMETHOD() Load(LPCOLESTR pszFileName, DWORD dwMode) override
STDMETHOD() IsDirty() override
STDMETHOD() GetHotkey(WORD *pwHotkey) override
STDMETHOD() GetArguments(LPSTR pszArgs, INT cchMaxPath) override
HRESULT DoOpenFileLocation()
STDMETHOD() GetClassID(CLSID *pclsid) override
static INT_PTR CALLBACK SH_ShellLinkDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
STDMETHOD() AddPages(LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam) override
STDMETHOD() SetHotkey(WORD wHotkey) override
STDMETHOD() RemoveDataBlock(DWORD dwSig) override
STDMETHOD() SetSite(IUnknown *punk) override
STDMETHOD() SaveCompleted(LPCOLESTR pszFileName) override
BOOL OnInitDialog(HWND hwndDlg, HWND hwndFocus, LPARAM lParam)
void OnDestroy(HWND hwndDlg)
STDMETHOD() GetWorkingDirectory(LPSTR pszDir, INT cchMaxPath) override
STDMETHOD() GetIDList(PIDLIST_ABSOLUTE *ppidl) override
STDMETHOD() SetIDList(PCIDLIST_ABSOLUTE pidl) override
HRESULT SetAdvertiseInfo(LPCWSTR str)
HRESULT SetTargetFromPIDLOrPath(LPCITEMIDLIST pidl, LPCWSTR pszFile)
STDMETHOD() SetPath(LPCSTR pszFile) override
STDMETHOD() GetFlags(DWORD *pdwFlags) override
STDMETHOD() ReplacePage(UINT uPageID, LPFNADDPROPSHEETPAGE pfnReplacePage, LPARAM lParam) override
STDMETHOD() GetCurFile(LPOLESTR *ppszFileName) override
STDMETHOD() GetShowCmd(INT *piShowCmd) override
STDMETHOD() GetCommandString(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax) override
HRESULT GetAdvertiseInfo(LPWSTR *str, DWORD dwSig)
STDMETHOD() DragOver(DWORD dwKeyState, POINTL pt, DWORD *pdwEffect) override
STDMETHOD() QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
STDMETHOD() AddDataBlock(void *pDataBlock) override
HRESULT WriteAdvertiseInfo(LPCWSTR string, DWORD dwSig)
STDMETHOD() SetDescription(LPCSTR pszName) override
STDMETHOD() GetIconLocation(LPSTR pszIconPath, INT cchIconPath, INT *piIcon) override
CComPtr< IUnknown > m_site
STDMETHOD() SetIconLocation(LPCSTR pszIconPath, INT iIcon) override
STDMETHOD() SetArguments(LPCSTR pszArgs) override
STDMETHOD() SetFlags(DWORD dwFlags) override
STDMETHOD() Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID) override
STDMETHOD() Resolve(HWND hwnd, DWORD fFlags) override
STDMETHOD() SetRelativePath(LPCSTR pszPathRel, DWORD dwReserved) override
STDMETHOD() GetSizeMax(ULARGE_INTEGER *pcbSize) override
void pdump(LPCITEMIDLIST pidl)
DWORD WINAPI CommandLineFromMsiDescriptor(WCHAR *szDescriptor, WCHAR *szCommandLine, DWORD *pcchCommandLine)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
HICON WINAPI ImageList_GetIcon(HIMAGELIST himl, INT i, UINT fStyle)
INT WINAPI ImageList_AddMasked(HIMAGELIST himl, HBITMAP hBitmap, COLORREF clrMask)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
#define INVALID_HANDLE_VALUE
static __inline const char * debugstr_an(const char *s, int n)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
#define FAILED_UNEXPECTEDLY(hr)
static void cleanup(void)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
UINT WINAPI GetDriveTypeW(IN LPCWSTR lpRootPathName)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
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)
DWORD WINAPI GetShortPathNameW(IN LPCWSTR lpszLongPath, OUT LPWSTR lpszShortPath, IN DWORD cchBuffer)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
static const WCHAR IconIndex[]
INT_PTR CALLBACK ExtendedShortcutProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static LPWSTR GetAdvertisedArg(LPCWSTR str)
static BOOL SHELL_ExistsFileW(LPCWSTR path)
static HRESULT ShellLink_UpdatePath(LPCWSTR sPathRel, LPCWSTR path, LPCWSTR sWorkDir, LPWSTR *psPath)
static LPWSTR Stream_LoadPath(LPCSTR p, DWORD maxlen)
static HRESULT SHELL_PidlGetIconLocationW(PCIDLIST_ABSOLUTE pidl, UINT uFlags, PWSTR pszIconFile, UINT cchMax, int *piIndex, UINT *pwFlags)
HRESULT WINAPI IShellLink_ConstructFromFile(IShellFolder *psf, LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv)
static HRESULT Stream_ReadChunk(IStream *stm, LPVOID *data)
HRESULT WINAPI IShellLink_ConstructFromPath(WCHAR *path, REFIID riid, LPVOID *ppv)
static HRESULT Stream_LoadLocation(IStream *stm, CShellLink::volume_info *volume, LPWSTR *path)
static void GetTypeDescriptionByPath(PCWSTR pszFullPath, DWORD fAttributes, PWSTR szBuf, UINT cchBuf)
static HRESULT Stream_WriteString(IStream *stm, LPCWSTR str)
static HRESULT Stream_WriteLocationInfo(IStream *stm, LPCWSTR path, CShellLink::volume_info *volume)
static LPWSTR __inline strdupW(LPCWSTR src)
static BOOL ShellLink_GetVolumeInfo(LPCWSTR path, CShellLink::volume_info *volume)
static LPWSTR shelllink_get_msi_component_path(LPWSTR component)
static LPWSTR __inline HEAP_strdupAtoW(HANDLE heap, DWORD flags, LPCSTR str)
static BOOL Stream_LoadVolume(LOCAL_VOLUME_INFO *vol, CShellLink::volume_info *volume)
static HRESULT Stream_LoadString(IStream *stm, BOOL unicode, LPWSTR *pstr)
static BOOL PathEnvSubstIsDirectory(LPCWSTR pszPath)
BOOL WINAPI PickIconDlg(HWND hWndOwner, LPWSTR lpstrFile, UINT nMaxFile, INT *lpdwIconIndex)
HRESULT SHGetNameAndFlagsW(_In_ LPCITEMIDLIST pidl, _In_ DWORD dwFlags, _Out_opt_ LPWSTR pszText, _In_ UINT cchBuf, _Inout_opt_ DWORD *pdwAttributes)
const GUID SHELL32_AdvtShortcutProduct
static HRESULT AddPropSheetPage(HPROPSHEETPAGE hPage, LPFNSVADDPROPSHEETPAGE pfnAddPage, LPARAM lParam)
EXTERN_C HRESULT SHELL_GetUIObjectOfAbsoluteItem(_In_opt_ HWND hWnd, _In_ PCIDLIST_ABSOLUTE pidl, _In_ REFIID riid, _Out_ void **ppvObj)
const GUID SHELL32_AdvtShortcutComponent
void WINAPI SHFree(LPVOID pv)
UINT WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszwFile, UINT lLength)
LPVOID WINAPI SHAlloc(SIZE_T len)
BOOL WINAPI PathResolveW(_Inout_ LPWSTR path, _Inout_opt_ LPCWSTR *dirs, _In_ DWORD flags)
DATABLOCK_HEADER *WINAPI SHFindDataBlock(LPDBLIST lpList, DWORD dwSignature)
HRESULT WINAPI SHReadDataBlockList(IStream *lpStream, LPDBLIST *lppList)
VOID WINAPI SHFreeDataBlockList(LPDBLIST lpList)
BOOL WINAPI SHAddDataBlock(LPDBLIST *lppList, const DATABLOCK_HEADER *lpNewItem)
HRESULT WINAPI SHWriteDataBlockList(IStream *lpStream, LPDBLIST lpList)
BOOL WINAPI SHRemoveDataBlock(LPDBLIST *lppList, DWORD dwSignature)
HRESULT WINAPI SHCreateStreamOnFileW(LPCWSTR lpszPath, DWORD dwMode, IStream **lppStream)
void WINAPI PathRemoveArgsW(LPWSTR lpszPath)
BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath)
LPWSTR WINAPI PathFindFileNameW(LPCWSTR lpszPath)
BOOL WINAPI PathUnExpandEnvStringsW(LPCWSTR path, LPWSTR buffer, UINT buf_len)
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
VOID WINAPI PathUnquoteSpacesW(LPWSTR lpszPath)
BOOL WINAPI PathIsFileSpecW(LPCWSTR lpszPath)
BOOL WINAPI PathFileExistsAndAttributesW(LPCWSTR lpszPath, DWORD *dwAttr)
LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath)
DWORD WINAPI SHAnsiToUnicode(LPCSTR lpSrcStr, LPWSTR lpDstStr, int iLen)
BOOL WINAPI StrTrimW(LPWSTR lpszStr, LPCWSTR lpszTrim)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
#define MAKE_HRESULT(sev, fac, code)
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble GLdouble q
GLenum GLuint GLenum GLsizei const GLchar * buf
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
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
UINT WINAPI ExtractIconExW(LPCWSTR lpszFile, INT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
HRESULT GetData([in, unique] FORMATETC *pformatetcIn, [out] STGMEDIUM *pmedium)
const DWORD DROPEFFECT_NONE
HRESULT Write([in, size_is(cb)] const void *pv, [in] ULONG cb, [out] ULONG *pcbWritten)
HRESULT Read([out, size_is(cb), length_is(*pcbRead)] void *pv, [in] ULONG cb, [out] ULONG *pcbRead)
#define memcpy(s1, s2, n)
static const WCHAR label[]
static DWORD DWORD void LPSTR DWORD cch
static const WCHAR szGuid[]
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
struct _PSP * HPROPSHEETPAGE
unsigned __int3264 UINT_PTR
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
#define FILE_ATTRIBUTE_DIRECTORY
#define LOCALE_USER_DEFAULT
#define MAKEINTRESOURCE(i)
#define STGM_SHARE_EXCLUSIVE
#define STGM_SHARE_DENY_WRITE
#define PathAddBackslashW
LPITEMIDLIST WINAPI SHCloneSpecialIDList(HWND hwndOwner, int nFolder, BOOL fCreate)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
HRESULT WINAPI ILSaveToStream(IStream *pStream, LPCITEMIDLIST pPidl)
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
HRESULT WINAPI ILLoadFromStream(IStream *pStream, LPITEMIDLIST *ppPidl)
LPITEMIDLIST WINAPI SHSimpleIDListFromPathW(LPCWSTR lpszPath)
BOOL ILGetDisplayNameExW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPWSTR path, DWORD type)
#define PSNRET_INVALID_NOCHANGEPAGE
#define PropSheet_Changed(d, w)
struct _PROPSHEETPAGEW * LPPROPSHEETPAGEW
BOOL(CALLBACK * LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM)
struct _PSHNOTIFY * LPPSHNOTIFY
_Out_opt_ int _Out_opt_ int * cy
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
DWORD WINAPI GetVersion()
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_Check_return_ _CRTIMP _CONST_RETURN wchar_t *__cdecl wcspbrk(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
static __inline LPWSTR __SHCloneStrAtoW(WCHAR **target, const char *source)
#define SEE_MASK_DOENVSUBST
#define SHGFI_DISPLAYNAME
#define SHGFI_USEFILEATTRIBUTES
#define SEE_MASK_INVOKEIDLIST
#define SEE_MASK_FLAG_NO_UI
#define SEE_MASK_HASLINKNAME
HINSTANCE WINAPI FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult)
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
EXTERN_C HRESULT WINAPI SHOpenFolderAndSelectItems(PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD dwFlags)
#define EXP_DARWIN_ID_SIG
struct EXP_DARWIN_LINK * LPEXP_DARWIN_LINK
@ SLDF_RUN_WITH_SHIMLAYER
#define EXP_SPECIAL_FOLDER_SIG
struct EXP_SPECIAL_FOLDER * LPEXP_SPECIAL_FOLDER
struct EXP_SZ_LINK * LPEXP_SZ_LINK
HRESULT WINAPI SHAutoComplete(HWND hwndEdit, DWORD dwFlags)
#define PathRemoveBackslash
DWORD WINAPI SHExpandEnvironmentStringsW(LPCWSTR, LPWSTR, DWORD)
#define IDC_SHORTCUT_FIND
#define IDS_SHORTCUT_RUN_MAX
#define IDC_SHORTCUT_ADVANCED
#define IDC_SHORTCUT_RUN_COMBO
#define IDS_OPENFILELOCATION
#define IDS_SHORTCUT_RUN_MIN
#define IDC_SHORTCUT_LOCATION_EDIT
#define IDC_SHORTCUT_TEXT
#define IDC_SHORTCUT_TARGET_TEXT
#define IDC_SHORTCUT_ICON
#define IDC_SHORTCUT_KEY_HOTKEY
#define IDC_SHORTEX_RUN_DIFFERENT
#define IDI_SHELL_SHORTCUT
#define IDS_SHORTCUT_RUN_NORMAL
#define IDD_SHORTCUT_PROPERTIES
#define IDC_SHORTCUT_CHANGE_ICON
#define IDD_SHORTCUT_EXTENDED_PROPERTIES
#define IDC_SHORTCUT_TYPE_EDIT
#define IDC_SHORTCUT_COMMENT_EDIT
#define IDC_SHORTCUT_START_IN_EDIT
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
static PIXELFORMATDESCRIPTOR pfd
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchCopyExW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc, STRSAFE_LPWSTR *ppszDestEnd, size_t *pcchRemaining, STRSAFE_DWORD dwFlags)
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchPrintfExW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPWSTR *ppszDestEnd, size_t *pcchRemaining, STRSAFE_DWORD dwFlags, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCbPrintfW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszFormat,...)
CHAR szDarwinID[MAX_PATH]
WCHAR szwDarwinID[MAX_PATH]
WCHAR szwTarget[MAX_PATH]
DWORD dwNetworkVolTableOfs
WCHAR szDisplayName[MAX_PATH]
BITMAPINFOHEADER bmiHeader
#define FIELD_OFFSET(t, f)
WORD WORD PSZ PSZ pszFileName
#define INVALID_FILE_ATTRIBUTES
HPROPSHEETPAGE SH_CreatePropertySheetPageEx(WORD wDialogId, DLGPROC pfnDlgProc, LPARAM lParam, LPCWSTR pwszTitle, LPFNPSPCALLBACK Callback)
HBITMAP WINAPI CreateDIBSection(HDC hDC, CONST BITMAPINFO *BitmapInfo, UINT Usage, VOID **Bits, HANDLE hSection, DWORD dwOffset)
UINT WINAPI GetDlgItemTextW(HWND hDlg, int nIDDlgItem, LPWSTR lpString, int nMaxCount)
DWORD WINAPI GetLastError(void)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define STG_E_INVALIDPOINTER
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
BOOL WINAPI DeleteDC(_In_ HDC)
DWORD WINAPI GetSysColor(_In_ int)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
UINT WINAPI PrivateExtractIconsW(_In_reads_(MAX_PATH) LPCWSTR szFileName, _In_ int nIconIndex, _In_ int cxIcon, _In_ int cyIcon, _Out_writes_opt_(nIcons) HICON *phicon, _Out_writes_opt_(nIcons) UINT *piconid, _In_ UINT nIcons, _In_ UINT flags)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI DrawIconEx(_In_ HDC, _In_ int, _In_ int, _In_ HICON, _In_ int, _In_ int, _In_ UINT, _In_opt_ HBRUSH, _In_ UINT)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HWND WINAPI GetParent(_In_ HWND)
#define MAKEINTRESOURCEW(i)
int WINAPI GetSystemMetrics(_In_ int)
#define SW_SHOWMINNOACTIVE
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI InsertMenuItemW(_In_ HMENU, _In_ UINT, _In_ BOOL, _In_ LPCMENUITEMINFOW)
SHORT WINAPI GetKeyState(_In_ int)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
BOOL WINAPI DestroyIcon(_In_ HICON)
_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)