xref: /reactos/dll/win32/shell32/stubs.cpp (revision 6a6b5ec2)
1 /*
2  * COPYRIGHT:       See COPYING in the top level directory
3  * PROJECT:         shell32.dll
4  * FILE:            dll/win32/shell32/stubs.c
5  * PURPOSE:         shell32.dll stubs
6  * PROGRAMMER:      Dmitry Chapyshev (dmitry@reactos.org)
7  * NOTES:           If you implement a function, remove it from this file
8  * UPDATE HISTORY:
9  *      03/02/2009  Created
10  */
11 
12 
13 #include "precomp.h"
14 
15 WINE_DEFAULT_DEBUG_CHANNEL(shell);
16 
17 /*
18  * Unimplemented
19  */
20 EXTERN_C BOOL
21 WINAPI
22 PathIsEqualOrSubFolder(LPWSTR lpFolder, LPWSTR lpSubFolder)
23 {
24     FIXME("PathIsEqualOrSubFolder() stub\n");
25     return FALSE;
26 }
27 
28 EXTERN_C HRESULT
29 WINAPI
30 SHGetUnreadMailCountW(HKEY hKeyUser,
31                       LPCWSTR pszMailAddress,
32                       DWORD *pdwCount,
33                       FILETIME *pFileTime,
34                       LPWSTR pszShellExecuteCommand,
35                       int cchShellExecuteCommand)
36 {
37     FIXME("SHGetUnreadMailCountW() stub\n");
38     return E_FAIL;
39 }
40 
41 /*
42  * Unimplemented
43  */
44 EXTERN_C HRESULT
45 WINAPI
46 SHSetUnreadMailCountW(LPCWSTR pszMailAddress,
47                       DWORD dwCount,
48                       LPCWSTR pszShellExecuteCommand)
49 {
50     FIXME("SHSetUnreadMailCountW() stub\n");
51     return E_FAIL;
52 }
53 
54 /*
55  * Unimplemented
56  */
57 EXTERN_C HRESULT
58 WINAPI
59 SHEnumerateUnreadMailAccountsW(HKEY user,
60                                DWORD idx,
61                                LPWSTR mailaddress,
62                                INT mailaddresslen)
63 {
64     FIXME("SHEnumerateUnreadMailAccountsW(%p %d %p %d) stub\n",
65         user, idx, mailaddress, mailaddresslen);
66     return E_NOTIMPL;
67 }
68 
69 /*
70  * Unimplemented
71  */
72 EXTERN_C VOID
73 WINAPI
74 CheckDiskSpace(VOID)
75 {
76     FIXME("CheckDiskSpace() stub\n");
77 }
78 
79 /*
80  * Unimplemented
81  */
82 EXTERN_C VOID
83 WINAPI
84 SHReValidateDarwinCache(VOID)
85 {
86     FIXME("SHReValidateDarwinCache() stub\n");
87 }
88 
89 /*
90  * Unimplemented
91  */
92 EXTERN_C FILEDESCRIPTOR*
93 WINAPI
94 GetFileDescriptor(FILEGROUPDESCRIPTOR *pFileGroupDesc, BOOL bUnicode, INT iIndex, LPWSTR lpName)
95 {
96     FIXME("GetFileDescriptor() stub\n");
97     return NULL;
98 }
99 
100 /*
101  * Unimplemented
102  */
103 EXTERN_C BOOL
104 WINAPI
105 MakeShellURLFromPathW(LPCWSTR lpPath, LPWSTR lpUrl, INT cchMax)
106 {
107     FIXME("MakeShellURLFromPathW() stub\n");
108     lpUrl = NULL;
109     return FALSE;
110 }
111 
112 /*
113  * Unimplemented
114  */
115 EXTERN_C BOOL
116 WINAPI
117 MakeShellURLFromPathA(LPCSTR lpPath, LPSTR lpUrl, INT cchMax)
118 {
119     WCHAR szPath[MAX_PATH], szURL[MAX_PATH];
120     BOOL ret;
121     SHAnsiToUnicode(lpPath, szPath, _countof(szPath));
122     ret = MakeShellURLFromPathW(szPath, szURL, _countof(szURL));
123     SHUnicodeToAnsi(szURL, lpUrl, cchMax);
124     return ret;
125 }
126 
127 /*
128  * Unimplemented
129  */
130 EXTERN_C HRESULT
131 WINAPI
132 SHParseDarwinIDFromCacheW(LPCWSTR lpUnknown1, LPWSTR lpUnknown2)
133 {
134     FIXME("SHParseDarwinIDFromCacheW() stub\n");
135     lpUnknown2 = NULL;
136     return E_FAIL;
137 }
138 
139 /*
140  * Unimplemented
141  */
142 EXTERN_C HRESULT
143 WINAPI
144 SHMultiFileProperties(IDataObject *pDataObject, DWORD dwFlags)
145 {
146     FIXME("SHMultiFileProperties() stub\n");
147     return E_FAIL;
148 }
149 
150 /*
151  * Unimplemented
152  */
153 EXTERN_C HRESULT
154 WINAPI
155 SHCopyMonikerToTemp(IMoniker *pMoniker, LPCWSTR lpInput, LPWSTR lpOutput, INT cchMax)
156 {
157     /* Unimplemented in XP SP3 */
158     TRACE("SHCopyMonikerToTemp() stub\n");
159     return E_FAIL;
160 }
161 
162 /*
163  * Unimplemented
164  */
165 EXTERN_C HLOCAL
166 WINAPI
167 CheckWinIniForAssocs(VOID)
168 {
169     FIXME("CheckWinIniForAssocs() stub\n");
170     return NULL;
171 }
172 
173 /*
174  * Unimplemented
175  */
176 EXTERN_C HRESULT
177 WINAPI
178 SHGetSetFolderCustomSettingsW(LPSHFOLDERCUSTOMSETTINGSW pfcs,
179                               LPCWSTR pszPath,
180                               DWORD dwReadWrite)
181 {
182     FIXME("SHGetSetFolderCustomSettingsW() stub\n");
183     return E_FAIL;
184 }
185 
186 /*
187  * Unimplemented
188  */
189 EXTERN_C HRESULT
190 WINAPI
191 SHGetSetFolderCustomSettingsA(LPSHFOLDERCUSTOMSETTINGSA pfcs,
192                               LPCSTR pszPath,
193                               DWORD dwReadWrite)
194 {
195     FIXME("SHGetSetFolderCustomSettingsA() stub\n");
196     return E_FAIL;
197 }
198 
199 /*************************************************************************
200  *  SHOpenPropSheetW [SHELL32.80]
201  *
202  * @see https://learn.microsoft.com/en-us/windows/win32/api/shlobj/nf-shlobj-shopenpropsheetw
203  */
204 BOOL WINAPI
205 SHOpenPropSheetW(
206     _In_opt_ LPCWSTR pszCaption,
207     _In_opt_ HKEY *ahKeys,
208     _In_ UINT cKeys,
209     _In_ const CLSID *pclsidDefault,
210     _In_ IDataObject *pDataObject,
211     _In_opt_ IShellBrowser *pShellBrowser,
212     _In_opt_ LPCWSTR pszStartPage)
213 {
214     FIXME("SHOpenPropSheetW() stub\n");
215     return FALSE;
216 }
217 
218 /*
219  * Unimplemented
220  */
221 EXTERN_C VOID
222 WINAPI
223 CDefFolderMenu_MergeMenu(HINSTANCE hInstance,
224                          UINT uMainMerge,
225                          UINT uPopupMerge,
226                          LPQCMINFO lpQcmInfo)
227 {
228     FIXME("CDefFolderMenu_MergeMenu() stub\n");
229 }
230 
231 /*
232  * Unimplemented
233  */
234 EXTERN_C HRESULT
235 WINAPI
236 CDefFolderMenu_Create(LPITEMIDLIST pidlFolder,
237                       HWND hwnd,
238                       UINT uidl,
239                       PCUITEMID_CHILD_ARRAY *apidl,
240                       IShellFolder *psf,
241                       LPFNDFMCALLBACK lpfn,
242                       HKEY hProgID,
243                       HKEY hBaseProgID,
244                       IContextMenu **ppcm)
245 {
246     FIXME("CDefFolderMenu_Create() stub\n");
247     return E_FAIL;
248 }
249 
250 /*
251  * Unimplemented
252  */
253 EXTERN_C VOID
254 WINAPI
255 SHWaitOp_Operate(LPVOID lpUnknown1, DWORD dwUnknown2)
256 {
257     FIXME("SHWaitOp_Operate() stub\n");
258 }
259 
260 /*
261  * Unimplemented
262  */
263 EXTERN_C INT
264 WINAPI
265 RealDriveTypeFlags(INT iDrive, BOOL bUnknown)
266 {
267     FIXME("RealDriveTypeFlags() stub\n");
268     return 1;
269 }
270 
271 /*
272  * Unimplemented
273  */
274 EXTERN_C LPWSTR
275 WINAPI
276 StrRStrW(LPWSTR lpSrc, LPWSTR lpLast, LPWSTR lpSearch)
277 {
278     FIXME("StrRStrW() stub\n");
279     return NULL;
280 }
281 
282 /*
283  * Unimplemented
284  */
285 EXTERN_C LPWSTR
286 WINAPI
287 StrRStrA(LPSTR lpSrc, LPSTR lpLast, LPSTR lpSearch)
288 {
289     FIXME("StrRStrA() stub\n");
290     return NULL;
291 }
292 
293 /*
294  * Unimplemented
295  */
296 EXTERN_C LONG
297 WINAPI
298 ShellHookProc(INT iCode, WPARAM wParam, LPARAM lParam)
299 {
300     /* Unimplemented in WinXP SP3 */
301     TRACE("ShellHookProc() stub\n");
302     return 0;
303 }
304 
305 /*
306  * Unimplemented
307  */
308 EXTERN_C VOID
309 WINAPI
310 ShellExec_RunDLL(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow)
311 {
312     FIXME("ShellExec_RunDLL() stub\n");
313 }
314 
315 /*
316  * Unimplemented
317  */
318 EXTERN_C VOID
319 WINAPI
320 ShellExec_RunDLLA(HWND hwnd, HINSTANCE hInstance, LPSTR pszCmdLine, int nCmdShow)
321 {
322     FIXME("ShellExec_RunDLLA() stub\n");
323 }
324 
325 /*
326  * Unimplemented
327  */
328 EXTERN_C VOID
329 WINAPI
330 ShellExec_RunDLLW(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow)
331 {
332     FIXME("ShellExec_RunDLLW() stub\n");
333 }
334 
335 /*
336  * Unimplemented
337  */
338 EXTERN_C BOOL
339 WINAPI
340 SheShortenPathW(LPWSTR lpPath, BOOL bShorten)
341 {
342     FIXME("SheShortenPathW() stub\n");
343     return FALSE;
344 }
345 
346 /*
347  * Unimplemented
348  */
349 EXTERN_C BOOL
350 WINAPI
351 SheShortenPathA(LPSTR lpPath, BOOL bShorten)
352 {
353     BOOL ret;
354     WCHAR szPath[MAX_PATH];
355     MultiByteToWideChar(CP_ACP, 0, lpPath, -1, szPath, _countof(szPath));
356     ret = SheShortenPathW(szPath, bShorten);
357     WideCharToMultiByte(CP_ACP, 0, szPath, -1, lpPath, MAX_PATH, NULL, NULL);
358     return ret;
359 }
360 
361 /*
362  * Unimplemented
363  */
364 EXTERN_C INT
365 WINAPI
366 SheSetCurDrive(INT iIndex)
367 {
368     FIXME("SheSetCurDrive() stub\n");
369     return 1;
370 }
371 
372 /*
373  * Unimplemented
374  */
375 EXTERN_C INT
376 WINAPI
377 SheGetPathOffsetW(LPWSTR lpPath)
378 {
379     FIXME("SheGetPathOffsetW() stub\n");
380     return 0;
381 }
382 
383 /*
384  * Unimplemented
385  */
386 EXTERN_C BOOL
387 WINAPI
388 SheGetDirExW(LPWSTR lpDrive,
389              LPDWORD lpCurDirLen,
390              LPWSTR lpCurDir)
391 {
392     FIXME("SheGetDirExW() stub\n");
393     return FALSE;
394 }
395 
396 /*
397  * Unimplemented
398  */
399 EXTERN_C INT
400 WINAPI
401 SheGetCurDrive(VOID)
402 {
403     FIXME("SheGetCurDrive() stub\n");
404     return 1;
405 }
406 
407 /*
408  * Unimplemented
409  */
410 EXTERN_C INT
411 WINAPI
412 SheFullPathW(LPWSTR lpFullName, DWORD dwPathSize, LPWSTR lpBuffer)
413 {
414     FIXME("SheFullPathW() stub\n");
415     return 0;
416 }
417 
418 /*
419  * Unimplemented
420  */
421 EXTERN_C INT
422 WINAPI
423 SheFullPathA(LPSTR lpFullName, DWORD dwPathSize, LPSTR lpBuffer)
424 {
425     FIXME("SheFullPathA() stub\n");
426     return 0;
427 }
428 
429 /*
430  * Unimplemented
431  */
432 EXTERN_C BOOL
433 WINAPI
434 SheConvertPathW(LPWSTR lpCmd, LPWSTR lpFileName, UINT uCmdLen)
435 {
436     FIXME("SheConvertPathW() stub\n");
437     return FALSE;
438 }
439 
440 /*
441  * Unimplemented
442  */
443 EXTERN_C INT
444 WINAPI
445 SheChangeDirExW(LPWSTR lpDir)
446 {
447     FIXME("SheChangeDirExW() stub\n");
448     return 0;
449 }
450 
451 /*
452  * Unimplemented
453  */
454 EXTERN_C INT
455 WINAPI
456 SheChangeDirExA(LPSTR lpDir)
457 {
458     FIXME("SheChangeDirExA() stub\n");
459     return 0;
460 }
461 
462 /*
463  * Unimplemented
464  */
465 EXTERN_C BOOL
466 WINAPI
467 SHInvokePrinterCommandW(HWND hwnd,
468                         UINT uAction,
469                         LPCWSTR lpBuf1,
470                         LPCWSTR lpBuf2,
471                         BOOL fModal)
472 {
473     FIXME("SHInvokePrinterCommandW() stub\n");
474     return FALSE;
475 }
476 
477 /*
478  * Unimplemented
479  */
480 EXTERN_C BOOL
481 WINAPI
482 SHInvokePrinterCommandA(HWND hwnd,
483                         UINT uAction,
484                         LPCSTR lpBuf1,
485                         LPCSTR lpBuf2,
486                         BOOL fModal)
487 {
488     FIXME("SHInvokePrinterCommandA() stub\n");
489     return FALSE;
490 }
491 
492 /*
493  * Unimplemented
494  */
495 EXTERN_C BOOL
496 WINAPI
497 SHCreateProcessAsUserW(PSHCREATEPROCESSINFOW pscpi)
498 {
499     FIXME("SHCreateProcessAsUserW() stub\n");
500     return FALSE;
501 }
502 
503 /*
504  * Unimplemented
505  */
506 EXTERN_C HINSTANCE
507 WINAPI
508 RealShellExecuteExA(HWND hwnd,
509                     LPCSTR lpOperation,
510                     LPCSTR lpFile,
511                     LPCSTR lpParameters,
512                     LPCSTR lpDirectory,
513                     LPSTR lpReturn,
514                     LPCSTR lpTitle,
515                     LPSTR lpReserved,
516                     WORD nShowCmd,
517                     HANDLE *lpProcess,
518                     DWORD dwFlags)
519 {
520     FIXME("RealShellExecuteExA() stub\n");
521     return NULL;
522 }
523 
524 /*
525  * Unimplemented
526  */
527 EXTERN_C HINSTANCE
528 WINAPI
529 RealShellExecuteExW(HWND hwnd,
530                     LPCWSTR lpOperation,
531                     LPCWSTR lpFile,
532                     LPCWSTR lpParameters,
533                     LPCWSTR lpDirectory,
534                     LPWSTR lpReturn,
535                     LPCWSTR lpTitle,
536                     LPWSTR lpReserved,
537                     WORD nShowCmd,
538                     HANDLE *lpProcess,
539                     DWORD dwFlags)
540 {
541     FIXME("RealShellExecuteExW() stub\n");
542     return NULL;
543 }
544 
545 /*
546  * Implemented
547  */
548 EXTERN_C HINSTANCE
549 WINAPI
550 RealShellExecuteA(HWND hwnd,
551                   LPCSTR lpOperation,
552                   LPCSTR lpFile,
553                   LPCSTR lpParameters,
554                   LPCSTR lpDirectory,
555                   LPSTR lpReturn,
556                   LPCSTR lpTitle,
557                   LPSTR lpReserved,
558                   WORD nShowCmd,
559                   HANDLE *lpProcess)
560 {
561     return RealShellExecuteExA(hwnd,
562                                lpOperation,
563                                lpFile,
564                                lpParameters,
565                                lpDirectory,
566                                lpReturn,
567                                lpTitle,
568                                lpReserved,
569                                nShowCmd,
570                                lpProcess,
571                                0);
572 }
573 
574 /*
575  * Implemented
576  */
577 EXTERN_C HINSTANCE
578 WINAPI
579 RealShellExecuteW(HWND hwnd,
580                   LPCWSTR lpOperation,
581                   LPCWSTR lpFile,
582                   LPCWSTR lpParameters,
583                   LPCWSTR lpDirectory,
584                   LPWSTR lpReturn,
585                   LPCWSTR lpTitle,
586                   LPWSTR lpReserved,
587                   WORD nShowCmd,
588                   HANDLE *lpProcess)
589 {
590     return RealShellExecuteExW(hwnd,
591                                lpOperation,
592                                lpFile,
593                                lpParameters,
594                                lpDirectory,
595                                lpReturn,
596                                lpTitle,
597                                lpReserved,
598                                nShowCmd,
599                                lpProcess,
600                                0);
601 }
602 
603 /*
604  * Unimplemented
605  */
606 EXTERN_C VOID
607 WINAPI
608 PrintersGetCommand_RunDLL(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow)
609 {
610     FIXME("PrintersGetCommand_RunDLL() stub\n");
611 }
612 
613 /*
614  * Unimplemented
615  */
616 EXTERN_C VOID
617 WINAPI
618 PrintersGetCommand_RunDLLA(HWND hwnd, HINSTANCE hInstance, LPSTR pszCmdLine, int nCmdShow)
619 {
620     FIXME("PrintersGetCommand_RunDLLA() stub\n");
621 }
622 
623 /*
624  * Unimplemented
625  */
626 EXTERN_C VOID
627 WINAPI
628 PrintersGetCommand_RunDLLW(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow)
629 {
630     FIXME("PrintersGetCommand_RunDLLW() stub\n");
631 }
632 
633 /*
634  * Unimplemented
635  */
636 EXTERN_C IShellFolderViewCB*
637 WINAPI
638 SHGetShellFolderViewCB(HWND hwnd)
639 {
640     FIXME("SHGetShellFolderViewCB() stub\n");
641     return NULL;
642 }
643 
644 /*
645  * Unimplemented
646  */
647 EXTERN_C INT
648 WINAPI
649 SHLookupIconIndexA(LPCSTR lpName, INT iIndex, UINT uFlags)
650 {
651     FIXME("SHLookupIconIndexA() stub\n");
652     return 0;
653 }
654 
655 /*
656  * Unimplemented
657  */
658 EXTERN_C INT
659 WINAPI
660 SHLookupIconIndexW(LPCWSTR lpName, INT iIndex, UINT uFlags)
661 {
662     FIXME("SHLookupIconIndexW() stub\n");
663     return 0;
664 }
665 
666 /*
667  * Unimplemented
668  */
669 EXTERN_C HANDLE
670 WINAPI
671 PifMgr_OpenProperties(LPCWSTR lpAppPath, LPCWSTR lpPifPath, UINT hInfIndex, UINT options)
672 {
673     FIXME("PifMgr_OpenProperties() stub\n");
674     return 0;
675 }
676 
677 /*
678  * Unimplemented
679  */
680 EXTERN_C INT
681 WINAPI
682 PifMgr_GetProperties(HANDLE hHandle, LPCSTR lpName, LPVOID lpUnknown, INT iUnknown, UINT uUnknown)
683 {
684     FIXME("PifMgr_GetProperties() stub\n");
685     return 0;
686 }
687 
688 /*
689  * Unimplemented
690  */
691 EXTERN_C INT
692 WINAPI
693 PifMgr_SetProperties(HANDLE hHandle, LPCSTR lpName, LPCVOID lpUnknown, INT iUnknown, UINT uUnknown)
694 {
695     FIXME("PifMgr_SetProperties() stub\n");
696     return 0;
697 }
698 
699 /*
700  * Unimplemented
701  */
702 EXTERN_C HRESULT
703 WINAPI
704 SHStartNetConnectionDialogW(
705     _In_ HWND hwnd,
706     _In_ LPCWSTR pszRemoteName,
707     _In_ DWORD dwType)
708 {
709     FIXME("SHStartNetConnectionDialogW() stub\n");
710     return E_FAIL;
711 }
712 
713 /*
714  * Unimplemented
715  */
716 EXTERN_C HANDLE
717 WINAPI
718 PifMgr_CloseProperties(HANDLE hHandle, UINT uUnknown)
719 {
720     FIXME("PifMgr_CloseProperties() stub\n");
721     return NULL;
722 }
723 
724 /*
725  * Unimplemented
726  */
727 EXTERN_C BOOL
728 WINAPI
729 DAD_DragEnterEx2(HWND hwndTarget,
730                  POINT ptStart,
731                  IDataObject *pdtObject)
732 {
733     FIXME("DAD_DragEnterEx2() stub\n");
734     return FALSE;
735 }
736 
737 /*
738  * Unimplemented
739  */
740 EXTERN_C UINT
741 WINAPI
742 SHGetNetResource(LPVOID lpUnknown1, UINT iIndex, LPVOID lpUnknown2, UINT cchMax)
743 {
744     FIXME("SHGetNetResource() stub\n");
745     return 0;
746 }
747 
748 /*
749  * Unimplemented
750  */
751 EXTERN_C BOOL
752 WINAPI
753 DragQueryInfo(HDROP hDrop, DRAGINFO *pDragInfo)
754 {
755     FIXME("DragQueryInfo() stub\n");
756     return FALSE;
757 }
758 
759 /*
760  * Unimplemented
761  */
762 EXTERN_C LPVOID
763 WINAPI
764 DDECreatePostNotify(LPVOID lpUnknown)
765 {
766     FIXME("DDECreatePostNotify() stub\n");
767     return NULL;
768 }
769 
770 /*
771  * Unimplemented
772  */
773 EXTERN_C BOOL
774 WINAPI
775 SHIsBadInterfacePtr(LPVOID pv, UINT ucb)
776 {
777     FIXME("SHIsBadInterfacePtr() stub\n");
778     return FALSE;
779 }
780 
781 /*
782  * Unimplemented
783  */
784 EXTERN_C VOID
785 WINAPI
786 AppCompat_RunDLLW(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow)
787 {
788     FIXME("AppCompat_RunDLLW() stub\n");
789 }
790 
791 /*
792  * Unimplemented
793  */
794 EXTERN_C VOID
795 WINAPI
796 Control_RunDLLAsUserW(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow)
797 {
798     FIXME("Control_RunDLLAsUserW() stub\n");
799 }
800 
801 /*
802  * Unimplemented
803  */
804 EXTERN_C UINT
805 WINAPI
806 DragQueryFileAorW(HDROP hDrop, UINT iIndex, LPWSTR lpFile, UINT ucb, BOOL bUnicode, BOOL bShorten)
807 {
808     FIXME("DragQueryFileAorW() stub\n");
809     return 0;
810 }
811 
812 /*
813  * Unimplemented
814  */
815 EXTERN_C DWORD
816 WINAPI
817 SHNetConnectionDialog(HWND hwndOwner,
818                       LPCWSTR lpstrRemoteName,
819                       DWORD dwType)
820 {
821     FIXME("SHNetConnectionDialog() stub\n");
822     return ERROR_INVALID_PARAMETER;
823 }
824 
825 /*
826  * Unimplemented
827  */
828 EXTERN_C BOOL
829 WINAPI
830 DAD_SetDragImageFromListView(HWND hwnd, POINT pt)
831 {
832     FIXME("DAD_SetDragImageFromListView() stub\n");
833     return FALSE;
834 }
835 
836 /*
837  * Unimplemented
838  */
839 EXTERN_C void
840 WINAPI
841 SHHandleDiskFull(HWND hwndOwner, UINT uDrive)
842 {
843     FIXME("SHHandleDiskFull() stub\n");
844 }
845 
846 /*
847  * Unimplemented
848  */
849 EXTERN_C BOOL
850 WINAPI
851 ILGetPseudoNameW(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2, LPWSTR szStr, INT iUnknown)
852 {
853     /* Unimplemented in WinXP SP3 */
854     TRACE("ILGetPseudoNameW() stub\n");
855     *szStr = 0;
856     return FALSE;
857 }
858 
859 /*
860  * Unimplemented
861  */
862 EXTERN_C VOID
863 WINAPI
864 SHGlobalDefect(DWORD dwUnknown)
865 {
866     /* Unimplemented in WinXP SP3 */
867     TRACE("SHGlobalDefect() stub\n");
868 }
869 
870 /*
871  * Unimplemented
872  */
873 EXTERN_C LPITEMIDLIST
874 WINAPI
875 Printers_GetPidl(LPCITEMIDLIST pidl, LPCWSTR lpName, DWORD dwUnknown1, DWORD dwUnknown2)
876 {
877     FIXME("Printers_GetPidl() stub\n");
878     return NULL;
879 }
880 
881 /*
882  * Unimplemented
883  */
884 EXTERN_C LONG
885 WINAPI
886 Printers_AddPrinterPropPages(LPVOID lpUnknown1, LPVOID lpUnknown2)
887 {
888     FIXME("Printers_AddPrinterPropPages() stub\n");
889     return 0;
890 }
891 
892 /*
893  * Unimplemented
894  */
895 EXTERN_C WORD
896 WINAPI
897 ExtractIconResInfoW(
898     _In_ HANDLE hHandle,
899     _In_ LPCWSTR lpFileName,
900     _In_ WORD wIndex,
901     _Out_ LPWORD lpSize,
902     _Out_ LPHANDLE lpIcon)
903 {
904     FIXME("ExtractIconResInfoW() stub\n");
905     return 0;
906 }
907 
908 /*
909  * Unimplemented
910  */
911 EXTERN_C DWORD
912 WINAPI
913 ExtractVersionResource16W(LPWSTR lpName, LPHANDLE lpHandle)
914 {
915     FIXME("ExtractVersionResource16W() stub\n");
916     return 0;
917 }
918 
919 /*
920  * Unimplemented
921  */
922 EXTERN_C BOOL*
923 WINAPI
924 FindExeDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
925 {
926     FIXME("FindExeDlgProc() stub\n");
927     return 0;
928 }
929 
930 /*
931  * Unimplemented
932  */
933 EXTERN_C HANDLE
934 WINAPI
935 InternalExtractIconListW(HANDLE hHandle,
936                          LPWSTR lpFileName,
937                          LPINT lpCount)
938 {
939     FIXME("InternalExtractIconListW() stub\n");
940     return NULL;
941 }
942 
943 /*
944  * Unimplemented
945  */
946 EXTERN_C HANDLE
947 WINAPI
948 InternalExtractIconListA(HANDLE hHandle,
949                          LPSTR lpFileName,
950                          LPINT lpCount)
951 {
952     FIXME("InternalExtractIconListA() stub\n");
953     return NULL;
954 }
955 
956 /*
957  * Unimplemented
958  */
959 EXTERN_C HRESULT
960 WINAPI
961 FirstUserLogon(LPWSTR lpUnknown1, LPWSTR lpUnknown2)
962 {
963     FIXME("FirstUserLogon() stub\n");
964     return E_FAIL;
965 }
966 
967 /*
968  * Unimplemented
969  */
970 EXTERN_C HRESULT
971 WINAPI
972 SHSetFolderPathW(
973     _In_ INT csidl,
974     _In_ HANDLE hToken,
975     _In_ DWORD dwFlags,
976     _In_ LPCWSTR pszPath)
977 {
978     FIXME("SHSetFolderPathW() stub\n");
979     return E_FAIL;
980 }
981 
982 /*
983  * Unimplemented
984  */
985 EXTERN_C HRESULT
986 WINAPI
987 SHGetUserPicturePathW(LPCWSTR lpPath, int csidl, LPVOID lpUnknown)
988 {
989     FIXME("SHGetUserPicturePathW() stub\n");
990     return E_FAIL;
991 }
992 
993 /*
994  * Unimplemented
995  */
996 EXTERN_C HRESULT
997 WINAPI
998 SHSetUserPicturePathW(LPCWSTR lpPath, int csidl, LPVOID lpUnknown)
999 {
1000     FIXME("SHGetUserPicturePathA() stub\n");
1001     return E_FAIL;
1002 }
1003 
1004 /*
1005  * Unimplemented
1006  */
1007 EXTERN_C BOOL
1008 WINAPI
1009 SHShouldShowWizards(LPVOID lpUnknown)
1010 {
1011     FIXME("SHShouldShowWizards() stub\n");
1012     return FALSE;
1013 }
1014 
1015 /*
1016  * Unimplemented
1017  */
1018 EXTERN_C BOOL
1019 WINAPI
1020 PathIsSlowW(
1021     _In_ LPCWSTR pszFile,
1022     _In_ DWORD dwAttr)
1023 {
1024     FIXME("PathIsSlowW() stub\n");
1025     return FALSE;
1026 }
1027 
1028 /*
1029  * Unimplemented
1030  */
1031 EXTERN_C DWORD
1032 WINAPI
1033 SHGetUserDisplayName(LPWSTR lpName, PULONG puSize)
1034 {
1035     FIXME("SHGetUserDisplayName() stub\n");
1036     wcscpy(lpName, L"UserName");
1037     return ERROR_SUCCESS;
1038 }
1039 
1040 /*
1041  * Unimplemented
1042  */
1043 EXTERN_C DWORD
1044 WINAPI
1045 SHGetProcessDword(DWORD dwUnknown1, DWORD dwUnknown2)
1046 {
1047     /* Unimplemented in WinXP SP3 */
1048     TRACE("SHGetProcessDword() stub\n");
1049     return 0;
1050 }
1051 
1052 EXTERN_C
1053 DWORD WINAPI CheckStagingArea(VOID)
1054 {
1055     /* Called by native explorer */
1056     return 0;
1057 }
1058 
1059 EXTERN_C
1060 DWORD WINAPI SHGetComputerDisplayNameW(DWORD param1, DWORD param2, DWORD param3, DWORD param4)
1061 {
1062     FIXME("SHGetComputerDisplayNameW() stub\n");
1063     return E_FAIL;
1064 }
1065