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

Last change on this file since 5616 was 5616, checked in by sandervl, 24 years ago

header updates

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