2 * Shell Library definitions
15 /****************************************************************************
18 extern void SHELL_LoadRegistry();
19 extern void SHELL_SaveRegistry();
20 extern void SHELL_Init();
22 /* global functions used from shell32 */
23 extern HINSTANCE32
SHELL_FindExecutable(LPCSTR
,LPCSTR
,LPSTR
);
24 extern HGLOBAL16 WINAPI
InternalExtractIcon(HINSTANCE16
,LPCSTR
,UINT16
,WORD
);
26 /****************************************************************************
29 /****************************************************************************
32 #define SHELL_ERROR_SUCCESS 0L
33 #define SHELL_ERROR_BADDB 1L
34 #define SHELL_ERROR_BADKEY 2L
35 #define SHELL_ERROR_CANTOPEN 3L
36 #define SHELL_ERROR_CANTREAD 4L
37 #define SHELL_ERROR_CANTWRITE 5L
38 #define SHELL_ERROR_OUTOFMEMORY 6L
39 #define SHELL_ERROR_INVALID_PARAMETER 7L
40 #define SHELL_ERROR_ACCESS_DENIED 8L
42 /****************************************************************************
43 * common shell file structures
45 #define FO_MOVE 0x0001
46 #define FO_COPY 0x0002
47 #define FO_DELETE 0x0003
48 #define FO_RENAME 0x0004
50 #define FOF_MULTIDESTFILES 0x0001
51 #define FOF_CONFIRMMOUSE 0x0002
52 #define FOF_SILENT 0x0004
53 #define FOF_RENAMEONCOLLISION 0x0008
54 #define FOF_NOCONFIRMATION 0x0010
55 #define FOF_WANTMAPPINGHANDLE 0x0020
56 #define FOF_ALLOWUNDO 0x0040
57 #define FOF_FILESONLY 0x0080
58 #define FOF_SIMPLEPROGRESS 0x0100
59 #define FOF_NOCONFIRMMKDIR 0x0200
60 #define FOF_NOERRORUI 0x0400
62 typedef WORD FILEOP_FLAGS
;
64 #define PO_DELETE 0x0013
65 #define PO_RENAME 0x0014
66 #define PO_PORTCHANGE 0x0020
68 typedef WORD PRINTEROP_FLAGS
;
70 /******************************
73 typedef struct { /* structure for dropped files */
76 BOOL16 fInNonClientArea
;
77 /* memory block with filenames follows */
78 } DROPFILESTRUCT
, *LPDROPFILESTRUCT
;
80 /****************************************************************************
83 typedef struct _NOTIFYICONDATA
{
88 UINT32 uCallbackMessage
;
91 } NOTIFYICONDATA
, *PNOTIFYICONDATA
;
93 /****************************************************************************
94 * SHITEMID, ITEMIDLIST, PIDL API
97 { WORD cb
; /* nr of bytes in this item */
98 BYTE abID
[1];/* first byte in this item */
99 } SHITEMID
,*LPSHITEMID
;
102 { SHITEMID mkid
; /* first itemid in list */
103 } ITEMIDLIST
,*LPITEMIDLIST
,*LPCITEMIDLIST
;
105 LPITEMIDLIST WINAPI
ILClone (LPCITEMIDLIST pidl
);
106 LPITEMIDLIST WINAPI
ILGetNext(LPITEMIDLIST pidl
);
107 LPITEMIDLIST WINAPI
ILCombine(LPCITEMIDLIST iil1
,LPCITEMIDLIST iil2
);
108 DWORD WINAPI
ILGetSize(LPITEMIDLIST pidl
);
110 DWORD WINAPI
SHGetPathFromIDList32A (LPCITEMIDLIST pidl
,LPSTR pszPath
);
111 DWORD WINAPI
SHGetPathFromIDList32W (LPCITEMIDLIST pidl
,LPWSTR pszPath
);
112 #define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList)
114 /****************************************************************************
117 typedef struct tagSHFILEINFO32A
{
118 HICON32 hIcon
; /* icon */
119 int iIcon
; /* icon index */
120 DWORD dwAttributes
; /* SFGAO_ flags */
121 CHAR szDisplayName
[MAX_PATH
];/* display name (or path) */
122 CHAR szTypeName
[80]; /* type name */
125 typedef struct tagSHFILEINFO32W
{
126 HICON32 hIcon
; /* icon */
127 int iIcon
; /* icon index */
128 DWORD dwAttributes
; /* SFGAO_ flags */
129 WCHAR szDisplayName
[MAX_PATH
];/* display name (or path) */
130 WCHAR szTypeName
[80]; /* type name */
133 DECL_WINELIB_TYPE_AW(SHFILEINFO
)
135 DWORD WINAPI
SHGetFileInfo32A(LPCSTR
,DWORD
,SHFILEINFO32A
*,UINT32
,UINT32
);
136 DWORD WINAPI
SHGetFileInfo32W(LPCWSTR
,DWORD
,SHFILEINFO32W
*,UINT32
,UINT32
);
137 #define SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo)
139 /****************************************************************************
142 typedef struct _SHFILEOPSTRUCTA
148 BOOL32 fAnyOperationsAborted
;
149 LPVOID hNameMappings
;
150 LPCSTR lpszProgressTitle
;
151 } SHFILEOPSTRUCT32A
, *LPSHFILEOPSTRUCT32A
;
153 typedef struct _SHFILEOPSTRUCTW
159 BOOL32 fAnyOperationsAborted
;
160 LPVOID hNameMappings
;
161 LPCWSTR lpszProgressTitle
;
162 } SHFILEOPSTRUCT32W
, *LPSHFILEOPSTRUCT32W
;
164 typedef SHFILEOPSTRUCT32A SHFILEOPSTRUCT32
;
165 typedef LPSHFILEOPSTRUCT32A LPSHFILEOPSTRUCT32
;
167 DECL_WINELIB_TYPE_AW(SHFILEOPSTRUCT
)
169 DWORD WINAPI
SHFileOperation32(LPSHFILEOPSTRUCT32 lpFileOp
);
171 /****************************************************************************
174 typedef struct _AppBarData
{
177 UINT32 uCallbackMessage
;
181 } APPBARDATA
, *PAPPBARDATA
;
183 #define SHGFI_ICON 0x000000100 /* get icon */
184 #define SHGFI_DISPLAYNAME 0x000000200 /* get display name */
185 #define SHGFI_TYPENAME 0x000000400 /* get type name */
186 #define SHGFI_ATTRIBUTES 0x000000800 /* get attributes */
187 #define SHGFI_ICONLOCATION 0x000001000 /* get icon location */
188 #define SHGFI_EXETYPE 0x000002000 /* return exe type */
189 #define SHGFI_SYSICONINDEX 0x000004000 /* get system icon index */
190 #define SHGFI_LINKOVERLAY 0x000008000 /* put a link overlay on icon */
191 #define SHGFI_SELECTED 0x000010000 /* show icon in selected state */
192 #define SHGFI_LARGEICON 0x000000000 /* get large icon */
193 #define SHGFI_SMALLICON 0x000000001 /* get small icon */
194 #define SHGFI_OPENICON 0x000000002 /* get open icon */
195 #define SHGFI_SHELLICONSIZE 0x000000004 /* get shell size icon */
196 #define SHGFI_PIDL 0x000000008 /* pszPath is a pidl */
197 #define SHGFI_USEFILEATTRIBUTES 0x000000010 /* use passed dwFileAttribute */
199 /****************************************************************************
200 * SHChangeNotifyRegister API
207 DWORD WINAPI
SHChangeNotifyRegister(HWND32 hwnd
,LONG events1
,LONG events2
,DWORD msg
,int count
,IDSTRUCT
*idlist
);
208 DWORD WINAPI
SHChangeNotifyDeregister(LONG x1
,LONG x2
);
210 /****************************************************************************
211 * SHAddToRecentDocs API
213 #define SHARD_PIDL 0x00000001L
214 #define SHARD_PATH 0x00000002L
216 DWORD WINAPI
SHAddToRecentDocs(UINT32 uFlags
, LPCVOID pv
);
218 /****************************************************************************
219 * string and path functions
221 LPSTR WINAPI
PathAddBackslash(LPSTR path
);
222 LPSTR WINAPI
PathCombine(LPSTR target
,LPSTR x1
,LPSTR x2
);
223 LPSTR WINAPI
PathRemoveBlanks(LPSTR str
);
224 LPSTR WINAPI
PathFindFilename(LPSTR fn
);
225 /****************************************************************************
228 LPVOID WINAPI
SHAlloc(DWORD len
);
229 DWORD WINAPI
SHFree(LPVOID x
);
231 #define SE_ERR_SHARE 26
232 #define SE_ERR_ASSOCINCOMPLETE 27
233 #define SE_ERR_DDETIMEOUT 28
234 #define SE_ERR_DDEFAIL 29
235 #define SE_ERR_DDEBUSY 30
236 #define SE_ERR_NOASSOC 31
238 #define CSIDL_DESKTOP 0x0000
239 #define CSIDL_PROGRAMS 0x0002
240 #define CSIDL_CONTROLS 0x0003
241 #define CSIDL_PRINTERS 0x0004
242 #define CSIDL_PERSONAL 0x0005
243 #define CSIDL_FAVORITES 0x0006
244 #define CSIDL_STARTUP 0x0007
245 #define CSIDL_RECENT 0x0008
246 #define CSIDL_SENDTO 0x0009
247 #define CSIDL_BITBUCKET 0x000a
248 #define CSIDL_STARTMENU 0x000b
249 #define CSIDL_DESKTOPDIRECTORY 0x0010
250 #define CSIDL_DRIVES 0x0011
251 #define CSIDL_NETWORK 0x0012
252 #define CSIDL_NETHOOD 0x0013
253 #define CSIDL_FONTS 0x0014
254 #define CSIDL_TEMPLATES 0x0015
256 #endif /* __WINE_SHELL_H */