diff --git a/dlls/shell32/shell32_main.h b/dlls/shell32/shell32_main.h index 850e28d9f2a..64ebc05f882 100644 --- a/dlls/shell32/shell32_main.h +++ b/dlls/shell32/shell32_main.h @@ -19,8 +19,8 @@ extern HIMAGELIST ShellBigIconList; extern void (CALLBACK* pDLLInitComctl)(void); extern INT32 (CALLBACK* pImageList_AddIcon) (HIMAGELIST himl, HICON32 hIcon); extern INT32 (CALLBACK* pImageList_ReplaceIcon) (HIMAGELIST, INT32, HICON32); -extern HIMAGELIST (CALLBACK * pImageList_Create) (INT32,INT32,UINT32,INT32,INT32); -extern HICON32 (CALLBACK * pImageList_GetIcon) (HIMAGELIST, INT32, UINT32); +extern HIMAGELIST (CALLBACK* pImageList_Create) (INT32,INT32,UINT32,INT32,INT32); +extern HICON32 (CALLBACK* pImageList_GetIcon) (HIMAGELIST, INT32, UINT32); extern INT32 (CALLBACK* pImageList_GetImageCount)(HIMAGELIST); extern LPVOID (CALLBACK* pCOMCTL32_Alloc) (INT32); @@ -31,21 +31,44 @@ extern INT32 (CALLBACK* pDPA_InsertPtr) (const HDPA, INT32, LPVOID); extern BOOL32 (CALLBACK* pDPA_Sort) (const HDPA, PFNDPACOMPARE, LPARAM); extern LPVOID (CALLBACK* pDPA_GetPtr) (const HDPA, INT32); extern BOOL32 (CALLBACK* pDPA_Destroy) (const HDPA); -extern INT32 (CALLBACK *pDPA_Search) (const HDPA, LPVOID, INT32, PFNDPACOMPARE, LPARAM, UINT32); +extern INT32 (CALLBACK* pDPA_Search) (const HDPA, LPVOID, INT32, PFNDPACOMPARE, LPARAM, UINT32); /* Iconcache */ -extern BOOL32 WINAPI SIC_Initialize(void); -extern HICON32 WINAPI SIC_GetIcon (LPSTR sSourceFile, DWORD dwSourceIndex, BOOL32 bSmallIcon ); +BOOL32 SIC_Initialize(void); /* Classes Root */ -extern BOOL32 WINAPI HCR_MapTypeToValue ( LPSTR szExtension, LPSTR szFileType, DWORD len); -extern BOOL32 WINAPI HCR_GetExecuteCommand ( LPCSTR szClass, LPCSTR szVerb, LPSTR szDest, DWORD len ); +BOOL32 HCR_MapTypeToValue ( LPSTR szExtension, LPSTR szFileType, DWORD len); +BOOL32 HCR_GetExecuteCommand ( LPCSTR szClass, LPCSTR szVerb, LPSTR szDest, DWORD len ); +BOOL32 HCR_GetDefaultIcon (LPCSTR szClass, LPSTR szDest, DWORD len, LPDWORD dwNr); + +DWORD WINAPI ParseField32A(LPCSTR src,DWORD field,LPSTR dst,DWORD len); HGLOBAL32 WINAPI SHAllocShared(LPVOID psrc, DWORD size, DWORD procID); LPVOID WINAPI SHLockShared(HANDLE32 hmem, DWORD procID); BOOL32 WINAPI SHUnlockShared(HANDLE32 pmem); HANDLE32 WINAPI SHFreeShared(HANDLE32 hmem, DWORD procID); +/**************************************************************************** + * Class constructors + */ +#ifdef __WINE__ +extern LPDATAOBJECT IDataObject_Constructor(HWND32 hwndOwner, LPSHELLFOLDER psf, LPITEMIDLIST * apidl, UINT32 cidl); +extern LPENUMFORMATETC IEnumFORMATETC_Constructor(UINT32, const FORMATETC32 []); + +extern LPCLASSFACTORY IShellLink_CF_Constructor(void); +extern LPCLASSFACTORY IShellLinkW_CF_Constructor(void); + +extern LPCLASSFACTORY IClassFactory_Constructor(void); +extern LPCONTEXTMENU IContextMenu_Constructor(LPSHELLFOLDER, LPCITEMIDLIST *, UINT32); +extern LPSHELLFOLDER IShellFolder_Constructor(LPSHELLFOLDER,LPITEMIDLIST); +extern LPSHELLVIEW IShellView_Constructor(LPSHELLFOLDER, LPCITEMIDLIST); +extern LPSHELLLINK IShellLink_Constructor(void); +extern LPSHELLLINKW IShellLinkW_Constructor(void); +extern LPENUMIDLIST IEnumIDList_Constructor(LPCSTR,DWORD); +extern LPEXTRACTICON IExtractIcon_Constructor(LPITEMIDLIST); +#endif + + /* FIXME should be moved to a header file. IsEqualGUID is declared but not exported in compobj.c !!!*/ #define IsEqualGUID(rguid1, rguid2) (!memcmp(rguid1, rguid2, sizeof(GUID))) diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c index 9f138c03101..ed7fc8cc417 100644 --- a/dlls/shell32/shellord.c +++ b/dlls/shell32/shellord.c @@ -64,8 +64,8 @@ SHChangeNotifyDeregister(LONG x1) * ParseField [SHELL32.58] * */ -DWORD WINAPI ParseField(LPCSTR src,DWORD field,LPSTR dst,DWORD len) -{ FIXME(shell,"(%s,0x%08lx,%p,%ld):stub.\n",src,field,dst,len); +DWORD WINAPI ParseField32A(LPCSTR src, DWORD field, LPSTR dst, DWORD len) +{ WARN(shell,"('%s',0x%08lx,%p,%ld) semi-stub.\n",src,field,dst,len); if (!src || !src[0] || !dst || !len) return 0; diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c index 4a9384ea434..393753fea65 100644 --- a/dlls/shell32/shlfolder.c +++ b/dlls/shell32/shlfolder.c @@ -4,8 +4,6 @@ * Copyright 1997 Marcus Meissner * Copyright 1998 Juergen Schmied * - * !!! currently work in progress on all classes 980930 !!! - * */ #include @@ -559,7 +557,7 @@ static HRESULT WINAPI IShellFolder_GetUIObjectOf( LPSHELLFOLDER this,HWND32 hwnd WINE_StringFromCLSID(riid,xclsid); - TRACE(shell,"(%p)->(%u,%u,pidl=%p,\n\tIID:%s,%p,%p)\n", + TRACE(shell,"(%p)->(%u,%u,apidl=%p,\n\tIID:%s,%p,%p)\n", this,hwndOwner,cidl,apidl,xclsid,prgfInOut,ppvOut); *ppvOut = NULL; diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index 3aadc737603..b7847bcb287 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c @@ -327,7 +327,7 @@ BOOL32 ShellView_InitList(LPSHELLVIEW this) * NOTES * internal, CALLBACK for DSA_Sort */ -int CALLBACK ShellView_CompareItems(LPVOID lParam1, LPVOID lParam2, LPARAM lpData) +INT32 CALLBACK ShellView_CompareItems(LPVOID lParam1, LPVOID lParam2, LPARAM lpData) { int ret; TRACE(shell,"pidl1=%p pidl2=%p lpsf=%p\n", lParam1, lParam2, (LPVOID) lpData); diff --git a/relay32/shell32.spec b/relay32/shell32.spec index 8e0a11376b1..45c9c1147f3 100644 --- a/relay32/shell32.spec +++ b/relay32/shell32.spec @@ -63,7 +63,7 @@ init Shell32LibMain 55 stdcall PathQuoteSpaces (ptr) PathQuoteSpaces32AW 56 stdcall PathUnquoteSpaces(str) PathUnquoteSpaces 57 stdcall PathGetDriveNumber (str) PathGetDriveNumber32 - 58 stdcall ParseField(str long str long) ParseField + 58 stdcall ParseField(str long str long) ParseField32A 59 stub RestartDialog@12 60 stdcall ExitWindowsDialog(long) ExitWindowsDialog 61 stdcall RunFileDlg(long long long str str long) RunFileDlg