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

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

header updates

File size: 22.4 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 PathFindOnPathAW(LPVOID sFile, LPCVOID sOtherDirs);
691
692LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf );
693LPWSTR WINAPI StrFormatByteSizeW ( DWORD dw, LPWSTR pszBuf, UINT cchBuf );
694#define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
695
696/****************************************************************************
697 * Shell Namespace Routines
698 */
699
700/* SHCreateShellFolderViewEx callback function */
701#ifdef __WIN32OS2__
702typedef HRESULT (* CALLBACK LPFNSFVCALLBACK)(
703#else
704typedef HRESULT (CALLBACK* LPFNSFVCALLBACK)(
705#endif
706 DWORD dwUser,
707 LPSHELLFOLDER pshf,
708 HWND hWnd,
709 UINT uMsg,
710 WPARAM wParam,
711 LPARAM lParam);
712
713/* SHCreateShellFolderViewEx structure */
714typedef struct
715{
716 DWORD dwSize;
717 LPSHELLFOLDER pshf;
718 DWORD dwUser;
719 LPCITEMIDLIST pidlFolder;
720 DWORD dwEventId;
721 LPFNSFVCALLBACK lpfnCallback;
722 UINT uViewMode;
723} SHELLFOLDERVIEWINFO, * LPSHELLFOLDERVIEWINFO;
724typedef const SHELLFOLDERVIEWINFO * LPCSHELLFOLDERVIEWINFO;
725
726HRESULT WINAPI SHCreateShellFolderViewEx(
727 LPCSHELLFOLDERVIEWINFO pshfvi,
728 LPSHELLVIEW *ppshv);
729
730/* SHCreateShellFolderViewEx callback messages */
731#define SFVCB_ADDTOMENU 0x0001
732#define SFVCB_INVOKECOMMAND 0x0002
733#define SFVCB_GETMENUHELP 0x0003
734#define SFVCB_GETTOOLBARTIP 0x0004
735#define SFVCB_GETTOOLBARINFO 0x0005
736#define SFVCB_ADDTOOLBARITEMS 0x0006
737#define SFVCB_INITMENUPOPUP 0x0007
738#define SFVCB_SELECTIONCHANGED 0x0008
739#define SFVCB_DRAWMENUITEM 0x0009
740#define SFVCB_MEASUREMENUITEM 0x000A
741#define SFVCB_EXITMENULOOP 0x000B
742#define SFVCB_VIEWRELEASE 0x000C
743#define SFVCB_GETNAMELENGTH 0x000D
744#define SFVCB_CHANGENOTIFY 0x000E
745#define SFVCB_WINDOWCREATED 0x000F
746#define SFVCB_WINDOWCLOSING 0x0010
747#define SFVCB_LISTREFRESHED 0x0011
748#define SFVCB_WINDOWFOCUSED 0x0012
749#define SFVCB_REGISTERCOPYHOOK 0x0014
750#define SFVCB_COPYHOOKCALLBACK 0x0015
751#define SFVCB_GETDETAILSOF 0x0017
752#define SFVCB_COLUMNCLICK 0x0018
753#define SFVCB_GETCHANGENOTIFYPIDL 0x0019
754#define SFVCB_GETESTIMATEDCOUNT 0x001A
755#define SFVCB_ADJUSTVIEWMODE 0x001B
756#define SFVCB_REMOVEFROMMENU 0x001C
757#define SFVCB_ADDINGOBJECT 0x001D
758#define SFVCB_REMOVINGOBJECT 0x001E
759#define SFVCB_UPDATESTATUSBAR 0x001F
760#define SFVCB_ISSLOWREFRESH 0x0020
761#define SFVCB_GETCOMMANDDIR 0x0021
762#define SFVCB_GETCOLUMNSTREAM 0x0022
763#define SFVCB_CANSELECTALL 0x0023
764#define SFVCB_DRAGSUCCEEDED 0x0024
765#define SFVCB_ISSTRICTREFRESH 0x0025
766#define SFVCB_ISCHILDOBJECT 0x0026
767
768/* Generic structure used by several messages */
769typedef struct
770{
771 DWORD dwReserved;
772 DWORD dwReserved2;
773 LPCITEMIDLIST pidl;
774 LPDWORD lpdwUser;
775} SFVCBINFO, * LPSFVCBINFO;
776typedef const SFVCBINFO * LPCSFVCBINFO;
777
778/* SFVCB_ADDTOMENU structure */
779typedef struct
780{
781 HMENU hMenu;
782 UINT indexMenu;
783 UINT idCmdFirst;
784 UINT idCmdLast;
785} SFVMENUINFO, * LPSFVMENUINFO;
786
787/* SFVCB_GETTOOLBARINFO structure */
788typedef struct
789{
790 UINT nButtons;
791 UINT uFlags;
792} SFVTOOLBARINFO, * LPSFVTOOLBARINFO;
793
794/* SFVTOOLBARINFO flags */
795typedef enum
796{
797 SFVTI_ADDTOEND = 0,
798 SFVTI_ADDTOFRONT = 1,
799 SFVTI_OVERWRITE = 2
800} SFVTIF;
801
802/* SFVCB_SELECTIONCHANGED structure */
803typedef struct
804{
805 UINT uOldState;
806 UINT uNewState;
807 LPCITEMIDLIST pidl;
808 LPDWORD lpdwUser;
809} SFVSELECTSTATE, * LPSFVSELECTSTATE;
810typedef const SFVSELECTSTATE * LPCSFVSELECTSTATE;
811
812/* SFVCB_COPYHOOKCALLBACK structure */
813typedef struct
814{
815 HWND hwnd;
816 UINT wFunc;
817 UINT wFlags;
818 LPCSTR pszSrcFile;
819 DWORD dwSrcAttribs;
820 LPCSTR pszDestFile;
821 DWORD dwDestAttribs;
822} SFVCOPYHOOKINFO, * LPSFVCOPYHOOKINFO;
823typedef const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO;
824
825/* SFVCB_GETDETAILSOF structure */
826typedef struct
827{
828 LPCITEMIDLIST pidl;
829 int fmt;
830 int cx;
831 STRRET lpText;
832} SFVCOLUMNINFO, * LPSFVCOLUMNINFO;
833
834int WINAPI SHShellFolderView_Message(
835 HWND hwndCabinet,
836 DWORD dwMessage,
837 DWORD dwParam);
838
839/* SHShellFolderView_Message messages */
840#define SFVM_REARRANGE 0x0001
841#define SFVM_GETARRANGECOLUMN 0x0002
842#define SFVM_ADDOBJECT 0x0003
843#define SFVM_GETITEMCOUNT 0x0004
844#define SFVM_GETITEMPIDL 0x0005
845#define SFVM_REMOVEOBJECT 0x0006
846#define SFVM_UPDATEOBJECT 0x0007
847#define SFVM_SETREDRAW 0x0008
848#define SFVM_GETSELECTEDOBJECTS 0x0009
849#define SFVM_ISDROPONSOURCE 0x000A
850#define SFVM_MOVEICONS 0x000B
851#define SFVM_GETDRAGPOINT 0x000C
852#define SFVM_GETDROPPOINT 0x000D
853#define SFVM_SETOBJECTPOS 0x000E
854#define SFVM_ISDROPONBACKGROUND 0x000F
855#define SFVM_CUTOBJECTS 0x0010
856#define SFVM_TOGGLEAUTOARRANGE 0x0011
857#define SFVM_LINEUPICONS 0x0012
858#define SFVM_GETAUTOARRANGE 0x0013
859#define SFVM_GETSELECTEDCOUNT 0x0014
860#define SFVM_GETITEMSPACING 0x0015
861#define SFVM_REFRESHOBJECT 0x0016
862#define SFVM_SETCLIPBOARDPOINTS 0x0017
863
864/****************************************************************************
865 * Misc Stuff
866 */
867
868/* SHWaitForFileToOpen flags */
869#define SHWFF_ADD 0x01
870#define SHWFF_REMOVE 0x02
871#define SHWFF_WAIT 0x04
872
873BOOL WINAPI SHWaitForFileToOpen(
874 LPCITEMIDLIST pidl,
875 DWORD dwFlags,
876 DWORD dwTimeout);
877
878WORD WINAPI ArrangeWindows(
879 HWND hwndParent,
880 DWORD dwReserved,
881 LPCRECT lpRect,
882 WORD cKids,
883 CONST HWND * lpKids);
884
885/* RegisterShellHook types */
886#define RSH_DEREGISTER 0
887#define RSH_REGISTER 1
888#define RSH_REGISTER_PROGMAN 2
889#define RSH_REGISTER_TASKMAN 3
890
891BOOL WINAPI RegisterShellHook(
892 HWND hWnd,
893 DWORD dwType);
894
895/* SHCreateDefClassObject callback function */
896//typedef HRESULT CALLBACK (*LPFNCDCOCALLBACK)(
897#ifdef __WIN32OS2__
898typedef HRESULT (* CALLBACK LPFNCDCOCALLBACK)(
899#else
900typedef HRESULT (CALLBACK *LPFNCDCOCALLBACK)(
901#endif
902 LPUNKNOWN pUnkOuter,
903 REFIID riidObject,
904 LPVOID *ppvObject);
905
906HRESULT WINAPI SHCreateDefClassObject(
907 REFIID riidFactory,
908 LPVOID *ppvFactory,
909 LPFNCDCOCALLBACK lpfnCallback,
910 LPDWORD lpdwUsage,
911 REFIID riidObject);
912
913HRESULT WINAPI SHCoCreateInstance(
914 LPCSTR lpszClsid,
915 REFCLSID rClsid,
916 LPUNKNOWN pUnkOuter,
917 REFIID riid,
918 LPVOID *ppv);
919
920void WINAPI SHFreeUnusedLibraries();
921
922/* SHCreateLinks flags */
923#define SHCLF_PREFIXNAME 0x01
924#define SHCLF_CREATEONDESKTOP 0x02
925
926HRESULT WINAPI SHCreateLinks(
927 HWND hWnd,
928 LPCSTR lpszDir,
929 LPDATAOBJECT lpDataObject,
930 UINT uFlags,
931 LPITEMIDLIST *lppidlLinks);
932
933/* SHGetNewLinkInfo flags */
934#define SHGNLI_PIDL 0x01
935#define SHGNLI_PREFIXNAME 0x02
936#define SHGNLI_NOUNIQUE 0x04
937
938BOOL WINAPI SHGetNewLinkInfoA(
939 LPCSTR pszLinkTo,
940 LPCSTR pszDir,
941 LPSTR pszName,
942 BOOL *pfMustCopy,
943 UINT uFlags);
944
945BOOL WINAPI SHGetNewLinkInfoW(
946 LPCWSTR pszLinkTo,
947 LPCWSTR pszDir,
948 LPWSTR pszName,
949 BOOL *pfMustCopy,
950 UINT uFlags);
951#define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo)
952
953/* policy functions */
954BOOL WINAPI SHInitRestricted(LPSTR, LPSTR);
955
956
957#ifdef __WIN32OS2__
958HRESULT WINAPI SHGetFolderPathA(
959 HWND hwndOwner,
960 int nFolder,
961 HANDLE hToken,
962 DWORD dwFlags,
963 LPSTR pszPath);
964#endif
965
966
967#ifdef __cplusplus
968} /* extern "C" */
969#endif /* defined(__cplusplus) */
970
971#endif /* __WINE_SHLOBJ_H */
Note: See TracBrowser for help on using the repository browser.