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