Commit eac255cd authored by Juergen Schmied's avatar Juergen Schmied Committed by Alexandre Julliard

More use of rc files for strings and menus, fixes. First internal

icons.
parent 9bffcfc5
......@@ -199,7 +199,7 @@ static HRESULT WINAPI IExtractIconA_fnGetIconLocation(
else /* object is file */
{
if (_ILGetExtension (pSimplePidl, sTemp, MAX_PATH)
&& HCR_MapTypeToValue(sTemp, sTemp, MAX_PATH)
&& HCR_MapTypeToValue(sTemp, sTemp, MAX_PATH, TRUE)
&& HCR_GetDefaultIcon(sTemp, sTemp, MAX_PATH, &dwNr))
{
if (!strcmp("%1",sTemp)) /* icon is in the file */
......
......@@ -276,38 +276,38 @@ HRESULT WINAPI ILLoadFromStream (IStream * pStream, LPITEMIDLIST * ppPidl)
* NOTES
* wraper for IShellFolder::ParseDisplayName()
*/
HRESULT WINAPI SHILCreateFromPathA (LPSTR path, LPITEMIDLIST * ppidl, DWORD attributes)
HRESULT WINAPI SHILCreateFromPathA (LPCSTR path, LPITEMIDLIST * ppidl, DWORD * attributes)
{ LPSHELLFOLDER sf;
WCHAR lpszDisplayName[MAX_PATH];
DWORD pchEaten;
HRESULT ret = E_FAIL;
TRACE_(shell)("%s %p 0x%08lx\n",path,ppidl,attributes);
TRACE_(shell)("%s %p 0x%08lx\n",path,ppidl,attributes?*attributes:0);
LocalToWideChar(lpszDisplayName, path, MAX_PATH);
if (SUCCEEDED (SHGetDesktopFolder(&sf)))
{
ret = sf->lpvtbl->fnParseDisplayName(sf,0, NULL,lpszDisplayName,&pchEaten,ppidl,&attributes);
sf->lpvtbl->fnRelease(sf);
ret = IShellFolder_ParseDisplayName(sf,0, NULL,lpszDisplayName,&pchEaten,ppidl,attributes);
IShellFolder_Release(sf);
}
return ret;
}
HRESULT WINAPI SHILCreateFromPathW (LPWSTR path, LPITEMIDLIST * ppidl, DWORD attributes)
HRESULT WINAPI SHILCreateFromPathW (LPCWSTR path, LPITEMIDLIST * ppidl, DWORD * attributes)
{ LPSHELLFOLDER sf;
DWORD pchEaten;
HRESULT ret = E_FAIL;
TRACE_(shell)("%s %p 0x%08lx\n",debugstr_w(path),ppidl,attributes);
TRACE_(shell)("%s %p 0x%08lx\n",debugstr_w(path),ppidl,attributes?*attributes:0);
if (SUCCEEDED (SHGetDesktopFolder(&sf)))
{
ret = sf->lpvtbl->fnParseDisplayName(sf,0, NULL, path, &pchEaten, ppidl, &attributes);
sf->lpvtbl->fnRelease(sf);
ret = IShellFolder_ParseDisplayName(sf,0, NULL, path, &pchEaten, ppidl, attributes);
IShellFolder_Release(sf);
}
return ret;
}
HRESULT WINAPI SHILCreateFromPathAW (LPVOID path, LPITEMIDLIST * ppidl, DWORD attributes)
HRESULT WINAPI SHILCreateFromPathAW (LPCVOID path, LPITEMIDLIST * ppidl, DWORD * attributes)
{
if ( VERSION_OsIsUnicode())
return SHILCreateFromPathW (path, ppidl, attributes);
......@@ -698,27 +698,29 @@ DWORD WINAPI ILGlobalFree( LPITEMIDLIST pidl)
* ILCreateFromPath [SHELL32.157]
*
*/
LPITEMIDLIST WINAPI ILCreateFromPathA (LPSTR path)
LPITEMIDLIST WINAPI ILCreateFromPathA (LPCSTR path)
{
LPITEMIDLIST pidlnew;
DWORD attributes = 0;
TRACE_(shell)("%s\n",path);
if (SUCCEEDED (SHILCreateFromPathA (path, &pidlnew, 0)))
if (SUCCEEDED (SHILCreateFromPathA (path, &pidlnew, &attributes)))
return pidlnew;
return FALSE;
}
LPITEMIDLIST WINAPI ILCreateFromPathW (LPWSTR path)
LPITEMIDLIST WINAPI ILCreateFromPathW (LPCWSTR path)
{
LPITEMIDLIST pidlnew;
DWORD attributes = 0;
TRACE_(shell)("%s\n",debugstr_w(path));
if (SUCCEEDED (SHILCreateFromPathW (path, &pidlnew, 0)))
if (SUCCEEDED (SHILCreateFromPathW (path, &pidlnew, &attributes)))
return pidlnew;
return FALSE;
}
LPITEMIDLIST WINAPI ILCreateFromPathAW (LPVOID path)
LPITEMIDLIST WINAPI ILCreateFromPathAW (LPCVOID path)
{
if ( VERSION_OsIsUnicode())
return ILCreateFromPathW (path);
......@@ -813,7 +815,7 @@ HRESULT WINAPI SHGetSpecialFolderLocation(
{
DWORD attributes=0;
TRACE_(shell)("Value=%s\n",szPath);
hr = SHILCreateFromPathA(szPath, ppidl, attributes);
hr = SHILCreateFromPathA(szPath, ppidl, &attributes);
}
}
}
......@@ -891,7 +893,7 @@ HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int n
* fnGetDisplayNameOf can return different types of OLEString
*/
BOOL WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath)
{ STRRET lpName;
{ STRRET str;
LPSHELLFOLDER shellfolder;
TRACE_(shell)("(pidl=%p,%p)\n",pidl,pszPath);
......@@ -908,10 +910,10 @@ BOOL WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath)
{
if (SHGetDesktopFolder(&shellfolder)==S_OK)
{
IShellFolder_GetDisplayNameOf(shellfolder,pidl,SHGDN_FORPARSING,&lpName);
IShellFolder_GetDisplayNameOf(shellfolder,pidl,SHGDN_FORPARSING,&str);
StrRetToStrNA (pszPath, MAX_PATH, &str, pidl);
IShellFolder_Release(shellfolder);
}
strcpy(pszPath,lpName.u.cStr);
}
TRACE_(shell)("-- (%s)\n",pszPath);
......@@ -945,27 +947,37 @@ HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCI
TRACE_(shell)("pidl=%p\n", pidl);
pdump(pidl);
if (_ILIsPidlSimple(pidl)) return E_INVALIDARG;
*ppv = NULL;
if (ppidlLast) *ppidlLast = NULL;
if (_ILIsPidlSimple(pidl))
{
/* we are on desktop level */
if (ppidlLast)
*ppidlLast = ILClone(pidl);
hr = SHGetDesktopFolder((IShellFolder**)ppv);
}
else
{
pidlChild = ILClone(ILFindLastID(pidl));
pidlParent = ILClone(pidl);
ILRemoveLastID(pidlParent);
if (SUCCEEDED(SHGetDesktopFolder(&psf)))
{
if (SUCCEEDED(IShellFolder_BindToObject(psf, pidlParent, NULL, riid, ppv)))
{
if(ppidlLast)
hr = SHGetDesktopFolder(&psf);
if (SUCCEEDED(hr))
hr = IShellFolder_BindToObject(psf, pidlParent, NULL, riid, ppv);
if (SUCCEEDED(hr) && ppidlLast)
*ppidlLast = pidlChild;
else
ILFree (pidlChild);
hr = S_OK;
}
}
SHFree (pidlParent);
}
TRACE_(shell)("-- psf=%p pidl=%p\n", *ppv, (ppidlLast)?*ppidlLast:NULL);
TRACE_(shell)("-- psf=%p pidl=%p ret=0x%08lx\n", *ppv, (ppidlLast)?*ppidlLast:NULL, hr);
return hr;
}
......
......@@ -176,7 +176,7 @@ init Shell32LibMain
168 stub SHCreatePropSheetExtArray
169 stub SHDestroyPropSheetExtArray
170 stub SHReplaceFromPropSheetExtArray
171 stdcall PathCleanupSpec(ptr ptr) PathCleanupSpec
171 stdcall PathCleanupSpec(ptr ptr) PathCleanupSpecAW
172 stub SHCreateLinks
173 stdcall SHValidateUNC(long long long)SHValidateUNC
174 stdcall SHCreateShellFolderViewEx (ptr ptr) SHCreateShellFolderViewEx
......
......@@ -53,6 +53,13 @@ extern LPVOID (WINAPI* pDPA_DeletePtr) (const HDPA hdpa, INT i);
extern HICON (WINAPI *pLookupIconIdFromDirectoryEx)(LPBYTE dir, BOOL bIcon, INT width, INT height, UINT cFlag);
extern HICON (WINAPI *pCreateIconFromResourceEx)(LPBYTE bits,UINT cbSize, BOOL bIcon, DWORD dwVersion, INT width, INT height,UINT cFlag);
/* ole2 */
extern HRESULT (WINAPI* pOleInitialize)(LPVOID reserved);
extern void (WINAPI* pOleUninitialize)(void);
extern HRESULT (WINAPI* pDoDragDrop)(IDataObject* pDataObject, IDropSource * pDropSource, DWORD dwOKEffect, DWORD * pdwEffect);
extern HRESULT (WINAPI* pRegisterDragDrop)(HWND hwnd, IDropTarget* pDropTarget);
extern HRESULT (WINAPI* pRevokeDragDrop)(HWND hwnd);
BOOL WINAPI Shell_GetImageList(HIMAGELIST * lpBigList, HIMAGELIST * lpSmallList);
HRESULT WINAPI StrRetToStrN (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl);
......@@ -63,7 +70,7 @@ void SIC_Destroy(void);
BOOL PidlToSicIndex (IShellFolder * sh, LPITEMIDLIST pidl, BOOL bBigIcon, UINT * pIndex);
/* Classes Root */
BOOL HCR_MapTypeToValue ( LPCSTR szExtension, LPSTR szFileType, DWORD len);
BOOL HCR_MapTypeToValue ( LPCSTR szExtension, LPSTR szFileType, DWORD len, BOOL bPrependDot);
BOOL HCR_GetExecuteCommand ( LPCSTR szClass, LPCSTR szVerb, LPSTR szDest, DWORD len );
BOOL HCR_GetDefaultIcon (LPCSTR szClass, LPSTR szDest, DWORD len, LPDWORD dwNr);
BOOL HCR_GetClassName (REFIID riid, LPSTR szDest, DWORD len);
......@@ -90,7 +97,7 @@ LPSHELLLINK IShellLink_Constructor(BOOL);
IShellFolder * ISF_Desktop_Constructor(void);
/* 3th parameter */
/* kind of enumidlist */
#define EIDL_DESK 0
#define EIDL_MYCOMP 1
#define EIDL_FILE 2
......@@ -113,4 +120,19 @@ LRESULT WINAPI SHCoCreateInstance(LPSTR,REFCLSID,LPUNKNOWN,REFIID,LPVOID *);
#define MM_SUBMENUSHAVEIDS 0x00000002L
HRESULT WINAPI Shell_MergeMenus (HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags);
/* initialisation for FORMATETC */
#define InitFormatEtc(fe, cf, med) \
{\
(fe).cfFormat=cf;\
(fe).dwAspect=DVASPECT_CONTENT;\
(fe).ptd=NULL;\
(fe).tymed=med;\
(fe).lindex=-1;\
};
#define KeyStateToDropEffect(kst)\
(((kst) & MK_CONTROL) ?\
(((kst) & MK_SHIFT) ? DROPEFFECT_LINK : DROPEFFECT_COPY):\
DROPEFFECT_MOVE)
#endif
......@@ -26,12 +26,13 @@ DEFAULT_DEBUG_CHANNEL(shell)
#include "pshpack1.h"
/* lnk elements: simple link has 0x0B */
/* flag1: lnk elements: simple link has 0x0B */
#define WORKDIR 0x10
#define ARGUMENT 0x20
#define ICON 0x40
#define UNC 0x80
/* startup type */
/* fStartup */
#define NORMAL 0x01
#define MAXIMIZED 0x03
#define MINIMIZED 0x07
......@@ -46,7 +47,7 @@ typedef struct _LINK_HEADER
FILETIME Time3; /* 0x2c */
DWORD Unknown1; /* 0x34 */
DWORD Unknown2; /* 0x38 icon number */
DWORD Flag3; /* 0x3c startup type */
DWORD fStartup; /* 0x3c startup type */
DWORD wHotKey; /* 0x40 hotkey */
DWORD Unknown5; /* 0x44 */
DWORD Unknown6; /* 0x48 */
......@@ -81,6 +82,9 @@ typedef struct
LPSTR sPath;
LPITEMIDLIST pPidl;
WORD wHotKey;
SYSTEMTIME time1;
SYSTEMTIME time2;
SYSTEMTIME time3;
} IShellLinkImpl;
......@@ -315,27 +319,31 @@ static HRESULT WINAPI IPersistStream_fnLoad(
SHGetPathFromIDListA(&lpLinkHeader->Pidl, sTemp);
This->sPath = HEAP_strdupA ( GetProcessHeap(), 0, sTemp);
}
This->wHotKey = lpLinkHeader->wHotKey;
FileTimeToSystemTime (&lpLinkHeader->Time1, &This->time1);
FileTimeToSystemTime (&lpLinkHeader->Time2, &This->time2);
FileTimeToSystemTime (&lpLinkHeader->Time3, &This->time3);
#if 1
GetDateFormatA(LOCALE_USER_DEFAULT,DATE_SHORTDATE,&This->time1, NULL, sTemp, 256);
TRACE("-- time1: %s\n", sTemp);
GetDateFormatA(LOCALE_USER_DEFAULT,DATE_SHORTDATE,&This->time2, NULL, sTemp, 256);
TRACE("-- time1: %s\n", sTemp);
GetDateFormatA(LOCALE_USER_DEFAULT,DATE_SHORTDATE,&This->time3, NULL, sTemp, 256);
TRACE("-- time1: %s\n", sTemp);
pdump (This->pPidl);
#endif
ret = S_OK;
}
}
}
}
else
{ WARN("stream contains no link!\n");
{
WARN("stream contains no link!\n");
}
}
}
/* old code for debugging */
/* SYSTEMTIME time;
FileTimeToSystemTime (&pImage->Time1, &time);
GetDateFormatA(LOCALE_USER_DEFAULT,DATE_SHORTDATE,&time, NULL, sTemp, 256);
TRACE("-- time1: %s\n", sTemp);
pdump (&pImage->Pidl);
*/
IStream_Release (pLoadStream);
pdump(This->pPidl);
......
......@@ -38,11 +38,11 @@ DWORD WINAPI SHCLSIDFromStringA (LPSTR clsid, CLSID *id);
LRESULT WINAPI SHCoCreateInstance(
LPSTR aclsid,
REFCLSID clsid,
LPUNKNOWN unknownouter,
IUnknown * unknownouter,
REFIID refiid,
LPVOID *ppv)
{
char xclsid[48], xiid[48];
char xclsid[48], xiid[48], xuout[48];
DWORD hres;
IID iid;
CLSID * myclsid = (CLSID*)clsid;
......@@ -58,7 +58,11 @@ LRESULT WINAPI SHCoCreateInstance(
WINE_StringFromCLSID(myclsid,xclsid);
WINE_StringFromCLSID(refiid,xiid);
TRACE("(%p,\n\tCLSID:\t%s,%p,\n\tIID:\t%s,%p)\n",aclsid,xclsid,unknownouter,xiid,ppv);
if (unknownouter)
WINE_StringFromCLSID(unknownouter,xuout);
TRACE("(%p,\n\tCLSID:\t%s\n\tUOUT:\t%s\n\tIID:\t%s,%p)\n",
aclsid,xclsid,unknownouter?xuout:"nil",xiid,ppv);
hres = CoCreateInstance(myclsid, NULL, CLSCTX_INPROC_SERVER, refiid, ppv);
......@@ -156,15 +160,13 @@ LPSHELLFOLDER pdesktopfolder=NULL;
DWORD WINAPI SHGetDesktopFolder(IShellFolder **psf)
{
HRESULT hres = E_OUTOFMEMORY;
HRESULT hres = S_OK;
LPCLASSFACTORY lpclf;
TRACE_(shell)("%p->(%p)\n",psf,*psf);
if (pdesktopfolder)
{
hres = NOERROR;
}
else
*psf=NULL;
if (!pdesktopfolder)
{
lpclf = IClassFactory_Constructor(&CLSID_ShellDesktop);
if(lpclf)
......@@ -176,12 +178,9 @@ DWORD WINAPI SHGetDesktopFolder(IShellFolder **psf)
if (pdesktopfolder)
{
*psf = pdesktopfolder;
/* even if we create the folder, add a ref so the application cant destroy the folder*/
IShellFolder_AddRef(pdesktopfolder);
}
else
{
*psf=NULL;
*psf = pdesktopfolder;
}
TRACE_(shell)("-- %p->(%p)\n",psf, *psf);
......
......@@ -389,19 +389,25 @@ DWORD WINAPI SHCreateDirectory(LPSECURITY_ATTRIBUTES sec,LPCSTR path) {
* free_ptr() - frees memory using IMalloc
* exported by ordinal
*/
/*#define MEM_DEBUG 1*/
DWORD WINAPI SHFree(LPVOID x)
{
TRACE("%p\n",x);
#if 0
WORD len;
x -= 4;
#ifdef MEM_DEBUG
WORD len = *(LPWORD)(x-2);
if ( (*(LPWORD)x) != 0x8271)
if ( *(LPWORD)(x+len) != 0x7384)
ERR("MAGIC2!\n");
if ( (*(LPWORD)(x-4)) != 0x8271)
ERR("MAGIC1!\n");
else
memset(x-4, 0xde, len+6);
len = *(LPWORD)(x+2);
if ( *(LPWORD)( x + 4 + len) != 0x7384)
ERR("MAGIC2!\n");
TRACE("%p len=%u\n",x, len);
x -= 4;
#else
TRACE("%p\n",x);
#endif
return HeapFree(GetProcessHeap(), 0, x);
}
......@@ -415,16 +421,21 @@ DWORD WINAPI SHFree(LPVOID x)
*/
LPVOID WINAPI SHAlloc(DWORD len)
{
LPBYTE ret = (LPVOID) HeapAlloc(GetProcessHeap(),0,len);
#if 0
LPBYTE ret = (LPVOID) HeapAlloc(GetProcessHeap(),0,len + 6);
*(LPWORD)(ret) = 0x8271;
*(LPWORD)(ret+2) = len;
*(LPWORD)(ret+len+4) = 0x7384;
LPBYTE ret;
ret += 4;
#ifdef MEM_DEBUG
ret = (LPVOID) HeapAlloc(GetProcessHeap(),0,len+6);
#else
ret = (LPVOID) HeapAlloc(GetProcessHeap(),0,len);
#endif
#ifdef MEM_DEBUG
*(LPWORD)(ret) = 0x8271;
*(LPWORD)(ret+2) = (WORD)len;
*(LPWORD)(ret+4+len) = 0x7384;
ret += 4;
memset(ret, 0xdf, len);
#endif
TRACE("%lu bytes at %p\n",len, ret);
return (LPVOID)ret;
}
......@@ -1298,11 +1309,3 @@ HRESULT WINAPI DoEnvironmentSubstAW(LPVOID x, LPVOID y)
return DoEnvironmentSubstA(x, y);
}
/*************************************************************************
* PathCleanupSpec [SHELL32.171]
*
*/
BOOL WINAPI PathCleanupSpec(LPSTR x, LPSTR y)
{ FIXME("%p(%s) %p(%s) stub\n",x,debugstr_w(x),y,debugstr_w(y));
return TRUE;
}
......@@ -718,6 +718,29 @@ LPCVOID WINAPI PathGetExtensionAW(LPCVOID path,DWORD y,DWORD z)
}
/*************************************************************************
* PathCleanupSpec [SHELL32.171]
*
*/
DWORD WINAPI PathCleanupSpecA(LPSTR x, LPSTR y)
{
FIXME("%p(%s) %p(%s) stub\n",x,x,y,y);
return TRUE;
}
DWORD WINAPI PathCleanupSpecW(LPWSTR x, LPWSTR y)
{
FIXME("%p(%s) %p(%s) stub\n",x,debugstr_w(x),y,debugstr_w(y));
return TRUE;
}
DWORD WINAPI PathCleanupSpecAW (LPVOID x, LPVOID y)
{
if (VERSION_OsIsUnicode())
return PathCleanupSpecW(x,y);
return PathCleanupSpecA(x,y);
}
/*************************************************************************
* SheGetDirW [SHELL32.281]
*
*/
......
#ifndef __WINE_SHELL_RES_H
#define __WINE_SHELL_RES_H
#define IDS_FILE_TITLE 1
#define IDS_MI_FILE 2
#define IDS_MI_VIEW_FILES 3
#define IDS_TB_VIEW_FILES 4
#define IDS_MI_VIEW_IDW 5
#define IDS_TB_VIEW_IDW 6
/*
columntitles for the shellview
*/
#define IDS_SHV_COLUMN1 7
#define IDS_SHV_COLUMN2 8
#define IDS_SHV_COLUMN3 9
#define IDS_SHV_COLUMN4 10
#define IDS_SHV_COLUMN5 11
#define IDS_SHV_COLUMN6 12
#define IDS_COLUMN1 7
#define IDS_COLUMN2 8
#define IDS_COLUMN3 9
#define IDS_COLUMN4 10
#define IDS_DESKTOP 20
#define IDS_MYCOMPUTER 21
#define IDS_MI_FILEITEM 12
#define IDI_FOLDER 101
#define IDI_FOLDEROPEN 102
#define IDS_SELECT 22
#define IDS_OPEN 23
#define IDS_VIEW_LARGE 24
#define IDS_VIEW_SMALL 25
#define IDS_VIEW_LIST 26
#define IDS_VIEW_DETAILS 27
#endif
......@@ -168,15 +168,15 @@ static HRESULT WINAPI ISVBgCm_fnInvokeCommand(
{
TRACE("%s\n",lpcmi->lpVerb);
if (! strcmp(lpcmi->lpVerb,CMDSTR_NEWFOLDER))
if (! strcmp(lpcmi->lpVerb,CMDSTR_NEWFOLDERA))
{
FIXME("%s not implemented\n",lpcmi->lpVerb);
}
else if (! strcmp(lpcmi->lpVerb,CMDSTR_VIEWLIST))
else if (! strcmp(lpcmi->lpVerb,CMDSTR_VIEWLISTA))
{
SendMessageA(hWndSV, WM_COMMAND, MAKEWPARAM(FCIDM_SHVIEW_LISTVIEW,0),0 );
}
else if (! strcmp(lpcmi->lpVerb,CMDSTR_VIEWDETAILS))
else if (! strcmp(lpcmi->lpVerb,CMDSTR_VIEWDETAILSA))
{
SendMessageA(hWndSV, WM_COMMAND, MAKEWPARAM(FCIDM_SHVIEW_REPORTVIEW,0),0 );
}
......@@ -213,9 +213,6 @@ static HRESULT WINAPI ISVBgCm_fnInvokeCommand(
/**************************************************************************
* ISVBgCm_fnGetCommandString()
*
* NOTES
* the values given by the common dialogs are not documented. so we put some magic
* words in it and will see, where we get these verbs back...
*/
static HRESULT WINAPI ISVBgCm_fnGetCommandString(
IContextMenu *iface,
......@@ -233,14 +230,16 @@ static HRESULT WINAPI ISVBgCm_fnGetCommandString(
the buttons according to this */
if (uFlags == GCS_VALIDATEA)
{
/* idCommmand's are 7febd910, 7febd920, 7febd930 */
if ((idCommand==0x7febd910) ||
(idCommand==0x7febd920) ||
(idCommand==0x7febd930))
if(HIWORD(idCommand))
{
if (!strcmp((LPSTR)idCommand, CMDSTR_VIEWLISTA) ||
!strcmp((LPSTR)idCommand, CMDSTR_VIEWDETAILSA) ||
!strcmp((LPSTR)idCommand, CMDSTR_NEWFOLDERA))
{
return NOERROR;
}
}
}
FIXME("unknown command string\n");
return E_FAIL;
......
......@@ -174,6 +174,10 @@ LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf );
LPWSTR WINAPI StrFormatByteSizeW ( DWORD dw, LPWSTR pszBuf, UINT cchBuf );
#define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
DWORD WINAPI PathCleanupSpecA(LPSTR x, LPSTR y);
DWORD WINAPI PathCleanupSpecW(LPWSTR x, LPWSTR y);
#define PathCleanupSpec WINELIB_NAME_AW(PathCleanupSpec)
/****************************************************************************
* other functions
*/
......
......@@ -33,13 +33,13 @@ LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPSTR lpszPath);
LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPWSTR lpszPath);
LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW (LPVOID lpszPath);
HRESULT WINAPI SHILCreateFromPathA (LPSTR path, LPITEMIDLIST * ppidl, DWORD attributes);
HRESULT WINAPI SHILCreateFromPathW (LPWSTR path, LPITEMIDLIST * ppidl, DWORD attributes);
HRESULT WINAPI SHILCreateFromPathAW (LPVOID path, LPITEMIDLIST * ppidl, DWORD attributes);
HRESULT WINAPI SHILCreateFromPathA (LPCSTR path, LPITEMIDLIST * ppidl, DWORD *attributes);
HRESULT WINAPI SHILCreateFromPathW (LPCWSTR path, LPITEMIDLIST * ppidl, DWORD *attributes);
HRESULT WINAPI SHILCreateFromPathAW (LPCVOID path, LPITEMIDLIST * ppidl, DWORD *attributes);
LPITEMIDLIST WINAPI ILCreateFromPathA(LPSTR path);
LPITEMIDLIST WINAPI ILCreateFromPathW(LPWSTR path);
LPITEMIDLIST WINAPI ILCreateFromPathAW(LPVOID path);
LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR path);
LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path);
LPITEMIDLIST WINAPI ILCreateFromPathAW(LPCVOID path);
/*
string functions
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment