Removed extra , from last element in enum declarations.
[wine] / include / wine / obj_shellfolder.h
1 /*
2  * Defines the COM interfaces and APIs related to IShellFolder
3  *
4  * Depends on 'obj_base.h'.
5  *
6  * Copyright (C) 1999 Juergen Schmied
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  */
22
23 #ifndef __WINE_WINE_OBJ_SHELLFOLDER_H
24 #define __WINE_WINE_OBJ_SHELLFOLDER_H
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* defined(__cplusplus) */
29
30 /****************************************************************************
31 *  STRRET
32 */
33 #define STRRET_WSTR     0x0000
34 #define STRRET_OFFSET   0x0001
35 #define STRRET_CSTR     0x0002
36
37 typedef struct _STRRET {
38   UINT uType;                   /* STRRET_xxx */
39   union {
40     LPWSTR      pOleStr;        /* OLESTR that will be freed */
41     UINT        uOffset;        /* Offset into SHITEMID (ANSI) */
42     char        cStr[MAX_PATH]; /* ANSI Buffer */
43   } DUMMYUNIONNAME;
44 } STRRET,*LPSTRRET;
45
46 /*****************************************************************************
47  * Predeclare the interfaces
48  */
49 typedef struct IShellFolder IShellFolder, *LPSHELLFOLDER;
50
51 typedef struct IPersistFolder IPersistFolder, *LPPERSISTFOLDER;
52
53 DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0L, 0x175C, 0x11D1, 0x95, 0xBE, 0x00, 0x60, 0x97, 0x97, 0xEA, 0x4F);
54 typedef struct IPersistFolder2 IPersistFolder2, *LPPERSISTFOLDER2;
55
56 DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87, 0xa5, 0x0, 0xc0, 0x4f, 0x68, 0x37, 0xcf);
57 typedef struct IPersistFolder3 IPersistFolder3, *LPPERSISTFOLDER3;
58
59 DEFINE_GUID(IID_IShellFolder2,  0xB82C5AA8, 0xA41B, 0x11D2, 0xBE, 0x32, 0x0, 0xc0, 0x4F, 0xB9, 0x36, 0x61);
60 typedef struct IShellFolder2 IShellFolder2, *LPSHELLFOLDER2;
61
62 DEFINE_GUID(IID_IEnumExtraSearch,  0xE700BE1, 0x9DB6, 0x11D1, 0xA1, 0xCE, 0x0, 0xc0, 0x4F, 0xD7, 0x5D, 0x13);
63 typedef struct IEnumExtraSearch IEnumExtraSearch, *LPENUMEXTRASEARCH;
64
65 /*****************************************************************************
66  * IEnumExtraSearch interface
67  */
68
69 typedef struct
70 {
71   GUID  guidSearch;
72   WCHAR wszFriendlyName[80];
73   WCHAR wszMenuText[80];
74   WCHAR wszHelpText[MAX_PATH];
75   WCHAR wszUrl[2084];
76   WCHAR wszIcon[MAX_PATH+10];
77   WCHAR wszGreyIcon[MAX_PATH+10];
78   WCHAR wszClrIcon[MAX_PATH+10];
79 } EXTRASEARCH,* LPEXTRASEARCH;
80
81 #define ICOM_INTERFACE IEnumExtraSearch
82 #define IEnumExtraSearch_METHODS \
83     ICOM_METHOD3(HRESULT, Next, ULONG, celt, LPEXTRASEARCH*, rgelt, ULONG*, pceltFetched) \
84     ICOM_METHOD1(HRESULT, Skip, ULONG, celt) \
85     ICOM_METHOD (HRESULT, Reset) \
86     ICOM_METHOD1(HRESULT, Clone, IEnumExtraSearch**, ppenum)
87 #define IEnumExtraSearch_IMETHODS \
88     IUnknown_IMETHODS \
89     IEnumExtraSearch_METHODS
90 ICOM_DEFINE(IEnumExtraSearch,IUnknown)
91 #undef ICOM_INTERFACE
92
93 /*** IUnknown methods ***/
94 #define IEnumIDList_QueryInterface(p,a,b)       ICOM_CALL2(QueryInterface,p,a,b)
95 #define IEnumIDList_AddRef(p)                   ICOM_CALL (AddRef,p)
96 #define IEnumIDList_Release(p)                  ICOM_CALL (Release,p)
97 /*** IEnumIDList methods ***/
98 #define IEnumIDList_Next(p,a,b,c)               ICOM_CALL3(Next,p,a,b,c)
99 #define IEnumIDList_Skip(p,a)                   ICOM_CALL1(Skip,p,a)
100 #define IEnumIDList_Reset(p)                    ICOM_CALL(Reset,p)
101 #define IEnumIDList_Clone(p,a)                  ICOM_CALL1(Clone,p,a)
102
103 /*****************************************************************************
104  * IShellFolder::GetDisplayNameOf/SetNameOf uFlags
105  */
106 typedef enum
107 {       SHGDN_NORMAL            = 0,            /* default (display purpose) */
108         SHGDN_INFOLDER          = 1,            /* displayed under a folder (relative)*/
109         SHGDN_FORPARSING        = 0x8000        /* for ParseDisplayName or path */
110 } SHGNO;
111
112 /*****************************************************************************
113  * IShellFolder::EnumObjects
114  */
115 typedef enum tagSHCONTF
116 {       SHCONTF_FOLDERS         = 32,   /* for shell browser */
117         SHCONTF_NONFOLDERS      = 64,   /* for default view */
118         SHCONTF_INCLUDEHIDDEN   = 128   /* for hidden/system objects */
119 } SHCONTF;
120
121 /*****************************************************************************
122  * IShellFolder::GetAttributesOf flags
123  */
124 #define SFGAO_CANCOPY           DROPEFFECT_COPY /* Objects can be copied */
125 #define SFGAO_CANMOVE           DROPEFFECT_MOVE /* Objects can be moved */
126 #define SFGAO_CANLINK           DROPEFFECT_LINK /* Objects can be linked */
127 #define SFGAO_CANRENAME         0x00000010L     /* Objects can be renamed */
128 #define SFGAO_CANDELETE         0x00000020L     /* Objects can be deleted */
129 #define SFGAO_HASPROPSHEET      0x00000040L     /* Objects have property sheets */
130 #define SFGAO_DROPTARGET        0x00000100L     /* Objects are drop target */
131 #define SFGAO_CAPABILITYMASK    0x00000177L
132 #define SFGAO_LINK              0x00010000L     /* Shortcut (link) */
133 #define SFGAO_SHARE             0x00020000L     /* shared */
134 #define SFGAO_READONLY          0x00040000L     /* read-only */
135 #define SFGAO_GHOSTED           0x00080000L     /* ghosted icon */
136 #define SFGAO_HIDDEN            0x00080000L     /* hidden object */
137 #define SFGAO_DISPLAYATTRMASK   0x000F0000L
138 #define SFGAO_FILESYSANCESTOR   0x10000000L     /* It contains file system folder */
139 #define SFGAO_FOLDER            0x20000000L     /* It's a folder. */
140 #define SFGAO_FILESYSTEM        0x40000000L     /* is a file system thing (file/folder/root) */
141 #define SFGAO_HASSUBFOLDER      0x80000000L     /* Expandable in the map pane */
142 #define SFGAO_CONTENTSMASK      0x80000000L
143 #define SFGAO_VALIDATE          0x01000000L     /* invalidate cached information */
144 #define SFGAO_REMOVABLE         0x02000000L     /* is this removeable media? */
145 #define SFGAO_BROWSABLE         0x08000000L     /* is in-place browsable */
146 #define SFGAO_NONENUMERATED     0x00100000L     /* is a non-enumerated object */
147 #define SFGAO_NEWCONTENT        0x00200000L     /* should show bold in explorer tree */
148
149 /************************************************************************
150  *
151  * FOLDERSETTINGS
152 */
153
154 typedef LPBYTE LPVIEWSETTINGS;
155
156 /* NB Bitfields. */
157 /* FWF_DESKTOP implies FWF_TRANSPARENT/NOCLIENTEDGE/NOSCROLL */
158 typedef enum
159 { FWF_AUTOARRANGE =       0x0001,
160   FWF_ABBREVIATEDNAMES =  0x0002,
161   FWF_SNAPTOGRID =        0x0004,
162   FWF_OWNERDATA =         0x0008,
163   FWF_BESTFITWINDOW =     0x0010,
164   FWF_DESKTOP =           0x0020,
165   FWF_SINGLESEL =         0x0040,
166   FWF_NOSUBFOLDERS =      0x0080,
167   FWF_TRANSPARENT  =      0x0100,
168   FWF_NOCLIENTEDGE =      0x0200,
169   FWF_NOSCROLL     =      0x0400,
170   FWF_ALIGNLEFT    =      0x0800,
171   FWF_SINGLECLICKACTIVATE=0x8000  /* TEMPORARY -- NO UI FOR THIS */
172 } FOLDERFLAGS;
173
174 typedef enum
175 { FVM_ICON =              1,
176   FVM_SMALLICON =         2,
177   FVM_LIST =              3,
178   FVM_DETAILS =           4
179 } FOLDERVIEWMODE;
180
181 typedef struct
182 { UINT ViewMode;       /* View mode (FOLDERVIEWMODE values) */
183   UINT fFlags;         /* View options (FOLDERFLAGS bits) */
184 } FOLDERSETTINGS, *LPFOLDERSETTINGS;
185
186 typedef const FOLDERSETTINGS * LPCFOLDERSETTINGS;
187
188 /************************************************************************
189  * Desktopfolder
190  */
191
192 extern IShellFolder * pdesktopfolder;
193
194 DWORD WINAPI SHGetDesktopFolder(IShellFolder * *);
195
196 /*****************************************************************************
197  * IShellFolder interface
198  */
199 #define ICOM_INTERFACE IShellFolder
200 #define IShellFolder_METHODS \
201     ICOM_METHOD6( HRESULT, ParseDisplayName, HWND, hwndOwner,LPBC, pbcReserved, LPOLESTR, lpszDisplayName, ULONG *, pchEaten, LPITEMIDLIST *, ppidl, ULONG *, pdwAttributes) \
202     ICOM_METHOD3( HRESULT, EnumObjects, HWND, hwndOwner, DWORD, grfFlags, LPENUMIDLIST *, ppenumIDList)\
203     ICOM_METHOD4( HRESULT, BindToObject, LPCITEMIDLIST, pidl, LPBC, pbcReserved, REFIID, riid, LPVOID *, ppvOut)\
204     ICOM_METHOD4( HRESULT, BindToStorage, LPCITEMIDLIST, pidl, LPBC, pbcReserved, REFIID, riid, LPVOID *, ppvObj)\
205     ICOM_METHOD3( HRESULT, CompareIDs, LPARAM, lParam, LPCITEMIDLIST, pidl1, LPCITEMIDLIST, pidl2)\
206     ICOM_METHOD3( HRESULT, CreateViewObject, HWND, hwndOwner, REFIID, riid, LPVOID *, ppvOut)\
207     ICOM_METHOD3( HRESULT, GetAttributesOf, UINT, cidl, LPCITEMIDLIST *, apidl, ULONG *, rgfInOut)\
208     ICOM_METHOD6( HRESULT, GetUIObjectOf, HWND, hwndOwner, UINT, cidl, LPCITEMIDLIST *, apidl, REFIID, riid, UINT *, prgfInOut, LPVOID *, ppvOut)\
209     ICOM_METHOD3( HRESULT, GetDisplayNameOf, LPCITEMIDLIST, pidl, DWORD, uFlags, LPSTRRET, lpName)\
210     ICOM_METHOD5( HRESULT, SetNameOf, HWND, hwndOwner, LPCITEMIDLIST, pidl,LPCOLESTR, lpszName, DWORD, uFlags,LPITEMIDLIST *, ppidlOut)
211 #define IShellFolder_IMETHODS \
212     IUnknown_IMETHODS \
213     IShellFolder_METHODS
214 ICOM_DEFINE(IShellFolder,IUnknown)
215 #undef ICOM_INTERFACE
216
217 /*** IUnknown methods ***/
218 #define IShellFolder_QueryInterface(p,a,b)              ICOM_CALL2(QueryInterface,p,a,b)
219 #define IShellFolder_AddRef(p)                          ICOM_CALL (AddRef,p)
220 #define IShellFolder_Release(p)                         ICOM_CALL (Release,p)
221 /*** IShellFolder methods ***/
222 #define IShellFolder_ParseDisplayName(p,a,b,c,d,e,f)    ICOM_CALL6(ParseDisplayName,p,a,b,c,d,e,f)
223 #define IShellFolder_EnumObjects(p,a,b,c)               ICOM_CALL3(EnumObjects,p,a,b,c)
224 #define IShellFolder_BindToObject(p,a,b,c,d)            ICOM_CALL4(BindToObject,p,a,b,c,d)
225 #define IShellFolder_BindToStorage(p,a,b,c,d)           ICOM_CALL4(BindToStorage,p,a,b,c,d)
226 #define IShellFolder_CompareIDs(p,a,b,c)                ICOM_CALL3(CompareIDs,p,a,b,c)
227 #define IShellFolder_CreateViewObject(p,a,b,c)          ICOM_CALL3(CreateViewObject,p,a,b,c)
228 #define IShellFolder_GetAttributesOf(p,a,b,c)           ICOM_CALL3(GetAttributesOf,p,a,b,c)
229 #define IShellFolder_GetUIObjectOf(p,a,b,c,d,e,f)       ICOM_CALL6(GetUIObjectOf,p,a,b,c,d,e,f)
230 #define IShellFolder_GetDisplayNameOf(p,a,b,c)          ICOM_CALL3(GetDisplayNameOf,p,a,b,c)
231 #define IShellFolder_SetNameOf(p,a,b,c,d,e)             ICOM_CALL5(SetNameOf,p,a,b,c,d,e)
232
233 /*****************************************************************************
234  * IShellFolder2 interface
235  */
236 /* IShellFolder2 */
237
238 /* GetDefaultColumnState */
239 typedef enum
240 {
241         SHCOLSTATE_TYPE_STR     = 0x00000001,
242         SHCOLSTATE_TYPE_INT     = 0x00000002,
243         SHCOLSTATE_TYPE_DATE    = 0x00000003,
244         SHCOLSTATE_TYPEMASK     = 0x0000000F,
245         SHCOLSTATE_ONBYDEFAULT  = 0x00000010,
246         SHCOLSTATE_SLOW         = 0x00000020,
247         SHCOLSTATE_EXTENDED     = 0x00000040,
248         SHCOLSTATE_SECONDARYUI  = 0x00000080,
249         SHCOLSTATE_HIDDEN       = 0x00000100
250 } SHCOLSTATE;
251
252 typedef struct
253 {
254         GUID    fmtid;
255         DWORD   pid;
256 } SHCOLUMNID, *LPSHCOLUMNID;
257 typedef const SHCOLUMNID* LPCSHCOLUMNID;
258
259 /* GetDetailsEx */
260 #define PID_FINDDATA            0
261 #define PID_NETRESOURCE         1
262 #define PID_DESCRIPTIONID       2
263
264 typedef struct
265 {
266         int     fmt;
267         int     cxChar;
268         STRRET  str;
269 } SHELLDETAILS, *LPSHELLDETAILS;
270
271 #define ICOM_INTERFACE IShellFolder2
272 #define IShellFolder2_METHODS \
273     ICOM_METHOD1( HRESULT, GetDefaultSearchGUID, LPGUID, lpguid)\
274     ICOM_METHOD1( HRESULT, EnumSearches, LPENUMEXTRASEARCH *, ppEnum) \
275     ICOM_METHOD3( HRESULT, GetDefaultColumn, DWORD, dwReserved, ULONG *, pSort, ULONG *, pDisplay)\
276     ICOM_METHOD2( HRESULT, GetDefaultColumnState, UINT, iColumn, DWORD *, pcsFlags)\
277     ICOM_METHOD3( HRESULT, GetDetailsEx, LPCITEMIDLIST, pidl, const SHCOLUMNID *, pscid, VARIANT *, pv)\
278     ICOM_METHOD3( HRESULT, GetDetailsOf, LPCITEMIDLIST, pidl, UINT, iColumn, LPSHELLDETAILS, pDetails)\
279     ICOM_METHOD2( HRESULT, MapNameToSCID, LPCWSTR, pwszName, SHCOLUMNID *, pscid)
280 #define IShellFolder2_IMETHODS \
281     IShellFolder_METHODS \
282     IShellFolder2_METHODS
283 ICOM_DEFINE(IShellFolder2, IShellFolder)
284 #undef ICOM_INTERFACE
285
286 /*** IUnknown methods ***/
287 #define IShellFolder2_QueryInterface(p,a,b)             ICOM_CALL2(QueryInterface,p,a,b)
288 #define IShellFolder2_AddRef(p)                         ICOM_CALL (AddRef,p)
289 #define IShellFolder2_Release(p)                        ICOM_CALL (Release,p)
290 /*** IShellFolder methods ***/
291 #define IShellFolder2_ParseDisplayName(p,a,b,c,d,e,f)   ICOM_CALL6(ParseDisplayName,p,a,b,c,d,e,f)
292 #define IShellFolder2_EnumObjects(p,a,b,c)              ICOM_CALL3(EnumObjects,p,a,b,c)
293 #define IShellFolder2_BindToObject(p,a,b,c,d)           ICOM_CALL4(BindToObject,p,a,b,c,d)
294 #define IShellFolder2_BindToStorage(p,a,b,c,d)          ICOM_CALL4(BindToStorage,p,a,b,c,d)
295 #define IShellFolder2_CompareIDs(p,a,b,c)               ICOM_CALL3(CompareIDs,p,a,b,c)
296 #define IShellFolder2_CreateViewObject(p,a,b,c)         ICOM_CALL3(CreateViewObject,p,a,b,c)
297 #define IShellFolder2_GetAttributesOf(p,a,b,c)          ICOM_CALL3(GetAttributesOf,p,a,b,c)
298 #define IShellFolder2_GetUIObjectOf(p,a,b,c,d,e,f)      ICOM_CALL6(GetUIObjectOf,p,a,b,c,d,e,f)
299 #define IShellFolder2_GetDisplayNameOf(p,a,b,c)         ICOM_CALL3(GetDisplayNameOf,p,a,b,c)
300 #define IShellFolder2_SetNameOf(p,a,b,c,d,e)            ICOM_CALL5(SetNameOf,p,a,b,c,d,e)
301 /*** IShellFolder2 methods ***/
302 #define IShellFolder2_GetDefaultSearchGUID(p,a)         ICOM_CALL1(GetDefaultSearchGUID,p,a)
303 #define IShellFolder2_EnumSearches(p,a)                 ICOM_CALL1(EnumSearches,p,a)
304 #define IShellFolder2_GetDefaultColumn(p,a,b,c)         ICOM_CALL3(GetDefaultColumn,p,a,b,c)
305 #define IShellFolder2_GetDefaultColumnState(p,a,b)      ICOM_CALL2(GetDefaultColumnState,p,a,b)
306 #define IShellFolder2_GetDetailsEx(p,a,b,c)             ICOM_CALL3(GetDetailsEx,p,a,b,c)
307 #define IShellFolder2_GetDetailsOf(p,a,b,c)             ICOM_CALL3(GetDetailsOf,p,a,b,c)
308 #define IShellFolder2_MapNameToSCID(p,a,b)              ICOM_CALL2(MapNameToSCID,p,a,b)
309
310 /*****************************************************************************
311  * IPersistFolder interface
312  */
313
314 #define ICOM_INTERFACE IPersistFolder
315 #define IPersistFolder_METHODS \
316     ICOM_METHOD1( HRESULT, Initialize, LPCITEMIDLIST, pidl)
317 #define IPersistFolder_IMETHODS \
318     IPersist_IMETHODS \
319     IPersistFolder_METHODS
320 ICOM_DEFINE(IPersistFolder, IPersist)
321 #undef ICOM_INTERFACE
322
323 /*** IUnknown methods ***/
324 #define IPersistFolder_QueryInterface(p,a,b)    ICOM_CALL2(QueryInterface,p,a,b)
325 #define IPersistFolder_AddRef(p)                ICOM_CALL (AddRef,p)
326 #define IPersistFolder_Release(p)               ICOM_CALL (Release,p)
327 /*** IPersist methods ***/
328 #define IPersistFolder_GetClassID(p,a)          ICOM_CALL1(GetClassID,p,a)
329 /*** IPersistFolder methods ***/
330 #define IPersistFolder_Initialize(p,a)          ICOM_CALL1(Initialize,p,a)
331
332 /*****************************************************************************
333  * IPersistFolder2 interface
334  */
335
336 #define ICOM_INTERFACE IPersistFolder2
337 #define IPersistFolder2_METHODS \
338     ICOM_METHOD1( HRESULT, GetCurFolder, LPITEMIDLIST*, pidl)
339 #define IPersistFolder2_IMETHODS \
340     IPersist_IMETHODS \
341     IPersistFolder_METHODS \
342     IPersistFolder2_METHODS
343 ICOM_DEFINE(IPersistFolder2, IPersistFolder)
344 #undef ICOM_INTERFACE
345
346 /*** IUnknown methods ***/
347 #define IPersistFolder2_QueryInterface(p,a,b)   ICOM_CALL2(QueryInterface,p,a,b)
348 #define IPersistFolder2_AddRef(p)               ICOM_CALL (AddRef,p)
349 #define IPersistFolder2_Release(p)              ICOM_CALL (Release,p)
350 /*** IPersist methods ***/
351 #define IPersistFolder2_GetClassID(p,a)         ICOM_CALL1(GetClassID,p,a)
352 /*** IPersistFolder methods ***/
353 #define IPersistFolder2_Initialize(p,a)         ICOM_CALL1(Initialize,p,a)
354 /*** IPersistFolder2 methods ***/
355 #define IPersistFolder2_GetCurFolder(p,a)       ICOM_CALL1(GetCurFolder,p,a)
356
357
358 /*****************************************************************************
359  * IPersistFolder3 interface
360  */
361
362 typedef struct {
363         LPITEMIDLIST    pidlTargetFolder;
364         WCHAR           szTargetParsingName[MAX_PATH];
365         WCHAR           szNetworkProvider[MAX_PATH];
366         DWORD           dwAttributes;
367         int             csidl;
368 } PERSIST_FOLDER_TARGET_INFO;
369
370 #define ICOM_INTERFACE IPersistFolder3
371 #define IPersistFolder3_METHODS \
372     ICOM_METHOD3( HRESULT, InitializeEx, IBindCtx*, pbc, LPCITEMIDLIST, pidlRoot, const PERSIST_FOLDER_TARGET_INFO*, ppfti)\
373     ICOM_METHOD1( HRESULT, GetFolderTargetInfo, PERSIST_FOLDER_TARGET_INFO*, ppfti)
374 #define IPersistFolder3_IMETHODS \
375     IPersist_IMETHODS \
376     IPersistFolder_METHODS \
377     IPersistFolder2_METHODS \
378     IPersistFolder3_METHODS
379 ICOM_DEFINE(IPersistFolder3, IPersistFolder2)
380 #undef ICOM_INTERFACE
381
382 /*** IUnknown methods ***/
383 #define IPersistFolder3_QueryInterface(p,a,b)   ICOM_CALL2(QueryInterface,p,a,b)
384 #define IPersistFolder3_AddRef(p)               ICOM_CALL (AddRef,p)
385 #define IPersistFolder3_Release(p)              ICOM_CALL (Release,p)
386 /*** IPersist methods ***/
387 #define IPersistFolder3_GetClassID(p,a)         ICOM_CALL1(GetClassID,p,a)
388 /*** IPersistFolder methods ***/
389 #define IPersistFolder3_Initialize(p,a)         ICOM_CALL1(Initialize,p,a)
390 /*** IPersistFolder2 methods ***/
391 #define IPersistFolder3_GetCurFolder(p,a)       ICOM_CALL1(GetCurFolder,p,a)
392 /*** IPersistFolder3 methods ***/
393 #define IPersistFolder3_InitializeEx(p,a,b,c)   ICOM_CALL3(InitializeEx,p,a,b,c)
394 #define IPersistFolder3_GetFolderTargetInfo(p,a) ICOM_CALL1(InitializeEx,p,a)
395
396
397 #ifdef __cplusplus
398 } /* extern "C" */
399 #endif /* defined(__cplusplus) */
400
401 #endif /* __WINE_WINE_OBJ_SHELLFOLDER_H */