Return error from low level driver when necessary.
[wine/multimedia.git] / include / shobjidl.h
blob4266ef118711bcd01c5ec02bb58f163db626d50c
1 /*** Autogenerated by WIDL 0.1 from shobjidl.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
5 #ifndef __WIDL_SHOBJIDL_H
6 #define __WIDL_SHOBJIDL_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <objidl.h>
11 #include <oleidl.h>
12 #include <oaidl.h>
13 #include <shtypes.h>
14 #include <servprov.h>
15 #include <comcat.h>
16 #include <propidl.h>
17 #ifndef __IPersistFolder_FWD_DEFINED__
18 #define __IPersistFolder_FWD_DEFINED__
19 typedef struct IPersistFolder IPersistFolder;
20 #endif
22 typedef IPersistFolder *LPPERSISTFOLDER;
24 /*****************************************************************************
25 * IPersistFolder interface
27 #ifndef __IPersistFolder_INTERFACE_DEFINED__
28 #define __IPersistFolder_INTERFACE_DEFINED__
30 DEFINE_GUID(IID_IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
31 #if defined(__cplusplus) && !defined(CINTERFACE)
32 struct IPersistFolder : public IPersist
34 virtual HRESULT STDMETHODCALLTYPE Initialize(
35 LPCITEMIDLIST pidl) = 0;
38 #else
39 typedef struct IPersistFolderVtbl IPersistFolderVtbl;
40 struct IPersistFolder {
41 const IPersistFolderVtbl* lpVtbl;
43 struct IPersistFolderVtbl {
44 BEGIN_INTERFACE
46 /*** IUnknown methods ***/
47 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
48 IPersistFolder* This,
49 REFIID riid,
50 void** ppvObject);
52 ULONG (STDMETHODCALLTYPE *AddRef)(
53 IPersistFolder* This);
55 ULONG (STDMETHODCALLTYPE *Release)(
56 IPersistFolder* This);
58 /*** IPersist methods ***/
59 HRESULT (STDMETHODCALLTYPE *GetClassID)(
60 IPersistFolder* This,
61 CLSID* pClassID);
63 /*** IPersistFolder methods ***/
64 HRESULT (STDMETHODCALLTYPE *Initialize)(
65 IPersistFolder* This,
66 LPCITEMIDLIST pidl);
68 END_INTERFACE
71 #ifdef COBJMACROS
72 /*** IUnknown methods ***/
73 #define IPersistFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
74 #define IPersistFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
75 #define IPersistFolder_Release(p) (p)->lpVtbl->Release(p)
76 /*** IPersist methods ***/
77 #define IPersistFolder_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
78 /*** IPersistFolder methods ***/
79 #define IPersistFolder_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
80 #endif
82 #endif
84 #define IPersistFolder_METHODS \
85 /*** IUnknown methods ***/ \
86 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
87 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
88 STDMETHOD_(ULONG,Release)(THIS) PURE; \
89 /*** IPersist methods ***/ \
90 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
91 /*** IPersistFolder methods ***/ \
92 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE;
94 HRESULT CALLBACK IPersistFolder_Initialize_Proxy(
95 IPersistFolder* This,
96 LPCITEMIDLIST pidl);
97 void __RPC_STUB IPersistFolder_Initialize_Stub(
98 struct IRpcStubBuffer* This,
99 struct IRpcChannelBuffer* pRpcChannelBuffer,
100 PRPC_MESSAGE pRpcMessage,
101 DWORD* pdwStubPhase);
103 #endif /* __IPersistFolder_INTERFACE_DEFINED__ */
105 #ifndef __IPersistFolder2_FWD_DEFINED__
106 #define __IPersistFolder2_FWD_DEFINED__
107 typedef struct IPersistFolder2 IPersistFolder2;
108 #endif
110 typedef IPersistFolder2 *LPPERSISTFOLDER2;
112 /*****************************************************************************
113 * IPersistFolder2 interface
115 #ifndef __IPersistFolder2_INTERFACE_DEFINED__
116 #define __IPersistFolder2_INTERFACE_DEFINED__
118 DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
119 #if defined(__cplusplus) && !defined(CINTERFACE)
120 struct IPersistFolder2 : public IPersistFolder
122 virtual HRESULT STDMETHODCALLTYPE GetCurFolder(
123 LPITEMIDLIST* ppidl) = 0;
126 #else
127 typedef struct IPersistFolder2Vtbl IPersistFolder2Vtbl;
128 struct IPersistFolder2 {
129 const IPersistFolder2Vtbl* lpVtbl;
131 struct IPersistFolder2Vtbl {
132 BEGIN_INTERFACE
134 /*** IUnknown methods ***/
135 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
136 IPersistFolder2* This,
137 REFIID riid,
138 void** ppvObject);
140 ULONG (STDMETHODCALLTYPE *AddRef)(
141 IPersistFolder2* This);
143 ULONG (STDMETHODCALLTYPE *Release)(
144 IPersistFolder2* This);
146 /*** IPersist methods ***/
147 HRESULT (STDMETHODCALLTYPE *GetClassID)(
148 IPersistFolder2* This,
149 CLSID* pClassID);
151 /*** IPersistFolder methods ***/
152 HRESULT (STDMETHODCALLTYPE *Initialize)(
153 IPersistFolder2* This,
154 LPCITEMIDLIST pidl);
156 /*** IPersistFolder2 methods ***/
157 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
158 IPersistFolder2* This,
159 LPITEMIDLIST* ppidl);
161 END_INTERFACE
164 #ifdef COBJMACROS
165 /*** IUnknown methods ***/
166 #define IPersistFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
167 #define IPersistFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
168 #define IPersistFolder2_Release(p) (p)->lpVtbl->Release(p)
169 /*** IPersist methods ***/
170 #define IPersistFolder2_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
171 /*** IPersistFolder methods ***/
172 #define IPersistFolder2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
173 /*** IPersistFolder2 methods ***/
174 #define IPersistFolder2_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
175 #endif
177 #endif
179 #define IPersistFolder2_METHODS \
180 /*** IUnknown methods ***/ \
181 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
182 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
183 STDMETHOD_(ULONG,Release)(THIS) PURE; \
184 /*** IPersist methods ***/ \
185 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
186 /*** IPersistFolder methods ***/ \
187 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \
188 /*** IPersistFolder2 methods ***/ \
189 STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE;
191 HRESULT CALLBACK IPersistFolder2_GetCurFolder_Proxy(
192 IPersistFolder2* This,
193 LPITEMIDLIST* ppidl);
194 void __RPC_STUB IPersistFolder2_GetCurFolder_Stub(
195 struct IRpcStubBuffer* This,
196 struct IRpcChannelBuffer* pRpcChannelBuffer,
197 PRPC_MESSAGE pRpcMessage,
198 DWORD* pdwStubPhase);
200 #endif /* __IPersistFolder2_INTERFACE_DEFINED__ */
202 #ifndef __IEnumIDList_FWD_DEFINED__
203 #define __IEnumIDList_FWD_DEFINED__
204 typedef struct IEnumIDList IEnumIDList;
205 #endif
207 typedef IEnumIDList *LPENUMIDLIST;
209 /*****************************************************************************
210 * IEnumIDList interface
212 #ifndef __IEnumIDList_INTERFACE_DEFINED__
213 #define __IEnumIDList_INTERFACE_DEFINED__
215 DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
216 #if defined(__cplusplus) && !defined(CINTERFACE)
217 struct IEnumIDList : public IUnknown
219 virtual HRESULT STDMETHODCALLTYPE Next(
220 ULONG celt,
221 LPITEMIDLIST* rgelt,
222 ULONG* pceltFetched) = 0;
224 virtual HRESULT STDMETHODCALLTYPE Skip(
225 ULONG celt) = 0;
227 virtual HRESULT STDMETHODCALLTYPE Reset(
228 ) = 0;
230 virtual HRESULT STDMETHODCALLTYPE Clone(
231 IEnumIDList** ppenum) = 0;
234 #else
235 typedef struct IEnumIDListVtbl IEnumIDListVtbl;
236 struct IEnumIDList {
237 const IEnumIDListVtbl* lpVtbl;
239 struct IEnumIDListVtbl {
240 BEGIN_INTERFACE
242 /*** IUnknown methods ***/
243 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
244 IEnumIDList* This,
245 REFIID riid,
246 void** ppvObject);
248 ULONG (STDMETHODCALLTYPE *AddRef)(
249 IEnumIDList* This);
251 ULONG (STDMETHODCALLTYPE *Release)(
252 IEnumIDList* This);
254 /*** IEnumIDList methods ***/
255 HRESULT (STDMETHODCALLTYPE *Next)(
256 IEnumIDList* This,
257 ULONG celt,
258 LPITEMIDLIST* rgelt,
259 ULONG* pceltFetched);
261 HRESULT (STDMETHODCALLTYPE *Skip)(
262 IEnumIDList* This,
263 ULONG celt);
265 HRESULT (STDMETHODCALLTYPE *Reset)(
266 IEnumIDList* This);
268 HRESULT (STDMETHODCALLTYPE *Clone)(
269 IEnumIDList* This,
270 IEnumIDList** ppenum);
272 END_INTERFACE
275 #ifdef COBJMACROS
276 /*** IUnknown methods ***/
277 #define IEnumIDList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
278 #define IEnumIDList_AddRef(p) (p)->lpVtbl->AddRef(p)
279 #define IEnumIDList_Release(p) (p)->lpVtbl->Release(p)
280 /*** IEnumIDList methods ***/
281 #define IEnumIDList_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
282 #define IEnumIDList_Skip(p,a) (p)->lpVtbl->Skip(p,a)
283 #define IEnumIDList_Reset(p) (p)->lpVtbl->Reset(p)
284 #define IEnumIDList_Clone(p,a) (p)->lpVtbl->Clone(p,a)
285 #endif
287 #endif
289 #define IEnumIDList_METHODS \
290 /*** IUnknown methods ***/ \
291 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
292 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
293 STDMETHOD_(ULONG,Release)(THIS) PURE; \
294 /*** IEnumIDList methods ***/ \
295 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, LPITEMIDLIST* rgelt, ULONG* pceltFetched) PURE; \
296 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
297 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
298 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumIDList** ppenum) PURE;
300 HRESULT CALLBACK IEnumIDList_Next_Proxy(
301 IEnumIDList* This,
302 ULONG celt,
303 LPITEMIDLIST* rgelt,
304 ULONG* pceltFetched);
305 void __RPC_STUB IEnumIDList_Next_Stub(
306 struct IRpcStubBuffer* This,
307 struct IRpcChannelBuffer* pRpcChannelBuffer,
308 PRPC_MESSAGE pRpcMessage,
309 DWORD* pdwStubPhase);
310 HRESULT CALLBACK IEnumIDList_Skip_Proxy(
311 IEnumIDList* This,
312 ULONG celt);
313 void __RPC_STUB IEnumIDList_Skip_Stub(
314 struct IRpcStubBuffer* This,
315 struct IRpcChannelBuffer* pRpcChannelBuffer,
316 PRPC_MESSAGE pRpcMessage,
317 DWORD* pdwStubPhase);
318 HRESULT CALLBACK IEnumIDList_Reset_Proxy(
319 IEnumIDList* This);
320 void __RPC_STUB IEnumIDList_Reset_Stub(
321 struct IRpcStubBuffer* This,
322 struct IRpcChannelBuffer* pRpcChannelBuffer,
323 PRPC_MESSAGE pRpcMessage,
324 DWORD* pdwStubPhase);
325 HRESULT CALLBACK IEnumIDList_Clone_Proxy(
326 IEnumIDList* This,
327 IEnumIDList** ppenum);
328 void __RPC_STUB IEnumIDList_Clone_Stub(
329 struct IRpcStubBuffer* This,
330 struct IRpcChannelBuffer* pRpcChannelBuffer,
331 PRPC_MESSAGE pRpcMessage,
332 DWORD* pdwStubPhase);
334 #endif /* __IEnumIDList_INTERFACE_DEFINED__ */
336 #ifndef __IShellFolder_FWD_DEFINED__
337 #define __IShellFolder_FWD_DEFINED__
338 typedef struct IShellFolder IShellFolder;
339 #endif
341 typedef IShellFolder *LPSHELLFOLDER;
343 typedef enum tagSHGDN {
344 SHGDN_NORMAL = 0,
345 SHGDN_INFOLDER = 1,
346 SHGDN_FOREDITING = 0x1000,
347 SHGDN_INCLUDE_NONFILESYS = 0x2000,
348 SHGDN_FORADDRESSBAR = 0x4000,
349 SHGDN_FORPARSING = 0x8000
350 } SHGNO;
352 typedef DWORD SHGDNF;
354 enum tagSHCONTF {
355 SHCONTF_FOLDERS = 32,
356 SHCONTF_NONFOLDERS = 64,
357 SHCONTF_INCLUDEHIDDEN = 128,
358 SHCONTF_INIT_ON_FIRST_NEXT = 256,
359 SHCONTF_NETPRINTERSRCH = 512,
360 SHCONTF_SHAREABLE = 1024,
361 SHCONTF_STORAGE = 2048
364 typedef DWORD SHCONTF;
366 #define SFGAO_CANCOPY DROPEFFECT_COPY
367 #define SFGAO_CANMOVE DROPEFFECT_MOVE
368 #define SFGAO_CANLINK DROPEFFECT_LINK
369 #define SFGAO_CANRENAME 0x00000010L
370 #define SFGAO_CANDELETE 0x00000020L
371 #define SFGAO_HASPROPSHEET 0x00000040L
372 #define SFGAO_DROPTARGET 0x00000100L
373 #define SFGAO_CAPABILITYMASK 0x00000177L
374 #define SFGAO_LINK 0x00010000L
375 #define SFGAO_SHARE 0x00020000L
376 #define SFGAO_READONLY 0x00040000L
377 #define SFGAO_GHOSTED 0x00080000L
378 #define SFGAO_HIDDEN 0x00080000L
379 #define SFGAO_DISPLAYATTRMASK 0x000F0000L
380 #define SFGAO_FILESYSANCESTOR 0x10000000L
381 #define SFGAO_FOLDER 0x20000000L
382 #define SFGAO_FILESYSTEM 0x40000000L
383 #define SFGAO_HASSUBFOLDER 0x80000000L
384 #define SFGAO_CONTENTSMASK 0x80000000L
385 #define SFGAO_VALIDATE 0x01000000L
386 #define SFGAO_REMOVABLE 0x02000000L
387 #define SFGAO_COMPRESSED 0x04000000L
388 #define SFGAO_BROWSABLE 0x08000000L
389 #define SFGAO_NONENUMERATED 0x00100000L
390 #define SFGAO_NEWCONTENT 0x00200000L
391 typedef ULONG SFGAOF;
393 /*****************************************************************************
394 * IShellFolder interface
396 #ifndef __IShellFolder_INTERFACE_DEFINED__
397 #define __IShellFolder_INTERFACE_DEFINED__
399 DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
400 #if defined(__cplusplus) && !defined(CINTERFACE)
401 struct IShellFolder : public IUnknown
403 virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
404 HWND hwndOwner,
405 LPBC pbcReserved,
406 LPOLESTR lpszDisplayName,
407 ULONG* pchEaten,
408 LPITEMIDLIST* ppidl,
409 ULONG* pdwAttributes) = 0;
411 virtual HRESULT STDMETHODCALLTYPE EnumObjects(
412 HWND hwndOwner,
413 SHCONTF grfFlags,
414 IEnumIDList** ppenumIDList) = 0;
416 virtual HRESULT STDMETHODCALLTYPE BindToObject(
417 LPCITEMIDLIST pidl,
418 LPBC pbcReserved,
419 REFIID riid,
420 void** ppvOut) = 0;
422 virtual HRESULT STDMETHODCALLTYPE BindToStorage(
423 LPCITEMIDLIST pidl,
424 LPBC pbcReserved,
425 REFIID riid,
426 void** ppvObj) = 0;
428 virtual HRESULT STDMETHODCALLTYPE CompareIDs(
429 LPARAM lParam,
430 LPCITEMIDLIST pidl1,
431 LPCITEMIDLIST pidl2) = 0;
433 virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
434 HWND hwndOwner,
435 REFIID riid,
436 void** ppvOut) = 0;
438 virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
439 UINT cidl,
440 LPCITEMIDLIST* apidl,
441 SFGAOF* rgfInOut) = 0;
443 virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
444 HWND hwndOwner,
445 UINT cidl,
446 LPCITEMIDLIST* apidl,
447 REFIID riid,
448 UINT* prgfInOut,
449 void** ppvOut) = 0;
451 virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
452 LPCITEMIDLIST pidl,
453 SHGDNF uFlags,
454 STRRET* lpName) = 0;
456 virtual HRESULT STDMETHODCALLTYPE SetNameOf(
457 HWND hwnd,
458 LPCITEMIDLIST pidl,
459 LPCOLESTR lpszName,
460 SHGDNF uFlags,
461 LPITEMIDLIST* ppidlOut) = 0;
464 #else
465 typedef struct IShellFolderVtbl IShellFolderVtbl;
466 struct IShellFolder {
467 const IShellFolderVtbl* lpVtbl;
469 struct IShellFolderVtbl {
470 BEGIN_INTERFACE
472 /*** IUnknown methods ***/
473 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
474 IShellFolder* This,
475 REFIID riid,
476 void** ppvObject);
478 ULONG (STDMETHODCALLTYPE *AddRef)(
479 IShellFolder* This);
481 ULONG (STDMETHODCALLTYPE *Release)(
482 IShellFolder* This);
484 /*** IShellFolder methods ***/
485 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
486 IShellFolder* This,
487 HWND hwndOwner,
488 LPBC pbcReserved,
489 LPOLESTR lpszDisplayName,
490 ULONG* pchEaten,
491 LPITEMIDLIST* ppidl,
492 ULONG* pdwAttributes);
494 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
495 IShellFolder* This,
496 HWND hwndOwner,
497 SHCONTF grfFlags,
498 IEnumIDList** ppenumIDList);
500 HRESULT (STDMETHODCALLTYPE *BindToObject)(
501 IShellFolder* This,
502 LPCITEMIDLIST pidl,
503 LPBC pbcReserved,
504 REFIID riid,
505 void** ppvOut);
507 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
508 IShellFolder* This,
509 LPCITEMIDLIST pidl,
510 LPBC pbcReserved,
511 REFIID riid,
512 void** ppvObj);
514 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
515 IShellFolder* This,
516 LPARAM lParam,
517 LPCITEMIDLIST pidl1,
518 LPCITEMIDLIST pidl2);
520 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
521 IShellFolder* This,
522 HWND hwndOwner,
523 REFIID riid,
524 void** ppvOut);
526 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
527 IShellFolder* This,
528 UINT cidl,
529 LPCITEMIDLIST* apidl,
530 SFGAOF* rgfInOut);
532 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
533 IShellFolder* This,
534 HWND hwndOwner,
535 UINT cidl,
536 LPCITEMIDLIST* apidl,
537 REFIID riid,
538 UINT* prgfInOut,
539 void** ppvOut);
541 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
542 IShellFolder* This,
543 LPCITEMIDLIST pidl,
544 SHGDNF uFlags,
545 STRRET* lpName);
547 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
548 IShellFolder* This,
549 HWND hwnd,
550 LPCITEMIDLIST pidl,
551 LPCOLESTR lpszName,
552 SHGDNF uFlags,
553 LPITEMIDLIST* ppidlOut);
555 END_INTERFACE
558 #ifdef COBJMACROS
559 /*** IUnknown methods ***/
560 #define IShellFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
561 #define IShellFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
562 #define IShellFolder_Release(p) (p)->lpVtbl->Release(p)
563 /*** IShellFolder methods ***/
564 #define IShellFolder_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
565 #define IShellFolder_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
566 #define IShellFolder_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
567 #define IShellFolder_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
568 #define IShellFolder_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
569 #define IShellFolder_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
570 #define IShellFolder_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
571 #define IShellFolder_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
572 #define IShellFolder_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
573 #define IShellFolder_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
574 #endif
576 #endif
578 #define IShellFolder_METHODS \
579 /*** IUnknown methods ***/ \
580 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
581 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
582 STDMETHOD_(ULONG,Release)(THIS) PURE; \
583 /*** IShellFolder methods ***/ \
584 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \
585 STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \
586 STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \
587 STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \
588 STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \
589 STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \
590 STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \
591 STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \
592 STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \
593 STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE;
595 HRESULT CALLBACK IShellFolder_ParseDisplayName_Proxy(
596 IShellFolder* This,
597 HWND hwndOwner,
598 LPBC pbcReserved,
599 LPOLESTR lpszDisplayName,
600 ULONG* pchEaten,
601 LPITEMIDLIST* ppidl,
602 ULONG* pdwAttributes);
603 void __RPC_STUB IShellFolder_ParseDisplayName_Stub(
604 struct IRpcStubBuffer* This,
605 struct IRpcChannelBuffer* pRpcChannelBuffer,
606 PRPC_MESSAGE pRpcMessage,
607 DWORD* pdwStubPhase);
608 HRESULT CALLBACK IShellFolder_EnumObjects_Proxy(
609 IShellFolder* This,
610 HWND hwndOwner,
611 SHCONTF grfFlags,
612 IEnumIDList** ppenumIDList);
613 void __RPC_STUB IShellFolder_EnumObjects_Stub(
614 struct IRpcStubBuffer* This,
615 struct IRpcChannelBuffer* pRpcChannelBuffer,
616 PRPC_MESSAGE pRpcMessage,
617 DWORD* pdwStubPhase);
618 HRESULT CALLBACK IShellFolder_BindToObject_Proxy(
619 IShellFolder* This,
620 LPCITEMIDLIST pidl,
621 LPBC pbcReserved,
622 REFIID riid,
623 void** ppvOut);
624 void __RPC_STUB IShellFolder_BindToObject_Stub(
625 struct IRpcStubBuffer* This,
626 struct IRpcChannelBuffer* pRpcChannelBuffer,
627 PRPC_MESSAGE pRpcMessage,
628 DWORD* pdwStubPhase);
629 HRESULT CALLBACK IShellFolder_BindToStorage_Proxy(
630 IShellFolder* This,
631 LPCITEMIDLIST pidl,
632 LPBC pbcReserved,
633 REFIID riid,
634 void** ppvObj);
635 void __RPC_STUB IShellFolder_BindToStorage_Stub(
636 struct IRpcStubBuffer* This,
637 struct IRpcChannelBuffer* pRpcChannelBuffer,
638 PRPC_MESSAGE pRpcMessage,
639 DWORD* pdwStubPhase);
640 HRESULT CALLBACK IShellFolder_CompareIDs_Proxy(
641 IShellFolder* This,
642 LPARAM lParam,
643 LPCITEMIDLIST pidl1,
644 LPCITEMIDLIST pidl2);
645 void __RPC_STUB IShellFolder_CompareIDs_Stub(
646 struct IRpcStubBuffer* This,
647 struct IRpcChannelBuffer* pRpcChannelBuffer,
648 PRPC_MESSAGE pRpcMessage,
649 DWORD* pdwStubPhase);
650 HRESULT CALLBACK IShellFolder_CreateViewObject_Proxy(
651 IShellFolder* This,
652 HWND hwndOwner,
653 REFIID riid,
654 void** ppvOut);
655 void __RPC_STUB IShellFolder_CreateViewObject_Stub(
656 struct IRpcStubBuffer* This,
657 struct IRpcChannelBuffer* pRpcChannelBuffer,
658 PRPC_MESSAGE pRpcMessage,
659 DWORD* pdwStubPhase);
660 HRESULT CALLBACK IShellFolder_GetAttributesOf_Proxy(
661 IShellFolder* This,
662 UINT cidl,
663 LPCITEMIDLIST* apidl,
664 SFGAOF* rgfInOut);
665 void __RPC_STUB IShellFolder_GetAttributesOf_Stub(
666 struct IRpcStubBuffer* This,
667 struct IRpcChannelBuffer* pRpcChannelBuffer,
668 PRPC_MESSAGE pRpcMessage,
669 DWORD* pdwStubPhase);
670 HRESULT CALLBACK IShellFolder_GetUIObjectOf_Proxy(
671 IShellFolder* This,
672 HWND hwndOwner,
673 UINT cidl,
674 LPCITEMIDLIST* apidl,
675 REFIID riid,
676 UINT* prgfInOut,
677 void** ppvOut);
678 void __RPC_STUB IShellFolder_GetUIObjectOf_Stub(
679 struct IRpcStubBuffer* This,
680 struct IRpcChannelBuffer* pRpcChannelBuffer,
681 PRPC_MESSAGE pRpcMessage,
682 DWORD* pdwStubPhase);
683 HRESULT CALLBACK IShellFolder_GetDisplayNameOf_Proxy(
684 IShellFolder* This,
685 LPCITEMIDLIST pidl,
686 SHGDNF uFlags,
687 STRRET* lpName);
688 void __RPC_STUB IShellFolder_GetDisplayNameOf_Stub(
689 struct IRpcStubBuffer* This,
690 struct IRpcChannelBuffer* pRpcChannelBuffer,
691 PRPC_MESSAGE pRpcMessage,
692 DWORD* pdwStubPhase);
693 HRESULT CALLBACK IShellFolder_SetNameOf_Proxy(
694 IShellFolder* This,
695 HWND hwnd,
696 LPCITEMIDLIST pidl,
697 LPCOLESTR lpszName,
698 SHGDNF uFlags,
699 LPITEMIDLIST* ppidlOut);
700 void __RPC_STUB IShellFolder_SetNameOf_Stub(
701 struct IRpcStubBuffer* This,
702 struct IRpcChannelBuffer* pRpcChannelBuffer,
703 PRPC_MESSAGE pRpcMessage,
704 DWORD* pdwStubPhase);
706 #endif /* __IShellFolder_INTERFACE_DEFINED__ */
708 #ifndef __IEnumExtraSearch_FWD_DEFINED__
709 #define __IEnumExtraSearch_FWD_DEFINED__
710 typedef struct IEnumExtraSearch IEnumExtraSearch;
711 #endif
713 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
715 typedef struct {
716 GUID guidSearch;
717 WCHAR wszFriendlyName[80];
718 WCHAR wszUrl[2084];
719 } EXTRASEARCH, *LPEXTRASEARCH;
721 /*****************************************************************************
722 * IEnumExtraSearch interface
724 #ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
725 #define __IEnumExtraSearch_INTERFACE_DEFINED__
727 DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13);
728 #if defined(__cplusplus) && !defined(CINTERFACE)
729 struct IEnumExtraSearch : public IUnknown
731 virtual HRESULT STDMETHODCALLTYPE Next(
732 ULONG celt,
733 EXTRASEARCH* rgelt,
734 ULONG* pceltFetched) = 0;
736 virtual HRESULT STDMETHODCALLTYPE Skip(
737 ULONG celt) = 0;
739 virtual HRESULT STDMETHODCALLTYPE Reset(
740 ) = 0;
742 virtual HRESULT STDMETHODCALLTYPE Clone(
743 IEnumExtraSearch** ppenum) = 0;
746 #else
747 typedef struct IEnumExtraSearchVtbl IEnumExtraSearchVtbl;
748 struct IEnumExtraSearch {
749 const IEnumExtraSearchVtbl* lpVtbl;
751 struct IEnumExtraSearchVtbl {
752 BEGIN_INTERFACE
754 /*** IUnknown methods ***/
755 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
756 IEnumExtraSearch* This,
757 REFIID riid,
758 void** ppvObject);
760 ULONG (STDMETHODCALLTYPE *AddRef)(
761 IEnumExtraSearch* This);
763 ULONG (STDMETHODCALLTYPE *Release)(
764 IEnumExtraSearch* This);
766 /*** IEnumExtraSearch methods ***/
767 HRESULT (STDMETHODCALLTYPE *Next)(
768 IEnumExtraSearch* This,
769 ULONG celt,
770 EXTRASEARCH* rgelt,
771 ULONG* pceltFetched);
773 HRESULT (STDMETHODCALLTYPE *Skip)(
774 IEnumExtraSearch* This,
775 ULONG celt);
777 HRESULT (STDMETHODCALLTYPE *Reset)(
778 IEnumExtraSearch* This);
780 HRESULT (STDMETHODCALLTYPE *Clone)(
781 IEnumExtraSearch* This,
782 IEnumExtraSearch** ppenum);
784 END_INTERFACE
787 #ifdef COBJMACROS
788 /*** IUnknown methods ***/
789 #define IEnumExtraSearch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
790 #define IEnumExtraSearch_AddRef(p) (p)->lpVtbl->AddRef(p)
791 #define IEnumExtraSearch_Release(p) (p)->lpVtbl->Release(p)
792 /*** IEnumExtraSearch methods ***/
793 #define IEnumExtraSearch_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
794 #define IEnumExtraSearch_Skip(p,a) (p)->lpVtbl->Skip(p,a)
795 #define IEnumExtraSearch_Reset(p) (p)->lpVtbl->Reset(p)
796 #define IEnumExtraSearch_Clone(p,a) (p)->lpVtbl->Clone(p,a)
797 #endif
799 #endif
801 #define IEnumExtraSearch_METHODS \
802 /*** IUnknown methods ***/ \
803 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
804 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
805 STDMETHOD_(ULONG,Release)(THIS) PURE; \
806 /*** IEnumExtraSearch methods ***/ \
807 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, EXTRASEARCH* rgelt, ULONG* pceltFetched) PURE; \
808 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
809 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
810 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumExtraSearch** ppenum) PURE;
812 HRESULT CALLBACK IEnumExtraSearch_Next_Proxy(
813 IEnumExtraSearch* This,
814 ULONG celt,
815 EXTRASEARCH* rgelt,
816 ULONG* pceltFetched);
817 void __RPC_STUB IEnumExtraSearch_Next_Stub(
818 struct IRpcStubBuffer* This,
819 struct IRpcChannelBuffer* pRpcChannelBuffer,
820 PRPC_MESSAGE pRpcMessage,
821 DWORD* pdwStubPhase);
822 HRESULT CALLBACK IEnumExtraSearch_Skip_Proxy(
823 IEnumExtraSearch* This,
824 ULONG celt);
825 void __RPC_STUB IEnumExtraSearch_Skip_Stub(
826 struct IRpcStubBuffer* This,
827 struct IRpcChannelBuffer* pRpcChannelBuffer,
828 PRPC_MESSAGE pRpcMessage,
829 DWORD* pdwStubPhase);
830 HRESULT CALLBACK IEnumExtraSearch_Reset_Proxy(
831 IEnumExtraSearch* This);
832 void __RPC_STUB IEnumExtraSearch_Reset_Stub(
833 struct IRpcStubBuffer* This,
834 struct IRpcChannelBuffer* pRpcChannelBuffer,
835 PRPC_MESSAGE pRpcMessage,
836 DWORD* pdwStubPhase);
837 HRESULT CALLBACK IEnumExtraSearch_Clone_Proxy(
838 IEnumExtraSearch* This,
839 IEnumExtraSearch** ppenum);
840 void __RPC_STUB IEnumExtraSearch_Clone_Stub(
841 struct IRpcStubBuffer* This,
842 struct IRpcChannelBuffer* pRpcChannelBuffer,
843 PRPC_MESSAGE pRpcMessage,
844 DWORD* pdwStubPhase);
846 #endif /* __IEnumExtraSearch_INTERFACE_DEFINED__ */
848 #ifndef __IShellFolder2_FWD_DEFINED__
849 #define __IShellFolder2_FWD_DEFINED__
850 typedef struct IShellFolder2 IShellFolder2;
851 #endif
853 typedef enum {
854 SHCOLSTATE_TYPE_STR = 0x1,
855 SHCOLSTATE_TYPE_INT = 0x2,
856 SHCOLSTATE_TYPE_DATE = 0x3,
857 SHCOLSTATE_TYPEMASK = 0xf,
858 SHCOLSTATE_ONBYDEFAULT = 0x10,
859 SHCOLSTATE_SLOW = 0x20,
860 SHCOLSTATE_EXTENDED = 0x40,
861 SHCOLSTATE_SECONDARYUI = 0x80,
862 SHCOLSTATE_HIDDEN = 0x100,
863 SHCOLSTATE_PREFER_VARCMP = 0x200
864 } SHCOLSTATE;
866 typedef DWORD SHCOLSTATEF;
868 typedef struct {
869 GUID fmtid;
870 DWORD pid;
871 } SHCOLUMNID, *LPSHCOLUMNID;
873 typedef const SHCOLUMNID *LPCSHCOLUMNID;
875 /*****************************************************************************
876 * IShellFolder2 interface
878 #ifndef __IShellFolder2_INTERFACE_DEFINED__
879 #define __IShellFolder2_INTERFACE_DEFINED__
881 DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1);
882 #if defined(__cplusplus) && !defined(CINTERFACE)
883 struct IShellFolder2 : public IShellFolder
885 virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(
886 GUID* lpguid) = 0;
888 virtual HRESULT STDMETHODCALLTYPE EnumSearches(
889 IEnumExtraSearch** ppenum) = 0;
891 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
892 DWORD dwReserved,
893 ULONG* pSort,
894 ULONG* pDisplay) = 0;
896 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
897 UINT iColumn,
898 SHCOLSTATEF* pcsFlags) = 0;
900 virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
901 LPCITEMIDLIST pidl,
902 const SHCOLUMNID* pscid,
903 VARIANT* pv) = 0;
905 virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
906 LPCITEMIDLIST pidl,
907 UINT iColumn,
908 SHELLDETAILS* psd) = 0;
910 virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
911 UINT iColumn,
912 SHCOLUMNID* pscid) = 0;
915 #else
916 typedef struct IShellFolder2Vtbl IShellFolder2Vtbl;
917 struct IShellFolder2 {
918 const IShellFolder2Vtbl* lpVtbl;
920 struct IShellFolder2Vtbl {
921 BEGIN_INTERFACE
923 /*** IUnknown methods ***/
924 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
925 IShellFolder2* This,
926 REFIID riid,
927 void** ppvObject);
929 ULONG (STDMETHODCALLTYPE *AddRef)(
930 IShellFolder2* This);
932 ULONG (STDMETHODCALLTYPE *Release)(
933 IShellFolder2* This);
935 /*** IShellFolder methods ***/
936 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
937 IShellFolder2* This,
938 HWND hwndOwner,
939 LPBC pbcReserved,
940 LPOLESTR lpszDisplayName,
941 ULONG* pchEaten,
942 LPITEMIDLIST* ppidl,
943 ULONG* pdwAttributes);
945 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
946 IShellFolder2* This,
947 HWND hwndOwner,
948 SHCONTF grfFlags,
949 IEnumIDList** ppenumIDList);
951 HRESULT (STDMETHODCALLTYPE *BindToObject)(
952 IShellFolder2* This,
953 LPCITEMIDLIST pidl,
954 LPBC pbcReserved,
955 REFIID riid,
956 void** ppvOut);
958 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
959 IShellFolder2* This,
960 LPCITEMIDLIST pidl,
961 LPBC pbcReserved,
962 REFIID riid,
963 void** ppvObj);
965 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
966 IShellFolder2* This,
967 LPARAM lParam,
968 LPCITEMIDLIST pidl1,
969 LPCITEMIDLIST pidl2);
971 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
972 IShellFolder2* This,
973 HWND hwndOwner,
974 REFIID riid,
975 void** ppvOut);
977 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
978 IShellFolder2* This,
979 UINT cidl,
980 LPCITEMIDLIST* apidl,
981 SFGAOF* rgfInOut);
983 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
984 IShellFolder2* This,
985 HWND hwndOwner,
986 UINT cidl,
987 LPCITEMIDLIST* apidl,
988 REFIID riid,
989 UINT* prgfInOut,
990 void** ppvOut);
992 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
993 IShellFolder2* This,
994 LPCITEMIDLIST pidl,
995 SHGDNF uFlags,
996 STRRET* lpName);
998 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
999 IShellFolder2* This,
1000 HWND hwnd,
1001 LPCITEMIDLIST pidl,
1002 LPCOLESTR lpszName,
1003 SHGDNF uFlags,
1004 LPITEMIDLIST* ppidlOut);
1006 /*** IShellFolder2 methods ***/
1007 HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
1008 IShellFolder2* This,
1009 GUID* lpguid);
1011 HRESULT (STDMETHODCALLTYPE *EnumSearches)(
1012 IShellFolder2* This,
1013 IEnumExtraSearch** ppenum);
1015 HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
1016 IShellFolder2* This,
1017 DWORD dwReserved,
1018 ULONG* pSort,
1019 ULONG* pDisplay);
1021 HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
1022 IShellFolder2* This,
1023 UINT iColumn,
1024 SHCOLSTATEF* pcsFlags);
1026 HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
1027 IShellFolder2* This,
1028 LPCITEMIDLIST pidl,
1029 const SHCOLUMNID* pscid,
1030 VARIANT* pv);
1032 HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
1033 IShellFolder2* This,
1034 LPCITEMIDLIST pidl,
1035 UINT iColumn,
1036 SHELLDETAILS* psd);
1038 HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
1039 IShellFolder2* This,
1040 UINT iColumn,
1041 SHCOLUMNID* pscid);
1043 END_INTERFACE
1046 #ifdef COBJMACROS
1047 /*** IUnknown methods ***/
1048 #define IShellFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1049 #define IShellFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
1050 #define IShellFolder2_Release(p) (p)->lpVtbl->Release(p)
1051 /*** IShellFolder methods ***/
1052 #define IShellFolder2_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
1053 #define IShellFolder2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
1054 #define IShellFolder2_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
1055 #define IShellFolder2_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
1056 #define IShellFolder2_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
1057 #define IShellFolder2_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
1058 #define IShellFolder2_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
1059 #define IShellFolder2_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
1060 #define IShellFolder2_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
1061 #define IShellFolder2_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
1062 /*** IShellFolder2 methods ***/
1063 #define IShellFolder2_GetDefaultSearchGUID(p,a) (p)->lpVtbl->GetDefaultSearchGUID(p,a)
1064 #define IShellFolder2_EnumSearches(p,a) (p)->lpVtbl->EnumSearches(p,a)
1065 #define IShellFolder2_GetDefaultColumn(p,a,b,c) (p)->lpVtbl->GetDefaultColumn(p,a,b,c)
1066 #define IShellFolder2_GetDefaultColumnState(p,a,b) (p)->lpVtbl->GetDefaultColumnState(p,a,b)
1067 #define IShellFolder2_GetDetailsEx(p,a,b,c) (p)->lpVtbl->GetDetailsEx(p,a,b,c)
1068 #define IShellFolder2_GetDetailsOf(p,a,b,c) (p)->lpVtbl->GetDetailsOf(p,a,b,c)
1069 #define IShellFolder2_MapColumnToSCID(p,a,b) (p)->lpVtbl->MapColumnToSCID(p,a,b)
1070 #endif
1072 #endif
1074 #define IShellFolder2_METHODS \
1075 /*** IUnknown methods ***/ \
1076 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1077 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1078 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1079 /*** IShellFolder methods ***/ \
1080 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \
1081 STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \
1082 STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \
1083 STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \
1084 STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \
1085 STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \
1086 STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \
1087 STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \
1088 STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \
1089 STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE; \
1090 /*** IShellFolder2 methods ***/ \
1091 STDMETHOD_(HRESULT,GetDefaultSearchGUID)(THIS_ GUID* lpguid) PURE; \
1092 STDMETHOD_(HRESULT,EnumSearches)(THIS_ IEnumExtraSearch** ppenum) PURE; \
1093 STDMETHOD_(HRESULT,GetDefaultColumn)(THIS_ DWORD dwReserved, ULONG* pSort, ULONG* pDisplay) PURE; \
1094 STDMETHOD_(HRESULT,GetDefaultColumnState)(THIS_ UINT iColumn, SHCOLSTATEF* pcsFlags) PURE; \
1095 STDMETHOD_(HRESULT,GetDetailsEx)(THIS_ LPCITEMIDLIST pidl, const SHCOLUMNID* pscid, VARIANT* pv) PURE; \
1096 STDMETHOD_(HRESULT,GetDetailsOf)(THIS_ LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS* psd) PURE; \
1097 STDMETHOD_(HRESULT,MapColumnToSCID)(THIS_ UINT iColumn, SHCOLUMNID* pscid) PURE;
1099 HRESULT CALLBACK IShellFolder2_GetDefaultSearchGUID_Proxy(
1100 IShellFolder2* This,
1101 GUID* lpguid);
1102 void __RPC_STUB IShellFolder2_GetDefaultSearchGUID_Stub(
1103 struct IRpcStubBuffer* This,
1104 struct IRpcChannelBuffer* pRpcChannelBuffer,
1105 PRPC_MESSAGE pRpcMessage,
1106 DWORD* pdwStubPhase);
1107 HRESULT CALLBACK IShellFolder2_EnumSearches_Proxy(
1108 IShellFolder2* This,
1109 IEnumExtraSearch** ppenum);
1110 void __RPC_STUB IShellFolder2_EnumSearches_Stub(
1111 struct IRpcStubBuffer* This,
1112 struct IRpcChannelBuffer* pRpcChannelBuffer,
1113 PRPC_MESSAGE pRpcMessage,
1114 DWORD* pdwStubPhase);
1115 HRESULT CALLBACK IShellFolder2_GetDefaultColumn_Proxy(
1116 IShellFolder2* This,
1117 DWORD dwReserved,
1118 ULONG* pSort,
1119 ULONG* pDisplay);
1120 void __RPC_STUB IShellFolder2_GetDefaultColumn_Stub(
1121 struct IRpcStubBuffer* This,
1122 struct IRpcChannelBuffer* pRpcChannelBuffer,
1123 PRPC_MESSAGE pRpcMessage,
1124 DWORD* pdwStubPhase);
1125 HRESULT CALLBACK IShellFolder2_GetDefaultColumnState_Proxy(
1126 IShellFolder2* This,
1127 UINT iColumn,
1128 SHCOLSTATEF* pcsFlags);
1129 void __RPC_STUB IShellFolder2_GetDefaultColumnState_Stub(
1130 struct IRpcStubBuffer* This,
1131 struct IRpcChannelBuffer* pRpcChannelBuffer,
1132 PRPC_MESSAGE pRpcMessage,
1133 DWORD* pdwStubPhase);
1134 HRESULT CALLBACK IShellFolder2_GetDetailsEx_Proxy(
1135 IShellFolder2* This,
1136 LPCITEMIDLIST pidl,
1137 const SHCOLUMNID* pscid,
1138 VARIANT* pv);
1139 void __RPC_STUB IShellFolder2_GetDetailsEx_Stub(
1140 struct IRpcStubBuffer* This,
1141 struct IRpcChannelBuffer* pRpcChannelBuffer,
1142 PRPC_MESSAGE pRpcMessage,
1143 DWORD* pdwStubPhase);
1144 HRESULT CALLBACK IShellFolder2_GetDetailsOf_Proxy(
1145 IShellFolder2* This,
1146 LPCITEMIDLIST pidl,
1147 UINT iColumn,
1148 SHELLDETAILS* psd);
1149 void __RPC_STUB IShellFolder2_GetDetailsOf_Stub(
1150 struct IRpcStubBuffer* This,
1151 struct IRpcChannelBuffer* pRpcChannelBuffer,
1152 PRPC_MESSAGE pRpcMessage,
1153 DWORD* pdwStubPhase);
1154 HRESULT CALLBACK IShellFolder2_MapColumnToSCID_Proxy(
1155 IShellFolder2* This,
1156 UINT iColumn,
1157 SHCOLUMNID* pscid);
1158 void __RPC_STUB IShellFolder2_MapColumnToSCID_Stub(
1159 struct IRpcStubBuffer* This,
1160 struct IRpcChannelBuffer* pRpcChannelBuffer,
1161 PRPC_MESSAGE pRpcMessage,
1162 DWORD* pdwStubPhase);
1164 #endif /* __IShellFolder2_INTERFACE_DEFINED__ */
1166 typedef char *LPVIEWSETTINGS;
1168 typedef enum {
1169 FWF_AUTOARRANGE = 0x1,
1170 FWF_ABBREVIATEDNAMES = 0x2,
1171 FWF_SNAPTOGRID = 0x4,
1172 FWF_OWNERDATA = 0x8,
1173 FWF_BESTFITWINDOW = 0x10,
1174 FWF_DESKTOP = 0x20,
1175 FWF_SINGLESEL = 0x40,
1176 FWF_NOSUBFOLDERS = 0x80,
1177 FWF_TRANSPARENT = 0x100,
1178 FWF_NOCLIENTEDGE = 0x200,
1179 FWF_NOSCROLL = 0x400,
1180 FWF_ALIGNLEFT = 0x800,
1181 FWF_NOICONS = 0x1000,
1182 FWF_SHOWSELALWAYS = 0x2000,
1183 FWF_NOVISIBLE = 0x4000,
1184 FWF_SINGLECLICKACTIVATE = 0x8000,
1185 FWF_NOWEBVIEW = 0x10000,
1186 FWF_HIDEFILENAMES = 0x20000,
1187 FWF_CHECKSELECT = 0x40000
1188 } FOLDERFLAGS;
1190 typedef enum {
1191 FVM_ICON = 1,
1192 FVM_FIRST = FVM_ICON,
1193 FVM_SMALLICON = 2,
1194 FVM_LIST = 3,
1195 FVM_DETAILS = 4,
1196 FVM_THUMBNAIL = 5,
1197 FVM_TILE = 6,
1198 FVM_THUMBSTRIP = 7,
1199 FVM_LAST = FVM_THUMBSTRIP
1200 } FOLDERVIEWMODE;
1202 typedef struct {
1203 UINT ViewMode;
1204 UINT fFlags;
1205 } FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
1207 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
1209 #ifndef __IShellBrowser_FWD_DEFINED__
1210 #define __IShellBrowser_FWD_DEFINED__
1211 typedef struct IShellBrowser IShellBrowser;
1212 #endif
1214 #ifndef __IShellView_FWD_DEFINED__
1215 #define __IShellView_FWD_DEFINED__
1216 typedef struct IShellView IShellView;
1217 #endif
1219 typedef IShellView *LPSHELLVIEW;
1221 #define SVSI_DESELECT 0x00000000
1222 #define SVSI_SELECT 0x00000001
1223 #define SVSI_EDIT 0x00000003
1224 #define SVSI_DESELECTOTHERS 0x00000004
1225 #define SVSI_ENSUREVISIBLE 0x00000008
1226 #define SVSI_FOCUSED 0x00000010
1227 #define SVSI_TRANSLATEPT 0x00000020
1228 #define SVSI_SELECTIONMARK 0x00000040
1229 #define SVSI_POSITIONITEM 0x00000080
1230 #define SVSI_CHECK 0x00000100
1231 #define SVSI_NOSTATECHANGE 0x80000000
1232 typedef UINT SVSIF;
1234 typedef enum {
1235 SVGIO_BACKGROUND = 0x0,
1236 SVGIO_SELECTION = 0x1,
1237 SVGIO_ALLVIEW = 0x2,
1238 SVGIO_CHECKED = 0x3,
1239 SVGIO_TYPE_MASK = 0xf,
1240 SVGIO_FLAG_VIEWORDER = 0x80000000
1241 } SVGIO;
1243 typedef enum {
1244 SVUIA_DEACTIVATE = 0,
1245 SVUIA_ACTIVATE_NOFOCUS = 1,
1246 SVUIA_ACTIVATE_FOCUS = 2,
1247 SVUIA_INPLACEACTIVATE = 3
1248 } SVUIA_STATUS;
1250 #if 0
1251 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
1253 #else
1254 #include <prsht.h>
1255 typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
1256 #endif
1257 /*****************************************************************************
1258 * IShellView interface
1260 #ifndef __IShellView_INTERFACE_DEFINED__
1261 #define __IShellView_INTERFACE_DEFINED__
1263 DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1264 #if defined(__cplusplus) && !defined(CINTERFACE)
1265 struct IShellView : public IOleWindow
1267 virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
1268 MSG* pmsg) = 0;
1270 virtual HRESULT STDMETHODCALLTYPE EnableModeless(
1271 BOOL fEnable) = 0;
1273 virtual HRESULT STDMETHODCALLTYPE UIActivate(
1274 UINT uState) = 0;
1276 virtual HRESULT STDMETHODCALLTYPE Refresh(
1277 ) = 0;
1279 virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
1280 IShellView* psvPrevious,
1281 LPCFOLDERSETTINGS lpfs,
1282 IShellBrowser* psb,
1283 RECT* prcView,
1284 HWND* phWnd) = 0;
1286 virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
1287 ) = 0;
1289 virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
1290 LPFOLDERSETTINGS lpfs) = 0;
1292 virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
1293 DWORD dwReserved,
1294 LPFNSVADDPROPSHEETPAGE pfn,
1295 LPARAM lparam) = 0;
1297 virtual HRESULT STDMETHODCALLTYPE SaveViewState(
1298 ) = 0;
1300 virtual HRESULT STDMETHODCALLTYPE SelectItem(
1301 LPCITEMIDLIST pidlItem,
1302 SVSIF uFlags) = 0;
1304 virtual HRESULT STDMETHODCALLTYPE GetItemObject(
1305 UINT uItem,
1306 REFIID riid,
1307 void** ppv) = 0;
1310 #else
1311 typedef struct IShellViewVtbl IShellViewVtbl;
1312 struct IShellView {
1313 const IShellViewVtbl* lpVtbl;
1315 struct IShellViewVtbl {
1316 BEGIN_INTERFACE
1318 /*** IUnknown methods ***/
1319 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1320 IShellView* This,
1321 REFIID riid,
1322 void** ppvObject);
1324 ULONG (STDMETHODCALLTYPE *AddRef)(
1325 IShellView* This);
1327 ULONG (STDMETHODCALLTYPE *Release)(
1328 IShellView* This);
1330 /*** IOleWindow methods ***/
1331 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1332 IShellView* This,
1333 HWND* phwnd);
1335 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1336 IShellView* This,
1337 BOOL fEnterMode);
1339 /*** IShellView methods ***/
1340 HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
1341 IShellView* This,
1342 MSG* pmsg);
1344 HRESULT (STDMETHODCALLTYPE *EnableModeless)(
1345 IShellView* This,
1346 BOOL fEnable);
1348 HRESULT (STDMETHODCALLTYPE *UIActivate)(
1349 IShellView* This,
1350 UINT uState);
1352 HRESULT (STDMETHODCALLTYPE *Refresh)(
1353 IShellView* This);
1355 HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
1356 IShellView* This,
1357 IShellView* psvPrevious,
1358 LPCFOLDERSETTINGS lpfs,
1359 IShellBrowser* psb,
1360 RECT* prcView,
1361 HWND* phWnd);
1363 HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
1364 IShellView* This);
1366 HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
1367 IShellView* This,
1368 LPFOLDERSETTINGS lpfs);
1370 HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
1371 IShellView* This,
1372 DWORD dwReserved,
1373 LPFNSVADDPROPSHEETPAGE pfn,
1374 LPARAM lparam);
1376 HRESULT (STDMETHODCALLTYPE *SaveViewState)(
1377 IShellView* This);
1379 HRESULT (STDMETHODCALLTYPE *SelectItem)(
1380 IShellView* This,
1381 LPCITEMIDLIST pidlItem,
1382 SVSIF uFlags);
1384 HRESULT (STDMETHODCALLTYPE *GetItemObject)(
1385 IShellView* This,
1386 UINT uItem,
1387 REFIID riid,
1388 void** ppv);
1390 END_INTERFACE
1393 #ifdef COBJMACROS
1394 /*** IUnknown methods ***/
1395 #define IShellView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1396 #define IShellView_AddRef(p) (p)->lpVtbl->AddRef(p)
1397 #define IShellView_Release(p) (p)->lpVtbl->Release(p)
1398 /*** IOleWindow methods ***/
1399 #define IShellView_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1400 #define IShellView_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1401 /*** IShellView methods ***/
1402 #define IShellView_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
1403 #define IShellView_EnableModeless(p,a) (p)->lpVtbl->EnableModeless(p,a)
1404 #define IShellView_UIActivate(p,a) (p)->lpVtbl->UIActivate(p,a)
1405 #define IShellView_Refresh(p) (p)->lpVtbl->Refresh(p)
1406 #define IShellView_CreateViewWindow(p,a,b,c,d,e) (p)->lpVtbl->CreateViewWindow(p,a,b,c,d,e)
1407 #define IShellView_DestroyViewWindow(p) (p)->lpVtbl->DestroyViewWindow(p)
1408 #define IShellView_GetCurrentInfo(p,a) (p)->lpVtbl->GetCurrentInfo(p,a)
1409 #define IShellView_AddPropertySheetPages(p,a,b,c) (p)->lpVtbl->AddPropertySheetPages(p,a,b,c)
1410 #define IShellView_SaveViewState(p) (p)->lpVtbl->SaveViewState(p)
1411 #define IShellView_SelectItem(p,a,b) (p)->lpVtbl->SelectItem(p,a,b)
1412 #define IShellView_GetItemObject(p,a,b,c) (p)->lpVtbl->GetItemObject(p,a,b,c)
1413 #endif
1415 #endif
1417 #define IShellView_METHODS \
1418 /*** IUnknown methods ***/ \
1419 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1420 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1421 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1422 /*** IOleWindow methods ***/ \
1423 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1424 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1425 /*** IShellView methods ***/ \
1426 STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ MSG* pmsg) PURE; \
1427 STDMETHOD_(HRESULT,EnableModeless)(THIS_ BOOL fEnable) PURE; \
1428 STDMETHOD_(HRESULT,UIActivate)(THIS_ UINT uState) PURE; \
1429 STDMETHOD_(HRESULT,Refresh)(THIS) PURE; \
1430 STDMETHOD_(HRESULT,CreateViewWindow)(THIS_ IShellView* psvPrevious, LPCFOLDERSETTINGS lpfs, IShellBrowser* psb, RECT* prcView, HWND* phWnd) PURE; \
1431 STDMETHOD_(HRESULT,DestroyViewWindow)(THIS) PURE; \
1432 STDMETHOD_(HRESULT,GetCurrentInfo)(THIS_ LPFOLDERSETTINGS lpfs) PURE; \
1433 STDMETHOD_(HRESULT,AddPropertySheetPages)(THIS_ DWORD dwReserved, LPFNSVADDPROPSHEETPAGE pfn, LPARAM lparam) PURE; \
1434 STDMETHOD_(HRESULT,SaveViewState)(THIS) PURE; \
1435 STDMETHOD_(HRESULT,SelectItem)(THIS_ LPCITEMIDLIST pidlItem, SVSIF uFlags) PURE; \
1436 STDMETHOD_(HRESULT,GetItemObject)(THIS_ UINT uItem, REFIID riid, void** ppv) PURE;
1438 HRESULT CALLBACK IShellView_TranslateAccelerator_Proxy(
1439 IShellView* This,
1440 MSG* pmsg);
1441 void __RPC_STUB IShellView_TranslateAccelerator_Stub(
1442 struct IRpcStubBuffer* This,
1443 struct IRpcChannelBuffer* pRpcChannelBuffer,
1444 PRPC_MESSAGE pRpcMessage,
1445 DWORD* pdwStubPhase);
1446 HRESULT CALLBACK IShellView_EnableModeless_Proxy(
1447 IShellView* This,
1448 BOOL fEnable);
1449 void __RPC_STUB IShellView_EnableModeless_Stub(
1450 struct IRpcStubBuffer* This,
1451 struct IRpcChannelBuffer* pRpcChannelBuffer,
1452 PRPC_MESSAGE pRpcMessage,
1453 DWORD* pdwStubPhase);
1454 HRESULT CALLBACK IShellView_UIActivate_Proxy(
1455 IShellView* This,
1456 UINT uState);
1457 void __RPC_STUB IShellView_UIActivate_Stub(
1458 struct IRpcStubBuffer* This,
1459 struct IRpcChannelBuffer* pRpcChannelBuffer,
1460 PRPC_MESSAGE pRpcMessage,
1461 DWORD* pdwStubPhase);
1462 HRESULT CALLBACK IShellView_Refresh_Proxy(
1463 IShellView* This);
1464 void __RPC_STUB IShellView_Refresh_Stub(
1465 struct IRpcStubBuffer* This,
1466 struct IRpcChannelBuffer* pRpcChannelBuffer,
1467 PRPC_MESSAGE pRpcMessage,
1468 DWORD* pdwStubPhase);
1469 HRESULT CALLBACK IShellView_CreateViewWindow_Proxy(
1470 IShellView* This,
1471 IShellView* psvPrevious,
1472 LPCFOLDERSETTINGS lpfs,
1473 IShellBrowser* psb,
1474 RECT* prcView,
1475 HWND* phWnd);
1476 void __RPC_STUB IShellView_CreateViewWindow_Stub(
1477 struct IRpcStubBuffer* This,
1478 struct IRpcChannelBuffer* pRpcChannelBuffer,
1479 PRPC_MESSAGE pRpcMessage,
1480 DWORD* pdwStubPhase);
1481 HRESULT CALLBACK IShellView_DestroyViewWindow_Proxy(
1482 IShellView* This);
1483 void __RPC_STUB IShellView_DestroyViewWindow_Stub(
1484 struct IRpcStubBuffer* This,
1485 struct IRpcChannelBuffer* pRpcChannelBuffer,
1486 PRPC_MESSAGE pRpcMessage,
1487 DWORD* pdwStubPhase);
1488 HRESULT CALLBACK IShellView_GetCurrentInfo_Proxy(
1489 IShellView* This,
1490 LPFOLDERSETTINGS lpfs);
1491 void __RPC_STUB IShellView_GetCurrentInfo_Stub(
1492 struct IRpcStubBuffer* This,
1493 struct IRpcChannelBuffer* pRpcChannelBuffer,
1494 PRPC_MESSAGE pRpcMessage,
1495 DWORD* pdwStubPhase);
1496 HRESULT CALLBACK IShellView_SaveViewState_Proxy(
1497 IShellView* This);
1498 void __RPC_STUB IShellView_SaveViewState_Stub(
1499 struct IRpcStubBuffer* This,
1500 struct IRpcChannelBuffer* pRpcChannelBuffer,
1501 PRPC_MESSAGE pRpcMessage,
1502 DWORD* pdwStubPhase);
1503 HRESULT CALLBACK IShellView_SelectItem_Proxy(
1504 IShellView* This,
1505 LPCITEMIDLIST pidlItem,
1506 SVSIF uFlags);
1507 void __RPC_STUB IShellView_SelectItem_Stub(
1508 struct IRpcStubBuffer* This,
1509 struct IRpcChannelBuffer* pRpcChannelBuffer,
1510 PRPC_MESSAGE pRpcMessage,
1511 DWORD* pdwStubPhase);
1512 HRESULT CALLBACK IShellView_GetItemObject_Proxy(
1513 IShellView* This,
1514 UINT uItem,
1515 REFIID riid,
1516 void** ppv);
1517 void __RPC_STUB IShellView_GetItemObject_Stub(
1518 struct IRpcStubBuffer* This,
1519 struct IRpcChannelBuffer* pRpcChannelBuffer,
1520 PRPC_MESSAGE pRpcMessage,
1521 DWORD* pdwStubPhase);
1523 #endif /* __IShellView_INTERFACE_DEFINED__ */
1525 typedef IShellBrowser *LPSHELLBROWSER;
1527 #define SBSP_DEFBROWSER 0x00000000
1528 #define SBSP_SAMEBROWSER 0x00000001
1529 #define SBSP_NEWBROWSER 0x00000002
1530 #define SBSP_DEFMODE 0x00000000
1531 #define SBSP_OPENMODE 0x00000010
1532 #define SBSP_EXPLOREMODE 0x00000020
1533 #define SBSP_HELPMODE 0x00000040
1534 #define SBSP_NOTRANSFERHIST 0x00000080
1535 #define SBSP_ABSOLUTE 0x00000000
1536 #define SBSP_RELATIVE 0x00001000
1537 #define SBSP_PARENT 0x00002000
1538 #define SBSP_NAVIGATEBACK 0x00004000
1539 #define SBSP_NAVIGATEFORWARD 0x00008000
1540 #define SBSP_ALLOW_AUTONAVIGATE 0x00010000
1541 #define SBSP_NOAUTOSELECT 0x04000000
1542 #define SBSP_WRITENOHISTORY 0x08000000
1543 #define SBSP_REDIRECT 0x40000000
1544 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
1545 #define FCW_STATUS 0x0001
1546 #define FCW_TOOLBAR 0x0002
1547 #define FCW_TREE 0x0003
1548 #define FCW_INTERNETBAR 0x0006
1549 #define FCW_PROGRESS 0x0008
1550 #define FCT_MERGE 0x0001
1551 #define FCT_CONFIGABLE 0x0002
1552 #define FCT_ADDTOEND 0x0004
1553 #if 0
1554 typedef LPARAM LPTBBUTTONSB;
1556 #else
1557 #include <commctrl.h>
1558 typedef LPTBBUTTON LPTBBUTTONSB;
1559 #endif
1560 /*****************************************************************************
1561 * IShellBrowser interface
1563 #ifndef __IShellBrowser_INTERFACE_DEFINED__
1564 #define __IShellBrowser_INTERFACE_DEFINED__
1566 DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1567 #if defined(__cplusplus) && !defined(CINTERFACE)
1568 struct IShellBrowser : public IOleWindow
1570 virtual HRESULT STDMETHODCALLTYPE InsertMenusSB(
1571 HMENU hmenuShared,
1572 LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
1574 virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
1575 HMENU hmenuShared,
1576 HOLEMENU holemenuReserved,
1577 HWND hwndActiveObject) = 0;
1579 virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB(
1580 HMENU hmenuShared) = 0;
1582 virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB(
1583 LPCOLESTR pszStatusText) = 0;
1585 virtual HRESULT STDMETHODCALLTYPE EnableModelessSB(
1586 BOOL fEnable) = 0;
1588 virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
1589 MSG* pmsg,
1590 WORD wID) = 0;
1592 virtual HRESULT STDMETHODCALLTYPE BrowseObject(
1593 LPCITEMIDLIST pidl,
1594 UINT wFlags) = 0;
1596 virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
1597 DWORD grfMode,
1598 IStream** ppStrm) = 0;
1600 virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
1601 UINT id,
1602 HWND* phwnd) = 0;
1604 virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
1605 UINT id,
1606 UINT uMsg,
1607 WPARAM wParam,
1608 LPARAM lParam,
1609 LRESULT* pret) = 0;
1611 virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView(
1612 IShellView** ppshv) = 0;
1614 virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive(
1615 IShellView* pshv) = 0;
1617 virtual HRESULT STDMETHODCALLTYPE SetToolbarItems(
1618 LPTBBUTTONSB lpButtons,
1619 UINT nButtons,
1620 UINT uFlags) = 0;
1623 #else
1624 typedef struct IShellBrowserVtbl IShellBrowserVtbl;
1625 struct IShellBrowser {
1626 const IShellBrowserVtbl* lpVtbl;
1628 struct IShellBrowserVtbl {
1629 BEGIN_INTERFACE
1631 /*** IUnknown methods ***/
1632 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1633 IShellBrowser* This,
1634 REFIID riid,
1635 void** ppvObject);
1637 ULONG (STDMETHODCALLTYPE *AddRef)(
1638 IShellBrowser* This);
1640 ULONG (STDMETHODCALLTYPE *Release)(
1641 IShellBrowser* This);
1643 /*** IOleWindow methods ***/
1644 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1645 IShellBrowser* This,
1646 HWND* phwnd);
1648 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1649 IShellBrowser* This,
1650 BOOL fEnterMode);
1652 /*** IShellBrowser methods ***/
1653 HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
1654 IShellBrowser* This,
1655 HMENU hmenuShared,
1656 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1658 HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
1659 IShellBrowser* This,
1660 HMENU hmenuShared,
1661 HOLEMENU holemenuReserved,
1662 HWND hwndActiveObject);
1664 HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
1665 IShellBrowser* This,
1666 HMENU hmenuShared);
1668 HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
1669 IShellBrowser* This,
1670 LPCOLESTR pszStatusText);
1672 HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
1673 IShellBrowser* This,
1674 BOOL fEnable);
1676 HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
1677 IShellBrowser* This,
1678 MSG* pmsg,
1679 WORD wID);
1681 HRESULT (STDMETHODCALLTYPE *BrowseObject)(
1682 IShellBrowser* This,
1683 LPCITEMIDLIST pidl,
1684 UINT wFlags);
1686 HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
1687 IShellBrowser* This,
1688 DWORD grfMode,
1689 IStream** ppStrm);
1691 HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
1692 IShellBrowser* This,
1693 UINT id,
1694 HWND* phwnd);
1696 HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
1697 IShellBrowser* This,
1698 UINT id,
1699 UINT uMsg,
1700 WPARAM wParam,
1701 LPARAM lParam,
1702 LRESULT* pret);
1704 HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
1705 IShellBrowser* This,
1706 IShellView** ppshv);
1708 HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
1709 IShellBrowser* This,
1710 IShellView* pshv);
1712 HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
1713 IShellBrowser* This,
1714 LPTBBUTTONSB lpButtons,
1715 UINT nButtons,
1716 UINT uFlags);
1718 END_INTERFACE
1721 #ifdef COBJMACROS
1722 /*** IUnknown methods ***/
1723 #define IShellBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1724 #define IShellBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
1725 #define IShellBrowser_Release(p) (p)->lpVtbl->Release(p)
1726 /*** IOleWindow methods ***/
1727 #define IShellBrowser_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1728 #define IShellBrowser_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1729 /*** IShellBrowser methods ***/
1730 #define IShellBrowser_InsertMenusSB(p,a,b) (p)->lpVtbl->InsertMenusSB(p,a,b)
1731 #define IShellBrowser_SetMenuSB(p,a,b,c) (p)->lpVtbl->SetMenuSB(p,a,b,c)
1732 #define IShellBrowser_RemoveMenusSB(p,a) (p)->lpVtbl->RemoveMenusSB(p,a)
1733 #define IShellBrowser_SetStatusTextSB(p,a) (p)->lpVtbl->SetStatusTextSB(p,a)
1734 #define IShellBrowser_EnableModelessSB(p,a) (p)->lpVtbl->EnableModelessSB(p,a)
1735 #define IShellBrowser_TranslateAcceleratorSB(p,a,b) (p)->lpVtbl->TranslateAcceleratorSB(p,a,b)
1736 #define IShellBrowser_BrowseObject(p,a,b) (p)->lpVtbl->BrowseObject(p,a,b)
1737 #define IShellBrowser_GetViewStateStream(p,a,b) (p)->lpVtbl->GetViewStateStream(p,a,b)
1738 #define IShellBrowser_GetControlWindow(p,a,b) (p)->lpVtbl->GetControlWindow(p,a,b)
1739 #define IShellBrowser_SendControlMsg(p,a,b,c,d,e) (p)->lpVtbl->SendControlMsg(p,a,b,c,d,e)
1740 #define IShellBrowser_QueryActiveShellView(p,a) (p)->lpVtbl->QueryActiveShellView(p,a)
1741 #define IShellBrowser_OnViewWindowActive(p,a) (p)->lpVtbl->OnViewWindowActive(p,a)
1742 #define IShellBrowser_SetToolbarItems(p,a,b,c) (p)->lpVtbl->SetToolbarItems(p,a,b,c)
1743 #endif
1745 #endif
1747 #define IShellBrowser_METHODS \
1748 /*** IUnknown methods ***/ \
1749 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1750 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1751 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1752 /*** IOleWindow methods ***/ \
1753 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1754 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1755 /*** IShellBrowser methods ***/ \
1756 STDMETHOD_(HRESULT,InsertMenusSB)(THIS_ HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) PURE; \
1757 STDMETHOD_(HRESULT,SetMenuSB)(THIS_ HMENU hmenuShared, HOLEMENU holemenuReserved, HWND hwndActiveObject) PURE; \
1758 STDMETHOD_(HRESULT,RemoveMenusSB)(THIS_ HMENU hmenuShared) PURE; \
1759 STDMETHOD_(HRESULT,SetStatusTextSB)(THIS_ LPCOLESTR pszStatusText) PURE; \
1760 STDMETHOD_(HRESULT,EnableModelessSB)(THIS_ BOOL fEnable) PURE; \
1761 STDMETHOD_(HRESULT,TranslateAcceleratorSB)(THIS_ MSG* pmsg, WORD wID) PURE; \
1762 STDMETHOD_(HRESULT,BrowseObject)(THIS_ LPCITEMIDLIST pidl, UINT wFlags) PURE; \
1763 STDMETHOD_(HRESULT,GetViewStateStream)(THIS_ DWORD grfMode, IStream** ppStrm) PURE; \
1764 STDMETHOD_(HRESULT,GetControlWindow)(THIS_ UINT id, HWND* phwnd) PURE; \
1765 STDMETHOD_(HRESULT,SendControlMsg)(THIS_ UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* pret) PURE; \
1766 STDMETHOD_(HRESULT,QueryActiveShellView)(THIS_ IShellView** ppshv) PURE; \
1767 STDMETHOD_(HRESULT,OnViewWindowActive)(THIS_ IShellView* pshv) PURE; \
1768 STDMETHOD_(HRESULT,SetToolbarItems)(THIS_ LPTBBUTTONSB lpButtons, UINT nButtons, UINT uFlags) PURE;
1770 HRESULT CALLBACK IShellBrowser_InsertMenusSB_Proxy(
1771 IShellBrowser* This,
1772 HMENU hmenuShared,
1773 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1774 void __RPC_STUB IShellBrowser_InsertMenusSB_Stub(
1775 struct IRpcStubBuffer* This,
1776 struct IRpcChannelBuffer* pRpcChannelBuffer,
1777 PRPC_MESSAGE pRpcMessage,
1778 DWORD* pdwStubPhase);
1779 HRESULT CALLBACK IShellBrowser_SetMenuSB_Proxy(
1780 IShellBrowser* This,
1781 HMENU hmenuShared,
1782 HOLEMENU holemenuReserved,
1783 HWND hwndActiveObject);
1784 void __RPC_STUB IShellBrowser_SetMenuSB_Stub(
1785 struct IRpcStubBuffer* This,
1786 struct IRpcChannelBuffer* pRpcChannelBuffer,
1787 PRPC_MESSAGE pRpcMessage,
1788 DWORD* pdwStubPhase);
1789 HRESULT CALLBACK IShellBrowser_RemoveMenusSB_Proxy(
1790 IShellBrowser* This,
1791 HMENU hmenuShared);
1792 void __RPC_STUB IShellBrowser_RemoveMenusSB_Stub(
1793 struct IRpcStubBuffer* This,
1794 struct IRpcChannelBuffer* pRpcChannelBuffer,
1795 PRPC_MESSAGE pRpcMessage,
1796 DWORD* pdwStubPhase);
1797 HRESULT CALLBACK IShellBrowser_SetStatusTextSB_Proxy(
1798 IShellBrowser* This,
1799 LPCOLESTR pszStatusText);
1800 void __RPC_STUB IShellBrowser_SetStatusTextSB_Stub(
1801 struct IRpcStubBuffer* This,
1802 struct IRpcChannelBuffer* pRpcChannelBuffer,
1803 PRPC_MESSAGE pRpcMessage,
1804 DWORD* pdwStubPhase);
1805 HRESULT CALLBACK IShellBrowser_EnableModelessSB_Proxy(
1806 IShellBrowser* This,
1807 BOOL fEnable);
1808 void __RPC_STUB IShellBrowser_EnableModelessSB_Stub(
1809 struct IRpcStubBuffer* This,
1810 struct IRpcChannelBuffer* pRpcChannelBuffer,
1811 PRPC_MESSAGE pRpcMessage,
1812 DWORD* pdwStubPhase);
1813 HRESULT CALLBACK IShellBrowser_TranslateAcceleratorSB_Proxy(
1814 IShellBrowser* This,
1815 MSG* pmsg,
1816 WORD wID);
1817 void __RPC_STUB IShellBrowser_TranslateAcceleratorSB_Stub(
1818 struct IRpcStubBuffer* This,
1819 struct IRpcChannelBuffer* pRpcChannelBuffer,
1820 PRPC_MESSAGE pRpcMessage,
1821 DWORD* pdwStubPhase);
1822 HRESULT CALLBACK IShellBrowser_BrowseObject_Proxy(
1823 IShellBrowser* This,
1824 LPCITEMIDLIST pidl,
1825 UINT wFlags);
1826 void __RPC_STUB IShellBrowser_BrowseObject_Stub(
1827 struct IRpcStubBuffer* This,
1828 struct IRpcChannelBuffer* pRpcChannelBuffer,
1829 PRPC_MESSAGE pRpcMessage,
1830 DWORD* pdwStubPhase);
1831 HRESULT CALLBACK IShellBrowser_GetViewStateStream_Proxy(
1832 IShellBrowser* This,
1833 DWORD grfMode,
1834 IStream** ppStrm);
1835 void __RPC_STUB IShellBrowser_GetViewStateStream_Stub(
1836 struct IRpcStubBuffer* This,
1837 struct IRpcChannelBuffer* pRpcChannelBuffer,
1838 PRPC_MESSAGE pRpcMessage,
1839 DWORD* pdwStubPhase);
1840 HRESULT CALLBACK IShellBrowser_GetControlWindow_Proxy(
1841 IShellBrowser* This,
1842 UINT id,
1843 HWND* phwnd);
1844 void __RPC_STUB IShellBrowser_GetControlWindow_Stub(
1845 struct IRpcStubBuffer* This,
1846 struct IRpcChannelBuffer* pRpcChannelBuffer,
1847 PRPC_MESSAGE pRpcMessage,
1848 DWORD* pdwStubPhase);
1849 HRESULT CALLBACK IShellBrowser_QueryActiveShellView_Proxy(
1850 IShellBrowser* This,
1851 IShellView** ppshv);
1852 void __RPC_STUB IShellBrowser_QueryActiveShellView_Stub(
1853 struct IRpcStubBuffer* This,
1854 struct IRpcChannelBuffer* pRpcChannelBuffer,
1855 PRPC_MESSAGE pRpcMessage,
1856 DWORD* pdwStubPhase);
1857 HRESULT CALLBACK IShellBrowser_OnViewWindowActive_Proxy(
1858 IShellBrowser* This,
1859 IShellView* pshv);
1860 void __RPC_STUB IShellBrowser_OnViewWindowActive_Stub(
1861 struct IRpcStubBuffer* This,
1862 struct IRpcChannelBuffer* pRpcChannelBuffer,
1863 PRPC_MESSAGE pRpcMessage,
1864 DWORD* pdwStubPhase);
1866 #endif /* __IShellBrowser_INTERFACE_DEFINED__ */
1868 #ifndef __IShellLinkA_FWD_DEFINED__
1869 #define __IShellLinkA_FWD_DEFINED__
1870 typedef struct IShellLinkA IShellLinkA;
1871 #endif
1873 typedef enum {
1874 SLR_NO_UI = 0x1,
1875 SLR_ANY_MATCH = 0x2,
1876 SLR_UPDATE = 0x4,
1877 SLR_NOUPDATE = 0x8,
1878 SLR_NOSEARCH = 0x10,
1879 SLR_NOTRACK = 0x20,
1880 SLR_NOLINKINFO = 0x40,
1881 SLR_INVOKE_MSI = 0x80,
1882 SLR_NO_UI_WITH_MSG_PUMP = 0x101
1883 } SLR_FLAGS;
1885 typedef enum {
1886 SLGP_SHORTPATH = 0x1,
1887 SLGP_UNCPRIORITY = 0x2,
1888 SLGP_RAWPATH = 0x4
1889 } SLGP_FLAGS;
1891 /*****************************************************************************
1892 * IShellLinkA interface
1894 #ifndef __IShellLinkA_INTERFACE_DEFINED__
1895 #define __IShellLinkA_INTERFACE_DEFINED__
1897 DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1898 #if defined(__cplusplus) && !defined(CINTERFACE)
1899 struct IShellLinkA : public IUnknown
1901 virtual HRESULT STDMETHODCALLTYPE GetPath(
1902 LPSTR pszFile,
1903 int cch,
1904 WIN32_FIND_DATAA* pfd,
1905 DWORD fFlags) = 0;
1907 virtual HRESULT STDMETHODCALLTYPE GetIDList(
1908 LPITEMIDLIST* ppidl) = 0;
1910 virtual HRESULT STDMETHODCALLTYPE SetIDList(
1911 LPCITEMIDLIST pidl) = 0;
1913 virtual HRESULT STDMETHODCALLTYPE GetDescription(
1914 LPSTR pszName,
1915 int cch) = 0;
1917 virtual HRESULT STDMETHODCALLTYPE SetDescription(
1918 LPCSTR pszName) = 0;
1920 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
1921 LPSTR pszDir,
1922 int cch) = 0;
1924 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
1925 LPCSTR pszDir) = 0;
1927 virtual HRESULT STDMETHODCALLTYPE GetArguments(
1928 LPSTR pszArgs,
1929 int cch) = 0;
1931 virtual HRESULT STDMETHODCALLTYPE SetArguments(
1932 LPCSTR pszArgs) = 0;
1934 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
1935 WORD* pwHotkey) = 0;
1937 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
1938 WORD wHotkey) = 0;
1940 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
1941 int* piShowCmd) = 0;
1943 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
1944 int iShowCmd) = 0;
1946 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
1947 LPSTR pszIconPath,
1948 int cch,
1949 int* piIcon) = 0;
1951 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
1952 LPCSTR pszIconPath,
1953 int iIcon) = 0;
1955 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
1956 LPCSTR pszPathRel,
1957 DWORD dwReserved) = 0;
1959 virtual HRESULT STDMETHODCALLTYPE Resolve(
1960 HWND hwnd,
1961 DWORD fFlags) = 0;
1963 virtual HRESULT STDMETHODCALLTYPE SetPath(
1964 LPCSTR pszFile) = 0;
1967 #else
1968 typedef struct IShellLinkAVtbl IShellLinkAVtbl;
1969 struct IShellLinkA {
1970 const IShellLinkAVtbl* lpVtbl;
1972 struct IShellLinkAVtbl {
1973 BEGIN_INTERFACE
1975 /*** IUnknown methods ***/
1976 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1977 IShellLinkA* This,
1978 REFIID riid,
1979 void** ppvObject);
1981 ULONG (STDMETHODCALLTYPE *AddRef)(
1982 IShellLinkA* This);
1984 ULONG (STDMETHODCALLTYPE *Release)(
1985 IShellLinkA* This);
1987 /*** IShellLinkA methods ***/
1988 HRESULT (STDMETHODCALLTYPE *GetPath)(
1989 IShellLinkA* This,
1990 LPSTR pszFile,
1991 int cch,
1992 WIN32_FIND_DATAA* pfd,
1993 DWORD fFlags);
1995 HRESULT (STDMETHODCALLTYPE *GetIDList)(
1996 IShellLinkA* This,
1997 LPITEMIDLIST* ppidl);
1999 HRESULT (STDMETHODCALLTYPE *SetIDList)(
2000 IShellLinkA* This,
2001 LPCITEMIDLIST pidl);
2003 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2004 IShellLinkA* This,
2005 LPSTR pszName,
2006 int cch);
2008 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2009 IShellLinkA* This,
2010 LPCSTR pszName);
2012 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2013 IShellLinkA* This,
2014 LPSTR pszDir,
2015 int cch);
2017 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2018 IShellLinkA* This,
2019 LPCSTR pszDir);
2021 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2022 IShellLinkA* This,
2023 LPSTR pszArgs,
2024 int cch);
2026 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2027 IShellLinkA* This,
2028 LPCSTR pszArgs);
2030 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2031 IShellLinkA* This,
2032 WORD* pwHotkey);
2034 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2035 IShellLinkA* This,
2036 WORD wHotkey);
2038 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2039 IShellLinkA* This,
2040 int* piShowCmd);
2042 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2043 IShellLinkA* This,
2044 int iShowCmd);
2046 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2047 IShellLinkA* This,
2048 LPSTR pszIconPath,
2049 int cch,
2050 int* piIcon);
2052 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2053 IShellLinkA* This,
2054 LPCSTR pszIconPath,
2055 int iIcon);
2057 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2058 IShellLinkA* This,
2059 LPCSTR pszPathRel,
2060 DWORD dwReserved);
2062 HRESULT (STDMETHODCALLTYPE *Resolve)(
2063 IShellLinkA* This,
2064 HWND hwnd,
2065 DWORD fFlags);
2067 HRESULT (STDMETHODCALLTYPE *SetPath)(
2068 IShellLinkA* This,
2069 LPCSTR pszFile);
2071 END_INTERFACE
2074 #ifdef COBJMACROS
2075 /*** IUnknown methods ***/
2076 #define IShellLinkA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2077 #define IShellLinkA_AddRef(p) (p)->lpVtbl->AddRef(p)
2078 #define IShellLinkA_Release(p) (p)->lpVtbl->Release(p)
2079 /*** IShellLinkA methods ***/
2080 #define IShellLinkA_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2081 #define IShellLinkA_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2082 #define IShellLinkA_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2083 #define IShellLinkA_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2084 #define IShellLinkA_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2085 #define IShellLinkA_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2086 #define IShellLinkA_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2087 #define IShellLinkA_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2088 #define IShellLinkA_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2089 #define IShellLinkA_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2090 #define IShellLinkA_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2091 #define IShellLinkA_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2092 #define IShellLinkA_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2093 #define IShellLinkA_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2094 #define IShellLinkA_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2095 #define IShellLinkA_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2096 #define IShellLinkA_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2097 #define IShellLinkA_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2098 #endif
2100 #endif
2102 #define IShellLinkA_METHODS \
2103 /*** IUnknown methods ***/ \
2104 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2105 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2106 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2107 /*** IShellLinkA methods ***/ \
2108 STDMETHOD_(HRESULT,GetPath)(THIS_ LPSTR pszFile, int cch, WIN32_FIND_DATAA* pfd, DWORD fFlags) PURE; \
2109 STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2110 STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \
2111 STDMETHOD_(HRESULT,GetDescription)(THIS_ LPSTR pszName, int cch) PURE; \
2112 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCSTR pszName) PURE; \
2113 STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPSTR pszDir, int cch) PURE; \
2114 STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCSTR pszDir) PURE; \
2115 STDMETHOD_(HRESULT,GetArguments)(THIS_ LPSTR pszArgs, int cch) PURE; \
2116 STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCSTR pszArgs) PURE; \
2117 STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \
2118 STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \
2119 STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \
2120 STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \
2121 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPSTR pszIconPath, int cch, int* piIcon) PURE; \
2122 STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCSTR pszIconPath, int iIcon) PURE; \
2123 STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCSTR pszPathRel, DWORD dwReserved) PURE; \
2124 STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \
2125 STDMETHOD_(HRESULT,SetPath)(THIS_ LPCSTR pszFile) PURE;
2127 HRESULT CALLBACK IShellLinkA_GetPath_Proxy(
2128 IShellLinkA* This,
2129 LPSTR pszFile,
2130 int cch,
2131 WIN32_FIND_DATAA* pfd,
2132 DWORD fFlags);
2133 void __RPC_STUB IShellLinkA_GetPath_Stub(
2134 struct IRpcStubBuffer* This,
2135 struct IRpcChannelBuffer* pRpcChannelBuffer,
2136 PRPC_MESSAGE pRpcMessage,
2137 DWORD* pdwStubPhase);
2138 HRESULT CALLBACK IShellLinkA_GetIDList_Proxy(
2139 IShellLinkA* This,
2140 LPITEMIDLIST* ppidl);
2141 void __RPC_STUB IShellLinkA_GetIDList_Stub(
2142 struct IRpcStubBuffer* This,
2143 struct IRpcChannelBuffer* pRpcChannelBuffer,
2144 PRPC_MESSAGE pRpcMessage,
2145 DWORD* pdwStubPhase);
2146 HRESULT CALLBACK IShellLinkA_SetIDList_Proxy(
2147 IShellLinkA* This,
2148 LPCITEMIDLIST pidl);
2149 void __RPC_STUB IShellLinkA_SetIDList_Stub(
2150 struct IRpcStubBuffer* This,
2151 struct IRpcChannelBuffer* pRpcChannelBuffer,
2152 PRPC_MESSAGE pRpcMessage,
2153 DWORD* pdwStubPhase);
2154 HRESULT CALLBACK IShellLinkA_GetDescription_Proxy(
2155 IShellLinkA* This,
2156 LPSTR pszName,
2157 int cch);
2158 void __RPC_STUB IShellLinkA_GetDescription_Stub(
2159 struct IRpcStubBuffer* This,
2160 struct IRpcChannelBuffer* pRpcChannelBuffer,
2161 PRPC_MESSAGE pRpcMessage,
2162 DWORD* pdwStubPhase);
2163 HRESULT CALLBACK IShellLinkA_SetDescription_Proxy(
2164 IShellLinkA* This,
2165 LPCSTR pszName);
2166 void __RPC_STUB IShellLinkA_SetDescription_Stub(
2167 struct IRpcStubBuffer* This,
2168 struct IRpcChannelBuffer* pRpcChannelBuffer,
2169 PRPC_MESSAGE pRpcMessage,
2170 DWORD* pdwStubPhase);
2171 HRESULT CALLBACK IShellLinkA_GetWorkingDirectory_Proxy(
2172 IShellLinkA* This,
2173 LPSTR pszDir,
2174 int cch);
2175 void __RPC_STUB IShellLinkA_GetWorkingDirectory_Stub(
2176 struct IRpcStubBuffer* This,
2177 struct IRpcChannelBuffer* pRpcChannelBuffer,
2178 PRPC_MESSAGE pRpcMessage,
2179 DWORD* pdwStubPhase);
2180 HRESULT CALLBACK IShellLinkA_SetWorkingDirectory_Proxy(
2181 IShellLinkA* This,
2182 LPCSTR pszDir);
2183 void __RPC_STUB IShellLinkA_SetWorkingDirectory_Stub(
2184 struct IRpcStubBuffer* This,
2185 struct IRpcChannelBuffer* pRpcChannelBuffer,
2186 PRPC_MESSAGE pRpcMessage,
2187 DWORD* pdwStubPhase);
2188 HRESULT CALLBACK IShellLinkA_GetArguments_Proxy(
2189 IShellLinkA* This,
2190 LPSTR pszArgs,
2191 int cch);
2192 void __RPC_STUB IShellLinkA_GetArguments_Stub(
2193 struct IRpcStubBuffer* This,
2194 struct IRpcChannelBuffer* pRpcChannelBuffer,
2195 PRPC_MESSAGE pRpcMessage,
2196 DWORD* pdwStubPhase);
2197 HRESULT CALLBACK IShellLinkA_SetArguments_Proxy(
2198 IShellLinkA* This,
2199 LPCSTR pszArgs);
2200 void __RPC_STUB IShellLinkA_SetArguments_Stub(
2201 struct IRpcStubBuffer* This,
2202 struct IRpcChannelBuffer* pRpcChannelBuffer,
2203 PRPC_MESSAGE pRpcMessage,
2204 DWORD* pdwStubPhase);
2205 HRESULT CALLBACK IShellLinkA_GetHotkey_Proxy(
2206 IShellLinkA* This,
2207 WORD* pwHotkey);
2208 void __RPC_STUB IShellLinkA_GetHotkey_Stub(
2209 struct IRpcStubBuffer* This,
2210 struct IRpcChannelBuffer* pRpcChannelBuffer,
2211 PRPC_MESSAGE pRpcMessage,
2212 DWORD* pdwStubPhase);
2213 HRESULT CALLBACK IShellLinkA_SetHotkey_Proxy(
2214 IShellLinkA* This,
2215 WORD wHotkey);
2216 void __RPC_STUB IShellLinkA_SetHotkey_Stub(
2217 struct IRpcStubBuffer* This,
2218 struct IRpcChannelBuffer* pRpcChannelBuffer,
2219 PRPC_MESSAGE pRpcMessage,
2220 DWORD* pdwStubPhase);
2221 HRESULT CALLBACK IShellLinkA_GetShowCmd_Proxy(
2222 IShellLinkA* This,
2223 int* piShowCmd);
2224 void __RPC_STUB IShellLinkA_GetShowCmd_Stub(
2225 struct IRpcStubBuffer* This,
2226 struct IRpcChannelBuffer* pRpcChannelBuffer,
2227 PRPC_MESSAGE pRpcMessage,
2228 DWORD* pdwStubPhase);
2229 HRESULT CALLBACK IShellLinkA_SetShowCmd_Proxy(
2230 IShellLinkA* This,
2231 int iShowCmd);
2232 void __RPC_STUB IShellLinkA_SetShowCmd_Stub(
2233 struct IRpcStubBuffer* This,
2234 struct IRpcChannelBuffer* pRpcChannelBuffer,
2235 PRPC_MESSAGE pRpcMessage,
2236 DWORD* pdwStubPhase);
2237 HRESULT CALLBACK IShellLinkA_GetIconLocation_Proxy(
2238 IShellLinkA* This,
2239 LPSTR pszIconPath,
2240 int cch,
2241 int* piIcon);
2242 void __RPC_STUB IShellLinkA_GetIconLocation_Stub(
2243 struct IRpcStubBuffer* This,
2244 struct IRpcChannelBuffer* pRpcChannelBuffer,
2245 PRPC_MESSAGE pRpcMessage,
2246 DWORD* pdwStubPhase);
2247 HRESULT CALLBACK IShellLinkA_SetIconLocation_Proxy(
2248 IShellLinkA* This,
2249 LPCSTR pszIconPath,
2250 int iIcon);
2251 void __RPC_STUB IShellLinkA_SetIconLocation_Stub(
2252 struct IRpcStubBuffer* This,
2253 struct IRpcChannelBuffer* pRpcChannelBuffer,
2254 PRPC_MESSAGE pRpcMessage,
2255 DWORD* pdwStubPhase);
2256 HRESULT CALLBACK IShellLinkA_SetRelativePath_Proxy(
2257 IShellLinkA* This,
2258 LPCSTR pszPathRel,
2259 DWORD dwReserved);
2260 void __RPC_STUB IShellLinkA_SetRelativePath_Stub(
2261 struct IRpcStubBuffer* This,
2262 struct IRpcChannelBuffer* pRpcChannelBuffer,
2263 PRPC_MESSAGE pRpcMessage,
2264 DWORD* pdwStubPhase);
2265 HRESULT CALLBACK IShellLinkA_Resolve_Proxy(
2266 IShellLinkA* This,
2267 HWND hwnd,
2268 DWORD fFlags);
2269 void __RPC_STUB IShellLinkA_Resolve_Stub(
2270 struct IRpcStubBuffer* This,
2271 struct IRpcChannelBuffer* pRpcChannelBuffer,
2272 PRPC_MESSAGE pRpcMessage,
2273 DWORD* pdwStubPhase);
2274 HRESULT CALLBACK IShellLinkA_SetPath_Proxy(
2275 IShellLinkA* This,
2276 LPCSTR pszFile);
2277 void __RPC_STUB IShellLinkA_SetPath_Stub(
2278 struct IRpcStubBuffer* This,
2279 struct IRpcChannelBuffer* pRpcChannelBuffer,
2280 PRPC_MESSAGE pRpcMessage,
2281 DWORD* pdwStubPhase);
2283 #endif /* __IShellLinkA_INTERFACE_DEFINED__ */
2285 #ifndef __IShellLinkW_FWD_DEFINED__
2286 #define __IShellLinkW_FWD_DEFINED__
2287 typedef struct IShellLinkW IShellLinkW;
2288 #endif
2290 /*****************************************************************************
2291 * IShellLinkW interface
2293 #ifndef __IShellLinkW_INTERFACE_DEFINED__
2294 #define __IShellLinkW_INTERFACE_DEFINED__
2296 DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2297 #if defined(__cplusplus) && !defined(CINTERFACE)
2298 struct IShellLinkW : public IUnknown
2300 virtual HRESULT STDMETHODCALLTYPE GetPath(
2301 LPWSTR pszFile,
2302 int cch,
2303 WIN32_FIND_DATAW* pfd,
2304 DWORD fFlags) = 0;
2306 virtual HRESULT STDMETHODCALLTYPE GetIDList(
2307 LPITEMIDLIST* ppidl) = 0;
2309 virtual HRESULT STDMETHODCALLTYPE SetIDList(
2310 LPCITEMIDLIST pidl) = 0;
2312 virtual HRESULT STDMETHODCALLTYPE GetDescription(
2313 LPWSTR pszName,
2314 int cch) = 0;
2316 virtual HRESULT STDMETHODCALLTYPE SetDescription(
2317 LPCWSTR pszName) = 0;
2319 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
2320 LPWSTR pszDir,
2321 int cch) = 0;
2323 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
2324 LPCWSTR pszDir) = 0;
2326 virtual HRESULT STDMETHODCALLTYPE GetArguments(
2327 LPWSTR pszArgs,
2328 int cch) = 0;
2330 virtual HRESULT STDMETHODCALLTYPE SetArguments(
2331 LPCWSTR pszArgs) = 0;
2333 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
2334 WORD* pwHotkey) = 0;
2336 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
2337 WORD wHotkey) = 0;
2339 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
2340 int* piShowCmd) = 0;
2342 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
2343 int iShowCmd) = 0;
2345 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2346 LPWSTR pszIconPath,
2347 int cch,
2348 int* piIcon) = 0;
2350 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
2351 LPCWSTR pszIconPath,
2352 int iIcon) = 0;
2354 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
2355 LPCWSTR pszPathRel,
2356 DWORD dwReserved) = 0;
2358 virtual HRESULT STDMETHODCALLTYPE Resolve(
2359 HWND hwnd,
2360 DWORD fFlags) = 0;
2362 virtual HRESULT STDMETHODCALLTYPE SetPath(
2363 LPCWSTR pszFile) = 0;
2366 #else
2367 typedef struct IShellLinkWVtbl IShellLinkWVtbl;
2368 struct IShellLinkW {
2369 const IShellLinkWVtbl* lpVtbl;
2371 struct IShellLinkWVtbl {
2372 BEGIN_INTERFACE
2374 /*** IUnknown methods ***/
2375 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2376 IShellLinkW* This,
2377 REFIID riid,
2378 void** ppvObject);
2380 ULONG (STDMETHODCALLTYPE *AddRef)(
2381 IShellLinkW* This);
2383 ULONG (STDMETHODCALLTYPE *Release)(
2384 IShellLinkW* This);
2386 /*** IShellLinkW methods ***/
2387 HRESULT (STDMETHODCALLTYPE *GetPath)(
2388 IShellLinkW* This,
2389 LPWSTR pszFile,
2390 int cch,
2391 WIN32_FIND_DATAW* pfd,
2392 DWORD fFlags);
2394 HRESULT (STDMETHODCALLTYPE *GetIDList)(
2395 IShellLinkW* This,
2396 LPITEMIDLIST* ppidl);
2398 HRESULT (STDMETHODCALLTYPE *SetIDList)(
2399 IShellLinkW* This,
2400 LPCITEMIDLIST pidl);
2402 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2403 IShellLinkW* This,
2404 LPWSTR pszName,
2405 int cch);
2407 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2408 IShellLinkW* This,
2409 LPCWSTR pszName);
2411 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2412 IShellLinkW* This,
2413 LPWSTR pszDir,
2414 int cch);
2416 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2417 IShellLinkW* This,
2418 LPCWSTR pszDir);
2420 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2421 IShellLinkW* This,
2422 LPWSTR pszArgs,
2423 int cch);
2425 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2426 IShellLinkW* This,
2427 LPCWSTR pszArgs);
2429 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2430 IShellLinkW* This,
2431 WORD* pwHotkey);
2433 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2434 IShellLinkW* This,
2435 WORD wHotkey);
2437 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2438 IShellLinkW* This,
2439 int* piShowCmd);
2441 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2442 IShellLinkW* This,
2443 int iShowCmd);
2445 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2446 IShellLinkW* This,
2447 LPWSTR pszIconPath,
2448 int cch,
2449 int* piIcon);
2451 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2452 IShellLinkW* This,
2453 LPCWSTR pszIconPath,
2454 int iIcon);
2456 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2457 IShellLinkW* This,
2458 LPCWSTR pszPathRel,
2459 DWORD dwReserved);
2461 HRESULT (STDMETHODCALLTYPE *Resolve)(
2462 IShellLinkW* This,
2463 HWND hwnd,
2464 DWORD fFlags);
2466 HRESULT (STDMETHODCALLTYPE *SetPath)(
2467 IShellLinkW* This,
2468 LPCWSTR pszFile);
2470 END_INTERFACE
2473 #ifdef COBJMACROS
2474 /*** IUnknown methods ***/
2475 #define IShellLinkW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2476 #define IShellLinkW_AddRef(p) (p)->lpVtbl->AddRef(p)
2477 #define IShellLinkW_Release(p) (p)->lpVtbl->Release(p)
2478 /*** IShellLinkW methods ***/
2479 #define IShellLinkW_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2480 #define IShellLinkW_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2481 #define IShellLinkW_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2482 #define IShellLinkW_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2483 #define IShellLinkW_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2484 #define IShellLinkW_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2485 #define IShellLinkW_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2486 #define IShellLinkW_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2487 #define IShellLinkW_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2488 #define IShellLinkW_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2489 #define IShellLinkW_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2490 #define IShellLinkW_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2491 #define IShellLinkW_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2492 #define IShellLinkW_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2493 #define IShellLinkW_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2494 #define IShellLinkW_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2495 #define IShellLinkW_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2496 #define IShellLinkW_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2497 #endif
2499 #endif
2501 #define IShellLinkW_METHODS \
2502 /*** IUnknown methods ***/ \
2503 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2504 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2505 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2506 /*** IShellLinkW methods ***/ \
2507 STDMETHOD_(HRESULT,GetPath)(THIS_ LPWSTR pszFile, int cch, WIN32_FIND_DATAW* pfd, DWORD fFlags) PURE; \
2508 STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2509 STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \
2510 STDMETHOD_(HRESULT,GetDescription)(THIS_ LPWSTR pszName, int cch) PURE; \
2511 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCWSTR pszName) PURE; \
2512 STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPWSTR pszDir, int cch) PURE; \
2513 STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCWSTR pszDir) PURE; \
2514 STDMETHOD_(HRESULT,GetArguments)(THIS_ LPWSTR pszArgs, int cch) PURE; \
2515 STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCWSTR pszArgs) PURE; \
2516 STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \
2517 STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \
2518 STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \
2519 STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \
2520 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPWSTR pszIconPath, int cch, int* piIcon) PURE; \
2521 STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCWSTR pszIconPath, int iIcon) PURE; \
2522 STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCWSTR pszPathRel, DWORD dwReserved) PURE; \
2523 STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \
2524 STDMETHOD_(HRESULT,SetPath)(THIS_ LPCWSTR pszFile) PURE;
2526 HRESULT CALLBACK IShellLinkW_GetPath_Proxy(
2527 IShellLinkW* This,
2528 LPWSTR pszFile,
2529 int cch,
2530 WIN32_FIND_DATAW* pfd,
2531 DWORD fFlags);
2532 void __RPC_STUB IShellLinkW_GetPath_Stub(
2533 struct IRpcStubBuffer* This,
2534 struct IRpcChannelBuffer* pRpcChannelBuffer,
2535 PRPC_MESSAGE pRpcMessage,
2536 DWORD* pdwStubPhase);
2537 HRESULT CALLBACK IShellLinkW_GetIDList_Proxy(
2538 IShellLinkW* This,
2539 LPITEMIDLIST* ppidl);
2540 void __RPC_STUB IShellLinkW_GetIDList_Stub(
2541 struct IRpcStubBuffer* This,
2542 struct IRpcChannelBuffer* pRpcChannelBuffer,
2543 PRPC_MESSAGE pRpcMessage,
2544 DWORD* pdwStubPhase);
2545 HRESULT CALLBACK IShellLinkW_SetIDList_Proxy(
2546 IShellLinkW* This,
2547 LPCITEMIDLIST pidl);
2548 void __RPC_STUB IShellLinkW_SetIDList_Stub(
2549 struct IRpcStubBuffer* This,
2550 struct IRpcChannelBuffer* pRpcChannelBuffer,
2551 PRPC_MESSAGE pRpcMessage,
2552 DWORD* pdwStubPhase);
2553 HRESULT CALLBACK IShellLinkW_GetDescription_Proxy(
2554 IShellLinkW* This,
2555 LPWSTR pszName,
2556 int cch);
2557 void __RPC_STUB IShellLinkW_GetDescription_Stub(
2558 struct IRpcStubBuffer* This,
2559 struct IRpcChannelBuffer* pRpcChannelBuffer,
2560 PRPC_MESSAGE pRpcMessage,
2561 DWORD* pdwStubPhase);
2562 HRESULT CALLBACK IShellLinkW_SetDescription_Proxy(
2563 IShellLinkW* This,
2564 LPCWSTR pszName);
2565 void __RPC_STUB IShellLinkW_SetDescription_Stub(
2566 struct IRpcStubBuffer* This,
2567 struct IRpcChannelBuffer* pRpcChannelBuffer,
2568 PRPC_MESSAGE pRpcMessage,
2569 DWORD* pdwStubPhase);
2570 HRESULT CALLBACK IShellLinkW_GetWorkingDirectory_Proxy(
2571 IShellLinkW* This,
2572 LPWSTR pszDir,
2573 int cch);
2574 void __RPC_STUB IShellLinkW_GetWorkingDirectory_Stub(
2575 struct IRpcStubBuffer* This,
2576 struct IRpcChannelBuffer* pRpcChannelBuffer,
2577 PRPC_MESSAGE pRpcMessage,
2578 DWORD* pdwStubPhase);
2579 HRESULT CALLBACK IShellLinkW_SetWorkingDirectory_Proxy(
2580 IShellLinkW* This,
2581 LPCWSTR pszDir);
2582 void __RPC_STUB IShellLinkW_SetWorkingDirectory_Stub(
2583 struct IRpcStubBuffer* This,
2584 struct IRpcChannelBuffer* pRpcChannelBuffer,
2585 PRPC_MESSAGE pRpcMessage,
2586 DWORD* pdwStubPhase);
2587 HRESULT CALLBACK IShellLinkW_GetArguments_Proxy(
2588 IShellLinkW* This,
2589 LPWSTR pszArgs,
2590 int cch);
2591 void __RPC_STUB IShellLinkW_GetArguments_Stub(
2592 struct IRpcStubBuffer* This,
2593 struct IRpcChannelBuffer* pRpcChannelBuffer,
2594 PRPC_MESSAGE pRpcMessage,
2595 DWORD* pdwStubPhase);
2596 HRESULT CALLBACK IShellLinkW_SetArguments_Proxy(
2597 IShellLinkW* This,
2598 LPCWSTR pszArgs);
2599 void __RPC_STUB IShellLinkW_SetArguments_Stub(
2600 struct IRpcStubBuffer* This,
2601 struct IRpcChannelBuffer* pRpcChannelBuffer,
2602 PRPC_MESSAGE pRpcMessage,
2603 DWORD* pdwStubPhase);
2604 HRESULT CALLBACK IShellLinkW_GetHotkey_Proxy(
2605 IShellLinkW* This,
2606 WORD* pwHotkey);
2607 void __RPC_STUB IShellLinkW_GetHotkey_Stub(
2608 struct IRpcStubBuffer* This,
2609 struct IRpcChannelBuffer* pRpcChannelBuffer,
2610 PRPC_MESSAGE pRpcMessage,
2611 DWORD* pdwStubPhase);
2612 HRESULT CALLBACK IShellLinkW_SetHotkey_Proxy(
2613 IShellLinkW* This,
2614 WORD wHotkey);
2615 void __RPC_STUB IShellLinkW_SetHotkey_Stub(
2616 struct IRpcStubBuffer* This,
2617 struct IRpcChannelBuffer* pRpcChannelBuffer,
2618 PRPC_MESSAGE pRpcMessage,
2619 DWORD* pdwStubPhase);
2620 HRESULT CALLBACK IShellLinkW_GetShowCmd_Proxy(
2621 IShellLinkW* This,
2622 int* piShowCmd);
2623 void __RPC_STUB IShellLinkW_GetShowCmd_Stub(
2624 struct IRpcStubBuffer* This,
2625 struct IRpcChannelBuffer* pRpcChannelBuffer,
2626 PRPC_MESSAGE pRpcMessage,
2627 DWORD* pdwStubPhase);
2628 HRESULT CALLBACK IShellLinkW_SetShowCmd_Proxy(
2629 IShellLinkW* This,
2630 int iShowCmd);
2631 void __RPC_STUB IShellLinkW_SetShowCmd_Stub(
2632 struct IRpcStubBuffer* This,
2633 struct IRpcChannelBuffer* pRpcChannelBuffer,
2634 PRPC_MESSAGE pRpcMessage,
2635 DWORD* pdwStubPhase);
2636 HRESULT CALLBACK IShellLinkW_GetIconLocation_Proxy(
2637 IShellLinkW* This,
2638 LPWSTR pszIconPath,
2639 int cch,
2640 int* piIcon);
2641 void __RPC_STUB IShellLinkW_GetIconLocation_Stub(
2642 struct IRpcStubBuffer* This,
2643 struct IRpcChannelBuffer* pRpcChannelBuffer,
2644 PRPC_MESSAGE pRpcMessage,
2645 DWORD* pdwStubPhase);
2646 HRESULT CALLBACK IShellLinkW_SetIconLocation_Proxy(
2647 IShellLinkW* This,
2648 LPCWSTR pszIconPath,
2649 int iIcon);
2650 void __RPC_STUB IShellLinkW_SetIconLocation_Stub(
2651 struct IRpcStubBuffer* This,
2652 struct IRpcChannelBuffer* pRpcChannelBuffer,
2653 PRPC_MESSAGE pRpcMessage,
2654 DWORD* pdwStubPhase);
2655 HRESULT CALLBACK IShellLinkW_SetRelativePath_Proxy(
2656 IShellLinkW* This,
2657 LPCWSTR pszPathRel,
2658 DWORD dwReserved);
2659 void __RPC_STUB IShellLinkW_SetRelativePath_Stub(
2660 struct IRpcStubBuffer* This,
2661 struct IRpcChannelBuffer* pRpcChannelBuffer,
2662 PRPC_MESSAGE pRpcMessage,
2663 DWORD* pdwStubPhase);
2664 HRESULT CALLBACK IShellLinkW_Resolve_Proxy(
2665 IShellLinkW* This,
2666 HWND hwnd,
2667 DWORD fFlags);
2668 void __RPC_STUB IShellLinkW_Resolve_Stub(
2669 struct IRpcStubBuffer* This,
2670 struct IRpcChannelBuffer* pRpcChannelBuffer,
2671 PRPC_MESSAGE pRpcMessage,
2672 DWORD* pdwStubPhase);
2673 HRESULT CALLBACK IShellLinkW_SetPath_Proxy(
2674 IShellLinkW* This,
2675 LPCWSTR pszFile);
2676 void __RPC_STUB IShellLinkW_SetPath_Stub(
2677 struct IRpcStubBuffer* This,
2678 struct IRpcChannelBuffer* pRpcChannelBuffer,
2679 PRPC_MESSAGE pRpcMessage,
2680 DWORD* pdwStubPhase);
2682 #endif /* __IShellLinkW_INTERFACE_DEFINED__ */
2684 #define IShellLink WINELIB_NAME_AW(IShellLink)
2685 #ifndef __IShellExtInit_FWD_DEFINED__
2686 #define __IShellExtInit_FWD_DEFINED__
2687 typedef struct IShellExtInit IShellExtInit;
2688 #endif
2690 typedef IShellExtInit *LPSHELLEXTINIT;
2692 /*****************************************************************************
2693 * IShellExtInit interface
2695 #ifndef __IShellExtInit_INTERFACE_DEFINED__
2696 #define __IShellExtInit_INTERFACE_DEFINED__
2698 DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2699 #if defined(__cplusplus) && !defined(CINTERFACE)
2700 struct IShellExtInit : public IUnknown
2702 virtual HRESULT STDMETHODCALLTYPE Initialize(
2703 LPCITEMIDLIST pidlFolder,
2704 IDataObject* pdtobj,
2705 HKEY hkeyProgID) = 0;
2708 #else
2709 typedef struct IShellExtInitVtbl IShellExtInitVtbl;
2710 struct IShellExtInit {
2711 const IShellExtInitVtbl* lpVtbl;
2713 struct IShellExtInitVtbl {
2714 BEGIN_INTERFACE
2716 /*** IUnknown methods ***/
2717 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2718 IShellExtInit* This,
2719 REFIID riid,
2720 void** ppvObject);
2722 ULONG (STDMETHODCALLTYPE *AddRef)(
2723 IShellExtInit* This);
2725 ULONG (STDMETHODCALLTYPE *Release)(
2726 IShellExtInit* This);
2728 /*** IShellExtInit methods ***/
2729 HRESULT (STDMETHODCALLTYPE *Initialize)(
2730 IShellExtInit* This,
2731 LPCITEMIDLIST pidlFolder,
2732 IDataObject* pdtobj,
2733 HKEY hkeyProgID);
2735 END_INTERFACE
2738 #ifdef COBJMACROS
2739 /*** IUnknown methods ***/
2740 #define IShellExtInit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2741 #define IShellExtInit_AddRef(p) (p)->lpVtbl->AddRef(p)
2742 #define IShellExtInit_Release(p) (p)->lpVtbl->Release(p)
2743 /*** IShellExtInit methods ***/
2744 #define IShellExtInit_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
2745 #endif
2747 #endif
2749 #define IShellExtInit_METHODS \
2750 /*** IUnknown methods ***/ \
2751 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2752 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2753 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2754 /*** IShellExtInit methods ***/ \
2755 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidlFolder, IDataObject* pdtobj, HKEY hkeyProgID) PURE;
2757 HRESULT CALLBACK IShellExtInit_Initialize_Proxy(
2758 IShellExtInit* This,
2759 LPCITEMIDLIST pidlFolder,
2760 IDataObject* pdtobj,
2761 HKEY hkeyProgID);
2762 void __RPC_STUB IShellExtInit_Initialize_Stub(
2763 struct IRpcStubBuffer* This,
2764 struct IRpcChannelBuffer* pRpcChannelBuffer,
2765 PRPC_MESSAGE pRpcMessage,
2766 DWORD* pdwStubPhase);
2768 #endif /* __IShellExtInit_INTERFACE_DEFINED__ */
2770 #ifndef __IPersistFolder3_FWD_DEFINED__
2771 #define __IPersistFolder3_FWD_DEFINED__
2772 typedef struct IPersistFolder3 IPersistFolder3;
2773 #endif
2775 typedef struct {
2776 LPITEMIDLIST pidlTargetFolder;
2777 WCHAR szTargetParsingName[260];
2778 WCHAR szNetworkProvider[260];
2779 DWORD dwAttributes;
2780 int csidl;
2781 } PERSIST_FOLDER_TARGET_INFO;
2783 /*****************************************************************************
2784 * IPersistFolder3 interface
2786 #ifndef __IPersistFolder3_INTERFACE_DEFINED__
2787 #define __IPersistFolder3_INTERFACE_DEFINED__
2789 DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf);
2790 #if defined(__cplusplus) && !defined(CINTERFACE)
2791 struct IPersistFolder3 : public IPersistFolder2
2793 virtual HRESULT STDMETHODCALLTYPE InitializeEx(
2794 IBindCtx* pbc,
2795 LPCITEMIDLIST pidlRoot,
2796 const PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2798 virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
2799 PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2802 #else
2803 typedef struct IPersistFolder3Vtbl IPersistFolder3Vtbl;
2804 struct IPersistFolder3 {
2805 const IPersistFolder3Vtbl* lpVtbl;
2807 struct IPersistFolder3Vtbl {
2808 BEGIN_INTERFACE
2810 /*** IUnknown methods ***/
2811 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2812 IPersistFolder3* This,
2813 REFIID riid,
2814 void** ppvObject);
2816 ULONG (STDMETHODCALLTYPE *AddRef)(
2817 IPersistFolder3* This);
2819 ULONG (STDMETHODCALLTYPE *Release)(
2820 IPersistFolder3* This);
2822 /*** IPersist methods ***/
2823 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2824 IPersistFolder3* This,
2825 CLSID* pClassID);
2827 /*** IPersistFolder methods ***/
2828 HRESULT (STDMETHODCALLTYPE *Initialize)(
2829 IPersistFolder3* This,
2830 LPCITEMIDLIST pidl);
2832 /*** IPersistFolder2 methods ***/
2833 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
2834 IPersistFolder3* This,
2835 LPITEMIDLIST* ppidl);
2837 /*** IPersistFolder3 methods ***/
2838 HRESULT (STDMETHODCALLTYPE *InitializeEx)(
2839 IPersistFolder3* This,
2840 IBindCtx* pbc,
2841 LPCITEMIDLIST pidlRoot,
2842 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2844 HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
2845 IPersistFolder3* This,
2846 PERSIST_FOLDER_TARGET_INFO* ppfti);
2848 END_INTERFACE
2851 #ifdef COBJMACROS
2852 /*** IUnknown methods ***/
2853 #define IPersistFolder3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2854 #define IPersistFolder3_AddRef(p) (p)->lpVtbl->AddRef(p)
2855 #define IPersistFolder3_Release(p) (p)->lpVtbl->Release(p)
2856 /*** IPersist methods ***/
2857 #define IPersistFolder3_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2858 /*** IPersistFolder methods ***/
2859 #define IPersistFolder3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
2860 /*** IPersistFolder2 methods ***/
2861 #define IPersistFolder3_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
2862 /*** IPersistFolder3 methods ***/
2863 #define IPersistFolder3_InitializeEx(p,a,b,c) (p)->lpVtbl->InitializeEx(p,a,b,c)
2864 #define IPersistFolder3_GetFolderTargetInfo(p,a) (p)->lpVtbl->GetFolderTargetInfo(p,a)
2865 #endif
2867 #endif
2869 #define IPersistFolder3_METHODS \
2870 /*** IUnknown methods ***/ \
2871 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2872 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2873 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2874 /*** IPersist methods ***/ \
2875 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2876 /*** IPersistFolder methods ***/ \
2877 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \
2878 /*** IPersistFolder2 methods ***/ \
2879 STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2880 /*** IPersistFolder3 methods ***/ \
2881 STDMETHOD_(HRESULT,InitializeEx)(THIS_ IBindCtx* pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO* ppfti) PURE; \
2882 STDMETHOD_(HRESULT,GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO* ppfti) PURE;
2884 HRESULT CALLBACK IPersistFolder3_InitializeEx_Proxy(
2885 IPersistFolder3* This,
2886 IBindCtx* pbc,
2887 LPCITEMIDLIST pidlRoot,
2888 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2889 void __RPC_STUB IPersistFolder3_InitializeEx_Stub(
2890 struct IRpcStubBuffer* This,
2891 struct IRpcChannelBuffer* pRpcChannelBuffer,
2892 PRPC_MESSAGE pRpcMessage,
2893 DWORD* pdwStubPhase);
2894 HRESULT CALLBACK IPersistFolder3_GetFolderTargetInfo_Proxy(
2895 IPersistFolder3* This,
2896 PERSIST_FOLDER_TARGET_INFO* ppfti);
2897 void __RPC_STUB IPersistFolder3_GetFolderTargetInfo_Stub(
2898 struct IRpcStubBuffer* This,
2899 struct IRpcChannelBuffer* pRpcChannelBuffer,
2900 PRPC_MESSAGE pRpcMessage,
2901 DWORD* pdwStubPhase);
2903 #endif /* __IPersistFolder3_INTERFACE_DEFINED__ */
2905 #ifndef __IExtractIconA_FWD_DEFINED__
2906 #define __IExtractIconA_FWD_DEFINED__
2907 typedef struct IExtractIconA IExtractIconA;
2908 #endif
2910 #define GIL_OPENICON 0x0001
2911 #define GIL_FORSHELL 0x0002
2912 #define GIL_ASYNC 0x0020
2913 #define GIL_DEFAULTICON 0x0040
2914 #define GIL_FORSHORTCUT 0x0080
2915 #define GIL_SIMULATEDOC 0x0001
2916 #define GIL_PERINSTANCE 0x0002
2917 #define GIL_PERCLASS 0x0004
2918 #define GIL_NOTFILENAME 0x0008
2919 #define GIL_DONTCACHE 0x0010
2920 typedef IExtractIconA *LPEXTRACTICONA;
2922 /*****************************************************************************
2923 * IExtractIconA interface
2925 #ifndef __IExtractIconA_INTERFACE_DEFINED__
2926 #define __IExtractIconA_INTERFACE_DEFINED__
2928 DEFINE_GUID(IID_IExtractIconA, 0x000214eb, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2929 #if defined(__cplusplus) && !defined(CINTERFACE)
2930 struct IExtractIconA : public IUnknown
2932 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2933 UINT uFlags,
2934 LPSTR szIconFile,
2935 UINT cchMax,
2936 INT* piIndex,
2937 UINT* pwFlags) = 0;
2939 virtual HRESULT STDMETHODCALLTYPE Extract(
2940 LPCSTR pszFile,
2941 UINT nIconIndex,
2942 HICON* phiconLarge,
2943 HICON* phiconSmall,
2944 UINT nIconSize) = 0;
2947 #else
2948 typedef struct IExtractIconAVtbl IExtractIconAVtbl;
2949 struct IExtractIconA {
2950 const IExtractIconAVtbl* lpVtbl;
2952 struct IExtractIconAVtbl {
2953 BEGIN_INTERFACE
2955 /*** IUnknown methods ***/
2956 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2957 IExtractIconA* This,
2958 REFIID riid,
2959 void** ppvObject);
2961 ULONG (STDMETHODCALLTYPE *AddRef)(
2962 IExtractIconA* This);
2964 ULONG (STDMETHODCALLTYPE *Release)(
2965 IExtractIconA* This);
2967 /*** IExtractIconA methods ***/
2968 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2969 IExtractIconA* This,
2970 UINT uFlags,
2971 LPSTR szIconFile,
2972 UINT cchMax,
2973 INT* piIndex,
2974 UINT* pwFlags);
2976 HRESULT (STDMETHODCALLTYPE *Extract)(
2977 IExtractIconA* This,
2978 LPCSTR pszFile,
2979 UINT nIconIndex,
2980 HICON* phiconLarge,
2981 HICON* phiconSmall,
2982 UINT nIconSize);
2984 END_INTERFACE
2987 #ifdef COBJMACROS
2988 /*** IUnknown methods ***/
2989 #define IExtractIconA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2990 #define IExtractIconA_AddRef(p) (p)->lpVtbl->AddRef(p)
2991 #define IExtractIconA_Release(p) (p)->lpVtbl->Release(p)
2992 /*** IExtractIconA methods ***/
2993 #define IExtractIconA_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
2994 #define IExtractIconA_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
2995 #endif
2997 #endif
2999 #define IExtractIconA_METHODS \
3000 /*** IUnknown methods ***/ \
3001 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3002 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3003 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3004 /*** IExtractIconA methods ***/ \
3005 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \
3006 STDMETHOD_(HRESULT,Extract)(THIS_ LPCSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE;
3008 HRESULT CALLBACK IExtractIconA_GetIconLocation_Proxy(
3009 IExtractIconA* This,
3010 UINT uFlags,
3011 LPSTR szIconFile,
3012 UINT cchMax,
3013 INT* piIndex,
3014 UINT* pwFlags);
3015 void __RPC_STUB IExtractIconA_GetIconLocation_Stub(
3016 struct IRpcStubBuffer* This,
3017 struct IRpcChannelBuffer* pRpcChannelBuffer,
3018 PRPC_MESSAGE pRpcMessage,
3019 DWORD* pdwStubPhase);
3020 HRESULT CALLBACK IExtractIconA_Extract_Proxy(
3021 IExtractIconA* This,
3022 LPCSTR pszFile,
3023 UINT nIconIndex,
3024 HICON* phiconLarge,
3025 HICON* phiconSmall,
3026 UINT nIconSize);
3027 void __RPC_STUB IExtractIconA_Extract_Stub(
3028 struct IRpcStubBuffer* This,
3029 struct IRpcChannelBuffer* pRpcChannelBuffer,
3030 PRPC_MESSAGE pRpcMessage,
3031 DWORD* pdwStubPhase);
3033 #endif /* __IExtractIconA_INTERFACE_DEFINED__ */
3035 #ifndef __IExtractIconW_FWD_DEFINED__
3036 #define __IExtractIconW_FWD_DEFINED__
3037 typedef struct IExtractIconW IExtractIconW;
3038 #endif
3040 typedef IExtractIconW *LPEXTRACTICONW;
3042 /*****************************************************************************
3043 * IExtractIconW interface
3045 #ifndef __IExtractIconW_INTERFACE_DEFINED__
3046 #define __IExtractIconW_INTERFACE_DEFINED__
3048 DEFINE_GUID(IID_IExtractIconW, 0x000214fa, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3049 #if defined(__cplusplus) && !defined(CINTERFACE)
3050 struct IExtractIconW : public IUnknown
3052 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
3053 UINT uFlags,
3054 LPWSTR szIconFile,
3055 UINT cchMax,
3056 INT* piIndex,
3057 UINT* pwFlags) = 0;
3059 virtual HRESULT STDMETHODCALLTYPE Extract(
3060 LPCWSTR pszFile,
3061 UINT nIconIndex,
3062 HICON* phiconLarge,
3063 HICON* phiconSmall,
3064 UINT nIconSize) = 0;
3067 #else
3068 typedef struct IExtractIconWVtbl IExtractIconWVtbl;
3069 struct IExtractIconW {
3070 const IExtractIconWVtbl* lpVtbl;
3072 struct IExtractIconWVtbl {
3073 BEGIN_INTERFACE
3075 /*** IUnknown methods ***/
3076 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3077 IExtractIconW* This,
3078 REFIID riid,
3079 void** ppvObject);
3081 ULONG (STDMETHODCALLTYPE *AddRef)(
3082 IExtractIconW* This);
3084 ULONG (STDMETHODCALLTYPE *Release)(
3085 IExtractIconW* This);
3087 /*** IExtractIconW methods ***/
3088 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
3089 IExtractIconW* This,
3090 UINT uFlags,
3091 LPWSTR szIconFile,
3092 UINT cchMax,
3093 INT* piIndex,
3094 UINT* pwFlags);
3096 HRESULT (STDMETHODCALLTYPE *Extract)(
3097 IExtractIconW* This,
3098 LPCWSTR pszFile,
3099 UINT nIconIndex,
3100 HICON* phiconLarge,
3101 HICON* phiconSmall,
3102 UINT nIconSize);
3104 END_INTERFACE
3107 #ifdef COBJMACROS
3108 /*** IUnknown methods ***/
3109 #define IExtractIconW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3110 #define IExtractIconW_AddRef(p) (p)->lpVtbl->AddRef(p)
3111 #define IExtractIconW_Release(p) (p)->lpVtbl->Release(p)
3112 /*** IExtractIconW methods ***/
3113 #define IExtractIconW_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
3114 #define IExtractIconW_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
3115 #endif
3117 #endif
3119 #define IExtractIconW_METHODS \
3120 /*** IUnknown methods ***/ \
3121 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3122 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3123 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3124 /*** IExtractIconW methods ***/ \
3125 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPWSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \
3126 STDMETHOD_(HRESULT,Extract)(THIS_ LPCWSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE;
3128 HRESULT CALLBACK IExtractIconW_GetIconLocation_Proxy(
3129 IExtractIconW* This,
3130 UINT uFlags,
3131 LPWSTR szIconFile,
3132 UINT cchMax,
3133 INT* piIndex,
3134 UINT* pwFlags);
3135 void __RPC_STUB IExtractIconW_GetIconLocation_Stub(
3136 struct IRpcStubBuffer* This,
3137 struct IRpcChannelBuffer* pRpcChannelBuffer,
3138 PRPC_MESSAGE pRpcMessage,
3139 DWORD* pdwStubPhase);
3140 HRESULT CALLBACK IExtractIconW_Extract_Proxy(
3141 IExtractIconW* This,
3142 LPCWSTR pszFile,
3143 UINT nIconIndex,
3144 HICON* phiconLarge,
3145 HICON* phiconSmall,
3146 UINT nIconSize);
3147 void __RPC_STUB IExtractIconW_Extract_Stub(
3148 struct IRpcStubBuffer* This,
3149 struct IRpcChannelBuffer* pRpcChannelBuffer,
3150 PRPC_MESSAGE pRpcMessage,
3151 DWORD* pdwStubPhase);
3153 #endif /* __IExtractIconW_INTERFACE_DEFINED__ */
3155 #define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)
3156 #define IExtractIcon WINELIB_NAME_AW(IExtractIcon)
3157 #ifndef __ICommDlgBrowser_FWD_DEFINED__
3158 #define __ICommDlgBrowser_FWD_DEFINED__
3159 typedef struct ICommDlgBrowser ICommDlgBrowser;
3160 #endif
3162 #define CDBOSC_SETFOCUS 0x00000000
3163 #define CDBOSC_KILLFOCUS 0x00000001
3164 #define CDBOSC_SELCHANGE 0x00000002
3165 #define CDBOSC_RENAME 0x00000003
3166 #define CDBOSC_STATECHANGE 0x00000004
3167 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
3169 /*****************************************************************************
3170 * ICommDlgBrowser interface
3172 #ifndef __ICommDlgBrowser_INTERFACE_DEFINED__
3173 #define __ICommDlgBrowser_INTERFACE_DEFINED__
3175 DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3176 #if defined(__cplusplus) && !defined(CINTERFACE)
3177 struct ICommDlgBrowser : public IUnknown
3179 virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand(
3180 IShellView* shv) = 0;
3182 virtual HRESULT STDMETHODCALLTYPE OnStateChange(
3183 IShellView* shv,
3184 ULONG uChange) = 0;
3186 virtual HRESULT STDMETHODCALLTYPE IncludeObject(
3187 IShellView* shv,
3188 LPCITEMIDLIST pidl) = 0;
3191 #else
3192 typedef struct ICommDlgBrowserVtbl ICommDlgBrowserVtbl;
3193 struct ICommDlgBrowser {
3194 const ICommDlgBrowserVtbl* lpVtbl;
3196 struct ICommDlgBrowserVtbl {
3197 BEGIN_INTERFACE
3199 /*** IUnknown methods ***/
3200 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3201 ICommDlgBrowser* This,
3202 REFIID riid,
3203 void** ppvObject);
3205 ULONG (STDMETHODCALLTYPE *AddRef)(
3206 ICommDlgBrowser* This);
3208 ULONG (STDMETHODCALLTYPE *Release)(
3209 ICommDlgBrowser* This);
3211 /*** ICommDlgBrowser methods ***/
3212 HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
3213 ICommDlgBrowser* This,
3214 IShellView* shv);
3216 HRESULT (STDMETHODCALLTYPE *OnStateChange)(
3217 ICommDlgBrowser* This,
3218 IShellView* shv,
3219 ULONG uChange);
3221 HRESULT (STDMETHODCALLTYPE *IncludeObject)(
3222 ICommDlgBrowser* This,
3223 IShellView* shv,
3224 LPCITEMIDLIST pidl);
3226 END_INTERFACE
3229 #ifdef COBJMACROS
3230 /*** IUnknown methods ***/
3231 #define ICommDlgBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3232 #define ICommDlgBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
3233 #define ICommDlgBrowser_Release(p) (p)->lpVtbl->Release(p)
3234 /*** ICommDlgBrowser methods ***/
3235 #define ICommDlgBrowser_OnDefaultCommand(p,a) (p)->lpVtbl->OnDefaultCommand(p,a)
3236 #define ICommDlgBrowser_OnStateChange(p,a,b) (p)->lpVtbl->OnStateChange(p,a,b)
3237 #define ICommDlgBrowser_IncludeObject(p,a,b) (p)->lpVtbl->IncludeObject(p,a,b)
3238 #endif
3240 #endif
3242 #define ICommDlgBrowser_METHODS \
3243 /*** IUnknown methods ***/ \
3244 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3245 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3246 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3247 /*** ICommDlgBrowser methods ***/ \
3248 STDMETHOD_(HRESULT,OnDefaultCommand)(THIS_ IShellView* shv) PURE; \
3249 STDMETHOD_(HRESULT,OnStateChange)(THIS_ IShellView* shv, ULONG uChange) PURE; \
3250 STDMETHOD_(HRESULT,IncludeObject)(THIS_ IShellView* shv, LPCITEMIDLIST pidl) PURE;
3252 HRESULT CALLBACK ICommDlgBrowser_OnDefaultCommand_Proxy(
3253 ICommDlgBrowser* This,
3254 IShellView* shv);
3255 void __RPC_STUB ICommDlgBrowser_OnDefaultCommand_Stub(
3256 struct IRpcStubBuffer* This,
3257 struct IRpcChannelBuffer* pRpcChannelBuffer,
3258 PRPC_MESSAGE pRpcMessage,
3259 DWORD* pdwStubPhase);
3260 HRESULT CALLBACK ICommDlgBrowser_OnStateChange_Proxy(
3261 ICommDlgBrowser* This,
3262 IShellView* shv,
3263 ULONG uChange);
3264 void __RPC_STUB ICommDlgBrowser_OnStateChange_Stub(
3265 struct IRpcStubBuffer* This,
3266 struct IRpcChannelBuffer* pRpcChannelBuffer,
3267 PRPC_MESSAGE pRpcMessage,
3268 DWORD* pdwStubPhase);
3269 HRESULT CALLBACK ICommDlgBrowser_IncludeObject_Proxy(
3270 ICommDlgBrowser* This,
3271 IShellView* shv,
3272 LPCITEMIDLIST pidl);
3273 void __RPC_STUB ICommDlgBrowser_IncludeObject_Stub(
3274 struct IRpcStubBuffer* This,
3275 struct IRpcChannelBuffer* pRpcChannelBuffer,
3276 PRPC_MESSAGE pRpcMessage,
3277 DWORD* pdwStubPhase);
3279 #endif /* __ICommDlgBrowser_INTERFACE_DEFINED__ */
3281 #ifndef __IDockingWindowFrame_FWD_DEFINED__
3282 #define __IDockingWindowFrame_FWD_DEFINED__
3283 typedef struct IDockingWindowFrame IDockingWindowFrame;
3284 #endif
3286 #define DWFRF_NORMAL 0x0000
3287 #define DWFRF_DELETECONFIGDATA 0x0001
3288 #define DWFAF_HIDDEN 0x0001
3289 /*****************************************************************************
3290 * IDockingWindowFrame interface
3292 #ifndef __IDockingWindowFrame_INTERFACE_DEFINED__
3293 #define __IDockingWindowFrame_INTERFACE_DEFINED__
3295 DEFINE_GUID(IID_IDockingWindowFrame, 0x47d2657a, 0x7b27, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
3296 #if defined(__cplusplus) && !defined(CINTERFACE)
3297 struct IDockingWindowFrame : public IOleWindow
3299 virtual HRESULT STDMETHODCALLTYPE AddToolbar(
3300 IUnknown* punkSrc,
3301 LPCWSTR pwszItem,
3302 DWORD dwAddFlags) = 0;
3304 virtual HRESULT STDMETHODCALLTYPE RemoveToolbar(
3305 IUnknown* punkSrc,
3306 DWORD dwRemoveFlags) = 0;
3308 virtual HRESULT STDMETHODCALLTYPE FindToolbar(
3309 LPCWSTR pwszItem,
3310 REFIID riid,
3311 LPVOID* ppvObj) = 0;
3314 #else
3315 typedef struct IDockingWindowFrameVtbl IDockingWindowFrameVtbl;
3316 struct IDockingWindowFrame {
3317 const IDockingWindowFrameVtbl* lpVtbl;
3319 struct IDockingWindowFrameVtbl {
3320 BEGIN_INTERFACE
3322 /*** IUnknown methods ***/
3323 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3324 IDockingWindowFrame* This,
3325 REFIID riid,
3326 void** ppvObject);
3328 ULONG (STDMETHODCALLTYPE *AddRef)(
3329 IDockingWindowFrame* This);
3331 ULONG (STDMETHODCALLTYPE *Release)(
3332 IDockingWindowFrame* This);
3334 /*** IOleWindow methods ***/
3335 HRESULT (STDMETHODCALLTYPE *GetWindow)(
3336 IDockingWindowFrame* This,
3337 HWND* phwnd);
3339 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
3340 IDockingWindowFrame* This,
3341 BOOL fEnterMode);
3343 /*** IDockingWindowFrame methods ***/
3344 HRESULT (STDMETHODCALLTYPE *AddToolbar)(
3345 IDockingWindowFrame* This,
3346 IUnknown* punkSrc,
3347 LPCWSTR pwszItem,
3348 DWORD dwAddFlags);
3350 HRESULT (STDMETHODCALLTYPE *RemoveToolbar)(
3351 IDockingWindowFrame* This,
3352 IUnknown* punkSrc,
3353 DWORD dwRemoveFlags);
3355 HRESULT (STDMETHODCALLTYPE *FindToolbar)(
3356 IDockingWindowFrame* This,
3357 LPCWSTR pwszItem,
3358 REFIID riid,
3359 LPVOID* ppvObj);
3361 END_INTERFACE
3364 #ifdef COBJMACROS
3365 /*** IUnknown methods ***/
3366 #define IDockingWindowFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3367 #define IDockingWindowFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
3368 #define IDockingWindowFrame_Release(p) (p)->lpVtbl->Release(p)
3369 /*** IOleWindow methods ***/
3370 #define IDockingWindowFrame_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
3371 #define IDockingWindowFrame_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
3372 /*** IDockingWindowFrame methods ***/
3373 #define IDockingWindowFrame_AddToolbar(p,a,b,c) (p)->lpVtbl->AddToolbar(p,a,b,c)
3374 #define IDockingWindowFrame_RemoveToolbar(p,a,b) (p)->lpVtbl->RemoveToolbar(p,a,b)
3375 #define IDockingWindowFrame_FindToolbar(p,a,b,c) (p)->lpVtbl->FindToolbar(p,a,b,c)
3376 #endif
3378 #endif
3380 #define IDockingWindowFrame_METHODS \
3381 /*** IUnknown methods ***/ \
3382 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3383 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3384 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3385 /*** IOleWindow methods ***/ \
3386 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
3387 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
3388 /*** IDockingWindowFrame methods ***/ \
3389 STDMETHOD_(HRESULT,AddToolbar)(THIS_ IUnknown* punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags) PURE; \
3390 STDMETHOD_(HRESULT,RemoveToolbar)(THIS_ IUnknown* punkSrc, DWORD dwRemoveFlags) PURE; \
3391 STDMETHOD_(HRESULT,FindToolbar)(THIS_ LPCWSTR pwszItem, REFIID riid, LPVOID* ppvObj) PURE;
3393 HRESULT CALLBACK IDockingWindowFrame_AddToolbar_Proxy(
3394 IDockingWindowFrame* This,
3395 IUnknown* punkSrc,
3396 LPCWSTR pwszItem,
3397 DWORD dwAddFlags);
3398 void __RPC_STUB IDockingWindowFrame_AddToolbar_Stub(
3399 struct IRpcStubBuffer* This,
3400 struct IRpcChannelBuffer* pRpcChannelBuffer,
3401 PRPC_MESSAGE pRpcMessage,
3402 DWORD* pdwStubPhase);
3403 HRESULT CALLBACK IDockingWindowFrame_RemoveToolbar_Proxy(
3404 IDockingWindowFrame* This,
3405 IUnknown* punkSrc,
3406 DWORD dwRemoveFlags);
3407 void __RPC_STUB IDockingWindowFrame_RemoveToolbar_Stub(
3408 struct IRpcStubBuffer* This,
3409 struct IRpcChannelBuffer* pRpcChannelBuffer,
3410 PRPC_MESSAGE pRpcMessage,
3411 DWORD* pdwStubPhase);
3412 HRESULT CALLBACK IDockingWindowFrame_FindToolbar_Proxy(
3413 IDockingWindowFrame* This,
3414 LPCWSTR pwszItem,
3415 REFIID riid,
3416 LPVOID* ppvObj);
3417 void __RPC_STUB IDockingWindowFrame_FindToolbar_Stub(
3418 struct IRpcStubBuffer* This,
3419 struct IRpcChannelBuffer* pRpcChannelBuffer,
3420 PRPC_MESSAGE pRpcMessage,
3421 DWORD* pdwStubPhase);
3423 #endif /* __IDockingWindowFrame_INTERFACE_DEFINED__ */
3425 #ifndef __IDragSourceHelper_FWD_DEFINED__
3426 #define __IDragSourceHelper_FWD_DEFINED__
3427 typedef struct IDragSourceHelper IDragSourceHelper;
3428 #endif
3430 typedef struct {
3431 SIZE sizeDragImage;
3432 POINT ptOffset;
3433 HBITMAP hbmpDragImage;
3434 COLORREF crColorKey;
3435 } SHDRAGIMAGE, *LPSHDRAGIMAGE;
3437 /*****************************************************************************
3438 * IDragSourceHelper interface
3440 #ifndef __IDragSourceHelper_INTERFACE_DEFINED__
3441 #define __IDragSourceHelper_INTERFACE_DEFINED__
3443 DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
3444 #if defined(__cplusplus) && !defined(CINTERFACE)
3445 struct IDragSourceHelper : public IUnknown
3447 virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
3448 LPSHDRAGIMAGE pshdi,
3449 IDataObject* pDataObject) = 0;
3451 virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow(
3452 HWND hwnd,
3453 POINT* ppt,
3454 IDataObject* pDataObject) = 0;
3457 #else
3458 typedef struct IDragSourceHelperVtbl IDragSourceHelperVtbl;
3459 struct IDragSourceHelper {
3460 const IDragSourceHelperVtbl* lpVtbl;
3462 struct IDragSourceHelperVtbl {
3463 BEGIN_INTERFACE
3465 /*** IUnknown methods ***/
3466 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3467 IDragSourceHelper* This,
3468 REFIID riid,
3469 void** ppvObject);
3471 ULONG (STDMETHODCALLTYPE *AddRef)(
3472 IDragSourceHelper* This);
3474 ULONG (STDMETHODCALLTYPE *Release)(
3475 IDragSourceHelper* This);
3477 /*** IDragSourceHelper methods ***/
3478 HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
3479 IDragSourceHelper* This,
3480 LPSHDRAGIMAGE pshdi,
3481 IDataObject* pDataObject);
3483 HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
3484 IDragSourceHelper* This,
3485 HWND hwnd,
3486 POINT* ppt,
3487 IDataObject* pDataObject);
3489 END_INTERFACE
3492 #ifdef COBJMACROS
3493 /*** IUnknown methods ***/
3494 #define IDragSourceHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3495 #define IDragSourceHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3496 #define IDragSourceHelper_Release(p) (p)->lpVtbl->Release(p)
3497 /*** IDragSourceHelper methods ***/
3498 #define IDragSourceHelper_InitializeFromBitmap(p,a,b) (p)->lpVtbl->InitializeFromBitmap(p,a,b)
3499 #define IDragSourceHelper_InitializeFromWindow(p,a,b,c) (p)->lpVtbl->InitializeFromWindow(p,a,b,c)
3500 #endif
3502 #endif
3504 #define IDragSourceHelper_METHODS \
3505 /*** IUnknown methods ***/ \
3506 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3507 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3508 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3509 /*** IDragSourceHelper methods ***/ \
3510 STDMETHOD_(HRESULT,InitializeFromBitmap)(THIS_ LPSHDRAGIMAGE pshdi, IDataObject* pDataObject) PURE; \
3511 STDMETHOD_(HRESULT,InitializeFromWindow)(THIS_ HWND hwnd, POINT* ppt, IDataObject* pDataObject) PURE;
3513 HRESULT CALLBACK IDragSourceHelper_InitializeFromBitmap_Proxy(
3514 IDragSourceHelper* This,
3515 LPSHDRAGIMAGE pshdi,
3516 IDataObject* pDataObject);
3517 void __RPC_STUB IDragSourceHelper_InitializeFromBitmap_Stub(
3518 struct IRpcStubBuffer* This,
3519 struct IRpcChannelBuffer* pRpcChannelBuffer,
3520 PRPC_MESSAGE pRpcMessage,
3521 DWORD* pdwStubPhase);
3522 HRESULT CALLBACK IDragSourceHelper_InitializeFromWindow_Proxy(
3523 IDragSourceHelper* This,
3524 HWND hwnd,
3525 POINT* ppt,
3526 IDataObject* pDataObject);
3527 void __RPC_STUB IDragSourceHelper_InitializeFromWindow_Stub(
3528 struct IRpcStubBuffer* This,
3529 struct IRpcChannelBuffer* pRpcChannelBuffer,
3530 PRPC_MESSAGE pRpcMessage,
3531 DWORD* pdwStubPhase);
3533 #endif /* __IDragSourceHelper_INTERFACE_DEFINED__ */
3535 #ifndef __IDropTargetHelper_FWD_DEFINED__
3536 #define __IDropTargetHelper_FWD_DEFINED__
3537 typedef struct IDropTargetHelper IDropTargetHelper;
3538 #endif
3540 /*****************************************************************************
3541 * IDropTargetHelper interface
3543 #ifndef __IDropTargetHelper_INTERFACE_DEFINED__
3544 #define __IDropTargetHelper_INTERFACE_DEFINED__
3546 DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
3547 #if defined(__cplusplus) && !defined(CINTERFACE)
3548 struct IDropTargetHelper : public IUnknown
3550 virtual HRESULT STDMETHODCALLTYPE DragEnter(
3551 HWND hwndTarget,
3552 IDataObject* pDataObject,
3553 POINT* ppt,
3554 DWORD dwEffect) = 0;
3556 virtual HRESULT STDMETHODCALLTYPE DragLeave(
3557 ) = 0;
3559 virtual HRESULT STDMETHODCALLTYPE DragOver(
3560 POINT* ppt,
3561 DWORD dwEffect) = 0;
3563 virtual HRESULT STDMETHODCALLTYPE Drop(
3564 IDataObject* pDataObject,
3565 POINT* ppt,
3566 DWORD dwEffect) = 0;
3568 virtual HRESULT STDMETHODCALLTYPE Show(
3569 BOOL fShow) = 0;
3572 #else
3573 typedef struct IDropTargetHelperVtbl IDropTargetHelperVtbl;
3574 struct IDropTargetHelper {
3575 const IDropTargetHelperVtbl* lpVtbl;
3577 struct IDropTargetHelperVtbl {
3578 BEGIN_INTERFACE
3580 /*** IUnknown methods ***/
3581 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3582 IDropTargetHelper* This,
3583 REFIID riid,
3584 void** ppvObject);
3586 ULONG (STDMETHODCALLTYPE *AddRef)(
3587 IDropTargetHelper* This);
3589 ULONG (STDMETHODCALLTYPE *Release)(
3590 IDropTargetHelper* This);
3592 /*** IDropTargetHelper methods ***/
3593 HRESULT (STDMETHODCALLTYPE *DragEnter)(
3594 IDropTargetHelper* This,
3595 HWND hwndTarget,
3596 IDataObject* pDataObject,
3597 POINT* ppt,
3598 DWORD dwEffect);
3600 HRESULT (STDMETHODCALLTYPE *DragLeave)(
3601 IDropTargetHelper* This);
3603 HRESULT (STDMETHODCALLTYPE *DragOver)(
3604 IDropTargetHelper* This,
3605 POINT* ppt,
3606 DWORD dwEffect);
3608 HRESULT (STDMETHODCALLTYPE *Drop)(
3609 IDropTargetHelper* This,
3610 IDataObject* pDataObject,
3611 POINT* ppt,
3612 DWORD dwEffect);
3614 HRESULT (STDMETHODCALLTYPE *Show)(
3615 IDropTargetHelper* This,
3616 BOOL fShow);
3618 END_INTERFACE
3621 #ifdef COBJMACROS
3622 /*** IUnknown methods ***/
3623 #define IDropTargetHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3624 #define IDropTargetHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3625 #define IDropTargetHelper_Release(p) (p)->lpVtbl->Release(p)
3626 /*** IDropTargetHelper methods ***/
3627 #define IDropTargetHelper_DragEnter(p,a,b,c,d) (p)->lpVtbl->DragEnter(p,a,b,c,d)
3628 #define IDropTargetHelper_DragLeave(p) (p)->lpVtbl->DragLeave(p)
3629 #define IDropTargetHelper_DragOver(p,a,b) (p)->lpVtbl->DragOver(p,a,b)
3630 #define IDropTargetHelper_Drop(p,a,b,c) (p)->lpVtbl->Drop(p,a,b,c)
3631 #define IDropTargetHelper_Show(p,a) (p)->lpVtbl->Show(p,a)
3632 #endif
3634 #endif
3636 #define IDropTargetHelper_METHODS \
3637 /*** IUnknown methods ***/ \
3638 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3639 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3640 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3641 /*** IDropTargetHelper methods ***/ \
3642 STDMETHOD_(HRESULT,DragEnter)(THIS_ HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \
3643 STDMETHOD_(HRESULT,DragLeave)(THIS) PURE; \
3644 STDMETHOD_(HRESULT,DragOver)(THIS_ POINT* ppt, DWORD dwEffect) PURE; \
3645 STDMETHOD_(HRESULT,Drop)(THIS_ IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \
3646 STDMETHOD_(HRESULT,Show)(THIS_ BOOL fShow) PURE;
3648 HRESULT CALLBACK IDropTargetHelper_DragEnter_Proxy(
3649 IDropTargetHelper* This,
3650 HWND hwndTarget,
3651 IDataObject* pDataObject,
3652 POINT* ppt,
3653 DWORD dwEffect);
3654 void __RPC_STUB IDropTargetHelper_DragEnter_Stub(
3655 struct IRpcStubBuffer* This,
3656 struct IRpcChannelBuffer* pRpcChannelBuffer,
3657 PRPC_MESSAGE pRpcMessage,
3658 DWORD* pdwStubPhase);
3659 HRESULT CALLBACK IDropTargetHelper_DragLeave_Proxy(
3660 IDropTargetHelper* This);
3661 void __RPC_STUB IDropTargetHelper_DragLeave_Stub(
3662 struct IRpcStubBuffer* This,
3663 struct IRpcChannelBuffer* pRpcChannelBuffer,
3664 PRPC_MESSAGE pRpcMessage,
3665 DWORD* pdwStubPhase);
3666 HRESULT CALLBACK IDropTargetHelper_DragOver_Proxy(
3667 IDropTargetHelper* This,
3668 POINT* ppt,
3669 DWORD dwEffect);
3670 void __RPC_STUB IDropTargetHelper_DragOver_Stub(
3671 struct IRpcStubBuffer* This,
3672 struct IRpcChannelBuffer* pRpcChannelBuffer,
3673 PRPC_MESSAGE pRpcMessage,
3674 DWORD* pdwStubPhase);
3675 HRESULT CALLBACK IDropTargetHelper_Drop_Proxy(
3676 IDropTargetHelper* This,
3677 IDataObject* pDataObject,
3678 POINT* ppt,
3679 DWORD dwEffect);
3680 void __RPC_STUB IDropTargetHelper_Drop_Stub(
3681 struct IRpcStubBuffer* This,
3682 struct IRpcChannelBuffer* pRpcChannelBuffer,
3683 PRPC_MESSAGE pRpcMessage,
3684 DWORD* pdwStubPhase);
3685 HRESULT CALLBACK IDropTargetHelper_Show_Proxy(
3686 IDropTargetHelper* This,
3687 BOOL fShow);
3688 void __RPC_STUB IDropTargetHelper_Show_Stub(
3689 struct IRpcStubBuffer* This,
3690 struct IRpcChannelBuffer* pRpcChannelBuffer,
3691 PRPC_MESSAGE pRpcMessage,
3692 DWORD* pdwStubPhase);
3694 #endif /* __IDropTargetHelper_INTERFACE_DEFINED__ */
3696 #ifndef __IContextMenu_FWD_DEFINED__
3697 #define __IContextMenu_FWD_DEFINED__
3698 typedef struct IContextMenu IContextMenu;
3699 #endif
3701 #define CMF_NORMAL 0x00000000
3702 #define CMF_DEFAULTONLY 0x00000001
3703 #define CMF_VERBSONLY 0x00000002
3704 #define CMF_EXPLORE 0x00000004
3705 #define CMF_NOVERBS 0x00000008
3706 #define CMF_CANRENAME 0x00000010
3707 #define CMF_NODEFAULT 0x00000020
3708 #define CMF_INCLUDESTATIC 0x00000040
3709 #define CMF_EXTENDEDVERBS 0x00000100
3710 #define CMF_RESERVED 0xffff0000
3711 #define GCS_VERBA 0x00000000
3712 #define GCS_HELPTEXTA 0x00000001
3713 #define GCS_VALIDATEA 0x00000002
3714 #define GCS_VERBW 0x00000004
3715 #define GCS_HELPTEXTW 0x00000005
3716 #define GCS_VALIDATEW 0x00000006
3717 #define GCS_UNICODE 0x00000004
3718 #define GCS_VERB WINELIB_NAME_AW(GCS_VERB)
3719 #define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)
3720 #define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)
3721 #define CMDSTR_NEWFOLDERA "NewFolder"
3722 #define CMDSTR_VIEWLISTA "ViewList"
3723 #define CMDSTR_VIEWDETAILSA "ViewDetails"
3724 #if defined(__GNUC__)
3725 # define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }
3726 # define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }
3727 # define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }
3728 #elif defined(_MSC_VER)
3729 # define CMDSTR_NEWFOLDERW L"NewFolder"
3730 # define CMDSTR_VIEWLISTW L"ViewList"
3731 # define CMDSTR_VIEWDETAILSW L"ViewDetails"
3732 #else
3733 static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};
3734 static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};
3735 static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};
3736 #endif
3737 #define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)
3738 #define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)
3739 #define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)
3740 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
3741 #define CMIC_MASK_ICON SEE_MASK_ICON
3742 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
3743 #define CMIC_MASK_UNICODE SEE_MASK_UNICODE
3744 #define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE
3745 #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
3746 #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
3747 #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
3748 #define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK
3749 #define CMIC_MASK_SHIFT_DOWN 0x10000000
3750 #define CMIC_MASK_PTINVOKE 0x20000000
3751 #define CMIC_MASK_CONTROL_DOWN 0x40000000
3752 #define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE
3753 #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS
3754 typedef IContextMenu *LPCONTEXTMENU;
3756 typedef struct tagCMINVOKECOMMANDINFO {
3757 DWORD cbSize;
3758 DWORD fMask;
3759 HWND hwnd;
3760 LPCSTR lpVerb;
3761 LPCSTR lpParameters;
3762 LPCSTR lpDirectory;
3763 INT nShow;
3764 DWORD dwHotKey;
3765 HANDLE hIcon;
3766 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
3768 typedef struct tagCMInvokeCommandInfoEx {
3769 DWORD cbSize;
3770 DWORD fMask;
3771 HWND hwnd;
3772 LPCSTR lpVerb;
3773 LPCSTR lpParameters;
3774 LPCSTR lpDirectory;
3775 INT nShow;
3776 DWORD dwHotKey;
3777 HANDLE hIcon;
3778 LPCSTR lpTitle;
3779 LPCWSTR lpVerbW;
3780 LPCWSTR lpParametersW;
3781 LPCWSTR lpDirectoryW;
3782 LPCWSTR lpTitleW;
3783 POINT ptInvoke;
3784 } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX;
3786 /*****************************************************************************
3787 * IContextMenu interface
3789 #ifndef __IContextMenu_INTERFACE_DEFINED__
3790 #define __IContextMenu_INTERFACE_DEFINED__
3792 DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3793 #if defined(__cplusplus) && !defined(CINTERFACE)
3794 struct IContextMenu : public IUnknown
3796 virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
3797 HMENU hmenu,
3798 UINT indexMenu,
3799 UINT idCmdFirst,
3800 UINT idCmdLast,
3801 UINT uFlags) = 0;
3803 virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
3804 LPCMINVOKECOMMANDINFO lpici) = 0;
3806 virtual HRESULT STDMETHODCALLTYPE GetCommandString(
3807 UINT idCmd,
3808 UINT uType,
3809 UINT* pwReserved,
3810 LPSTR pszName,
3811 UINT cchMax) = 0;
3814 #else
3815 typedef struct IContextMenuVtbl IContextMenuVtbl;
3816 struct IContextMenu {
3817 const IContextMenuVtbl* lpVtbl;
3819 struct IContextMenuVtbl {
3820 BEGIN_INTERFACE
3822 /*** IUnknown methods ***/
3823 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3824 IContextMenu* This,
3825 REFIID riid,
3826 void** ppvObject);
3828 ULONG (STDMETHODCALLTYPE *AddRef)(
3829 IContextMenu* This);
3831 ULONG (STDMETHODCALLTYPE *Release)(
3832 IContextMenu* This);
3834 /*** IContextMenu methods ***/
3835 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3836 IContextMenu* This,
3837 HMENU hmenu,
3838 UINT indexMenu,
3839 UINT idCmdFirst,
3840 UINT idCmdLast,
3841 UINT uFlags);
3843 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3844 IContextMenu* This,
3845 LPCMINVOKECOMMANDINFO lpici);
3847 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3848 IContextMenu* This,
3849 UINT idCmd,
3850 UINT uType,
3851 UINT* pwReserved,
3852 LPSTR pszName,
3853 UINT cchMax);
3855 END_INTERFACE
3858 #ifdef COBJMACROS
3859 /*** IUnknown methods ***/
3860 #define IContextMenu_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3861 #define IContextMenu_AddRef(p) (p)->lpVtbl->AddRef(p)
3862 #define IContextMenu_Release(p) (p)->lpVtbl->Release(p)
3863 /*** IContextMenu methods ***/
3864 #define IContextMenu_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3865 #define IContextMenu_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3866 #define IContextMenu_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3867 #endif
3869 #endif
3871 #define IContextMenu_METHODS \
3872 /*** IUnknown methods ***/ \
3873 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3874 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3875 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3876 /*** IContextMenu methods ***/ \
3877 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
3878 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
3879 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE;
3881 HRESULT CALLBACK IContextMenu_QueryContextMenu_Proxy(
3882 IContextMenu* This,
3883 HMENU hmenu,
3884 UINT indexMenu,
3885 UINT idCmdFirst,
3886 UINT idCmdLast,
3887 UINT uFlags);
3888 void __RPC_STUB IContextMenu_QueryContextMenu_Stub(
3889 struct IRpcStubBuffer* This,
3890 struct IRpcChannelBuffer* pRpcChannelBuffer,
3891 PRPC_MESSAGE pRpcMessage,
3892 DWORD* pdwStubPhase);
3893 HRESULT CALLBACK IContextMenu_InvokeCommand_Proxy(
3894 IContextMenu* This,
3895 LPCMINVOKECOMMANDINFO lpici);
3896 void __RPC_STUB IContextMenu_InvokeCommand_Stub(
3897 struct IRpcStubBuffer* This,
3898 struct IRpcChannelBuffer* pRpcChannelBuffer,
3899 PRPC_MESSAGE pRpcMessage,
3900 DWORD* pdwStubPhase);
3901 HRESULT CALLBACK IContextMenu_GetCommandString_Proxy(
3902 IContextMenu* This,
3903 UINT idCmd,
3904 UINT uType,
3905 UINT* pwReserved,
3906 LPSTR pszName,
3907 UINT cchMax);
3908 void __RPC_STUB IContextMenu_GetCommandString_Stub(
3909 struct IRpcStubBuffer* This,
3910 struct IRpcChannelBuffer* pRpcChannelBuffer,
3911 PRPC_MESSAGE pRpcMessage,
3912 DWORD* pdwStubPhase);
3914 #endif /* __IContextMenu_INTERFACE_DEFINED__ */
3916 #ifndef __IContextMenu2_FWD_DEFINED__
3917 #define __IContextMenu2_FWD_DEFINED__
3918 typedef struct IContextMenu2 IContextMenu2;
3919 #endif
3921 typedef IContextMenu2 *LPCONTEXTMENU2;
3923 /*****************************************************************************
3924 * IContextMenu2 interface
3926 #ifndef __IContextMenu2_INTERFACE_DEFINED__
3927 #define __IContextMenu2_INTERFACE_DEFINED__
3929 DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3930 #if defined(__cplusplus) && !defined(CINTERFACE)
3931 struct IContextMenu2 : public IContextMenu
3933 virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(
3934 UINT uMsg,
3935 WPARAM wParam,
3936 LPARAM lParam) = 0;
3939 #else
3940 typedef struct IContextMenu2Vtbl IContextMenu2Vtbl;
3941 struct IContextMenu2 {
3942 const IContextMenu2Vtbl* lpVtbl;
3944 struct IContextMenu2Vtbl {
3945 BEGIN_INTERFACE
3947 /*** IUnknown methods ***/
3948 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3949 IContextMenu2* This,
3950 REFIID riid,
3951 void** ppvObject);
3953 ULONG (STDMETHODCALLTYPE *AddRef)(
3954 IContextMenu2* This);
3956 ULONG (STDMETHODCALLTYPE *Release)(
3957 IContextMenu2* This);
3959 /*** IContextMenu methods ***/
3960 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3961 IContextMenu2* This,
3962 HMENU hmenu,
3963 UINT indexMenu,
3964 UINT idCmdFirst,
3965 UINT idCmdLast,
3966 UINT uFlags);
3968 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3969 IContextMenu2* This,
3970 LPCMINVOKECOMMANDINFO lpici);
3972 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3973 IContextMenu2* This,
3974 UINT idCmd,
3975 UINT uType,
3976 UINT* pwReserved,
3977 LPSTR pszName,
3978 UINT cchMax);
3980 /*** IContextMenu2 methods ***/
3981 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
3982 IContextMenu2* This,
3983 UINT uMsg,
3984 WPARAM wParam,
3985 LPARAM lParam);
3987 END_INTERFACE
3990 #ifdef COBJMACROS
3991 /*** IUnknown methods ***/
3992 #define IContextMenu2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3993 #define IContextMenu2_AddRef(p) (p)->lpVtbl->AddRef(p)
3994 #define IContextMenu2_Release(p) (p)->lpVtbl->Release(p)
3995 /*** IContextMenu methods ***/
3996 #define IContextMenu2_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3997 #define IContextMenu2_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3998 #define IContextMenu2_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3999 /*** IContextMenu2 methods ***/
4000 #define IContextMenu2_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
4001 #endif
4003 #endif
4005 #define IContextMenu2_METHODS \
4006 /*** IUnknown methods ***/ \
4007 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4008 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4009 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4010 /*** IContextMenu methods ***/ \
4011 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
4012 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
4013 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \
4014 /*** IContextMenu2 methods ***/ \
4015 STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE;
4017 HRESULT CALLBACK IContextMenu2_HandleMenuMsg_Proxy(
4018 IContextMenu2* This,
4019 UINT uMsg,
4020 WPARAM wParam,
4021 LPARAM lParam);
4022 void __RPC_STUB IContextMenu2_HandleMenuMsg_Stub(
4023 struct IRpcStubBuffer* This,
4024 struct IRpcChannelBuffer* pRpcChannelBuffer,
4025 PRPC_MESSAGE pRpcMessage,
4026 DWORD* pdwStubPhase);
4028 #endif /* __IContextMenu2_INTERFACE_DEFINED__ */
4030 #ifndef __IContextMenu3_FWD_DEFINED__
4031 #define __IContextMenu3_FWD_DEFINED__
4032 typedef struct IContextMenu3 IContextMenu3;
4033 #endif
4035 typedef IContextMenu3 *LPCONTEXTMENU3;
4037 /*****************************************************************************
4038 * IContextMenu3 interface
4040 #ifndef __IContextMenu3_INTERFACE_DEFINED__
4041 #define __IContextMenu3_INTERFACE_DEFINED__
4043 DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19);
4044 #if defined(__cplusplus) && !defined(CINTERFACE)
4045 struct IContextMenu3 : public IContextMenu2
4047 virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(
4048 UINT uMsg,
4049 WPARAM wParam,
4050 LPARAM lParam,
4051 LRESULT* plResult) = 0;
4054 #else
4055 typedef struct IContextMenu3Vtbl IContextMenu3Vtbl;
4056 struct IContextMenu3 {
4057 const IContextMenu3Vtbl* lpVtbl;
4059 struct IContextMenu3Vtbl {
4060 BEGIN_INTERFACE
4062 /*** IUnknown methods ***/
4063 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4064 IContextMenu3* This,
4065 REFIID riid,
4066 void** ppvObject);
4068 ULONG (STDMETHODCALLTYPE *AddRef)(
4069 IContextMenu3* This);
4071 ULONG (STDMETHODCALLTYPE *Release)(
4072 IContextMenu3* This);
4074 /*** IContextMenu methods ***/
4075 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
4076 IContextMenu3* This,
4077 HMENU hmenu,
4078 UINT indexMenu,
4079 UINT idCmdFirst,
4080 UINT idCmdLast,
4081 UINT uFlags);
4083 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
4084 IContextMenu3* This,
4085 LPCMINVOKECOMMANDINFO lpici);
4087 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
4088 IContextMenu3* This,
4089 UINT idCmd,
4090 UINT uType,
4091 UINT* pwReserved,
4092 LPSTR pszName,
4093 UINT cchMax);
4095 /*** IContextMenu2 methods ***/
4096 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
4097 IContextMenu3* This,
4098 UINT uMsg,
4099 WPARAM wParam,
4100 LPARAM lParam);
4102 /*** IContextMenu3 methods ***/
4103 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
4104 IContextMenu3* This,
4105 UINT uMsg,
4106 WPARAM wParam,
4107 LPARAM lParam,
4108 LRESULT* plResult);
4110 END_INTERFACE
4113 #ifdef COBJMACROS
4114 /*** IUnknown methods ***/
4115 #define IContextMenu3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4116 #define IContextMenu3_AddRef(p) (p)->lpVtbl->AddRef(p)
4117 #define IContextMenu3_Release(p) (p)->lpVtbl->Release(p)
4118 /*** IContextMenu methods ***/
4119 #define IContextMenu3_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
4120 #define IContextMenu3_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
4121 #define IContextMenu3_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
4122 /*** IContextMenu2 methods ***/
4123 #define IContextMenu3_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
4124 /*** IContextMenu3 methods ***/
4125 #define IContextMenu3_HandleMenuMsg2(p,a,b,c,d) (p)->lpVtbl->HandleMenuMsg2(p,a,b,c,d)
4126 #endif
4128 #endif
4130 #define IContextMenu3_METHODS \
4131 /*** IUnknown methods ***/ \
4132 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4133 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4134 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4135 /*** IContextMenu methods ***/ \
4136 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
4137 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
4138 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \
4139 /*** IContextMenu2 methods ***/ \
4140 STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE; \
4141 /*** IContextMenu3 methods ***/ \
4142 STDMETHOD_(HRESULT,HandleMenuMsg2)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* plResult) PURE;
4144 HRESULT CALLBACK IContextMenu3_HandleMenuMsg2_Proxy(
4145 IContextMenu3* This,
4146 UINT uMsg,
4147 WPARAM wParam,
4148 LPARAM lParam,
4149 LRESULT* plResult);
4150 void __RPC_STUB IContextMenu3_HandleMenuMsg2_Stub(
4151 struct IRpcStubBuffer* This,
4152 struct IRpcChannelBuffer* pRpcChannelBuffer,
4153 PRPC_MESSAGE pRpcMessage,
4154 DWORD* pdwStubPhase);
4156 #endif /* __IContextMenu3_INTERFACE_DEFINED__ */
4158 #ifndef __IShellExecuteHookA_FWD_DEFINED__
4159 #define __IShellExecuteHookA_FWD_DEFINED__
4160 typedef struct IShellExecuteHookA IShellExecuteHookA;
4161 #endif
4163 struct _SHELLEXECUTEINFOA;
4164 /*****************************************************************************
4165 * IShellExecuteHookA interface
4167 #ifndef __IShellExecuteHookA_INTERFACE_DEFINED__
4168 #define __IShellExecuteHookA_INTERFACE_DEFINED__
4170 DEFINE_GUID(IID_IShellExecuteHookA, 0x000214f5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4171 #if defined(__cplusplus) && !defined(CINTERFACE)
4172 struct IShellExecuteHookA : public IUnknown
4174 virtual HRESULT STDMETHODCALLTYPE Execute(
4175 struct _SHELLEXECUTEINFOA* pei) = 0;
4178 #else
4179 typedef struct IShellExecuteHookAVtbl IShellExecuteHookAVtbl;
4180 struct IShellExecuteHookA {
4181 const IShellExecuteHookAVtbl* lpVtbl;
4183 struct IShellExecuteHookAVtbl {
4184 BEGIN_INTERFACE
4186 /*** IUnknown methods ***/
4187 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4188 IShellExecuteHookA* This,
4189 REFIID riid,
4190 void** ppvObject);
4192 ULONG (STDMETHODCALLTYPE *AddRef)(
4193 IShellExecuteHookA* This);
4195 ULONG (STDMETHODCALLTYPE *Release)(
4196 IShellExecuteHookA* This);
4198 /*** IShellExecuteHookA methods ***/
4199 HRESULT (STDMETHODCALLTYPE *Execute)(
4200 IShellExecuteHookA* This,
4201 struct _SHELLEXECUTEINFOA* pei);
4203 END_INTERFACE
4206 #ifdef COBJMACROS
4207 /*** IUnknown methods ***/
4208 #define IShellExecuteHookA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4209 #define IShellExecuteHookA_AddRef(p) (p)->lpVtbl->AddRef(p)
4210 #define IShellExecuteHookA_Release(p) (p)->lpVtbl->Release(p)
4211 /*** IShellExecuteHookA methods ***/
4212 #define IShellExecuteHookA_Execute(p,a) (p)->lpVtbl->Execute(p,a)
4213 #endif
4215 #endif
4217 #define IShellExecuteHookA_METHODS \
4218 /*** IUnknown methods ***/ \
4219 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4220 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4221 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4222 /*** IShellExecuteHookA methods ***/ \
4223 STDMETHOD_(HRESULT,Execute)(THIS_ struct _SHELLEXECUTEINFOA* pei) PURE;
4225 HRESULT CALLBACK IShellExecuteHookA_Execute_Proxy(
4226 IShellExecuteHookA* This,
4227 struct _SHELLEXECUTEINFOA* pei);
4228 void __RPC_STUB IShellExecuteHookA_Execute_Stub(
4229 struct IRpcStubBuffer* This,
4230 struct IRpcChannelBuffer* pRpcChannelBuffer,
4231 PRPC_MESSAGE pRpcMessage,
4232 DWORD* pdwStubPhase);
4234 #endif /* __IShellExecuteHookA_INTERFACE_DEFINED__ */
4236 #ifndef __IShellExecuteHookW_FWD_DEFINED__
4237 #define __IShellExecuteHookW_FWD_DEFINED__
4238 typedef struct IShellExecuteHookW IShellExecuteHookW;
4239 #endif
4241 struct _SHELLEXECUTEINFOW;
4242 /*****************************************************************************
4243 * IShellExecuteHookW interface
4245 #ifndef __IShellExecuteHookW_INTERFACE_DEFINED__
4246 #define __IShellExecuteHookW_INTERFACE_DEFINED__
4248 DEFINE_GUID(IID_IShellExecuteHookW, 0x000214fb, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4249 #if defined(__cplusplus) && !defined(CINTERFACE)
4250 struct IShellExecuteHookW : public IUnknown
4252 virtual HRESULT STDMETHODCALLTYPE Execute(
4253 struct _SHELLEXECUTEINFOW* pei) = 0;
4256 #else
4257 typedef struct IShellExecuteHookWVtbl IShellExecuteHookWVtbl;
4258 struct IShellExecuteHookW {
4259 const IShellExecuteHookWVtbl* lpVtbl;
4261 struct IShellExecuteHookWVtbl {
4262 BEGIN_INTERFACE
4264 /*** IUnknown methods ***/
4265 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4266 IShellExecuteHookW* This,
4267 REFIID riid,
4268 void** ppvObject);
4270 ULONG (STDMETHODCALLTYPE *AddRef)(
4271 IShellExecuteHookW* This);
4273 ULONG (STDMETHODCALLTYPE *Release)(
4274 IShellExecuteHookW* This);
4276 /*** IShellExecuteHookW methods ***/
4277 HRESULT (STDMETHODCALLTYPE *Execute)(
4278 IShellExecuteHookW* This,
4279 struct _SHELLEXECUTEINFOW* pei);
4281 END_INTERFACE
4284 #ifdef COBJMACROS
4285 /*** IUnknown methods ***/
4286 #define IShellExecuteHookW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4287 #define IShellExecuteHookW_AddRef(p) (p)->lpVtbl->AddRef(p)
4288 #define IShellExecuteHookW_Release(p) (p)->lpVtbl->Release(p)
4289 /*** IShellExecuteHookW methods ***/
4290 #define IShellExecuteHookW_Execute(p,a) (p)->lpVtbl->Execute(p,a)
4291 #endif
4293 #endif
4295 #define IShellExecuteHookW_METHODS \
4296 /*** IUnknown methods ***/ \
4297 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4298 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4299 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4300 /*** IShellExecuteHookW methods ***/ \
4301 STDMETHOD_(HRESULT,Execute)(THIS_ struct _SHELLEXECUTEINFOW* pei) PURE;
4303 HRESULT CALLBACK IShellExecuteHookW_Execute_Proxy(
4304 IShellExecuteHookW* This,
4305 struct _SHELLEXECUTEINFOW* pei);
4306 void __RPC_STUB IShellExecuteHookW_Execute_Stub(
4307 struct IRpcStubBuffer* This,
4308 struct IRpcChannelBuffer* pRpcChannelBuffer,
4309 PRPC_MESSAGE pRpcMessage,
4310 DWORD* pdwStubPhase);
4312 #endif /* __IShellExecuteHookW_INTERFACE_DEFINED__ */
4314 #ifdef __cplusplus
4316 #endif
4317 #endif /* __WIDL_SHOBJIDL_H */