Moved some more definitions out of undocshell.h into the exported
[wine/multimedia.git] / dlls / shell32 / undocshell.h
blob2fc0deac3a98fef5393942c760091de74030c89b
1 /*
2 * Copyright 1999, 2000 Juergen Schmied
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #ifndef __WINE_UNDOCSHELL_H
20 #define __WINE_UNDOCSHELL_H
22 #include <stdarg.h>
24 #include "windef.h"
25 #include "winbase.h"
26 #include "winuser.h"
27 #include "commctrl.h"
28 #include "shlobj.h"
30 #ifdef __cplusplus
31 extern "C" {
32 #endif /* defined(__cplusplus) */
34 /****************************************************************************
35 * IDList Functions
37 BOOL WINAPI ILGetDisplayName(
38 LPCITEMIDLIST pidl,
39 LPVOID path);
41 /* type parameter for ILGetDisplayNameEx() */
42 #define ILGDN_FORPARSING 0
43 #define ILGDN_NORMAL 1
44 #define ILGDN_INFOLDER 2
46 BOOL WINAPI ILGetDisplayNameEx(
47 LPSHELLFOLDER psf,
48 LPCITEMIDLIST pidl,
49 LPVOID path,
50 DWORD type);
52 HRESULT WINAPI ILSaveToStream(
53 LPSTREAM pstrm,
54 LPCITEMIDLIST pidl);
56 HRESULT WINAPI ILLoadFromStream(
57 LPSTREAM pstrm,
58 LPITEMIDLIST *ppidl);
60 LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl);
61 void WINAPI ILGlobalFree(LPITEMIDLIST pidl);
63 LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPCSTR lpszPath);
64 LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPCWSTR lpszPath);
66 HRESULT WINAPI SHILCreateFromPathA (
67 LPCSTR path,
68 LPITEMIDLIST * ppidl,
69 DWORD *attributes);
71 HRESULT WINAPI SHILCreateFromPathW (
72 LPCWSTR path,
73 LPITEMIDLIST * ppidl,
74 DWORD *attributes);
76 LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR path);
77 LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path);
80 string functions
82 BOOL WINAPI StrRetToStrNA(LPSTR,DWORD,LPSTRRET,const ITEMIDLIST*);
83 BOOL WINAPI StrRetToStrNW(LPWSTR,DWORD,LPSTRRET,const ITEMIDLIST*);
86 /****************************************************************************
87 * SHChangeNotifyRegister API
89 #define SHCNRF_InterruptLevel 0x0001
90 #define SHCNRF_ShellLevel 0x0002
91 #define SHCNRF_RecursiveInterrupt 0x1000 /* Must be combined with SHCNRF_InterruptLevel */
92 #define SHCNRF_NewDelivery 0x8000 /* Messages use shared memory */
94 /****************************************************************************
95 * Shell Common Dialogs
98 BOOL WINAPI PickIconDlg(
99 HWND hwndOwner,
100 LPSTR lpstrFile,
101 DWORD nMaxFile,
102 LPDWORD lpdwIconIndex);
104 /* RunFileDlg flags */
105 #define RFF_NOBROWSE 0x01
106 #define RFF_NODEFAULT 0x02
107 #define RFF_CALCDIRECTORY 0x04
108 #define RFF_NOLABEL 0x08
109 #define RFF_NOSEPARATEMEM 0x20 /* NT only */
111 /* RunFileFlg notification structure */
112 typedef struct
114 NMHDR hdr;
115 LPCSTR lpFile;
116 LPCSTR lpDirectory;
117 int nShow;
118 } NM_RUNFILEDLG, * LPNM_RUNFILEDLG;
120 /* RunFileDlg notification return values */
121 #define RF_OK 0x00
122 #define RF_CANCEL 0x01
123 #define RF_RETRY 0x02
125 void WINAPI RunFileDlg(
126 HWND hwndOwner,
127 HICON hIcon,
128 LPCSTR lpstrDirectory,
129 LPCSTR lpstrTitle,
130 LPCSTR lpstrDescription,
131 UINT uFlags);
133 void WINAPI ExitWindowsDialog(HWND hwndOwner);
135 int WINAPI RestartDialog(
136 HWND hwndOwner,
137 LPCSTR lpstrReason,
138 UINT uFlags);
140 BOOL WINAPI GetFileNameFromBrowse(
141 HWND hwndOwner,
142 LPSTR lpstrFile,
143 DWORD nMaxFile,
144 LPCSTR lpstrInitialDir,
145 LPCSTR lpstrDefExt,
146 LPCSTR lpstrFilter,
147 LPCSTR lpstrTitle);
149 BOOL WINAPI SHFindComputer(
150 LPCITEMIDLIST pidlRoot,
151 LPCITEMIDLIST pidlSavedSearch);
153 void WINAPI SHHandleDiskFull(HWND hwndOwner,
154 UINT uDrive);
156 int WINAPI SHOutOfMemoryMessageBox(
157 HWND hwndOwner,
158 LPCSTR lpCaption,
159 UINT uType);
161 DWORD WINAPI SHNetConnectionDialog(
162 HWND hwndOwner,
163 LPCSTR lpstrRemoteName,
164 DWORD dwType);
166 /****************************************************************************
167 * Memory Routines
170 HANDLE WINAPI SHAllocShared(
171 LPVOID pv,
172 ULONG cb,
173 DWORD pid);
175 BOOL WINAPI SHFreeShared(
176 HANDLE hMem,
177 DWORD pid);
179 LPVOID WINAPI SHLockShared(
180 HANDLE hMem,
181 DWORD pid);
183 BOOL WINAPI SHUnlockShared(LPVOID pv);
185 /****************************************************************************
186 * Cabinet Window Messages
189 #define CWM_SETPATH (WM_USER + 2)
190 #define CWM_WANTIDLE (WM_USER + 3)
191 #define CWM_GETSETCURRENTINFO (WM_USER + 4)
192 #define CWM_SELECTITEM (WM_USER + 5)
193 #define CWM_SELECTITEMSTR (WM_USER + 6)
194 #define CWM_GETISHELLBROWSER (WM_USER + 7)
195 #define CWM_TESTPATH (WM_USER + 9)
196 #define CWM_STATECHANGE (WM_USER + 10)
197 #define CWM_GETPATH (WM_USER + 12)
199 /* CWM_TESTPATH types */
200 #define CWTP_ISEQUAL 0
201 #define CWTP_ISCHILD 1
203 /* CWM_TESTPATH structure */
204 typedef struct
206 DWORD dwType;
207 ITEMIDLIST idl;
208 } CWTESTPATHSTRUCT,* LPCWTESTPATHSTRUCT;
210 /****************************************************************************
211 * System Imagelist Routines
214 int WINAPI Shell_GetCachedImageIndex(
215 LPCSTR lpszFileName,
216 UINT nIconIndex,
217 BOOL bSimulateDoc);
219 BOOL WINAPI Shell_GetImageLists(
220 HIMAGELIST *lphimlLarge,
221 HIMAGELIST *lphimlSmall);
223 HICON WINAPI SHGetFileIcon(
224 DWORD dwReserved,
225 LPCSTR lpszPath,
226 DWORD dwFileAttributes,
227 UINT uFlags);
229 BOOL WINAPI FileIconInit(BOOL bFullInit);
231 /****************************************************************************
232 * File Menu Routines
234 /* FileMenu_Create nSelHeight constants */
235 #define FM_DEFAULT_SELHEIGHT -1
236 #define FM_FULL_SELHEIGHT 0
238 /* FileMenu_Create flags */
239 #define FMF_SMALL_ICONS 0x00
240 #define FMF_LARGE_ICONS 0x08
241 #define FMF_NO_COLUMN_BREAK 0x10
243 HMENU WINAPI FileMenu_Create(
244 COLORREF crBorderColor,
245 int nBorderWidth,
246 HBITMAP hBorderBmp,
247 int nSelHeight,
248 UINT uFlags);
250 void WINAPI FileMenu_Destroy(HMENU hMenu);
252 /* FileMenu_AppendItem constants */
253 #define FM_SEPARATOR (LPCSTR)1
254 #define FM_BLANK_ICON -1
255 #define FM_DEFAULT_HEIGHT 0
257 BOOL WINAPI FileMenu_AppendItem(
258 HMENU hMenu,
259 LPCSTR lpszText,
260 UINT uID,
261 int iIcon,
262 HMENU hMenuPopup,
263 int nItemHeight);
265 /* FileMenu_InsertUsingPidl flags */
266 #define FMF_NO_EMPTY_ITEM 0x01
267 #define FMF_NO_PROGRAM_GROUPS 0x04
269 /* FileMenu_InsertUsingPidl callback function */
270 typedef void (CALLBACK *LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile);
272 int WINAPI FileMenu_InsertUsingPidl(
273 HMENU hMenu,
274 UINT uID,
275 LPCITEMIDLIST pidl,
276 UINT uFlags,
277 UINT uEnumFlags,
278 LPFNFMCALLBACK lpfnCallback);
280 int WINAPI FileMenu_ReplaceUsingPidl(
281 HMENU hMenu,
282 UINT uID,
283 LPCITEMIDLIST pidl,
284 UINT uEnumFlags,
285 LPFNFMCALLBACK lpfnCallback);
287 void WINAPI FileMenu_Invalidate(HMENU hMenu);
289 HMENU WINAPI FileMenu_FindSubMenuByPidl(
290 HMENU hMenu,
291 LPCITEMIDLIST pidl);
293 BOOL WINAPI FileMenu_TrackPopupMenuEx(
294 HMENU hMenu,
295 UINT uFlags,
296 int x,
297 int y,
298 HWND hWnd,
299 LPTPMPARAMS lptpm);
301 BOOL WINAPI FileMenu_GetLastSelectedItemPidls(
302 UINT uReserved,
303 LPCITEMIDLIST *ppidlFolder,
304 LPCITEMIDLIST *ppidlItem);
306 LRESULT WINAPI FileMenu_MeasureItem(
307 HWND hWnd,
308 LPMEASUREITEMSTRUCT lpmis);
310 LRESULT WINAPI FileMenu_DrawItem(
311 HWND hWnd,
312 LPDRAWITEMSTRUCT lpdis);
314 BOOL WINAPI FileMenu_InitMenuPopup(HMENU hMenu);
316 void WINAPI FileMenu_AbortInitMenu(void);
318 LRESULT WINAPI FileMenu_HandleMenuChar(
319 HMENU hMenu,
320 WPARAM wParam);
322 BOOL WINAPI FileMenu_DeleteAllItems(HMENU hMenu);
324 BOOL WINAPI FileMenu_DeleteItemByCmd(
325 HMENU hMenu,
326 UINT uID);
328 BOOL WINAPI FileMenu_DeleteItemByIndex(
329 HMENU hMenu,
330 UINT uPos);
332 BOOL WINAPI FileMenu_DeleteMenuItemByFirstID(
333 HMENU hMenu,
334 UINT uID);
336 BOOL WINAPI FileMenu_DeleteSeparator(HMENU hMenu);
338 BOOL WINAPI FileMenu_EnableItemByCmd(
339 HMENU hMenu,
340 UINT uID,
341 BOOL bEnable);
343 DWORD WINAPI FileMenu_GetItemExtent(
344 HMENU hMenu,
345 UINT uPos);
347 int WINAPI FileMenu_AppendFilesForPidl(
348 HMENU hMenu,
349 LPCITEMIDLIST pidl,
350 BOOL bAddSeparator);
352 int WINAPI FileMenu_AddFilesForPidl(
353 HMENU hMenu,
354 UINT uReserved,
355 UINT uID,
356 LPCITEMIDLIST pidl,
357 UINT uFlags,
358 UINT uEnumFlags,
359 LPFNFMCALLBACK lpfnCallback);
361 /****************************************************************************
362 * Drag And Drop Routines
364 HRESULT WINAPI SHLoadOLE(DWORD dwFlags);
366 HRESULT WINAPI SHRegisterDragDrop(
367 HWND hWnd,
368 LPDROPTARGET lpDropTarget);
370 HRESULT WINAPI SHRevokeDragDrop(HWND hWnd);
372 BOOL WINAPI DAD_DragEnter(HWND hWnd);
374 BOOL WINAPI DAD_SetDragImageFromListView(
375 HWND hWnd,
376 POINT pt);
378 BOOL WINAPI DAD_ShowDragImage(BOOL bShow);
380 HRESULT WINAPI CIDLData_CreateFromIDArray(
381 LPCITEMIDLIST pidlFolder,
382 DWORD cpidlFiles,
383 LPCITEMIDLIST *lppidlFiles,
384 LPDATAOBJECT *ppdataObject);
386 /****************************************************************************
387 * Path Manipulation Routines
390 BOOL WINAPI PathAppendAW(LPVOID lpszPath1, LPCVOID lpszPath2);
392 LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile);
394 LPVOID WINAPI PathAddBackslashAW(LPVOID path);
396 LPVOID WINAPI PathBuildRootAW(LPVOID lpszPath, int drive);
398 LPVOID WINAPI PathFindExtensionAW(LPCVOID path);
400 LPVOID WINAPI PathFindFileNameAW(LPCVOID path);
402 LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath, DWORD void1, DWORD void2);
404 LPVOID WINAPI PathGetArgsAW(LPVOID lpszPath);
406 BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath);
408 void WINAPI PathRemoveBlanksAW(LPVOID lpszPath);
410 VOID WINAPI PathQuoteSpacesAW(LPVOID path);
412 void WINAPI PathUnquoteSpacesAW(LPVOID lpszPath);
414 BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath);
416 BOOL WINAPI PathIsRelativeAW(LPCVOID lpszPath);
418 BOOL WINAPI PathIsRootAW(LPCVOID x);
420 BOOL WINAPI PathIsExeAW(LPCVOID lpszPath);
422 BOOL WINAPI PathIsDirectoryAW(LPCVOID lpszPath);
424 BOOL WINAPI PathFileExistsAW(LPCVOID lpszPath);
426 BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec);
428 BOOL WINAPI PathMakeUniqueNameAW(
429 LPVOID lpszBuffer,
430 DWORD dwBuffSize,
431 LPCVOID lpszShortName,
432 LPCVOID lpszLongName,
433 LPCVOID lpszPathName);
435 BOOL WINAPI PathYetAnotherMakeUniqueName(
436 LPWSTR lpszBuffer,
437 LPCWSTR lpszPathName,
438 LPCWSTR lpszShortName,
439 LPCWSTR lpszLongName);
441 /* PathCleanupSpec return values */
442 #define PCS_REPLACEDCHARS 0x00000001
443 #define PCS_REMOVEDCHARS 0x00000002
444 #define PCS_SHORTENED 0x00000004
445 #define PCS_PATHTOOLONG 0x80000008
447 DWORD WINAPI PathCleanupSpecAW(LPCVOID lpszPath, LPVOID lpszFile);
449 BOOL WINAPI PathQualifyA(LPCSTR path);
450 BOOL WINAPI PathQualifyW(LPCWSTR path);
451 #define PathQualify WINELIB_NAME_AW(PathQualify)
452 BOOL WINAPI PathQualifyAW(LPCVOID path);
455 /* PathResolve flags */
456 #define PRF_CHECKEXISTANCE 0x01
457 #define PRF_EXECUTABLE 0x02
458 #define PRF_QUALIFYONPATH 0x04
459 #define PRF_WINDOWS31 0x08
461 BOOL WINAPI PathResolveAW(LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags);
463 VOID WINAPI PathSetDlgItemPathAW(HWND hDlg, int nIDDlgItem, LPCVOID lpszPath);
465 /* PathProcessCommand flags */
466 #define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */
467 #define PPCF_INCLUDEARGS 0x02
468 #define PPCF_NODIRECTORIES 0x10
469 #define PPCF_DONTRESOLVE 0x20
470 #define PPCF_PATHISRELATIVE 0x40
472 HRESULT WINAPI PathProcessCommandAW(LPCVOID lpszPath, LPVOID lpszBuff,
473 DWORD dwBuffSize, DWORD dwFlags);
475 void WINAPI PathStripPathAW(LPVOID lpszPath);
477 BOOL WINAPI PathStripToRootAW(LPVOID lpszPath);
479 void WINAPI PathRemoveArgsAW(LPVOID lpszPath);
481 void WINAPI PathRemoveExtensionAW(LPVOID lpszPath);
483 int WINAPI PathParseIconLocationAW(LPVOID lpszPath);
485 BOOL WINAPI PathIsSameRootAW(LPCVOID lpszPath1, LPCVOID lpszPath2);
487 BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID sOtherDirs);
489 /****************************************************************************
490 * Shell Namespace Routines
493 /* SHCreateShellFolderViewEx callback function */
494 typedef HRESULT (CALLBACK *LPFNSFVCALLBACK)(
495 DWORD dwUser,
496 LPSHELLFOLDER pshf,
497 HWND hWnd,
498 UINT uMsg,
499 WPARAM wParam,
500 LPARAM lParam);
502 /* SHCreateShellFolderViewEx structure */
503 typedef struct
505 DWORD dwSize;
506 LPSHELLFOLDER pshf;
507 DWORD dwUser;
508 LPCITEMIDLIST pidlFolder;
509 DWORD dwEventId;
510 LPFNSFVCALLBACK lpfnCallback;
511 UINT uViewMode;
512 } SHELLFOLDERVIEWINFO, * LPSHELLFOLDERVIEWINFO;
513 typedef const SHELLFOLDERVIEWINFO * LPCSHELLFOLDERVIEWINFO;
515 HRESULT WINAPI SHCreateShellFolderViewEx(
516 LPCSHELLFOLDERVIEWINFO pshfvi,
517 LPSHELLVIEW *ppshv);
519 /* SHCreateShellFolderViewEx callback messages */
520 #define SFVCB_ADDTOMENU 0x0001
521 #define SFVCB_INVOKECOMMAND 0x0002
522 #define SFVCB_GETMENUHELP 0x0003
523 #define SFVCB_GETTOOLBARTIP 0x0004
524 #define SFVCB_GETTOOLBARINFO 0x0005
525 #define SFVCB_ADDTOOLBARITEMS 0x0006
526 #define SFVCB_INITMENUPOPUP 0x0007
527 #define SFVCB_SELECTIONCHANGED 0x0008
528 #define SFVCB_DRAWMENUITEM 0x0009
529 #define SFVCB_MEASUREMENUITEM 0x000A
530 #define SFVCB_EXITMENULOOP 0x000B
531 #define SFVCB_VIEWRELEASE 0x000C
532 #define SFVCB_GETNAMELENGTH 0x000D
533 #define SFVCB_CHANGENOTIFY 0x000E
534 #define SFVCB_WINDOWCREATED 0x000F
535 #define SFVCB_WINDOWCLOSING 0x0010
536 #define SFVCB_LISTREFRESHED 0x0011
537 #define SFVCB_WINDOWFOCUSED 0x0012
538 #define SFVCB_REGISTERCOPYHOOK 0x0014
539 #define SFVCB_COPYHOOKCALLBACK 0x0015
540 #define SFVCB_GETDETAILSOF 0x0017
541 #define SFVCB_COLUMNCLICK 0x0018
542 #define SFVCB_GETCHANGENOTIFYPIDL 0x0019
543 #define SFVCB_GETESTIMATEDCOUNT 0x001A
544 #define SFVCB_ADJUSTVIEWMODE 0x001B
545 #define SFVCB_REMOVEFROMMENU 0x001C
546 #define SFVCB_ADDINGOBJECT 0x001D
547 #define SFVCB_REMOVINGOBJECT 0x001E
548 #define SFVCB_UPDATESTATUSBAR 0x001F
549 #define SFVCB_ISSLOWREFRESH 0x0020
550 #define SFVCB_GETCOMMANDDIR 0x0021
551 #define SFVCB_GETCOLUMNSTREAM 0x0022
552 #define SFVCB_CANSELECTALL 0x0023
553 #define SFVCB_DRAGSUCCEEDED 0x0024
554 #define SFVCB_ISSTRICTREFRESH 0x0025
555 #define SFVCB_ISCHILDOBJECT 0x0026
557 /* Generic structure used by several messages */
558 typedef struct
560 DWORD dwReserved;
561 DWORD dwReserved2;
562 LPCITEMIDLIST pidl;
563 LPDWORD lpdwUser;
564 } SFVCBINFO, * LPSFVCBINFO;
565 typedef const SFVCBINFO * LPCSFVCBINFO;
567 /* SFVCB_ADDTOMENU structure */
568 typedef struct
570 HMENU hMenu;
571 UINT indexMenu;
572 UINT idCmdFirst;
573 UINT idCmdLast;
574 } SFVMENUINFO, * LPSFVMENUINFO;
576 /* SFVCB_GETTOOLBARINFO structure */
577 typedef struct
579 UINT nButtons;
580 UINT uFlags;
581 } SFVTOOLBARINFO, * LPSFVTOOLBARINFO;
583 /* SFVTOOLBARINFO flags */
584 typedef enum
586 SFVTI_ADDTOEND = 0,
587 SFVTI_ADDTOFRONT = 1,
588 SFVTI_OVERWRITE = 2
589 } SFVTIF;
591 /* SFVCB_SELECTIONCHANGED structure */
592 typedef struct
594 UINT uOldState;
595 UINT uNewState;
596 LPCITEMIDLIST pidl;
597 LPDWORD lpdwUser;
598 } SFVSELECTSTATE, * LPSFVSELECTSTATE;
599 typedef const SFVSELECTSTATE * LPCSFVSELECTSTATE;
601 /* SFVCB_COPYHOOKCALLBACK structure */
602 typedef struct
604 HWND hwnd;
605 UINT wFunc;
606 UINT wFlags;
607 LPCSTR pszSrcFile;
608 DWORD dwSrcAttribs;
609 LPCSTR pszDestFile;
610 DWORD dwDestAttribs;
611 } SFVCOPYHOOKINFO, * LPSFVCOPYHOOKINFO;
612 typedef const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO;
614 /* SFVCB_GETDETAILSOF structure */
615 typedef struct
617 LPCITEMIDLIST pidl;
618 int fmt;
619 int cx;
620 STRRET lpText;
621 } SFVCOLUMNINFO, * LPSFVCOLUMNINFO;
623 int WINAPI SHShellFolderView_Message(
624 HWND hwndCabinet,
625 DWORD dwMessage,
626 DWORD dwParam);
628 /* SHShellFolderView_Message messages */
629 #define SFVM_REARRANGE 0x0001
630 #define SFVM_GETARRANGECOLUMN 0x0002
631 #define SFVM_ADDOBJECT 0x0003
632 #define SFVM_GETITEMCOUNT 0x0004
633 #define SFVM_GETITEMPIDL 0x0005
634 #define SFVM_REMOVEOBJECT 0x0006
635 #define SFVM_UPDATEOBJECT 0x0007
636 #define SFVM_SETREDRAW 0x0008
637 #define SFVM_GETSELECTEDOBJECTS 0x0009
638 #define SFVM_ISDROPONSOURCE 0x000A
639 #define SFVM_MOVEICONS 0x000B
640 #define SFVM_GETDRAGPOINT 0x000C
641 #define SFVM_GETDROPPOINT 0x000D
642 #define SFVM_SETOBJECTPOS 0x000E
643 #define SFVM_ISDROPONBACKGROUND 0x000F
644 #define SFVM_CUTOBJECTS 0x0010
645 #define SFVM_TOGGLEAUTOARRANGE 0x0011
646 #define SFVM_LINEUPICONS 0x0012
647 #define SFVM_GETAUTOARRANGE 0x0013
648 #define SFVM_GETSELECTEDCOUNT 0x0014
649 #define SFVM_GETITEMSPACING 0x0015
650 #define SFVM_REFRESHOBJECT 0x0016
651 #define SFVM_SETCLIPBOARDPOINTS 0x0017
653 /****************************************************************************
654 * Misc Stuff
657 /* SHWaitForFileToOpen flags */
658 #define SHWFF_ADD 0x01
659 #define SHWFF_REMOVE 0x02
660 #define SHWFF_WAIT 0x04
662 BOOL WINAPI SHWaitForFileToOpen(
663 LPCITEMIDLIST pidl,
664 DWORD dwFlags,
665 DWORD dwTimeout);
667 WORD WINAPI ArrangeWindows(
668 HWND hwndParent,
669 DWORD dwReserved,
670 LPCRECT lpRect,
671 WORD cKids,
672 CONST HWND * lpKids);
674 /* RegisterShellHook types */
675 #define RSH_DEREGISTER 0
676 #define RSH_REGISTER 1
677 #define RSH_REGISTER_PROGMAN 2
678 #define RSH_REGISTER_TASKMAN 3
680 BOOL WINAPI RegisterShellHook(
681 HWND hWnd,
682 DWORD dwType);
684 /* SHCreateDefClassObject callback function */
685 typedef HRESULT (CALLBACK *LPFNCDCOCALLBACK)(
686 LPUNKNOWN pUnkOuter,
687 REFIID riidObject,
688 LPVOID *ppvObject);
690 HRESULT WINAPI SHCreateDefClassObject(
691 REFIID riidFactory,
692 LPVOID *ppvFactory,
693 LPFNCDCOCALLBACK lpfnCallback,
694 LPDWORD lpdwUsage,
695 REFIID riidObject);
697 DWORD WINAPI SHCLSIDFromStringA (LPCSTR clsid, CLSID *id);
698 DWORD WINAPI SHCLSIDFromStringW (LPCWSTR clsid, CLSID *id);
700 void WINAPI SHFreeUnusedLibraries();
702 /* SHCreateLinks flags */
703 #define SHCLF_PREFIXNAME 0x01
704 #define SHCLF_CREATEONDESKTOP 0x02
706 HRESULT WINAPI SHCreateLinks(
707 HWND hWnd,
708 LPCSTR lpszDir,
709 LPDATAOBJECT lpDataObject,
710 UINT uFlags,
711 LPITEMIDLIST *lppidlLinks);
713 DWORD WINAPI CheckEscapesA(LPSTR string, DWORD len);
714 DWORD WINAPI CheckEscapesW(LPWSTR string, DWORD len);
716 /* policy functions */
717 BOOL WINAPI SHInitRestricted(LPCVOID unused, LPCVOID inpRegKey);
719 #ifdef __cplusplus
720 } /* extern "C" */
721 #endif /* defined(__cplusplus) */
723 #endif /* __WINE_UNDOCSHELL_H */