152#define ICON_LINK_WINDOWS_COMPAT
154#define SHLINK_LOCAL 0
155#define SHLINK_REMOTE 1
290 TRACE(
"-- destroying IShellLink(%p)\n",
this);
307 TRACE(
"%p %p\n",
this, pclsid);
311 *pclsid = CLSID_ShellLink;
320 TRACE(
"(%p)\n",
this);
341 TRACE(
"-- returning hr %08x\n",
hr);
395 *ppszFileName =
NULL;
479 TRACE(
"ret = %d type %d serial %08x name %s\n", bRet,
489 unsigned char data[1];
581 if (
n && n < loc->dwTotalSize)
584 TRACE(
"type %d serial %08x name %s path %s\n",
volume->type,
618 ERR(
"Ooops. This structure is not as expected...\n");
633 TRACE(
"%p %p\n",
this, stm);
641 ULONG dwBytesRead = 0;
646 if (dwBytesRead !=
sizeof(
m_Header))
751#if (NTDDI_VERSION < NTDDI_LONGHORN)
833 DWORD volume_info_size =
sizeof(*vol) + label_size;
834 DWORD final_path_size = 1;
835 DWORD total_size =
sizeof(*loc) + volume_info_size + path_size + final_path_size;
851 loc->
dwFinalPathOfs =
sizeof(*loc) + volume_info_size + path_size;
854 vol->
dwSize = volume_info_size;
880 TRACE(
"%p %p %x\n",
this, stm, fClearDirty);
892#if (NTDDI_VERSION < NTDDI_LONGHORN)
923 ERR(
"Write failed\n");
934 ERR(
"Failed to write PIDL\n");
1004 TRACE(
"(%p)\n",
this);
1022 if (!
path || !psPath)
1025 if (!*psPath && sPathRel)
1060 wcscpy(abs_path, sPathRel);
1076 TRACE(
"(%p)->(pfile=%p len=%u find_data=%p flags=%u)(%s)\n",
1085 hr =
GetPath(pszFileW, cchMaxPath, &wfd, fFlags);
1112 pfd->cAlternateFileName,
sizeof(
pfd->cAlternateFileName),
NULL,
NULL);
1121 TRACE(
"(%p)->(ppidl=%p)\n",
this, ppidl);
1135 TRACE(
"(%p)->(pidl=%p)\n",
this, pidl);
1141 TRACE(
"(%p)->(%p len=%u)\n",
this, pszName, cchMaxName);
1155 TRACE(
"(%p)->(pName=%s)\n",
this, pszName);
1173 TRACE(
"(%p)->(%p len=%u)\n",
this,
pszDir, cchMaxPath);
1205 TRACE(
"(%p)->(%p len=%u)\n",
this, pszArgs, cchMaxPath);
1219 TRACE(
"(%p)->(args=%s)\n",
this, pszArgs);
1244 TRACE(
"(%p)->(hotkey=%x)\n",
this, wHotkey);
1261 TRACE(
"(%p) %d\n",
this, iShowCmd);
1274 TRACE(
"(%p)->(%p len=%u iicon=%p)\n",
this, pszIconPath, cchIconPath, piIcon);
1286 pszIconPath, cchIconPath,
NULL,
NULL);
1299 TRACE(
"(%p)->(%u %p len=%u piIndex=%p pwFlags=%p)\n",
this,
uFlags, pszIconFile,
cchMax, piIndex, pwFlags);
1321 TRACE(
"(%p)->(path=%s iicon=%u)\n",
this, pszFile, nIconIndex);
1341 TRACE(
"(%p)->(path=%s iicon=%u)\n",
this, pszIconPath, iIcon);
1403 TRACE(
"(%p)->(hwnd=%p flags=%x)\n",
this,
hwnd, fFlags);
1409#if (NTDDI_VERSION < NTDDI_LONGHORN)
1413 FIXME(
"Logo3 links are not supported yet!\n");
1469 TRACE(
"(%p)->(path=%s)\n",
this, pszFile);
1488 TRACE(
"(%p)->(pfile=%p len=%u find_data=%p flags=%u)(%s)\n",
1524 pfd->nFileSizeHigh = 0;
1549 if (pInfo && (pInfo->
cbSize ==
sizeof(*pInfo)))
1556 if (fFlags)
FIXME(
"(%p): Unsupported flags %lu\n",
this, fFlags);
1567 TRACE(
"(%p)->(%p len=%u)\n",
this, pszName, cchMaxName);
1596 TRACE(
"(%p)->(%p len %u)\n",
this,
pszDir, cchMaxPath);
1627 TRACE(
"(%p)->(%p len=%u)\n",
this, pszArgs, cchMaxPath);
1658 TRACE(
"(%p)->(%p len=%u iicon=%p)\n",
this, pszIconPath, cchIconPath, piIcon);
1673 if (pInfo && (pInfo->
cbSize ==
sizeof(*pInfo)))
1713 hr = pei->GetIconLocation(
uFlags, pszIconFile,
cchMax, piIndex, pwFlags);
1734 if (
uFlags & GIL_FORSHORTCUT)
1742 uFlags |= GIL_FORSHORTCUT;
1744 if (
uFlags & GIL_DEFAULTICON)
1754 *pwFlags = GIL_NOTFILENAME | GIL_PERCLASS;
1768 *phiconLarge =
NULL;
1771 if (*phiconLarge ==
NULL)
1777 *phiconSmall =
NULL;
1780 if (*phiconSmall ==
NULL)
1786 if (phiconLarge && *phiconLarge)
1789 *phiconLarge =
NULL;
1791 if (phiconSmall && *phiconSmall)
1794 *phiconSmall =
NULL;
1803BOOL PathFullyUnExpandEnvStringsW(
1813 while (*pszPath && cchBuf > 0)
1822 p = pszPath +
wcslen(pszPath);
1826 if (
p - pszPath >= cchBuf)
1830 wcsncpy(pszBuf, pszPath,
p - pszPath);
1831 pszBuf[
p - pszPath] =
L'\0';
1834 cchBuf -= (
p - pszPath);
1835 pszBuf += (
p - pszPath);
1836 pszPath += (
p - pszPath);
1854 p = pszPath +
wcslen(pszPath);
1856 while ((*
p == *
q) && (
p > pszPath) && (
q > pszBuf))
1864 cchBuf -= (
q - pszBuf);
1881 TRACE(
"(%p)->(path=%s iicon=%u)\n",
this,
debugstr_w(pszIconPath), iIcon);
1895#ifdef ICON_LINK_WINDOWS_COMPAT
1909 if (
wcscmp(pszIconPath, szIconPath) != 0)
1919#ifdef ICON_LINK_WINDOWS_COMPAT
1921 LPCWSTR pszOrgIconPath = pszIconPath;
1922 pszIconPath = szIconPath;
1928 if (pInfo->
cbSize !=
sizeof(*pInfo))
1930 ERR(
"Ooops. This structure is not as expected...\n");
1958#ifdef ICON_LINK_WINDOWS_COMPAT
1960 pszIconPath = pszOrgIconPath;
1963 pszIconPath = szIconPath;
1979#ifdef ICON_LINK_WINDOWS_COMPAT
2046 && (dwSig != EXP_LOGO3_ID_SIG)
2060 if (pInfo->
dbh.
cbSize !=
sizeof(*pInfo))
2062 ERR(
"Ooops. This structure is not as expected...\n");
2067#if (NTDDI_VERSION < NTDDI_LONGHORN)
2068 else if (dwSig == EXP_LOGO3_ID_SIG)
2082 buffer.dbh.dwSignature = dwSig;
2096#if (NTDDI_VERSION < NTDDI_LONGHORN)
2097 else if (dwSig == EXP_LOGO3_ID_SIG)
2118 if (
str[0] !=
':' ||
str[1] !=
':')
2167#if (NTDDI_VERSION < NTDDI_LONGHORN)
2180#if (NTDDI_VERSION < NTDDI_LONGHORN)
2199 if (pidl && pszFile)
2288 if (pszFile[0] ==
L'"' && pszFile[
len-1] ==
L'"')
2340 if (pInfo->
cbSize !=
sizeof(*pInfo))
2342 ERR(
"Ooops. This structure is not as expected...\n");
2411 TRACE(
"%p %08x %p\n",
this, dwSig, ppDataBlock);
2413 *ppDataBlock =
NULL;
2418 ERR(
"unknown datablock %08x (not found)\n", dwSig);
2428 *ppDataBlock = pDataBlock;
2444 TRACE(
"%p %p\n",
this, pdwFlags);
2468 TRACE(
"%p %p %p %p\n",
this, pidlFolder, pdtobj, hkeyProgID);
2476 format.dwAspect = DVASPECT_CONTENT;
2478 format.tymed = TYMED_HGLOBAL;
2509 TRACE(
"%p %p %u %u %u %u\n",
this,
2510 hMenu, indexMenu, idCmdFirst, idCmdLast,
uFlags);
2520 mii.
cbSize =
sizeof(mii);
2524 mii.
wID = idCmdFirst +
id++;
2533 mii.
wID = idCmdFirst +
id++;
2554 ERR(
"ret: %08lX\n",
ret);
2563 TRACE(
"%p %p\n",
this, lpici);
2575 TRACE(
"failed to resolve component error 0x%08x\n",
hr);
2580 TRACE(
"idCmd: %d\n", idCmd);
2600 (lpici->
fMask & CMIC_MASK_UNICODE) )
2627 sei.
cbSize =
sizeof(sei);
2662 FIXME(
"%p %lu %u %p %p %u\n",
this, idCmd, uType, pwReserved, pszName,
cchMax);
2718 ERR(
"SHGetFileInfoW failed for %ls (%lu)\n", lpcwFullPath,
GetLastError());
2729 size_t cchRemaining = 0;
2746 TRACE(
"CShellLink::OnInitDialog(hwnd %p hwndFocus %p lParam %p)\n", hwndDlg, hwndFocus,
lParam);
2927 if (unquoted[0] ==
'"' && unquoted[
wcslen(unquoted) - 1] ==
'"')
3012 pThis->OnDestroy(hwndDlg);
3031 ERR(
"failed to create property sheet page\n");
3035 if (!pfnAddPage(hPage,
lParam))
3043 TRACE(
"(%p) (uPageID %u, pfnReplacePage %p lParam %p\n",
this, uPageID, pfnReplacePage,
lParam);
3049 TRACE(
"%p %p\n",
this, punk);
3063 return m_site->QueryInterface(iid, ppvSite);
3069 TRACE(
"(%p)->(DataObject=%p)\n",
this, pDataObject);
3097 TRACE(
"(%p)\n",
this);
3106 TRACE(
"(%p)\n",
this);
3120 TRACE(
"(%p)\n",
this);
3142 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)
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)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
UINT WINAPI GetDriveTypeW(IN LPCWSTR lpRootPathName)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
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)
LPWSTR SH_GetTargetTypeByPath(LPCWSTR lpcwFullPath)
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 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)
BOOL WINAPI PickIconDlg(HWND hWndOwner, LPWSTR lpstrFile, UINT nMaxFile, INT *lpdwIconIndex)
const GUID SHELL32_AdvtShortcutProduct
const GUID SHELL32_AdvtShortcutComponent
UINT WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszwFile, UINT lLength)
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)
LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath)
BOOL WINAPI StrTrimW(LPWSTR lpszStr, LPCWSTR lpszTrim)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
#define MAKE_HRESULT(sev, fac, code)
HPROPSHEETPAGE SH_CreatePropertySheetPage(LPCSTR resname, DLGPROC dlgproc, LPARAM lParam, LPWSTR szTitle)
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
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)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
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 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 LOCALE_USER_DEFAULT
#define UNREFERENCED_PARAMETER(P)
#define STGM_SHARE_EXCLUSIVE
#define STGM_SHARE_DENY_WRITE
#define PathAddBackslashW
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
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)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_Check_return_ _CRTIMP _CONST_RETURN wchar_t *__cdecl wcspbrk(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
#define SHGFI_USEFILEATTRIBUTES
#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
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_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 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
BITMAPINFOHEADER bmiHeader
#define FIELD_OFFSET(t, f)
WORD WORD PSZ PSZ pszFileName
#define INVALID_FILE_ATTRIBUTES
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)
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)
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)
#define IID_NULL_PPV_ARG(Itype, ppType)