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))
767#if (NTDDI_VERSION < NTDDI_LONGHORN)
849 DWORD volume_info_size =
sizeof(*vol) + label_size;
850 DWORD final_path_size = 1;
851 DWORD total_size =
sizeof(*loc) + volume_info_size + path_size + final_path_size;
867 loc->
dwFinalPathOfs =
sizeof(*loc) + volume_info_size + path_size;
870 vol->
dwSize = volume_info_size;
896 TRACE(
"%p %p %x\n",
this, stm, fClearDirty);
923#if (NTDDI_VERSION < NTDDI_LONGHORN)
954 ERR(
"Write failed\n");
965 ERR(
"Failed to write PIDL\n");
1035 TRACE(
"(%p)\n",
this);
1053 if (!
path || !psPath)
1056 if (!*psPath && sPathRel)
1091 wcscpy(abs_path, sPathRel);
1107 TRACE(
"(%p)->(pfile=%p len=%u find_data=%p flags=%u)(%s)\n",
1116 hr =
GetPath(pszFileW, cchMaxPath, &wfd, fFlags);
1143 pfd->cAlternateFileName,
sizeof(
pfd->cAlternateFileName),
NULL,
NULL);
1152 TRACE(
"(%p)->(ppidl=%p)\n",
this, ppidl);
1166 TRACE(
"(%p)->(pidl=%p)\n",
this, pidl);
1172 TRACE(
"(%p)->(%p len=%u)\n",
this, pszName, cchMaxName);
1186 TRACE(
"(%p)->(pName=%s)\n",
this, pszName);
1204 TRACE(
"(%p)->(%p len=%u)\n",
this,
pszDir, cchMaxPath);
1236 TRACE(
"(%p)->(%p len=%u)\n",
this, pszArgs, cchMaxPath);
1250 TRACE(
"(%p)->(args=%s)\n",
this, pszArgs);
1275 TRACE(
"(%p)->(hotkey=%x)\n",
this, wHotkey);
1292 TRACE(
"(%p) %d\n",
this, iShowCmd);
1305 TRACE(
"(%p)->(%p len=%u iicon=%p)\n",
this, pszIconPath, cchIconPath, piIcon);
1317 pszIconPath, cchIconPath,
NULL,
NULL);
1330 TRACE(
"(%p)->(%u %p len=%u piIndex=%p pwFlags=%p)\n",
this,
uFlags, pszIconFile,
cchMax, piIndex, pwFlags);
1352 TRACE(
"(%p)->(path=%s iicon=%u)\n",
this, pszFile, nIconIndex);
1372 TRACE(
"(%p)->(path=%s iicon=%u)\n",
this, pszIconPath, iIcon);
1434 TRACE(
"(%p)->(hwnd=%p flags=%x)\n",
this,
hwnd, fFlags);
1440#if (NTDDI_VERSION < NTDDI_LONGHORN)
1444 FIXME(
"Logo3 links are not supported yet!\n");
1500 TRACE(
"(%p)->(path=%s)\n",
this, pszFile);
1519 TRACE(
"(%p)->(pfile=%p len=%u find_data=%p flags=%u)(%s)\n",
1555 pfd->nFileSizeHigh = 0;
1580 if (pInfo && (pInfo->
cbSize ==
sizeof(*pInfo)))
1587 if (fFlags)
FIXME(
"(%p): Unsupported flags %lu\n",
this, fFlags);
1598 TRACE(
"(%p)->(%p len=%u)\n",
this, pszName, cchMaxName);
1627 TRACE(
"(%p)->(%p len %u)\n",
this,
pszDir, cchMaxPath);
1658 TRACE(
"(%p)->(%p len=%u)\n",
this, pszArgs, cchMaxPath);
1689 TRACE(
"(%p)->(%p len=%u iicon=%p)\n",
this, pszIconPath, cchIconPath, piIcon);
1704 if (pInfo && (pInfo->
cbSize ==
sizeof(*pInfo)))
1736 hr = pei->GetIconLocation(
uFlags, pszIconFile,
cchMax, piIndex, pwFlags);
1757 if (
uFlags & GIL_FORSHORTCUT)
1765 uFlags |= GIL_FORSHORTCUT;
1767 if (
uFlags & GIL_DEFAULTICON)
1777 *pwFlags = GIL_NOTFILENAME | GIL_PERCLASS;
1791 *phiconLarge =
NULL;
1794 if (*phiconLarge ==
NULL)
1800 *phiconSmall =
NULL;
1803 if (*phiconSmall ==
NULL)
1809 if (phiconLarge && *phiconLarge)
1812 *phiconLarge =
NULL;
1814 if (phiconSmall && *phiconSmall)
1817 *phiconSmall =
NULL;
1826BOOL PathFullyUnExpandEnvStringsW(
1836 while (*pszPath && cchBuf > 0)
1845 p = pszPath +
wcslen(pszPath);
1849 if (
p - pszPath >= cchBuf)
1853 wcsncpy(pszBuf, pszPath,
p - pszPath);
1854 pszBuf[
p - pszPath] =
L'\0';
1857 cchBuf -= (
p - pszPath);
1858 pszBuf += (
p - pszPath);
1859 pszPath += (
p - pszPath);
1877 p = pszPath +
wcslen(pszPath);
1879 while ((*
p == *
q) && (
p > pszPath) && (
q > pszBuf))
1887 cchBuf -= (
q - pszBuf);
1904 TRACE(
"(%p)->(path=%s iicon=%u)\n",
this,
debugstr_w(pszIconPath), iIcon);
1918#ifdef ICON_LINK_WINDOWS_COMPAT
1932 if (
wcscmp(pszIconPath, szIconPath) != 0)
1942#ifdef ICON_LINK_WINDOWS_COMPAT
1944 LPCWSTR pszOrgIconPath = pszIconPath;
1945 pszIconPath = szIconPath;
1951 if (pInfo->
cbSize !=
sizeof(*pInfo))
1953 ERR(
"Ooops. This structure is not as expected...\n");
1981#ifdef ICON_LINK_WINDOWS_COMPAT
1983 pszIconPath = pszOrgIconPath;
1986 pszIconPath = szIconPath;
2002#ifdef ICON_LINK_WINDOWS_COMPAT
2069 && (dwSig != EXP_LOGO3_ID_SIG)
2083 if (pInfo->
dbh.
cbSize !=
sizeof(*pInfo))
2085 ERR(
"Ooops. This structure is not as expected...\n");
2090#if (NTDDI_VERSION < NTDDI_LONGHORN)
2091 else if (dwSig == EXP_LOGO3_ID_SIG)
2105 buffer.dbh.dwSignature = dwSig;
2119#if (NTDDI_VERSION < NTDDI_LONGHORN)
2120 else if (dwSig == EXP_LOGO3_ID_SIG)
2141 if (
str[0] !=
':' ||
str[1] !=
':')
2190#if (NTDDI_VERSION < NTDDI_LONGHORN)
2203#if (NTDDI_VERSION < NTDDI_LONGHORN)
2222 if (pidl && pszFile)
2311 if (pszFile[0] ==
L'"' && pszFile[
len-1] ==
L'"')
2363 if (pInfo->
cbSize !=
sizeof(*pInfo))
2365 ERR(
"Ooops. This structure is not as expected...\n");
2434 TRACE(
"%p %08x %p\n",
this, dwSig, ppDataBlock);
2436 *ppDataBlock =
NULL;
2441 ERR(
"unknown datablock %08x (not found)\n", dwSig);
2451 *ppDataBlock = pDataBlock;
2467 TRACE(
"%p %p\n",
this, pdwFlags);
2491 TRACE(
"%p %p %p %p\n",
this, pidlFolder, pdtobj, hkeyProgID);
2499 format.dwAspect = DVASPECT_CONTENT;
2501 format.tymed = TYMED_HGLOBAL;
2532 TRACE(
"%p %p %u %u %u %u\n",
this,
2533 hMenu, indexMenu, idCmdFirst, idCmdLast,
uFlags);
2543 mii.
cbSize =
sizeof(mii);
2547 mii.
wID = idCmdFirst +
id++;
2556 mii.
wID = idCmdFirst +
id++;
2577 ERR(
"ret: %08lX\n",
ret);
2586 TRACE(
"%p %p\n",
this, lpici);
2598 TRACE(
"failed to resolve component error 0x%08x\n",
hr);
2603 TRACE(
"idCmd: %d\n", idCmd);
2619 const BOOL unicode = IsUnicode(*lpici);
2658 sei.
fMask &= ~SEE_MASK_DOENVSUBST;
2683 FIXME(
"%p %lu %u %p %p %u\n",
this, idCmd, uType, pwReserved, pszName,
cchMax);
2733 ERR(
"SHGetFileInfoW failed for %ls (%lu)\n", pszFullPath,
GetLastError());
2754 TRACE(
"CShellLink::OnInitDialog(hwnd %p hwndFocus %p lParam %p)\n", hwndDlg, hwndFocus,
lParam);
2855 disablecontrols =
TRUE;
2875 disablecontrols =
TRUE;
2992 if (unquoted[0] ==
'"' && unquoted[
wcslen(unquoted) - 1] ==
'"')
3077 pThis->OnDestroy(hwndDlg);
3094 (
LPARAM)
this,
NULL, &PropSheetPageLifetimeCallback<CShellLink>);
3100 enum { CShellLink_PageIndex_Shortcut = 0 };
3101 return 1 + CShellLink_PageIndex_Shortcut;
3106 TRACE(
"(%p) (uPageID %u, pfnReplacePage %p lParam %p\n",
this, uPageID, pfnReplacePage,
lParam);
3112 TRACE(
"%p %p\n",
this, punk);
3126 return m_site->QueryInterface(iid, ppvSite);
3132 TRACE(
"(%p)->(DataObject=%p)\n",
this, pDataObject);
3149 TRACE(
"(%p)\n",
this);
3158 TRACE(
"(%p)\n",
this);
3172 TRACE(
"(%p)\n",
this);
3194 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)
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
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)
BOOL WINAPI PathFileExistsAndAttributesW(LPCWSTR lpszPath, DWORD *dwAttr)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
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 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 UNREFERENCED_PARAMETER(P)
#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)
_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]