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