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

New stubs NTSHChangeNotifyRegister, NTSHChangeNotifyDeregister.

Cleanup, some more functions UNICODE ready.
parent b16d7a68
......@@ -115,15 +115,15 @@ static HRESULT WINAPI IPersistFile_IsDirty (LPPERSISTFILE this)
return NOERROR;
}
static HRESULT WINAPI IPersistFile_Load (LPPERSISTFILE this, LPCOLESTR32 pszFileName, DWORD dwMode)
{ FIXME(shell,"(%p)\n",this);
return NOERROR;
{ FIXME(shell,"(%p)->(%s)\n",this,debugstr_w(pszFileName));
return E_FAIL;
}
static HRESULT WINAPI IPersistFile_Save (LPPERSISTFILE this, LPCOLESTR32 pszFileName, BOOL32 fRemember)
{ FIXME(shell,"(%p)\n",this);
{ FIXME(shell,"(%p)->(%s)\n",this,debugstr_w(pszFileName));
return NOERROR;
}
static HRESULT WINAPI IPersistFile_SaveCompleted (LPPERSISTFILE this, LPCOLESTR32 pszFileName)
{ FIXME(shell,"(%p)\n",this);
{ FIXME(shell,"(%p)->(%s)\n",this,debugstr_w(pszFileName));
return NOERROR;
}
static HRESULT WINAPI IPersistFile_GetCurFile (LPPERSISTFILE this, LPOLESTR32 *ppszFileName)
......
......@@ -178,7 +178,8 @@ DWORD WINAPI SHELL32_DllGetClassObject(REFCLSID rclsid,REFIID iid,LPVOID *ppv)
if (IsEqualCLSID(rclsid, &CLSID_ShellLink))
{ if (VERSION_OsIsUnicode ())
lpclf = IShellLinkW_CF_Constructor();
lpclf = IShellLink_CF_Constructor();
else
lpclf = IShellLink_CF_Constructor();
}
else
{ lpclf = IClassFactory_Constructor();
......
......@@ -59,6 +59,30 @@ SHChangeNotifyDeregister(LONG x1)
{ FIXME(shell,"(0x%08lx):stub.\n",x1);
return 0;
}
/*************************************************************************
* NTSHChangeNotifyRegister [SHELL32.640]
* NOTES
* Idlist is an array of structures and Count specifies how many items in the array
* (usually just one I think).
*/
DWORD WINAPI NTSHChangeNotifyRegister(
HWND32 hwnd,
LONG events1,
LONG events2,
DWORD msg,
int count,
IDSTRUCT *idlist)
{ FIXME(shell,"(0x%04x,0x%08lx,0x%08lx,0x%08lx,0x%08x,%p):stub.\n",
hwnd,events1,events2,msg,count,idlist);
return 0;
}
/*************************************************************************
* NTSHChangeNotifyDeregister [SHELL32.641]
*/
DWORD WINAPI NTSHChangeNotifyDeregister(LONG x1)
{ FIXME(shell,"(0x%08lx):stub.\n",x1);
return 0;
}
/*************************************************************************
* ParseField [SHELL32.58]
......@@ -119,19 +143,6 @@ DWORD WINAPI SHGetSettings(DWORD x,DWORD y,DWORD z)
}
/*************************************************************************
* Shell_GetCachedImageIndex [SHELL32.72]
*
*/
void WINAPI Shell_GetCachedImageIndex(LPVOID x,DWORD y,DWORD z)
{ if( VERSION_OsIsUnicode())
{ FIXME(shell,"(L%s,%08lx,%08lx):stub.\n",debugstr_w((LPWSTR)x),y,z);
}
else
{ FIXME(shell,"(%s,%08lx,%08lx):stub.\n",debugstr_a((LPSTR)x),y,z);
}
}
/*************************************************************************
* SHShellFolderView_Message [SHELL32.73]
*
* PARAMETERS
......@@ -178,28 +189,6 @@ StrToOleStrN (LPWSTR lpWide, INT32 nWide, LPCSTR lpMulti, INT32 nMulti) {
return MultiByteToWideChar (0, 0, lpMulti, nMulti, lpWide, nWide);
}
/*************************************************************************
* SHCloneSpecialIDList [SHELL32.89]
*
* PARAMETERS
* hwndOwner [in]
* nFolder [in] CSIDL_xxxxx ??
*
* RETURNS
* pidl ??
* NOTES
* exported by ordinal
*/
LPITEMIDLIST WINAPI SHCloneSpecialIDList(HWND32 hwndOwner,DWORD nFolder,DWORD x3)
{ LPITEMIDLIST ppidl;
WARN(shell,"(hwnd=0x%x,csidl=0x%lx,0x%lx):semi-stub.\n",
hwndOwner,nFolder,x3);
SHGetSpecialFolderLocation(hwndOwner, nFolder, &ppidl);
return ppidl;
}
/*************************************************************************
* SHGetSpecialFolderPath [SHELL32.175]
......@@ -759,14 +748,6 @@ HRESULT WINAPI FileMenu_Destroy (DWORD u)
return 0;
}
/*************************************************************************
* SHGetDataFromIDListA [SHELL32.247]
*
*/
HRESULT WINAPI SHGetDataFromIDListA(DWORD u, DWORD v, DWORD w, DWORD x, DWORD y)
{ FIXME(shell,"0x%04lx 0x%04lx 0x%04lx 0x%04lx 0x%04lx stub\n",u,v,w,x,y);
return 0;
}
/*************************************************************************
* SHRegCloseKey32 [NT4.0:SHELL32.505]
*
*/
......@@ -1001,8 +982,8 @@ HANDLE32 WINAPI SHFreeShared(HANDLE32 hmem, DWORD procID)
* SetAppStartingCursor32 [SHELL32.99]
*
*/
HRESULT WINAPI SetAppStartingCursor32(DWORD u, DWORD v)
{ FIXME(shell,"0x%04lx 0x%04lx stub\n",u,v );
HRESULT WINAPI SetAppStartingCursor32(HWND32 u, DWORD v)
{ FIXME(shell,"hwnd=0x%04x 0x%04lx stub\n",u,v );
return 0;
}
/*************************************************************************
......@@ -1257,7 +1238,7 @@ HRESULT WINAPI SHWaitForFileToOpen(DWORD u, DWORD v, DWORD w)
* Control_FillCache_RunDLL [SHELL32.8]
*
*/
HRESULT WINAPI Control_FillCache_RunDLL(DWORD u, DWORD v, DWORD w, DWORD x)
{ FIXME(shell,"0x%04lx 0x%04lx 0x%04lx 0x%04lx stub\n",u,v,w,x);
HRESULT WINAPI Control_FillCache_RunDLL(HWND32 hWnd, HANDLE32 hModule, DWORD w, DWORD x)
{ FIXME(shell,"0x%04x 0x%04x 0x%04lx 0x%04lx stub\n",hWnd, hModule,w,x);
return 0;
}
......@@ -65,7 +65,7 @@ BOOL32 WINAPI PathIsRoot32AW(LPCVOID x)
/*************************************************************************
* PathBuildRoot [SHELL32.30]
*/
LPSTR WINAPI PathBuildRoot(LPSTR root,BYTE drive) {
LPSTR WINAPI PathBuildRoot32A(LPSTR root,BYTE drive) {
TRACE(shell,"%p %i\n",root, drive);
strcpy(root,"A:\\");
root[0]+=drive;
......@@ -237,7 +237,7 @@ LPCVOID WINAPI PathFindFilename32AW(LPCVOID fn)
* "\" -> "\"
* "a:\foo" -> "a:\"
*/
DWORD WINAPI PathRemoveFileSpec(LPSTR fn) {
DWORD WINAPI PathRemoveFileSpec32A(LPSTR fn) {
LPSTR x,cutplace;
TRACE(shell,"%s\n",fn);
if (!fn[0])
......@@ -278,7 +278,7 @@ DWORD WINAPI PathRemoveFileSpec(LPSTR fn) {
* concat_paths(char*target,const char*add);
* concats "target\\add" and writes them to target
*/
LPSTR WINAPI PathAppend(LPSTR x1,LPSTR x2) {
LPSTR WINAPI PathAppend32A(LPSTR x1,LPSTR x2) {
TRACE(shell,"%s %s\n",x1,x2);
while (x2[0]=='\\') x2++;
return PathCombine32A(x1,x1,x2);
......@@ -394,9 +394,18 @@ BOOL32 WINAPI PathIsRelative32AW (LPCVOID path)
* PathIsExe [SHELL32.43]
*
*/
BOOL32 WINAPI PathIsExe (LPCSTR path)
{ TRACE(shell,"path=%s\n",path);
return FALSE;
BOOL32 WINAPI PathIsExe32A (LPCSTR path)
{ FIXME(shell,"path=%s\n",path);
return FALSE;
}
BOOL32 WINAPI PathIsExe32W (LPCWSTR path)
{ FIXME(shell,"path=%s\n",debugstr_w(path));
return FALSE;
}
BOOL32 WINAPI PathIsExe32AW (LPCVOID path)
{ if (VERSION_OsIsUnicode())
return PathIsExe32W (path);
return PathIsExe32A(path);
}
/*************************************************************************
......@@ -405,7 +414,7 @@ BOOL32 WINAPI PathIsExe (LPCSTR path)
* NOTES
* file_exists(char *fn);
*/
BOOL32 WINAPI PathFileExists(LPSTR fn) {
BOOL32 WINAPI PathFileExists32A(LPSTR fn) {
TRACE(shell,"%s\n",fn);
if (GetFileAttributes32A(fn)==-1)
return FALSE;
......@@ -525,33 +534,39 @@ DWORD WINAPI PathResolve(LPCSTR s,DWORD x2,DWORD x3) {
* look for next arg in string. handle "quoted" strings
* returns pointer to argument *AFTER* the space. Or to the \0.
*/
LPVOID WINAPI PathGetArgs(LPVOID cmdline)
LPCSTR WINAPI PathGetArgs32A(LPCSTR cmdline)
{ BOOL32 qflag = FALSE;
LPWSTR wptr;
LPSTR aptr;
if (VERSION_OsIsUnicode())
{ TRACE(shell,"%sL\n",debugstr_w((LPWSTR)cmdline));
wptr=(LPWSTR) cmdline;
while (*wptr)
{ if ((*wptr==' ') && !qflag)
return wptr+1;
if (*wptr=='"')
qflag=!qflag;
wptr++;
}
return (LPVOID) wptr;
TRACE(shell,"%s\n",cmdline);
while (*cmdline)
{ if ((*cmdline==' ') && !qflag)
return cmdline+1;
if (*cmdline=='"')
qflag=!qflag;
cmdline++;
}
TRACE(shell,"%s\n",(LPSTR)cmdline);
aptr=(LPSTR) cmdline;
while (*aptr)
{ if ((*aptr==' ') && !qflag)
return aptr+1;
if (*aptr=='"')
return cmdline;
}
LPCWSTR WINAPI PathGetArgs32W(LPCWSTR cmdline)
{ BOOL32 qflag = FALSE;
TRACE(shell,"%sL\n",debugstr_w(cmdline));
while (*cmdline)
{ if ((*cmdline==' ') && !qflag)
return cmdline+1;
if (*cmdline=='"')
qflag=!qflag;
aptr++;
cmdline++;
}
return (LPVOID) aptr;
return cmdline;
}
LPCVOID WINAPI PathGetArgs32AW(LPVOID cmdline)
{ if (VERSION_OsIsUnicode())
return PathGetArgs32W(cmdline);
return PathGetArgs32A(cmdline);
}
/*************************************************************************
* PathQuoteSpaces [SHELL32.55]
......@@ -581,15 +596,36 @@ LPVOID WINAPI PathQuoteSpaces32AW (LPCVOID fn)
* NOTES
* unquote string (remove ")
*/
VOID WINAPI PathUnquoteSpaces(LPSTR str) {
DWORD len = lstrlen32A(str);
TRACE(shell,"%s\n",str);
if (*str!='"') return;
if (str[len-1]!='"') return;
str[len-1]='\0';
lstrcpy32A(str,str+1);
return;
VOID WINAPI PathUnquoteSpaces32A(LPSTR str)
{ DWORD len = lstrlen32A(str);
TRACE(shell,"%s\n",str);
if (*str!='"')
return;
if (str[len-1]!='"')
return;
str[len-1]='\0';
lstrcpy32A(str,str+1);
return;
}
VOID WINAPI PathUnquoteSpaces32W(LPWSTR str)
{ DWORD len = lstrlen32W(str);
TRACE(shell,"%s\n",debugstr_w(str));
if (*str!='"')
return;
if (str[len-1]!='"')
return;
str[len-1]='\0';
lstrcpy32W(str,str+1);
return;
}
VOID WINAPI PathUnquoteSpaces32AW(LPVOID str)
{ if(VERSION_OsIsUnicode())
PathUnquoteSpaces32W(str);
PathUnquoteSpaces32A(str);
}
/*************************************************************************
* PathGetDriveNumber32 [SHELL32.57]
......@@ -606,7 +642,7 @@ HRESULT WINAPI PathGetDriveNumber32(LPSTR u)
* NOTES
* exported by ordinal
*/
BOOL32 WINAPI PathYetAnotherMakeUniqueName(LPDWORD x,LPDWORD y) {
BOOL32 WINAPI PathYetAnotherMakeUniqueName32A(LPDWORD x,LPDWORD y) {
FIXME(shell,"(%p,%p):stub.\n",x,y);
return TRUE;
}
......@@ -617,7 +653,7 @@ BOOL32 WINAPI PathYetAnotherMakeUniqueName(LPDWORD x,LPDWORD y) {
* NOTES
* exported by ordinal Name
*/
BOOL32 WINAPI IsLFNDrive(LPCSTR path) {
BOOL32 WINAPI IsLFNDrive32A(LPCSTR path) {
DWORD fnlen;
if (!GetVolumeInformation32A(path,NULL,0,NULL,&fnlen,NULL,NULL,0))
......
......@@ -247,7 +247,7 @@ BOOL32 ShellView_CreateList (LPSHELLVIEW this)
TRACE(shell,"%p\n",this);
dwStyle = WS_TABSTOP | WS_VISIBLE | WS_CHILD | WS_BORDER |
LVS_SHAREIMAGELISTS | LVS_EDITLABELS;
LVS_SHAREIMAGELISTS | LVS_EDITLABELS | LVS_ALIGNLEFT;
switch (this->FolderSettings.ViewMode)
{ case FVM_ICON: dwStyle |= LVS_ICON; break;
case FVM_DETAILS: dwStyle |= LVS_REPORT; break;
......
......@@ -8,6 +8,7 @@
#include "oleobj.h"
#include "storage.h"
#include "commctrl.h"
#include "wintypes.h"
#include "interfaces.h"
#define STDMETHOD(xfn) HRESULT (CALLBACK *fn##xfn)
......@@ -1289,6 +1290,41 @@ LPITEMIDLIST WINAPI SHBrowseForFolder32A(LPBROWSEINFO32A lpbi);
#define SHBrowseForFolder WINELIB_NAME_AW(SHBrowseForFolder)
/****************************************************************************
* SHGetDataFromIDList API
*/
#define SHGDFIL_FINDDATA 1
#define SHGDFIL_NETRESOURCE 2
#define SHGDFIL_DESCRIPTIONID 3
#define SHDID_ROOT_REGITEM 1
#define SHDID_FS_FILE 2
#define SHDID_FS_DIRECTORY 3
#define SHDID_FS_OTHER 4
#define SHDID_COMPUTER_DRIVE35 5
#define SHDID_COMPUTER_DRIVE525 6
#define SHDID_COMPUTER_REMOVABLE 7
#define SHDID_COMPUTER_FIXED 8
#define SHDID_COMPUTER_NETDRIVE 9
#define SHDID_COMPUTER_CDROM 10
#define SHDID_COMPUTER_RAMDISK 11
#define SHDID_COMPUTER_OTHER 12
#define SHDID_NET_DOMAIN 13
#define SHDID_NET_SERVER 14
#define SHDID_NET_SHARE 15
#define SHDID_NET_RESTOFNET 16
#define SHDID_NET_OTHER 17
typedef struct _SHDESCRIPTIONID
{ DWORD dwDescriptionId;
CLSID clsid;
} SHDESCRIPTIONID, *LPSHDESCRIPTIONID;
HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID pv, int cb);
HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID pv, int cb);
#define SHGetDataFromIDList WINELIB_NAME_AW(SHGetDataFromIDList)
/****************************************************************************
* shlview structures
*/
......
......@@ -35,33 +35,33 @@ init Shell32LibMain
27 stub ILSaveToStream@8
28 stub SHILCreateFromPath@12
29 stdcall PathIsRoot(ptr) PathIsRoot32AW
30 stdcall PathBuildRoot(ptr long) PathBuildRoot
30 stdcall PathBuildRoot(ptr long) PathBuildRoot32A
31 stdcall PathFindExtension(ptr) PathFindExtension32AW
32 stdcall PathAddBackslash(ptr) PathAddBackslash32AW
33 stdcall PathRemoveBlanks(str) PathRemoveBlanks32AW
34 stdcall PathFindFilename(ptr) PathFindFilename32AW
35 stdcall PathRemoveFileSpec(str) PathRemoveFileSpec
36 stdcall PathAppend(str str) PathAppend
35 stdcall PathRemoveFileSpec(str) PathRemoveFileSpec32A
36 stdcall PathAppend(str str) PathAppend32A
37 stdcall PathCombine(ptr ptr ptr) PathCombine32AW
38 stub PathStripPath
39 stdcall PathIsUNC (ptr) PathIsUNC32AW
40 stdcall PathIsRelative (ptr) PathIsRelative32AW
41 stub Control_RunDLLA@16
42 stub Control_RunDLLW@16
43 stdcall PathIsExe (ptr) PathIsExe
43 stdcall PathIsExe (ptr) PathIsExe32AW
44 stub DoEnvironmentSubstA@8
45 stdcall PathFileExists(str) PathFileExists
45 stdcall PathFileExists(str) PathFileExists32A
46 stdcall PathMatchSpec (str str) PathMatchSpec32AW
47 stub PathMakeUniqueName@20
48 stdcall PathSetDlgItemPath (long long ptr) PathSetDlgItemPath32AW
49 stub PathQualify@4
50 stub PathStripToRoot@4
51 stdcall PathResolve(str long long) PathResolve
52 stdcall PathGetArgs(str) PathGetArgs
52 stdcall PathGetArgs(str) PathGetArgs32AW
53 stub DoEnvironmentSubstW@8
54 stdcall DragAcceptFiles(long long) DragAcceptFiles32
55 stdcall PathQuoteSpaces (ptr) PathQuoteSpaces32AW
56 stdcall PathUnquoteSpaces(str) PathUnquoteSpaces
56 stdcall PathUnquoteSpaces(str) PathUnquoteSpaces32AW
57 stdcall PathGetDriveNumber (str) PathGetDriveNumber32
58 stdcall ParseField(str long ptr long) ParseField32A
59 stub RestartDialog@12
......@@ -77,10 +77,10 @@ init Shell32LibMain
69 stub SHGetNetResource
70 stub SHCreateDefClassObject
71 stdcall Shell_GetImageList(ptr ptr) Shell_GetImageList
72 stdcall Shell_GetCachedImageIndex(ptr ptr long) Shell_GetCachedImageIndex
72 stdcall Shell_GetCachedImageIndex(ptr ptr long) Shell_GetCachedImageIndex32A # ASCII!!!
73 stub SHShellFolderView_Message
74 stub SHCreateStdEnumFmtEtc
75 stdcall PathYetAnotherMakeUniqueName(ptr ptr) PathYetAnotherMakeUniqueName
75 stdcall PathYetAnotherMakeUniqueName(ptr ptr) PathYetAnotherMakeUniqueName32A
76 stub DragQueryInfo
77 stdcall SHMapPIDLToSystemImageListIndex(long long long) SHMapPIDLToSystemImageListIndex
78 stdcall OleStrToStrN(str long wstr long) OleStrToStrN
......@@ -124,7 +124,7 @@ init Shell32LibMain
116 stdcall FileMenu_TrackPopupMenuEx (long long long long long long) FileMenu_TrackPopupMenuEx
117 stub FileMenu_DeleteItemByCmd
118 stdcall FileMenu_Destroy (long) FileMenu_Destroy
119 stdcall IsLFNDrive(str) IsLFNDrive
119 stdcall IsLFNDrive(str) IsLFNDrive32A
120 stub FileMenu_AbortInitMenu
121 stdcall SHFlushClipboard () SHFlushClipboard
122 stub RunDLL_CallEntry16
......@@ -252,8 +252,8 @@ init Shell32LibMain
244 stdcall SHFileOperationW (ptr) SHFileOperation32W # exported by name
245 stub SHFormatDrive@16 # exported by name
246 stub SHFreeNameMappings@4 # exported by name
247 stdcall SHGetDataFromIDListA (long long long long long) SHGetDataFromIDListA # exported by name
248 stub SHGetDataFromIDListW@20 # exported by name
247 stdcall SHGetDataFromIDListA (ptr ptr long ptr long) SHGetDataFromIDList32A
248 stdcall SHGetDataFromIDListW (ptr ptr long ptr long) SHGetDataFromIDList32W
249 stub PathParseIconLocation@4
250 stub PathRemoveExtension@4
251 stub PathRemoveArgs@4
......@@ -353,8 +353,8 @@ init Shell32LibMain
524 stub RealDriveType@8
525 stub RealDriveTypeFlags@8
640 stub NTSHChangeNotifyRegister@24
641 stub NTSHChangeNotifyDeregister@4
640 stdcall NTSHChangeNotifyRegister (long long long long long long) NTSHChangeNotifyRegister
641 stdcall NTSHChangeNotifyDeregister (long) NTSHChangeNotifyDeregister
643 stub SHChangeNotifyReceive@16
644 stub SHChangeNotification_Lock@16
......
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