source: trunk/include/win/wine/undocshell.h@ 4033

Last change on this file since 4033 was 4033, checked in by phaller, 25 years ago

Shell32 update to WINE

File size: 22.4 KB
Line 
1/* $Id: undocshell.h,v 1.4 2000-08-18 02:04:23 phaller Exp $ */
2#ifndef __WINE_UNDOCSHELL_H
3#define __WINE_UNDOCSHELL_H
4
5#include "windef.h"
6#include "shell.h"
7#include "commctrl.h"
8#include "wine/obj_shellfolder.h" /* strret */
9#include "wine/obj_shellview.h"
10#include "wine/obj_dragdrop.h"
11
12#ifdef __cplusplus
13extern "C" {
14#endif /* defined(__cplusplus) */
15
16
17/****************************************************************************
18 * IDList Functions
19 */
20LPITEMIDLIST WINAPI ILClone (LPCITEMIDLIST pidl);
21LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl);
22
23LPITEMIDLIST WINAPI ILCombine(
24 LPCITEMIDLIST iil1,
25 LPCITEMIDLIST iil2);
26
27DWORD WINAPI ILGetSize(LPITEMIDLIST pidl);
28
29LPITEMIDLIST WINAPI ILGetNext(LPITEMIDLIST pidl);
30LPITEMIDLIST WINAPI ILFindLastID(LPITEMIDLIST pidl);
31BOOL WINAPI ILRemoveLastID(LPCITEMIDLIST pidl);
32
33LPITEMIDLIST WINAPI ILFindChild(
34 LPCITEMIDLIST pidl1,
35 LPCITEMIDLIST pidl2);
36
37LPITEMIDLIST WINAPI ILAppendID(
38 LPITEMIDLIST pidl,
39 LPCSHITEMID lpItemID,
40 BOOL bAddToEnd);
41
42BOOL WINAPI ILIsEqual(
43 LPCITEMIDLIST pidl1,
44 LPCITEMIDLIST pidl2);
45
46BOOL WINAPI ILIsParent(
47 LPCITEMIDLIST pidlParent,
48 LPCITEMIDLIST pidlChild,
49 BOOL bImmediate);
50
51BOOL WINAPI ILGetDisplayName(
52 LPCITEMIDLIST pidl,
53 LPSTR path);
54
55DWORD WINAPI ILFree(LPITEMIDLIST pidl);
56
57HRESULT WINAPI ILSaveToStream(
58 LPSTREAM pstrm,
59 LPCITEMIDLIST pidl);
60
61HRESULT WINAPI ILLoadFromStream(
62 LPSTREAM pstrm,
63 LPITEMIDLIST *ppidl);
64
65LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl);
66void WINAPI ILGlobalFree(LPCITEMIDLIST pidl);
67
68LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPCSTR lpszPath);
69LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPCWSTR lpszPath);
70LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW (LPCVOID lpszPath);
71
72HRESULT WINAPI SHILCreateFromPathA (
73 LPCSTR path,
74 LPITEMIDLIST * ppidl,
75 DWORD *attributes);
76
77HRESULT WINAPI SHILCreateFromPathW (
78 LPCWSTR path,
79 LPITEMIDLIST * ppidl,
80 DWORD *attributes);
81
82HRESULT WINAPI SHILCreateFromPathAW (
83 LPCVOID path,
84 LPITEMIDLIST * ppidl,
85 DWORD *attributes);
86
87LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR path);
88LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path);
89LPITEMIDLIST WINAPI ILCreateFromPathAW(LPCVOID path);
90
91HRESULT WINAPI SHBindToParent(
92 LPCITEMIDLIST pidl,
93 REFIID riid,
94 LPVOID *ppv,
95 LPCITEMIDLIST *ppidlLast);
96
97/*
98 string functions
99*/
100HRESULT WINAPI StrRetToStrNA (
101 LPVOID dest,
102 DWORD len,
103 LPSTRRET src,
104 LPITEMIDLIST pidl);
105
106HRESULT WINAPI StrRetToStrNW (
107 LPVOID dest,
108 DWORD len,
109 LPSTRRET src,
110 LPITEMIDLIST pidl);
111
112HRESULT WINAPI StrRetToStrNAW (
113 LPVOID dest,
114 DWORD len,
115 LPSTRRET src,
116 LPITEMIDLIST pidl);
117
118HRESULT WINAPI StrRetToBufA (
119 LPSTRRET src,
120 LPITEMIDLIST pidl,
121 LPSTR dest,
122 DWORD len);
123
124HRESULT WINAPI StrRetToBufW (
125 LPSTRRET src,
126 LPITEMIDLIST pidl,
127 LPWSTR dest,
128 DWORD len);
129
130/****************************************************************************
131* SHChangeNotifyRegister API
132*/
133#define SHCNF_ACCEPT_INTERRUPTS 0x0001
134#define SHCNF_ACCEPT_NON_INTERRUPTS 0x0002
135#define SHCNF_NO_PROXY 0x8001
136
137typedef struct
138{
139 LPCITEMIDLIST pidlPath;
140 BOOL bWatchSubtree;
141} NOTIFYREGISTER, *LPNOTIFYREGISTER;
142
143typedef const LPNOTIFYREGISTER LPCNOTIFYREGISTER;
144
145typedef struct
146{
147 USHORT cb;
148 DWORD dwItem1;
149 DWORD dwItem2;
150} DWORDITEMID;
151
152HANDLE WINAPI SHChangeNotifyRegister(
153 HWND hwnd,
154 LONG dwFlags,
155 LONG wEventMask,
156 DWORD uMsg,
157 int cItems,
158 LPCNOTIFYREGISTER lpItems);
159
160BOOL WINAPI SHChangeNotifyDeregister(HANDLE hNotify);
161
162HANDLE WINAPI SHChangeNotification_Lock(
163 HANDLE hMemoryMap,
164 DWORD dwProcessId,
165 LPCITEMIDLIST **lppidls,
166 LPLONG lpwEventId);
167
168BOOL WINAPI SHChangeNotification_Unlock(HANDLE hLock);
169
170/****************************************************************************
171 * Shell Common Dialogs
172 */
173
174BOOL WINAPI PickIconDlg(
175 HWND hwndOwner,
176 LPSTR lpstrFile,
177 DWORD nMaxFile,
178 LPDWORD lpdwIconIndex);
179
180/* RunFileDlg flags */
181#define RFF_NOBROWSE 0x01
182#define RFF_NODEFAULT 0x02
183#define RFF_CALCDIRECTORY 0x04
184#define RFF_NOLABEL 0x08
185#define RFF_NOSEPARATEMEM 0x20 /* NT only */
186
187/* RunFileFlg notification structure */
188typedef struct
189{
190 NMHDR hdr;
191 LPCSTR lpFile;
192 LPCSTR lpDirectory;
193 int nShow;
194} NM_RUNFILEDLG, * LPNM_RUNFILEDLG;
195
196/* RunFileDlg notification return values */
197#define RF_OK 0x00
198#define RF_CANCEL 0x01
199#define RF_RETRY 0x02
200
201void WINAPI RunFileDlg(
202 HWND hwndOwner,
203 HICON hIcon,
204 LPCSTR lpstrDirectory,
205 LPCSTR lpstrTitle,
206 LPCSTR lpstrDescription,
207 UINT uFlags);
208
209void WINAPI ExitWindowsDialog(HWND hwndOwner);
210
211int WINAPI RestartDialog(
212 HWND hwndOwner,
213 LPCSTR lpstrReason,
214 UINT uFlags);
215
216BOOL WINAPI GetFileNameFromBrowse(
217 HWND hwndOwner,
218 LPSTR lpstrFile,
219 DWORD nMaxFile,
220 LPCSTR lpstrInitialDir,
221 LPCSTR lpstrDefExt,
222 LPCSTR lpstrFilter,
223 LPCSTR lpstrTitle);
224
225BOOL WINAPI SHFindFiles(
226 LPCITEMIDLIST pidlRoot,
227 LPCITEMIDLIST pidlSavedSearch);
228
229BOOL WINAPI SHFindComputer(
230 LPCITEMIDLIST pidlRoot,
231 LPCITEMIDLIST pidlSavedSearch);
232
233/* SHObjectProperties flags */
234#define OPF_PRINTERNAME 0x01
235#define OPF_PATHNAME 0x02
236
237BOOL WINAPI SHObjectProperties(
238 HWND hwndOwner,
239 UINT uFlags,
240 LPCSTR lpstrName,
241 LPCSTR lpstrParameters);
242
243void WINAPI SHHandleDiskFull(HWND hwndOwner,
244 UINT uDrive);
245
246int WINAPI SHOutOfMemoryMessageBox(
247 HWND hwndOwner,
248 LPCSTR lpCaption,
249 UINT uType);
250
251DWORD WINAPI SHNetConnectionDialog(
252 HWND hwndOwner,
253 LPCSTR lpstrRemoteName,
254 DWORD dwType);
255
256int WINAPIV ShellMessageBoxA(
257 HINSTANCE hInstance,
258 HWND hWnd,
259 LPCSTR lpText,
260 LPCSTR lpCaption,
261 UINT uType,
262 ...);
263
264int WINAPIV ShellMessageBoxW(
265 HINSTANCE hInstance,
266 HWND hWnd,
267 LPCWSTR lpText,
268 LPCWSTR lpCaption,
269 UINT uType,
270 ...);
271
272#define ShellMessageBox WINELIB_NAME_AW(ShellMessageBox)
273
274/****************************************************************************
275 * Memory Routines
276 */
277
278LPVOID WINAPI SHAlloc(ULONG cb);
279void WINAPI SHFree(LPVOID pv);
280
281HANDLE WINAPI SHAllocShared(
282 LPVOID pv,
283 ULONG cb,
284 DWORD pid);
285
286BOOL WINAPI SHFreeShared(
287 HANDLE hMem,
288 DWORD pid);
289
290LPVOID WINAPI SHLockShared(
291 HANDLE hMem,
292 DWORD pid);
293
294BOOL WINAPI SHUnlockShared(LPVOID pv);
295
296/****************************************************************************
297 * Cabinet Window Messages
298 */
299
300#define CWM_SETPATH (WM_USER + 2)
301#define CWM_WANTIDLE (WM_USER + 3)
302#define CWM_GETSETCURRENTINFO (WM_USER + 4)
303#define CWM_SELECTITEM (WM_USER + 5)
304#define CWM_SELECTITEMSTR (WM_USER + 6)
305#define CWM_GETISHELLBROWSER (WM_USER + 7)
306#define CWM_TESTPATH (WM_USER + 9)
307#define CWM_STATECHANGE (WM_USER + 10)
308#define CWM_GETPATH (WM_USER + 12)
309
310/* CWM_TESTPATH types */
311#define CWTP_ISEQUAL 0
312#define CWTP_ISCHILD 1
313
314/* CWM_TESTPATH structure */
315typedef struct
316{
317 DWORD dwType;
318 ITEMIDLIST idl;
319} CWTESTPATHSTRUCT,* LPCWTESTPATHSTRUCT;
320
321/****************************************************************************
322 * System Imagelist Routines
323 */
324
325int WINAPI Shell_GetCachedImageIndex(
326 LPCSTR lpszFileName,
327 UINT nIconIndex,
328 BOOL bSimulateDoc);
329
330BOOL WINAPI Shell_GetImageLists(
331 HIMAGELIST *lphimlLarge,
332 HIMAGELIST *lphimlSmall);
333
334HICON WINAPI SHGetFileIcon(
335 DWORD dwReserved,
336 LPCSTR lpszPath,
337 DWORD dwFileAttributes,
338 UINT uFlags);
339
340int WINAPI SHMapPIDLToSystemImageListIndex(
341 LPSHELLFOLDER psf,
342 LPCITEMIDLIST pidl,
343 UINT * pOpenIndex);
344
345BOOL WINAPI FileIconInit(BOOL bFullInit);
346
347/****************************************************************************
348 * File Menu Routines
349 */
350/* FileMenu_Create nSelHeight constants */
351#define FM_DEFAULT_SELHEIGHT -1
352#define FM_FULL_SELHEIGHT 0
353
354/* FileMenu_Create flags */
355#define FMF_SMALL_ICONS 0x00
356#define FMF_LARGE_ICONS 0x08
357#define FMF_NO_COLUMN_BREAK 0x10
358
359HMENU WINAPI FileMenu_Create(
360 COLORREF crBorderColor,
361 int nBorderWidth,
362 HBITMAP hBorderBmp,
363 int nSelHeight,
364 UINT uFlags);
365
366void WINAPI FileMenu_Destroy(HMENU hMenu);
367
368/* FileMenu_AppendItem constants */
369#define FM_SEPARATOR (LPCSTR)1
370#define FM_BLANK_ICON -1
371#define FM_DEFAULT_HEIGHT 0
372
373BOOL WINAPI FileMenu_AppendItem(
374 HMENU hMenu,
375 LPCSTR lpszText,
376 UINT uID,
377 int iIcon,
378 HMENU hMenuPopup,
379 int nItemHeight);
380
381/* FileMenu_InsertUsingPidl flags */
382#define FMF_NO_EMPTY_ITEM 0x01
383#define FMF_NO_PROGRAM_GROUPS 0x04
384
385/* FileMenu_InsertUsingPidl callback function */
386//typedef void CALLBACK (*LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile);
387typedef void (CALLBACK *LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile);
388
389int WINAPI FileMenu_InsertUsingPidl(
390 HMENU hMenu,
391 UINT uID,
392 LPCITEMIDLIST pidl,
393 UINT uFlags,
394 UINT uEnumFlags,
395 LPFNFMCALLBACK lpfnCallback);
396
397int WINAPI FileMenu_ReplaceUsingPidl(
398 HMENU hMenu,
399 UINT uID,
400 LPCITEMIDLIST pidl,
401 UINT uEnumFlags,
402 LPFNFMCALLBACK lpfnCallback);
403
404void WINAPI FileMenu_Invalidate(HMENU hMenu);
405
406HMENU WINAPI FileMenu_FindSubMenuByPidl(
407 HMENU hMenu,
408 LPCITEMIDLIST pidl);
409
410BOOL WINAPI FileMenu_TrackPopupMenuEx(
411 HMENU hMenu,
412 UINT uFlags,
413 int x,
414 int y,
415 HWND hWnd,
416 LPTPMPARAMS lptpm);
417
418BOOL WINAPI FileMenu_GetLastSelectedItemPidls(
419 UINT uReserved,
420 LPITEMIDLIST *ppidlFolder,
421 LPITEMIDLIST *ppidlItem);
422
423LRESULT WINAPI FileMenu_MeasureItem(
424 HWND hWnd,
425 LPMEASUREITEMSTRUCT lpmis);
426
427LRESULT WINAPI FileMenu_DrawItem(
428 HWND hWnd,
429 LPDRAWITEMSTRUCT lpdis);
430
431BOOL WINAPI FileMenu_InitMenuPopup(HMENU hMenu);
432
433void WINAPI FileMenu_AbortInitMenu(void);
434
435LRESULT WINAPI FileMenu_HandleMenuChar(
436 HMENU hMenu,
437 WPARAM wParam);
438
439BOOL WINAPI FileMenu_DeleteAllItems(HMENU hMenu);
440
441BOOL WINAPI FileMenu_DeleteItemByCmd(
442 HMENU hMenu,
443 UINT uID);
444
445BOOL WINAPI FileMenu_DeleteItemByIndex(
446 HMENU hMenu,
447 UINT uPos);
448
449BOOL WINAPI FileMenu_DeleteMenuItemByFirstID(
450 HMENU hMenu,
451 UINT uID);
452
453BOOL WINAPI FileMenu_DeleteSeparator(HMENU hMenu);
454
455BOOL WINAPI FileMenu_EnableItemByCmd(
456 HMENU hMenu,
457 UINT uID,
458 BOOL bEnable);
459
460DWORD WINAPI FileMenu_GetItemExtent(
461 HMENU hMenu,
462 UINT uPos);
463
464int WINAPI FileMenu_AppendFilesForPidl(
465 HMENU hMenu,
466 LPCITEMIDLIST pidl,
467 BOOL bAddSeparator);
468
469int WINAPI FileMenu_AddFilesForPidl(
470 HMENU hMenu,
471 UINT uReserved,
472 UINT uID,
473 LPCITEMIDLIST pidl,
474 UINT uFlags,
475 UINT uEnumFlags,
476 LPFNFMCALLBACK lpfnCallback);
477
478/****************************************************************************
479 * Drag And Drop Routines
480 */
481HRESULT WINAPI SHLoadOLE(DWORD dwFlags);
482
483HRESULT WINAPI SHRegisterDragDrop(
484 HWND hWnd,
485 LPDROPTARGET lpDropTarget);
486
487HRESULT WINAPI SHRevokeDragDrop(HWND hWnd);
488
489HRESULT WINAPI SHDoDragDrop(
490 HWND hWnd,
491 LPDATAOBJECT lpDataObject,
492 LPDROPSOURCE lpDropSource,
493 DWORD dwOKEffect,
494 LPDWORD pdwEffect);
495
496BOOL WINAPI DAD_DragEnter(HWND hWnd);
497
498BOOL WINAPI DAD_DragEnterEx(
499 HWND hWnd,
500 POINT pt);
501
502BOOL WINAPI DAD_DragMove(POINT pt);
503
504/* DAD_AutoScroll return values */
505#define DAD_SCROLL_UP 1
506#define DAD_SCROLL_DOWN 2
507#define DAD_SCROLL_LEFT 4
508#define DAD_SCROLL_RIGHT 8
509
510/* DAD_AutoScroll sample structure */
511typedef struct
512{
513 DWORD dwCount;
514 DWORD dwLastTime;
515 BOOL bWrapped;
516 POINT aptPositions[3];
517 DWORD adwTimes[3];
518} SCROLLSAMPLES, *LPSCROLLSAMPLES;
519
520DWORD WINAPI DAD_AutoScroll(HWND hWnd,
521 LPSCROLLSAMPLES lpSamples,
522 LPPOINT lppt);
523
524BOOL WINAPI DAD_DragLeave();
525
526BOOL WINAPI DAD_SetDragImageFromListView(
527 HWND hWnd,
528 POINT pt);
529
530BOOL WINAPI DAD_SetDragImage(
531 HIMAGELIST himlTrack,
532 LPPOINT lppt);
533
534BOOL WINAPI DAD_ShowDragImage(BOOL bShow);
535
536HRESULT WINAPI SHCreateStdEnumFmtEtc(
537 DWORD cFormats,
538 const FORMATETC *lpFormats,
539 LPENUMFORMATETC *ppenumFormatetc);
540
541HRESULT WINAPI CIDLData_CreateFromIDArray(
542 LPCITEMIDLIST pidlFolder,
543 DWORD cpidlFiles,
544 LPCITEMIDLIST *lppidlFiles,
545 LPDATAOBJECT *ppdataObject);
546
547/****************************************************************************
548 * Path Manipulation Routines
549 */
550
551LPSTR WINAPI PathAppend(
552 LPSTR lpszPath1,
553 LPCSTR lpszPath2);
554
555LPSTR WINAPI PathCombineA(LPSTR szDest, LPCSTR lpszDir, LPCSTR lpszFile);
556LPWSTR WINAPI PathCombineW(LPWSTR szDest, LPCWSTR lpszDir, LPCWSTR lpszFile);
557#define PathCombine WINELIB_NAME_AW(PathCombine)
558LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile);
559
560LPSTR WINAPI PathAddBackslashA(LPSTR path);
561LPWSTR WINAPI PathAddBackslashW(LPWSTR path);
562#define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash)
563LPVOID WINAPI PathAddBackslashAW(LPVOID path);
564
565LPSTR WINAPI PathRemoveBackslashA(LPSTR lpszPath);
566LPWSTR WINAPI PathRemoveBackslashW(LPWSTR lpszPath);
567#define PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash)
568
569LPSTR WINAPI PathBuildRoot(
570 LPSTR lpszPath,
571 int drive);
572
573LPSTR WINAPI PathFindExtensionA(LPCSTR path);
574LPWSTR WINAPI PathFindExtensionW(LPCWSTR path);
575#define PathFindExtension WINELIB_NAME_AW(PathFindExtension)
576LPVOID WINAPI PathFindExtensionAW(LPCVOID path);
577
578LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath);
579
580LPSTR WINAPI PathGetArgs(LPCSTR lpszPath);
581
582BOOL WINAPI PathRemoveFileSpec(LPSTR lpszPath);
583
584LPSTR WINAPI PathGetShortPath(LPSTR lpszPath);
585
586LPSTR WINAPI PathQuoteSpacesA(LPSTR path);
587LPWSTR WINAPI PathQuoteSpacesW(LPWSTR path);
588#define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces)
589LPVOID WINAPI PathQuoteSpacesAW(LPVOID path);
590
591void WINAPI PathUnquoteSpaces(LPSTR lpszPath);
592
593BOOL WINAPI PathIsUNCA(LPCSTR lpszPath);
594BOOL WINAPI PathIsUNCW(LPCWSTR lpszPath);
595#define PathIsUNC WINELIB_NAME_AW(PathIsUNC)
596BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath);
597
598BOOL WINAPI PathIsRelativeA(LPCSTR lpszPath);
599BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath);
600#define PathIsRelative WINELIB_NAME_AW(PathIsRelative)
601BOOL WINAPI PathIsRelativeAW(LPCVOID lpszPath);
602
603BOOL WINAPI PathIsRootA(LPCSTR x);
604BOOL WINAPI PathIsRootW(LPCWSTR x);
605#define PathIsRoot WINELIB_NAME_AW(PathIsRoot)
606BOOL WINAPI PathIsRootAW(LPCVOID x);
607
608BOOL WINAPI PathIsExe(LPCSTR lpszPath);
609
610BOOL WINAPI PathIsDirectory(LPCSTR lpszPath);
611
612BOOL WINAPI PathFileExists(LPCSTR lpszPath);
613
614BOOL WINAPI PathMatchSpecA(
615 LPCSTR lpszPath,
616 LPCSTR lpszSpec);
617BOOL WINAPI PathMatchSpecW(
618 LPCWSTR lpszPath,
619 LPCWSTR lpszSpec);
620#define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec)
621BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec);
622
623BOOL WINAPI PathMakeUniqueName(
624 LPSTR lpszBuffer,
625 DWORD dwBuffSize,
626 LPCSTR lpszShortName,
627 LPCSTR lpszLongName,
628 LPCSTR lpszPathName);
629
630BOOL WINAPI PathYetAnotherMakeUniqueName(
631 LPSTR lpszBuffer,
632 LPCSTR lpszPathName,
633 LPCSTR lpszShortName,
634 LPCSTR lpszLongName);
635
636BOOL WINAPI PathFindOnPath(
637 LPSTR lpszFile,
638 LPCSTR *alpszPaths);
639
640/* PathCleanupSpec return values */
641#define PCS_REPLACEDCHARS 0x00000001
642#define PCS_REMOVEDCHARS 0x00000002
643#define PCS_SHORTENED 0x00000004
644#define PCS_PATHTOOLONG 0x80000008
645
646DWORD WINAPI PathCleanupSpec(
647 LPCSTR lpszPath,
648 LPSTR lpszFile);
649
650BOOL WINAPI PathQualifyA(LPCSTR path);
651BOOL WINAPI PathQualifyW(LPCWSTR path);
652#define PathQualify WINELIB_NAME_AW(PathQualify)
653BOOL WINAPI PathQualifyAW(LPCVOID path);
654
655
656/* PathResolve flags */
657#define PRF_CHECKEXISTANCE 0x01
658#define PRF_EXECUTABLE 0x02
659#define PRF_QUALIFYONPATH 0x04
660#define PRF_WINDOWS31 0x08
661
662BOOL WINAPI PathResolve(
663 LPSTR lpszPath,
664 LPCSTR *alpszPaths,
665 DWORD dwFlags);
666
667BOOL WINAPI PathSetDlgItemPath(
668 HWND hDlg,
669 int nIDDlgItem,
670 LPCSTR lpszPath);
671
672/* PathProcessCommand flags */
673#define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */
674#define PPCF_INCLUDEARGS 0x02
675#define PPCF_NODIRECTORIES 0x10
676#define PPCF_DONTRESOLVE 0x20
677#define PPCF_PATHISRELATIVE 0x40
678
679int WINAPI PathProcessCommand(
680 LPCWSTR lpszPath,
681 LPWSTR lpszBuff,
682 DWORD dwBuffSize,
683 DWORD dwFlags);
684
685void WINAPI PathStripPath(LPWSTR lpszPath);
686
687BOOL WINAPI PathStripToRoot(LPWSTR lpszPath);
688
689void WINAPI PathRemoveArgs(LPWSTR lpszPath);
690
691void WINAPI PathRemoveExtension(LPWSTR lpszPath);
692
693int WINAPI PathParseIconLocation(LPWSTR lpszPath);
694
695BOOL WINAPI PathIsSameRoot(
696 LPCWSTR lpszPath1,
697 LPCWSTR lpszPath2);
698
699BOOL WINAPI PathFindOnPathA(LPSTR sFile, LPCSTR sOtherDirs);
700BOOL WINAPI PathFindOnPathW(LPWSTR sFile, LPCWSTR sOtherDirs);
701#define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath)
702BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID sOtherDirs);
703
704LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf );
705LPWSTR WINAPI StrFormatByteSizeW ( DWORD dw, LPWSTR pszBuf, UINT cchBuf );
706#define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
707
708/****************************************************************************
709 * Shell Namespace Routines
710 */
711
712/* SHCreateShellFolderViewEx callback function */
713typedef HRESULT (CALLBACK* LPFNSFVCALLBACK)(
714 DWORD dwUser,
715 LPSHELLFOLDER pshf,
716 HWND hWnd,
717 UINT uMsg,
718 WPARAM wParam,
719 LPARAM lParam);
720
721/* SHCreateShellFolderViewEx structure */
722typedef struct
723{
724 DWORD dwSize;
725 LPSHELLFOLDER pshf;
726 DWORD dwUser;
727 LPCITEMIDLIST pidlFolder;
728 DWORD dwEventId;
729 LPFNSFVCALLBACK lpfnCallback;
730 UINT uViewMode;
731} SHELLFOLDERVIEWINFO, * LPSHELLFOLDERVIEWINFO;
732typedef const SHELLFOLDERVIEWINFO * LPCSHELLFOLDERVIEWINFO;
733
734HRESULT WINAPI SHCreateShellFolderViewEx(
735 LPCSHELLFOLDERVIEWINFO pshfvi,
736 LPSHELLVIEW *ppshv);
737
738/* SHCreateShellFolderViewEx callback messages */
739#define SFVCB_ADDTOMENU 0x0001
740#define SFVCB_INVOKECOMMAND 0x0002
741#define SFVCB_GETMENUHELP 0x0003
742#define SFVCB_GETTOOLBARTIP 0x0004
743#define SFVCB_GETTOOLBARINFO 0x0005
744#define SFVCB_ADDTOOLBARITEMS 0x0006
745#define SFVCB_INITMENUPOPUP 0x0007
746#define SFVCB_SELECTIONCHANGED 0x0008
747#define SFVCB_DRAWMENUITEM 0x0009
748#define SFVCB_MEASUREMENUITEM 0x000A
749#define SFVCB_EXITMENULOOP 0x000B
750#define SFVCB_VIEWRELEASE 0x000C
751#define SFVCB_GETNAMELENGTH 0x000D
752#define SFVCB_CHANGENOTIFY 0x000E
753#define SFVCB_WINDOWCREATED 0x000F
754#define SFVCB_WINDOWCLOSING 0x0010
755#define SFVCB_LISTREFRESHED 0x0011
756#define SFVCB_WINDOWFOCUSED 0x0012
757#define SFVCB_REGISTERCOPYHOOK 0x0014
758#define SFVCB_COPYHOOKCALLBACK 0x0015
759#define SFVCB_GETDETAILSOF 0x0017
760#define SFVCB_COLUMNCLICK 0x0018
761#define SFVCB_GETCHANGENOTIFYPIDL 0x0019
762#define SFVCB_GETESTIMATEDCOUNT 0x001A
763#define SFVCB_ADJUSTVIEWMODE 0x001B
764#define SFVCB_REMOVEFROMMENU 0x001C
765#define SFVCB_ADDINGOBJECT 0x001D
766#define SFVCB_REMOVINGOBJECT 0x001E
767#define SFVCB_UPDATESTATUSBAR 0x001F
768#define SFVCB_ISSLOWREFRESH 0x0020
769#define SFVCB_GETCOMMANDDIR 0x0021
770#define SFVCB_GETCOLUMNSTREAM 0x0022
771#define SFVCB_CANSELECTALL 0x0023
772#define SFVCB_DRAGSUCCEEDED 0x0024
773#define SFVCB_ISSTRICTREFRESH 0x0025
774#define SFVCB_ISCHILDOBJECT 0x0026
775
776/* Generic structure used by several messages */
777typedef struct
778{
779 DWORD dwReserved;
780 DWORD dwReserved2;
781 LPCITEMIDLIST pidl;
782 LPDWORD lpdwUser;
783} SFVCBINFO, * LPSFVCBINFO;
784typedef const SFVCBINFO * LPCSFVCBINFO;
785
786/* SFVCB_ADDTOMENU structure */
787typedef struct
788{
789 HMENU hMenu;
790 UINT indexMenu;
791 UINT idCmdFirst;
792 UINT idCmdLast;
793} SFVMENUINFO, * LPSFVMENUINFO;
794
795/* SFVCB_GETTOOLBARINFO structure */
796typedef struct
797{
798 UINT nButtons;
799 UINT uFlags;
800} SFVTOOLBARINFO, * LPSFVTOOLBARINFO;
801
802/* SFVTOOLBARINFO flags */
803typedef enum
804{
805 SFVTI_ADDTOEND = 0,
806 SFVTI_ADDTOFRONT = 1,
807 SFVTI_OVERWRITE = 2
808} SFVTIF;
809
810/* SFVCB_SELECTIONCHANGED structure */
811typedef struct
812{
813 UINT uOldState;
814 UINT uNewState;
815 LPCITEMIDLIST pidl;
816 LPDWORD lpdwUser;
817} SFVSELECTSTATE, * LPSFVSELECTSTATE;
818typedef const SFVSELECTSTATE * LPCSFVSELECTSTATE;
819
820/* SFVCB_COPYHOOKCALLBACK structure */
821typedef struct
822{
823 HWND hwnd;
824 UINT wFunc;
825 UINT wFlags;
826 LPCSTR pszSrcFile;
827 DWORD dwSrcAttribs;
828 LPCSTR pszDestFile;
829 DWORD dwDestAttribs;
830} SFVCOPYHOOKINFO, * LPSFVCOPYHOOKINFO;
831typedef const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO;
832
833/* SFVCB_GETDETAILSOF structure */
834typedef struct
835{
836 LPCITEMIDLIST pidl;
837 int fmt;
838 int cx;
839 STRRET lpText;
840} SFVCOLUMNINFO, * LPSFVCOLUMNINFO;
841
842int WINAPI SHShellFolderView_Message(
843 HWND hwndCabinet,
844 DWORD dwMessage,
845 DWORD dwParam);
846
847/* SHShellFolderView_Message messages */
848#define SFVM_REARRANGE 0x0001
849#define SFVM_GETARRANGECOLUMN 0x0002
850#define SFVM_ADDOBJECT 0x0003
851#define SFVM_GETITEMCOUNT 0x0004
852#define SFVM_GETITEMPIDL 0x0005
853#define SFVM_REMOVEOBJECT 0x0006
854#define SFVM_UPDATEOBJECT 0x0007
855#define SFVM_SETREDRAW 0x0008
856#define SFVM_GETSELECTEDOBJECTS 0x0009
857#define SFVM_ISDROPONSOURCE 0x000A
858#define SFVM_MOVEICONS 0x000B
859#define SFVM_GETDRAGPOINT 0x000C
860#define SFVM_GETDROPPOINT 0x000D
861#define SFVM_SETOBJECTPOS 0x000E
862#define SFVM_ISDROPONBACKGROUND 0x000F
863#define SFVM_CUTOBJECTS 0x0010
864#define SFVM_TOGGLEAUTOARRANGE 0x0011
865#define SFVM_LINEUPICONS 0x0012
866#define SFVM_GETAUTOARRANGE 0x0013
867#define SFVM_GETSELECTEDCOUNT 0x0014
868#define SFVM_GETITEMSPACING 0x0015
869#define SFVM_REFRESHOBJECT 0x0016
870#define SFVM_SETCLIPBOARDPOINTS 0x0017
871
872/****************************************************************************
873 * Misc Stuff
874 */
875
876/* SHWaitForFileToOpen flags */
877#define SHWFF_ADD 0x01
878#define SHWFF_REMOVE 0x02
879#define SHWFF_WAIT 0x04
880
881BOOL WINAPI SHWaitForFileToOpen(
882 LPCITEMIDLIST pidl,
883 DWORD dwFlags,
884 DWORD dwTimeout);
885
886WORD WINAPI ArrangeWindows(
887 HWND hwndParent,
888 DWORD dwReserved,
889 LPCRECT lpRect,
890 WORD cKids,
891 CONST HWND * lpKids);
892
893/* RegisterShellHook types */
894#define RSH_DEREGISTER 0
895#define RSH_REGISTER 1
896#define RSH_REGISTER_PROGMAN 2
897#define RSH_REGISTER_TASKMAN 3
898
899BOOL WINAPI RegisterShellHook(
900 HWND hWnd,
901 DWORD dwType);
902
903/* SHCreateDefClassObject callback function */
904//typedef HRESULT CALLBACK (*LPFNCDCOCALLBACK)(
905typedef HRESULT (CALLBACK *LPFNCDCOCALLBACK)(
906 LPUNKNOWN pUnkOuter,
907 REFIID riidObject,
908 LPVOID *ppvObject);
909
910HRESULT WINAPI SHCreateDefClassObject(
911 REFIID riidFactory,
912 LPVOID *ppvFactory,
913 LPFNCDCOCALLBACK lpfnCallback,
914 LPDWORD lpdwUsage,
915 REFIID riidObject);
916
917HRESULT WINAPI SHCoCreateInstance(
918 LPCSTR lpszClsid,
919 REFCLSID rClsid,
920 LPUNKNOWN pUnkOuter,
921 REFIID riid,
922 LPVOID *ppv);
923
924void WINAPI SHFreeUnusedLibraries();
925
926/* SHCreateLinks flags */
927#define SHCLF_PREFIXNAME 0x01
928#define SHCLF_CREATEONDESKTOP 0x02
929
930HRESULT WINAPI SHCreateLinks(
931 HWND hWnd,
932 LPCSTR lpszDir,
933 LPDATAOBJECT lpDataObject,
934 UINT uFlags,
935 LPITEMIDLIST *lppidlLinks);
936
937/* SHGetNewLinkInfo flags */
938#define SHGNLI_PIDL 0x01
939#define SHGNLI_PREFIXNAME 0x02
940#define SHGNLI_NOUNIQUE 0x04
941
942BOOL WINAPI SHGetNewLinkInfoA(
943 LPCSTR pszLinkTo,
944 LPCSTR pszDir,
945 LPSTR pszName,
946 BOOL *pfMustCopy,
947 UINT uFlags);
948
949BOOL WINAPI SHGetNewLinkInfoW(
950 LPCWSTR pszLinkTo,
951 LPCWSTR pszDir,
952 LPWSTR pszName,
953 BOOL *pfMustCopy,
954 UINT uFlags);
955#define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo)
956
957/* policy functions */
958BOOL WINAPI SHInitRestricted(LPSTR, LPSTR);
959
960#ifdef __cplusplus
961} /* extern "C" */
962#endif /* defined(__cplusplus) */
963
964#endif /* __WINE_SHLOBJ_H */
Note: See TracBrowser for help on using the repository browser.