System classes must not have the CS_GLOBALCLASS style.
[wine.git] / include / shobjidl.h
blob9440fb25f9ebed6b77c7373952e7d698ebda80db
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 #ifndef __IPersistFolder_FWD_DEFINED__
17 #define __IPersistFolder_FWD_DEFINED__
18 typedef struct IPersistFolder IPersistFolder;
19 #endif
21 typedef IPersistFolder *LPPERSISTFOLDER;
23 /*****************************************************************************
24 * IPersistFolder interface
26 #ifndef __IPersistFolder_INTERFACE_DEFINED__
27 #define __IPersistFolder_INTERFACE_DEFINED__
29 DEFINE_GUID(IID_IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
30 #if defined(__cplusplus) && !defined(CINTERFACE)
31 struct IPersistFolder : public IPersist
33 virtual HRESULT STDMETHODCALLTYPE Initialize(
34 LPCITEMIDLIST pidl) = 0;
37 #else
38 typedef struct IPersistFolderVtbl IPersistFolderVtbl;
39 struct IPersistFolder {
40 const IPersistFolderVtbl* lpVtbl;
42 struct IPersistFolderVtbl {
43 ICOM_MSVTABLE_COMPAT_FIELDS
45 /*** IUnknown methods ***/
46 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
47 IPersistFolder* This,
48 REFIID riid,
49 void** ppvObject);
51 ULONG (STDMETHODCALLTYPE *AddRef)(
52 IPersistFolder* This);
54 ULONG (STDMETHODCALLTYPE *Release)(
55 IPersistFolder* This);
57 /*** IPersist methods ***/
58 HRESULT (STDMETHODCALLTYPE *GetClassID)(
59 IPersistFolder* This,
60 CLSID* pClassID);
62 /*** IPersistFolder methods ***/
63 HRESULT (STDMETHODCALLTYPE *Initialize)(
64 IPersistFolder* This,
65 LPCITEMIDLIST pidl);
69 /*** IUnknown methods ***/
70 #define IPersistFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
71 #define IPersistFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
72 #define IPersistFolder_Release(p) (p)->lpVtbl->Release(p)
73 /*** IPersist methods ***/
74 #define IPersistFolder_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
75 /*** IPersistFolder methods ***/
76 #define IPersistFolder_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
78 #endif
80 #define IPersistFolder_METHODS \
81 ICOM_MSVTABLE_COMPAT_FIELDS \
82 /*** IUnknown methods ***/ \
83 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
84 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
85 STDMETHOD_(ULONG,Release)(THIS) PURE; \
86 /*** IPersist methods ***/ \
87 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
88 /*** IPersistFolder methods ***/ \
89 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE;
91 HRESULT CALLBACK IPersistFolder_Initialize_Proxy(
92 IPersistFolder* This,
93 LPCITEMIDLIST pidl);
94 void __RPC_STUB IPersistFolder_Initialize_Stub(
95 struct IRpcStubBuffer* This,
96 struct IRpcChannelBuffer* pRpcChannelBuffer,
97 PRPC_MESSAGE pRpcMessage,
98 DWORD* pdwStubPhase);
100 #endif /* __IPersistFolder_INTERFACE_DEFINED__ */
102 #ifndef __IPersistFolder2_FWD_DEFINED__
103 #define __IPersistFolder2_FWD_DEFINED__
104 typedef struct IPersistFolder2 IPersistFolder2;
105 #endif
107 typedef IPersistFolder2 *LPPERSISTFOLDER2;
109 /*****************************************************************************
110 * IPersistFolder2 interface
112 #ifndef __IPersistFolder2_INTERFACE_DEFINED__
113 #define __IPersistFolder2_INTERFACE_DEFINED__
115 DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
116 #if defined(__cplusplus) && !defined(CINTERFACE)
117 struct IPersistFolder2 : public IPersistFolder
119 virtual HRESULT STDMETHODCALLTYPE GetCurFolder(
120 LPITEMIDLIST* ppidl) = 0;
123 #else
124 typedef struct IPersistFolder2Vtbl IPersistFolder2Vtbl;
125 struct IPersistFolder2 {
126 const IPersistFolder2Vtbl* lpVtbl;
128 struct IPersistFolder2Vtbl {
129 ICOM_MSVTABLE_COMPAT_FIELDS
131 /*** IUnknown methods ***/
132 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
133 IPersistFolder2* This,
134 REFIID riid,
135 void** ppvObject);
137 ULONG (STDMETHODCALLTYPE *AddRef)(
138 IPersistFolder2* This);
140 ULONG (STDMETHODCALLTYPE *Release)(
141 IPersistFolder2* This);
143 /*** IPersist methods ***/
144 HRESULT (STDMETHODCALLTYPE *GetClassID)(
145 IPersistFolder2* This,
146 CLSID* pClassID);
148 /*** IPersistFolder methods ***/
149 HRESULT (STDMETHODCALLTYPE *Initialize)(
150 IPersistFolder2* This,
151 LPCITEMIDLIST pidl);
153 /*** IPersistFolder2 methods ***/
154 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
155 IPersistFolder2* This,
156 LPITEMIDLIST* ppidl);
160 /*** IUnknown methods ***/
161 #define IPersistFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
162 #define IPersistFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
163 #define IPersistFolder2_Release(p) (p)->lpVtbl->Release(p)
164 /*** IPersist methods ***/
165 #define IPersistFolder2_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
166 /*** IPersistFolder methods ***/
167 #define IPersistFolder2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
168 /*** IPersistFolder2 methods ***/
169 #define IPersistFolder2_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
171 #endif
173 #define IPersistFolder2_METHODS \
174 ICOM_MSVTABLE_COMPAT_FIELDS \
175 /*** IUnknown methods ***/ \
176 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
177 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
178 STDMETHOD_(ULONG,Release)(THIS) PURE; \
179 /*** IPersist methods ***/ \
180 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
181 /*** IPersistFolder methods ***/ \
182 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \
183 /*** IPersistFolder2 methods ***/ \
184 STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE;
186 HRESULT CALLBACK IPersistFolder2_GetCurFolder_Proxy(
187 IPersistFolder2* This,
188 LPITEMIDLIST* ppidl);
189 void __RPC_STUB IPersistFolder2_GetCurFolder_Stub(
190 struct IRpcStubBuffer* This,
191 struct IRpcChannelBuffer* pRpcChannelBuffer,
192 PRPC_MESSAGE pRpcMessage,
193 DWORD* pdwStubPhase);
195 #endif /* __IPersistFolder2_INTERFACE_DEFINED__ */
197 #ifndef __IEnumIDList_FWD_DEFINED__
198 #define __IEnumIDList_FWD_DEFINED__
199 typedef struct IEnumIDList IEnumIDList;
200 #endif
202 typedef IEnumIDList *LPENUMIDLIST;
204 /*****************************************************************************
205 * IEnumIDList interface
207 #ifndef __IEnumIDList_INTERFACE_DEFINED__
208 #define __IEnumIDList_INTERFACE_DEFINED__
210 DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
211 #if defined(__cplusplus) && !defined(CINTERFACE)
212 struct IEnumIDList : public IUnknown
214 virtual HRESULT STDMETHODCALLTYPE Next(
215 ULONG celt,
216 LPITEMIDLIST* rgelt,
217 ULONG* pceltFetched) = 0;
219 virtual HRESULT STDMETHODCALLTYPE Skip(
220 ULONG celt) = 0;
222 virtual HRESULT STDMETHODCALLTYPE Reset(
223 ) = 0;
225 virtual HRESULT STDMETHODCALLTYPE Clone(
226 IEnumIDList** ppenum) = 0;
229 #else
230 typedef struct IEnumIDListVtbl IEnumIDListVtbl;
231 struct IEnumIDList {
232 const IEnumIDListVtbl* lpVtbl;
234 struct IEnumIDListVtbl {
235 ICOM_MSVTABLE_COMPAT_FIELDS
237 /*** IUnknown methods ***/
238 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
239 IEnumIDList* This,
240 REFIID riid,
241 void** ppvObject);
243 ULONG (STDMETHODCALLTYPE *AddRef)(
244 IEnumIDList* This);
246 ULONG (STDMETHODCALLTYPE *Release)(
247 IEnumIDList* This);
249 /*** IEnumIDList methods ***/
250 HRESULT (STDMETHODCALLTYPE *Next)(
251 IEnumIDList* This,
252 ULONG celt,
253 LPITEMIDLIST* rgelt,
254 ULONG* pceltFetched);
256 HRESULT (STDMETHODCALLTYPE *Skip)(
257 IEnumIDList* This,
258 ULONG celt);
260 HRESULT (STDMETHODCALLTYPE *Reset)(
261 IEnumIDList* This);
263 HRESULT (STDMETHODCALLTYPE *Clone)(
264 IEnumIDList* This,
265 IEnumIDList** ppenum);
269 /*** IUnknown methods ***/
270 #define IEnumIDList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
271 #define IEnumIDList_AddRef(p) (p)->lpVtbl->AddRef(p)
272 #define IEnumIDList_Release(p) (p)->lpVtbl->Release(p)
273 /*** IEnumIDList methods ***/
274 #define IEnumIDList_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
275 #define IEnumIDList_Skip(p,a) (p)->lpVtbl->Skip(p,a)
276 #define IEnumIDList_Reset(p) (p)->lpVtbl->Reset(p)
277 #define IEnumIDList_Clone(p,a) (p)->lpVtbl->Clone(p,a)
279 #endif
281 #define IEnumIDList_METHODS \
282 ICOM_MSVTABLE_COMPAT_FIELDS \
283 /*** IUnknown methods ***/ \
284 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
285 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
286 STDMETHOD_(ULONG,Release)(THIS) PURE; \
287 /*** IEnumIDList methods ***/ \
288 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, LPITEMIDLIST* rgelt, ULONG* pceltFetched) PURE; \
289 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
290 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
291 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumIDList** ppenum) PURE;
293 HRESULT CALLBACK IEnumIDList_Next_Proxy(
294 IEnumIDList* This,
295 ULONG celt,
296 LPITEMIDLIST* rgelt,
297 ULONG* pceltFetched);
298 void __RPC_STUB IEnumIDList_Next_Stub(
299 struct IRpcStubBuffer* This,
300 struct IRpcChannelBuffer* pRpcChannelBuffer,
301 PRPC_MESSAGE pRpcMessage,
302 DWORD* pdwStubPhase);
303 HRESULT CALLBACK IEnumIDList_Skip_Proxy(
304 IEnumIDList* This,
305 ULONG celt);
306 void __RPC_STUB IEnumIDList_Skip_Stub(
307 struct IRpcStubBuffer* This,
308 struct IRpcChannelBuffer* pRpcChannelBuffer,
309 PRPC_MESSAGE pRpcMessage,
310 DWORD* pdwStubPhase);
311 HRESULT CALLBACK IEnumIDList_Reset_Proxy(
312 IEnumIDList* This);
313 void __RPC_STUB IEnumIDList_Reset_Stub(
314 struct IRpcStubBuffer* This,
315 struct IRpcChannelBuffer* pRpcChannelBuffer,
316 PRPC_MESSAGE pRpcMessage,
317 DWORD* pdwStubPhase);
318 HRESULT CALLBACK IEnumIDList_Clone_Proxy(
319 IEnumIDList* This,
320 IEnumIDList** ppenum);
321 void __RPC_STUB IEnumIDList_Clone_Stub(
322 struct IRpcStubBuffer* This,
323 struct IRpcChannelBuffer* pRpcChannelBuffer,
324 PRPC_MESSAGE pRpcMessage,
325 DWORD* pdwStubPhase);
327 #endif /* __IEnumIDList_INTERFACE_DEFINED__ */
329 #ifndef __IShellFolder_FWD_DEFINED__
330 #define __IShellFolder_FWD_DEFINED__
331 typedef struct IShellFolder IShellFolder;
332 #endif
334 typedef IShellFolder *LPSHELLFOLDER;
336 typedef enum tagSHGDN {
337 SHGDN_NORMAL = 0,
338 SHGDN_INFOLDER = 1,
339 SHGDN_FOREDITING = 0x1000,
340 SHGDN_INCLUDE_NONFILESYS = 0x2000,
341 SHGDN_FORADDRESSBAR = 0x4000,
342 SHGDN_FORPARSING = 0x8000
343 } SHGNO;
345 typedef DWORD SHGDNF;
347 enum tagSHCONTF {
348 SHCONTF_FOLDERS = 32,
349 SHCONTF_NONFOLDERS = 64,
350 SHCONTF_INCLUDEHIDDEN = 128,
351 SHCONTF_INIT_ON_FIRST_NEXT = 256,
352 SHCONTF_NETPRINTERSRCH = 512,
353 SHCONTF_SHAREABLE = 1024,
354 SHCONTF_STORAGE = 2048
357 typedef DWORD SHCONTF;
359 #define SFGAO_CANCOPY DROPEFFECT_COPY
360 #define SFGAO_CANMOVE DROPEFFECT_MOVE
361 #define SFGAO_CANLINK DROPEFFECT_LINK
362 #define SFGAO_CANRENAME 0x00000010L
363 #define SFGAO_CANDELETE 0x00000020L
364 #define SFGAO_HASPROPSHEET 0x00000040L
365 #define SFGAO_DROPTARGET 0x00000100L
366 #define SFGAO_CAPABILITYMASK 0x00000177L
367 #define SFGAO_LINK 0x00010000L
368 #define SFGAO_SHARE 0x00020000L
369 #define SFGAO_READONLY 0x00040000L
370 #define SFGAO_GHOSTED 0x00080000L
371 #define SFGAO_HIDDEN 0x00080000L
372 #define SFGAO_DISPLAYATTRMASK 0x000F0000L
373 #define SFGAO_FILESYSANCESTOR 0x10000000L
374 #define SFGAO_FOLDER 0x20000000L
375 #define SFGAO_FILESYSTEM 0x40000000L
376 #define SFGAO_HASSUBFOLDER 0x80000000L
377 #define SFGAO_CONTENTSMASK 0x80000000L
378 #define SFGAO_VALIDATE 0x01000000L
379 #define SFGAO_REMOVABLE 0x02000000L
380 #define SFGAO_COMPRESSED 0x04000000L
381 #define SFGAO_BROWSABLE 0x08000000L
382 #define SFGAO_NONENUMERATED 0x00100000L
383 #define SFGAO_NEWCONTENT 0x00200000L
384 typedef ULONG SFGAOF;
386 /*****************************************************************************
387 * IShellFolder interface
389 #ifndef __IShellFolder_INTERFACE_DEFINED__
390 #define __IShellFolder_INTERFACE_DEFINED__
392 DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
393 #if defined(__cplusplus) && !defined(CINTERFACE)
394 struct IShellFolder : public IUnknown
396 virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
397 HWND hwndOwner,
398 LPBC pbcReserved,
399 LPOLESTR lpszDisplayName,
400 ULONG* pchEaten,
401 LPITEMIDLIST* ppidl,
402 ULONG* pdwAttributes) = 0;
404 virtual HRESULT STDMETHODCALLTYPE EnumObjects(
405 HWND hwndOwner,
406 SHCONTF grfFlags,
407 IEnumIDList** ppenumIDList) = 0;
409 virtual HRESULT STDMETHODCALLTYPE BindToObject(
410 LPCITEMIDLIST pidl,
411 LPBC pbcReserved,
412 REFIID riid,
413 void** ppvOut) = 0;
415 virtual HRESULT STDMETHODCALLTYPE BindToStorage(
416 LPCITEMIDLIST pidl,
417 LPBC pbcReserved,
418 REFIID riid,
419 void** ppvObj) = 0;
421 virtual HRESULT STDMETHODCALLTYPE CompareIDs(
422 LPARAM lParam,
423 LPCITEMIDLIST pidl1,
424 LPCITEMIDLIST pidl2) = 0;
426 virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
427 HWND hwndOwner,
428 REFIID riid,
429 void** ppvOut) = 0;
431 virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
432 UINT cidl,
433 LPCITEMIDLIST* apidl,
434 SFGAOF* rgfInOut) = 0;
436 virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
437 HWND hwndOwner,
438 UINT cidl,
439 LPCITEMIDLIST* apidl,
440 REFIID riid,
441 UINT* prgfInOut,
442 void** ppvOut) = 0;
444 virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
445 LPCITEMIDLIST pidl,
446 SHGDNF uFlags,
447 STRRET* lpName) = 0;
449 virtual HRESULT STDMETHODCALLTYPE SetNameOf(
450 HWND hwnd,
451 LPCITEMIDLIST pidl,
452 LPCOLESTR lpszName,
453 SHGDNF uFlags,
454 LPITEMIDLIST* ppidlOut) = 0;
457 #else
458 typedef struct IShellFolderVtbl IShellFolderVtbl;
459 struct IShellFolder {
460 const IShellFolderVtbl* lpVtbl;
462 struct IShellFolderVtbl {
463 ICOM_MSVTABLE_COMPAT_FIELDS
465 /*** IUnknown methods ***/
466 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
467 IShellFolder* This,
468 REFIID riid,
469 void** ppvObject);
471 ULONG (STDMETHODCALLTYPE *AddRef)(
472 IShellFolder* This);
474 ULONG (STDMETHODCALLTYPE *Release)(
475 IShellFolder* This);
477 /*** IShellFolder methods ***/
478 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
479 IShellFolder* This,
480 HWND hwndOwner,
481 LPBC pbcReserved,
482 LPOLESTR lpszDisplayName,
483 ULONG* pchEaten,
484 LPITEMIDLIST* ppidl,
485 ULONG* pdwAttributes);
487 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
488 IShellFolder* This,
489 HWND hwndOwner,
490 SHCONTF grfFlags,
491 IEnumIDList** ppenumIDList);
493 HRESULT (STDMETHODCALLTYPE *BindToObject)(
494 IShellFolder* This,
495 LPCITEMIDLIST pidl,
496 LPBC pbcReserved,
497 REFIID riid,
498 void** ppvOut);
500 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
501 IShellFolder* This,
502 LPCITEMIDLIST pidl,
503 LPBC pbcReserved,
504 REFIID riid,
505 void** ppvObj);
507 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
508 IShellFolder* This,
509 LPARAM lParam,
510 LPCITEMIDLIST pidl1,
511 LPCITEMIDLIST pidl2);
513 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
514 IShellFolder* This,
515 HWND hwndOwner,
516 REFIID riid,
517 void** ppvOut);
519 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
520 IShellFolder* This,
521 UINT cidl,
522 LPCITEMIDLIST* apidl,
523 SFGAOF* rgfInOut);
525 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
526 IShellFolder* This,
527 HWND hwndOwner,
528 UINT cidl,
529 LPCITEMIDLIST* apidl,
530 REFIID riid,
531 UINT* prgfInOut,
532 void** ppvOut);
534 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
535 IShellFolder* This,
536 LPCITEMIDLIST pidl,
537 SHGDNF uFlags,
538 STRRET* lpName);
540 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
541 IShellFolder* This,
542 HWND hwnd,
543 LPCITEMIDLIST pidl,
544 LPCOLESTR lpszName,
545 SHGDNF uFlags,
546 LPITEMIDLIST* ppidlOut);
550 /*** IUnknown methods ***/
551 #define IShellFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
552 #define IShellFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
553 #define IShellFolder_Release(p) (p)->lpVtbl->Release(p)
554 /*** IShellFolder methods ***/
555 #define IShellFolder_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
556 #define IShellFolder_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
557 #define IShellFolder_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
558 #define IShellFolder_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
559 #define IShellFolder_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
560 #define IShellFolder_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
561 #define IShellFolder_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
562 #define IShellFolder_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
563 #define IShellFolder_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
564 #define IShellFolder_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
566 #endif
568 #define IShellFolder_METHODS \
569 ICOM_MSVTABLE_COMPAT_FIELDS \
570 /*** IUnknown methods ***/ \
571 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
572 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
573 STDMETHOD_(ULONG,Release)(THIS) PURE; \
574 /*** IShellFolder methods ***/ \
575 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \
576 STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \
577 STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \
578 STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \
579 STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \
580 STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \
581 STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \
582 STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \
583 STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \
584 STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE;
586 HRESULT CALLBACK IShellFolder_ParseDisplayName_Proxy(
587 IShellFolder* This,
588 HWND hwndOwner,
589 LPBC pbcReserved,
590 LPOLESTR lpszDisplayName,
591 ULONG* pchEaten,
592 LPITEMIDLIST* ppidl,
593 ULONG* pdwAttributes);
594 void __RPC_STUB IShellFolder_ParseDisplayName_Stub(
595 struct IRpcStubBuffer* This,
596 struct IRpcChannelBuffer* pRpcChannelBuffer,
597 PRPC_MESSAGE pRpcMessage,
598 DWORD* pdwStubPhase);
599 HRESULT CALLBACK IShellFolder_EnumObjects_Proxy(
600 IShellFolder* This,
601 HWND hwndOwner,
602 SHCONTF grfFlags,
603 IEnumIDList** ppenumIDList);
604 void __RPC_STUB IShellFolder_EnumObjects_Stub(
605 struct IRpcStubBuffer* This,
606 struct IRpcChannelBuffer* pRpcChannelBuffer,
607 PRPC_MESSAGE pRpcMessage,
608 DWORD* pdwStubPhase);
609 HRESULT CALLBACK IShellFolder_BindToObject_Proxy(
610 IShellFolder* This,
611 LPCITEMIDLIST pidl,
612 LPBC pbcReserved,
613 REFIID riid,
614 void** ppvOut);
615 void __RPC_STUB IShellFolder_BindToObject_Stub(
616 struct IRpcStubBuffer* This,
617 struct IRpcChannelBuffer* pRpcChannelBuffer,
618 PRPC_MESSAGE pRpcMessage,
619 DWORD* pdwStubPhase);
620 HRESULT CALLBACK IShellFolder_BindToStorage_Proxy(
621 IShellFolder* This,
622 LPCITEMIDLIST pidl,
623 LPBC pbcReserved,
624 REFIID riid,
625 void** ppvObj);
626 void __RPC_STUB IShellFolder_BindToStorage_Stub(
627 struct IRpcStubBuffer* This,
628 struct IRpcChannelBuffer* pRpcChannelBuffer,
629 PRPC_MESSAGE pRpcMessage,
630 DWORD* pdwStubPhase);
631 HRESULT CALLBACK IShellFolder_CompareIDs_Proxy(
632 IShellFolder* This,
633 LPARAM lParam,
634 LPCITEMIDLIST pidl1,
635 LPCITEMIDLIST pidl2);
636 void __RPC_STUB IShellFolder_CompareIDs_Stub(
637 struct IRpcStubBuffer* This,
638 struct IRpcChannelBuffer* pRpcChannelBuffer,
639 PRPC_MESSAGE pRpcMessage,
640 DWORD* pdwStubPhase);
641 HRESULT CALLBACK IShellFolder_CreateViewObject_Proxy(
642 IShellFolder* This,
643 HWND hwndOwner,
644 REFIID riid,
645 void** ppvOut);
646 void __RPC_STUB IShellFolder_CreateViewObject_Stub(
647 struct IRpcStubBuffer* This,
648 struct IRpcChannelBuffer* pRpcChannelBuffer,
649 PRPC_MESSAGE pRpcMessage,
650 DWORD* pdwStubPhase);
651 HRESULT CALLBACK IShellFolder_GetAttributesOf_Proxy(
652 IShellFolder* This,
653 UINT cidl,
654 LPCITEMIDLIST* apidl,
655 SFGAOF* rgfInOut);
656 void __RPC_STUB IShellFolder_GetAttributesOf_Stub(
657 struct IRpcStubBuffer* This,
658 struct IRpcChannelBuffer* pRpcChannelBuffer,
659 PRPC_MESSAGE pRpcMessage,
660 DWORD* pdwStubPhase);
661 HRESULT CALLBACK IShellFolder_GetUIObjectOf_Proxy(
662 IShellFolder* This,
663 HWND hwndOwner,
664 UINT cidl,
665 LPCITEMIDLIST* apidl,
666 REFIID riid,
667 UINT* prgfInOut,
668 void** ppvOut);
669 void __RPC_STUB IShellFolder_GetUIObjectOf_Stub(
670 struct IRpcStubBuffer* This,
671 struct IRpcChannelBuffer* pRpcChannelBuffer,
672 PRPC_MESSAGE pRpcMessage,
673 DWORD* pdwStubPhase);
674 HRESULT CALLBACK IShellFolder_GetDisplayNameOf_Proxy(
675 IShellFolder* This,
676 LPCITEMIDLIST pidl,
677 SHGDNF uFlags,
678 STRRET* lpName);
679 void __RPC_STUB IShellFolder_GetDisplayNameOf_Stub(
680 struct IRpcStubBuffer* This,
681 struct IRpcChannelBuffer* pRpcChannelBuffer,
682 PRPC_MESSAGE pRpcMessage,
683 DWORD* pdwStubPhase);
684 HRESULT CALLBACK IShellFolder_SetNameOf_Proxy(
685 IShellFolder* This,
686 HWND hwnd,
687 LPCITEMIDLIST pidl,
688 LPCOLESTR lpszName,
689 SHGDNF uFlags,
690 LPITEMIDLIST* ppidlOut);
691 void __RPC_STUB IShellFolder_SetNameOf_Stub(
692 struct IRpcStubBuffer* This,
693 struct IRpcChannelBuffer* pRpcChannelBuffer,
694 PRPC_MESSAGE pRpcMessage,
695 DWORD* pdwStubPhase);
697 #endif /* __IShellFolder_INTERFACE_DEFINED__ */
699 #ifndef __IEnumExtraSearch_FWD_DEFINED__
700 #define __IEnumExtraSearch_FWD_DEFINED__
701 typedef struct IEnumExtraSearch IEnumExtraSearch;
702 #endif
704 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
706 typedef struct {
707 GUID guidSearch;
708 WCHAR wszFriendlyName[80];
709 WCHAR wszUrl[2084];
710 } EXTRASEARCH, *LPEXTRASEARCH;
712 /*****************************************************************************
713 * IEnumExtraSearch interface
715 #ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
716 #define __IEnumExtraSearch_INTERFACE_DEFINED__
718 DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13);
719 #if defined(__cplusplus) && !defined(CINTERFACE)
720 struct IEnumExtraSearch : public IUnknown
722 virtual HRESULT STDMETHODCALLTYPE Next(
723 ULONG celt,
724 EXTRASEARCH* rgelt,
725 ULONG* pceltFetched) = 0;
727 virtual HRESULT STDMETHODCALLTYPE Skip(
728 ULONG celt) = 0;
730 virtual HRESULT STDMETHODCALLTYPE Reset(
731 ) = 0;
733 virtual HRESULT STDMETHODCALLTYPE Clone(
734 IEnumExtraSearch** ppenum) = 0;
737 #else
738 typedef struct IEnumExtraSearchVtbl IEnumExtraSearchVtbl;
739 struct IEnumExtraSearch {
740 const IEnumExtraSearchVtbl* lpVtbl;
742 struct IEnumExtraSearchVtbl {
743 ICOM_MSVTABLE_COMPAT_FIELDS
745 /*** IUnknown methods ***/
746 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
747 IEnumExtraSearch* This,
748 REFIID riid,
749 void** ppvObject);
751 ULONG (STDMETHODCALLTYPE *AddRef)(
752 IEnumExtraSearch* This);
754 ULONG (STDMETHODCALLTYPE *Release)(
755 IEnumExtraSearch* This);
757 /*** IEnumExtraSearch methods ***/
758 HRESULT (STDMETHODCALLTYPE *Next)(
759 IEnumExtraSearch* This,
760 ULONG celt,
761 EXTRASEARCH* rgelt,
762 ULONG* pceltFetched);
764 HRESULT (STDMETHODCALLTYPE *Skip)(
765 IEnumExtraSearch* This,
766 ULONG celt);
768 HRESULT (STDMETHODCALLTYPE *Reset)(
769 IEnumExtraSearch* This);
771 HRESULT (STDMETHODCALLTYPE *Clone)(
772 IEnumExtraSearch* This,
773 IEnumExtraSearch** ppenum);
777 /*** IUnknown methods ***/
778 #define IEnumExtraSearch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
779 #define IEnumExtraSearch_AddRef(p) (p)->lpVtbl->AddRef(p)
780 #define IEnumExtraSearch_Release(p) (p)->lpVtbl->Release(p)
781 /*** IEnumExtraSearch methods ***/
782 #define IEnumExtraSearch_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
783 #define IEnumExtraSearch_Skip(p,a) (p)->lpVtbl->Skip(p,a)
784 #define IEnumExtraSearch_Reset(p) (p)->lpVtbl->Reset(p)
785 #define IEnumExtraSearch_Clone(p,a) (p)->lpVtbl->Clone(p,a)
787 #endif
789 #define IEnumExtraSearch_METHODS \
790 ICOM_MSVTABLE_COMPAT_FIELDS \
791 /*** IUnknown methods ***/ \
792 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
793 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
794 STDMETHOD_(ULONG,Release)(THIS) PURE; \
795 /*** IEnumExtraSearch methods ***/ \
796 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, EXTRASEARCH* rgelt, ULONG* pceltFetched) PURE; \
797 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
798 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
799 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumExtraSearch** ppenum) PURE;
801 HRESULT CALLBACK IEnumExtraSearch_Next_Proxy(
802 IEnumExtraSearch* This,
803 ULONG celt,
804 EXTRASEARCH* rgelt,
805 ULONG* pceltFetched);
806 void __RPC_STUB IEnumExtraSearch_Next_Stub(
807 struct IRpcStubBuffer* This,
808 struct IRpcChannelBuffer* pRpcChannelBuffer,
809 PRPC_MESSAGE pRpcMessage,
810 DWORD* pdwStubPhase);
811 HRESULT CALLBACK IEnumExtraSearch_Skip_Proxy(
812 IEnumExtraSearch* This,
813 ULONG celt);
814 void __RPC_STUB IEnumExtraSearch_Skip_Stub(
815 struct IRpcStubBuffer* This,
816 struct IRpcChannelBuffer* pRpcChannelBuffer,
817 PRPC_MESSAGE pRpcMessage,
818 DWORD* pdwStubPhase);
819 HRESULT CALLBACK IEnumExtraSearch_Reset_Proxy(
820 IEnumExtraSearch* This);
821 void __RPC_STUB IEnumExtraSearch_Reset_Stub(
822 struct IRpcStubBuffer* This,
823 struct IRpcChannelBuffer* pRpcChannelBuffer,
824 PRPC_MESSAGE pRpcMessage,
825 DWORD* pdwStubPhase);
826 HRESULT CALLBACK IEnumExtraSearch_Clone_Proxy(
827 IEnumExtraSearch* This,
828 IEnumExtraSearch** ppenum);
829 void __RPC_STUB IEnumExtraSearch_Clone_Stub(
830 struct IRpcStubBuffer* This,
831 struct IRpcChannelBuffer* pRpcChannelBuffer,
832 PRPC_MESSAGE pRpcMessage,
833 DWORD* pdwStubPhase);
835 #endif /* __IEnumExtraSearch_INTERFACE_DEFINED__ */
837 #ifndef __IShellFolder2_FWD_DEFINED__
838 #define __IShellFolder2_FWD_DEFINED__
839 typedef struct IShellFolder2 IShellFolder2;
840 #endif
842 typedef enum {
843 SHCOLSTATE_TYPE_STR = 0x1,
844 SHCOLSTATE_TYPE_INT = 0x2,
845 SHCOLSTATE_TYPE_DATE = 0x3,
846 SHCOLSTATE_TYPEMASK = 0xf,
847 SHCOLSTATE_ONBYDEFAULT = 0x10,
848 SHCOLSTATE_SLOW = 0x20,
849 SHCOLSTATE_EXTENDED = 0x40,
850 SHCOLSTATE_SECONDARYUI = 0x80,
851 SHCOLSTATE_HIDDEN = 0x100,
852 SHCOLSTATE_PREFER_VARCMP = 0x200
853 } SHCOLSTATE;
855 typedef DWORD SHCOLSTATEF;
857 typedef struct {
858 GUID fmtid;
859 DWORD pid;
860 } SHCOLUMNID, *LPSHCOLUMNID;
862 typedef const SHCOLUMNID *LPCSHCOLUMNID;
864 /*****************************************************************************
865 * IShellFolder2 interface
867 #ifndef __IShellFolder2_INTERFACE_DEFINED__
868 #define __IShellFolder2_INTERFACE_DEFINED__
870 DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1);
871 #if defined(__cplusplus) && !defined(CINTERFACE)
872 struct IShellFolder2 : public IShellFolder
874 virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(
875 GUID* lpguid) = 0;
877 virtual HRESULT STDMETHODCALLTYPE EnumSearches(
878 IEnumExtraSearch** ppenum) = 0;
880 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
881 DWORD dwReserved,
882 ULONG* pSort,
883 ULONG* pDisplay) = 0;
885 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
886 UINT iColumn,
887 SHCOLSTATEF* pcsFlags) = 0;
889 virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
890 LPCITEMIDLIST pidl,
891 const SHCOLUMNID* pscid,
892 VARIANT* pv) = 0;
894 virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
895 LPCITEMIDLIST pidl,
896 UINT iColumn,
897 SHELLDETAILS* psd) = 0;
899 virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
900 UINT iColumn,
901 SHCOLUMNID* pscid) = 0;
904 #else
905 typedef struct IShellFolder2Vtbl IShellFolder2Vtbl;
906 struct IShellFolder2 {
907 const IShellFolder2Vtbl* lpVtbl;
909 struct IShellFolder2Vtbl {
910 ICOM_MSVTABLE_COMPAT_FIELDS
912 /*** IUnknown methods ***/
913 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
914 IShellFolder2* This,
915 REFIID riid,
916 void** ppvObject);
918 ULONG (STDMETHODCALLTYPE *AddRef)(
919 IShellFolder2* This);
921 ULONG (STDMETHODCALLTYPE *Release)(
922 IShellFolder2* This);
924 /*** IShellFolder methods ***/
925 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
926 IShellFolder2* This,
927 HWND hwndOwner,
928 LPBC pbcReserved,
929 LPOLESTR lpszDisplayName,
930 ULONG* pchEaten,
931 LPITEMIDLIST* ppidl,
932 ULONG* pdwAttributes);
934 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
935 IShellFolder2* This,
936 HWND hwndOwner,
937 SHCONTF grfFlags,
938 IEnumIDList** ppenumIDList);
940 HRESULT (STDMETHODCALLTYPE *BindToObject)(
941 IShellFolder2* This,
942 LPCITEMIDLIST pidl,
943 LPBC pbcReserved,
944 REFIID riid,
945 void** ppvOut);
947 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
948 IShellFolder2* This,
949 LPCITEMIDLIST pidl,
950 LPBC pbcReserved,
951 REFIID riid,
952 void** ppvObj);
954 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
955 IShellFolder2* This,
956 LPARAM lParam,
957 LPCITEMIDLIST pidl1,
958 LPCITEMIDLIST pidl2);
960 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
961 IShellFolder2* This,
962 HWND hwndOwner,
963 REFIID riid,
964 void** ppvOut);
966 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
967 IShellFolder2* This,
968 UINT cidl,
969 LPCITEMIDLIST* apidl,
970 SFGAOF* rgfInOut);
972 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
973 IShellFolder2* This,
974 HWND hwndOwner,
975 UINT cidl,
976 LPCITEMIDLIST* apidl,
977 REFIID riid,
978 UINT* prgfInOut,
979 void** ppvOut);
981 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
982 IShellFolder2* This,
983 LPCITEMIDLIST pidl,
984 SHGDNF uFlags,
985 STRRET* lpName);
987 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
988 IShellFolder2* This,
989 HWND hwnd,
990 LPCITEMIDLIST pidl,
991 LPCOLESTR lpszName,
992 SHGDNF uFlags,
993 LPITEMIDLIST* ppidlOut);
995 /*** IShellFolder2 methods ***/
996 HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
997 IShellFolder2* This,
998 GUID* lpguid);
1000 HRESULT (STDMETHODCALLTYPE *EnumSearches)(
1001 IShellFolder2* This,
1002 IEnumExtraSearch** ppenum);
1004 HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
1005 IShellFolder2* This,
1006 DWORD dwReserved,
1007 ULONG* pSort,
1008 ULONG* pDisplay);
1010 HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
1011 IShellFolder2* This,
1012 UINT iColumn,
1013 SHCOLSTATEF* pcsFlags);
1015 HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
1016 IShellFolder2* This,
1017 LPCITEMIDLIST pidl,
1018 const SHCOLUMNID* pscid,
1019 VARIANT* pv);
1021 HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
1022 IShellFolder2* This,
1023 LPCITEMIDLIST pidl,
1024 UINT iColumn,
1025 SHELLDETAILS* psd);
1027 HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
1028 IShellFolder2* This,
1029 UINT iColumn,
1030 SHCOLUMNID* pscid);
1034 /*** IUnknown methods ***/
1035 #define IShellFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1036 #define IShellFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
1037 #define IShellFolder2_Release(p) (p)->lpVtbl->Release(p)
1038 /*** IShellFolder methods ***/
1039 #define IShellFolder2_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
1040 #define IShellFolder2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
1041 #define IShellFolder2_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
1042 #define IShellFolder2_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
1043 #define IShellFolder2_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
1044 #define IShellFolder2_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
1045 #define IShellFolder2_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
1046 #define IShellFolder2_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
1047 #define IShellFolder2_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
1048 #define IShellFolder2_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
1049 /*** IShellFolder2 methods ***/
1050 #define IShellFolder2_GetDefaultSearchGUID(p,a) (p)->lpVtbl->GetDefaultSearchGUID(p,a)
1051 #define IShellFolder2_EnumSearches(p,a) (p)->lpVtbl->EnumSearches(p,a)
1052 #define IShellFolder2_GetDefaultColumn(p,a,b,c) (p)->lpVtbl->GetDefaultColumn(p,a,b,c)
1053 #define IShellFolder2_GetDefaultColumnState(p,a,b) (p)->lpVtbl->GetDefaultColumnState(p,a,b)
1054 #define IShellFolder2_GetDetailsEx(p,a,b,c) (p)->lpVtbl->GetDetailsEx(p,a,b,c)
1055 #define IShellFolder2_GetDetailsOf(p,a,b,c) (p)->lpVtbl->GetDetailsOf(p,a,b,c)
1056 #define IShellFolder2_MapColumnToSCID(p,a,b) (p)->lpVtbl->MapColumnToSCID(p,a,b)
1058 #endif
1060 #define IShellFolder2_METHODS \
1061 ICOM_MSVTABLE_COMPAT_FIELDS \
1062 /*** IUnknown methods ***/ \
1063 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1064 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1065 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1066 /*** IShellFolder methods ***/ \
1067 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \
1068 STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \
1069 STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \
1070 STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \
1071 STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \
1072 STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \
1073 STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \
1074 STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \
1075 STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \
1076 STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE; \
1077 /*** IShellFolder2 methods ***/ \
1078 STDMETHOD_(HRESULT,GetDefaultSearchGUID)(THIS_ GUID* lpguid) PURE; \
1079 STDMETHOD_(HRESULT,EnumSearches)(THIS_ IEnumExtraSearch** ppenum) PURE; \
1080 STDMETHOD_(HRESULT,GetDefaultColumn)(THIS_ DWORD dwReserved, ULONG* pSort, ULONG* pDisplay) PURE; \
1081 STDMETHOD_(HRESULT,GetDefaultColumnState)(THIS_ UINT iColumn, SHCOLSTATEF* pcsFlags) PURE; \
1082 STDMETHOD_(HRESULT,GetDetailsEx)(THIS_ LPCITEMIDLIST pidl, const SHCOLUMNID* pscid, VARIANT* pv) PURE; \
1083 STDMETHOD_(HRESULT,GetDetailsOf)(THIS_ LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS* psd) PURE; \
1084 STDMETHOD_(HRESULT,MapColumnToSCID)(THIS_ UINT iColumn, SHCOLUMNID* pscid) PURE;
1086 HRESULT CALLBACK IShellFolder2_GetDefaultSearchGUID_Proxy(
1087 IShellFolder2* This,
1088 GUID* lpguid);
1089 void __RPC_STUB IShellFolder2_GetDefaultSearchGUID_Stub(
1090 struct IRpcStubBuffer* This,
1091 struct IRpcChannelBuffer* pRpcChannelBuffer,
1092 PRPC_MESSAGE pRpcMessage,
1093 DWORD* pdwStubPhase);
1094 HRESULT CALLBACK IShellFolder2_EnumSearches_Proxy(
1095 IShellFolder2* This,
1096 IEnumExtraSearch** ppenum);
1097 void __RPC_STUB IShellFolder2_EnumSearches_Stub(
1098 struct IRpcStubBuffer* This,
1099 struct IRpcChannelBuffer* pRpcChannelBuffer,
1100 PRPC_MESSAGE pRpcMessage,
1101 DWORD* pdwStubPhase);
1102 HRESULT CALLBACK IShellFolder2_GetDefaultColumn_Proxy(
1103 IShellFolder2* This,
1104 DWORD dwReserved,
1105 ULONG* pSort,
1106 ULONG* pDisplay);
1107 void __RPC_STUB IShellFolder2_GetDefaultColumn_Stub(
1108 struct IRpcStubBuffer* This,
1109 struct IRpcChannelBuffer* pRpcChannelBuffer,
1110 PRPC_MESSAGE pRpcMessage,
1111 DWORD* pdwStubPhase);
1112 HRESULT CALLBACK IShellFolder2_GetDefaultColumnState_Proxy(
1113 IShellFolder2* This,
1114 UINT iColumn,
1115 SHCOLSTATEF* pcsFlags);
1116 void __RPC_STUB IShellFolder2_GetDefaultColumnState_Stub(
1117 struct IRpcStubBuffer* This,
1118 struct IRpcChannelBuffer* pRpcChannelBuffer,
1119 PRPC_MESSAGE pRpcMessage,
1120 DWORD* pdwStubPhase);
1121 HRESULT CALLBACK IShellFolder2_GetDetailsEx_Proxy(
1122 IShellFolder2* This,
1123 LPCITEMIDLIST pidl,
1124 const SHCOLUMNID* pscid,
1125 VARIANT* pv);
1126 void __RPC_STUB IShellFolder2_GetDetailsEx_Stub(
1127 struct IRpcStubBuffer* This,
1128 struct IRpcChannelBuffer* pRpcChannelBuffer,
1129 PRPC_MESSAGE pRpcMessage,
1130 DWORD* pdwStubPhase);
1131 HRESULT CALLBACK IShellFolder2_GetDetailsOf_Proxy(
1132 IShellFolder2* This,
1133 LPCITEMIDLIST pidl,
1134 UINT iColumn,
1135 SHELLDETAILS* psd);
1136 void __RPC_STUB IShellFolder2_GetDetailsOf_Stub(
1137 struct IRpcStubBuffer* This,
1138 struct IRpcChannelBuffer* pRpcChannelBuffer,
1139 PRPC_MESSAGE pRpcMessage,
1140 DWORD* pdwStubPhase);
1141 HRESULT CALLBACK IShellFolder2_MapColumnToSCID_Proxy(
1142 IShellFolder2* This,
1143 UINT iColumn,
1144 SHCOLUMNID* pscid);
1145 void __RPC_STUB IShellFolder2_MapColumnToSCID_Stub(
1146 struct IRpcStubBuffer* This,
1147 struct IRpcChannelBuffer* pRpcChannelBuffer,
1148 PRPC_MESSAGE pRpcMessage,
1149 DWORD* pdwStubPhase);
1151 #endif /* __IShellFolder2_INTERFACE_DEFINED__ */
1153 typedef char *LPVIEWSETTINGS;
1155 typedef enum {
1156 FWF_AUTOARRANGE = 0x1,
1157 FWF_ABBREVIATEDNAMES = 0x2,
1158 FWF_SNAPTOGRID = 0x4,
1159 FWF_OWNERDATA = 0x8,
1160 FWF_BESTFITWINDOW = 0x10,
1161 FWF_DESKTOP = 0x20,
1162 FWF_SINGLESEL = 0x40,
1163 FWF_NOSUBFOLDERS = 0x80,
1164 FWF_TRANSPARENT = 0x100,
1165 FWF_NOCLIENTEDGE = 0x200,
1166 FWF_NOSCROLL = 0x400,
1167 FWF_ALIGNLEFT = 0x800,
1168 FWF_NOICONS = 0x1000,
1169 FWF_SHOWSELALWAYS = 0x2000,
1170 FWF_NOVISIBLE = 0x4000,
1171 FWF_SINGLECLICKACTIVATE = 0x8000,
1172 FWF_NOWEBVIEW = 0x10000,
1173 FWF_HIDEFILENAMES = 0x20000,
1174 FWF_CHECKSELECT = 0x40000
1175 } FOLDERFLAGS;
1177 typedef enum {
1178 FVM_ICON = 1,
1179 FVM_FIRST = FVM_ICON,
1180 FVM_SMALLICON = 2,
1181 FVM_LIST = 3,
1182 FVM_DETAILS = 4,
1183 FVM_THUMBNAIL = 5,
1184 FVM_TILE = 6,
1185 FVM_THUMBSTRIP = 7,
1186 FVM_LAST = FVM_THUMBSTRIP
1187 } FOLDERVIEWMODE;
1189 typedef struct {
1190 UINT ViewMode;
1191 UINT fFlags;
1192 } FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
1194 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
1196 #ifndef __IShellBrowser_FWD_DEFINED__
1197 #define __IShellBrowser_FWD_DEFINED__
1198 typedef struct IShellBrowser IShellBrowser;
1199 #endif
1201 #ifndef __IShellView_FWD_DEFINED__
1202 #define __IShellView_FWD_DEFINED__
1203 typedef struct IShellView IShellView;
1204 #endif
1206 typedef IShellView *LPSHELLVIEW;
1208 #define SVSI_DESELECT 0x00000000
1209 #define SVSI_SELECT 0x00000001
1210 #define SVSI_EDIT 0x00000003
1211 #define SVSI_DESELECTOTHERS 0x00000004
1212 #define SVSI_ENSUREVISIBLE 0x00000008
1213 #define SVSI_FOCUSED 0x00000010
1214 #define SVSI_TRANSLATEPT 0x00000020
1215 #define SVSI_SELECTIONMARK 0x00000040
1216 #define SVSI_POSITIONITEM 0x00000080
1217 #define SVSI_CHECK 0x00000100
1218 #define SVSI_NOSTATECHANGE 0x80000000
1219 typedef UINT SVSIF;
1221 typedef enum {
1222 SVGIO_BACKGROUND = 0x0,
1223 SVGIO_SELECTION = 0x1,
1224 SVGIO_ALLVIEW = 0x2,
1225 SVGIO_CHECKED = 0x3,
1226 SVGIO_TYPE_MASK = 0xf,
1227 SVGIO_FLAG_VIEWORDER = 0x80000000
1228 } SVGIO;
1230 typedef enum {
1231 SVUIA_DEACTIVATE = 0,
1232 SVUIA_ACTIVATE_NOFOCUS = 1,
1233 SVUIA_ACTIVATE_FOCUS = 2,
1234 SVUIA_INPLACEACTIVATE = 3
1235 } SVUIA_STATUS;
1237 #if 0
1238 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
1240 #else
1241 #include <prsht.h>
1242 typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
1243 #endif
1244 /*****************************************************************************
1245 * IShellView interface
1247 #ifndef __IShellView_INTERFACE_DEFINED__
1248 #define __IShellView_INTERFACE_DEFINED__
1250 DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1251 #if defined(__cplusplus) && !defined(CINTERFACE)
1252 struct IShellView : public IOleWindow
1254 virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
1255 MSG* pmsg) = 0;
1257 virtual HRESULT STDMETHODCALLTYPE EnableModeless(
1258 BOOL fEnable) = 0;
1260 virtual HRESULT STDMETHODCALLTYPE UIActivate(
1261 UINT uState) = 0;
1263 virtual HRESULT STDMETHODCALLTYPE Refresh(
1264 ) = 0;
1266 virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
1267 IShellView* psvPrevious,
1268 LPCFOLDERSETTINGS lpfs,
1269 IShellBrowser* psb,
1270 RECT* prcView,
1271 HWND* phWnd) = 0;
1273 virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
1274 ) = 0;
1276 virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
1277 LPFOLDERSETTINGS lpfs) = 0;
1279 virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
1280 DWORD dwReserved,
1281 LPFNSVADDPROPSHEETPAGE pfn,
1282 LPARAM lparam) = 0;
1284 virtual HRESULT STDMETHODCALLTYPE SaveViewState(
1285 ) = 0;
1287 virtual HRESULT STDMETHODCALLTYPE SelectItem(
1288 LPCITEMIDLIST pidlItem,
1289 SVSIF uFlags) = 0;
1291 virtual HRESULT STDMETHODCALLTYPE GetItemObject(
1292 UINT uItem,
1293 REFIID riid,
1294 void** ppv) = 0;
1297 #else
1298 typedef struct IShellViewVtbl IShellViewVtbl;
1299 struct IShellView {
1300 const IShellViewVtbl* lpVtbl;
1302 struct IShellViewVtbl {
1303 ICOM_MSVTABLE_COMPAT_FIELDS
1305 /*** IUnknown methods ***/
1306 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1307 IShellView* This,
1308 REFIID riid,
1309 void** ppvObject);
1311 ULONG (STDMETHODCALLTYPE *AddRef)(
1312 IShellView* This);
1314 ULONG (STDMETHODCALLTYPE *Release)(
1315 IShellView* This);
1317 /*** IOleWindow methods ***/
1318 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1319 IShellView* This,
1320 HWND* phwnd);
1322 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1323 IShellView* This,
1324 BOOL fEnterMode);
1326 /*** IShellView methods ***/
1327 HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
1328 IShellView* This,
1329 MSG* pmsg);
1331 HRESULT (STDMETHODCALLTYPE *EnableModeless)(
1332 IShellView* This,
1333 BOOL fEnable);
1335 HRESULT (STDMETHODCALLTYPE *UIActivate)(
1336 IShellView* This,
1337 UINT uState);
1339 HRESULT (STDMETHODCALLTYPE *Refresh)(
1340 IShellView* This);
1342 HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
1343 IShellView* This,
1344 IShellView* psvPrevious,
1345 LPCFOLDERSETTINGS lpfs,
1346 IShellBrowser* psb,
1347 RECT* prcView,
1348 HWND* phWnd);
1350 HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
1351 IShellView* This);
1353 HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
1354 IShellView* This,
1355 LPFOLDERSETTINGS lpfs);
1357 HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
1358 IShellView* This,
1359 DWORD dwReserved,
1360 LPFNSVADDPROPSHEETPAGE pfn,
1361 LPARAM lparam);
1363 HRESULT (STDMETHODCALLTYPE *SaveViewState)(
1364 IShellView* This);
1366 HRESULT (STDMETHODCALLTYPE *SelectItem)(
1367 IShellView* This,
1368 LPCITEMIDLIST pidlItem,
1369 SVSIF uFlags);
1371 HRESULT (STDMETHODCALLTYPE *GetItemObject)(
1372 IShellView* This,
1373 UINT uItem,
1374 REFIID riid,
1375 void** ppv);
1379 /*** IUnknown methods ***/
1380 #define IShellView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1381 #define IShellView_AddRef(p) (p)->lpVtbl->AddRef(p)
1382 #define IShellView_Release(p) (p)->lpVtbl->Release(p)
1383 /*** IOleWindow methods ***/
1384 #define IShellView_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1385 #define IShellView_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1386 /*** IShellView methods ***/
1387 #define IShellView_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
1388 #define IShellView_EnableModeless(p,a) (p)->lpVtbl->EnableModeless(p,a)
1389 #define IShellView_UIActivate(p,a) (p)->lpVtbl->UIActivate(p,a)
1390 #define IShellView_Refresh(p) (p)->lpVtbl->Refresh(p)
1391 #define IShellView_CreateViewWindow(p,a,b,c,d,e) (p)->lpVtbl->CreateViewWindow(p,a,b,c,d,e)
1392 #define IShellView_DestroyViewWindow(p) (p)->lpVtbl->DestroyViewWindow(p)
1393 #define IShellView_GetCurrentInfo(p,a) (p)->lpVtbl->GetCurrentInfo(p,a)
1394 #define IShellView_AddPropertySheetPages(p,a,b,c) (p)->lpVtbl->AddPropertySheetPages(p,a,b,c)
1395 #define IShellView_SaveViewState(p) (p)->lpVtbl->SaveViewState(p)
1396 #define IShellView_SelectItem(p,a,b) (p)->lpVtbl->SelectItem(p,a,b)
1397 #define IShellView_GetItemObject(p,a,b,c) (p)->lpVtbl->GetItemObject(p,a,b,c)
1399 #endif
1401 #define IShellView_METHODS \
1402 ICOM_MSVTABLE_COMPAT_FIELDS \
1403 /*** IUnknown methods ***/ \
1404 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1405 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1406 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1407 /*** IOleWindow methods ***/ \
1408 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1409 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1410 /*** IShellView methods ***/ \
1411 STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ MSG* pmsg) PURE; \
1412 STDMETHOD_(HRESULT,EnableModeless)(THIS_ BOOL fEnable) PURE; \
1413 STDMETHOD_(HRESULT,UIActivate)(THIS_ UINT uState) PURE; \
1414 STDMETHOD_(HRESULT,Refresh)(THIS) PURE; \
1415 STDMETHOD_(HRESULT,CreateViewWindow)(THIS_ IShellView* psvPrevious, LPCFOLDERSETTINGS lpfs, IShellBrowser* psb, RECT* prcView, HWND* phWnd) PURE; \
1416 STDMETHOD_(HRESULT,DestroyViewWindow)(THIS) PURE; \
1417 STDMETHOD_(HRESULT,GetCurrentInfo)(THIS_ LPFOLDERSETTINGS lpfs) PURE; \
1418 STDMETHOD_(HRESULT,AddPropertySheetPages)(THIS_ DWORD dwReserved, LPFNSVADDPROPSHEETPAGE pfn, LPARAM lparam) PURE; \
1419 STDMETHOD_(HRESULT,SaveViewState)(THIS) PURE; \
1420 STDMETHOD_(HRESULT,SelectItem)(THIS_ LPCITEMIDLIST pidlItem, SVSIF uFlags) PURE; \
1421 STDMETHOD_(HRESULT,GetItemObject)(THIS_ UINT uItem, REFIID riid, void** ppv) PURE;
1423 HRESULT CALLBACK IShellView_TranslateAccelerator_Proxy(
1424 IShellView* This,
1425 MSG* pmsg);
1426 void __RPC_STUB IShellView_TranslateAccelerator_Stub(
1427 struct IRpcStubBuffer* This,
1428 struct IRpcChannelBuffer* pRpcChannelBuffer,
1429 PRPC_MESSAGE pRpcMessage,
1430 DWORD* pdwStubPhase);
1431 HRESULT CALLBACK IShellView_EnableModeless_Proxy(
1432 IShellView* This,
1433 BOOL fEnable);
1434 void __RPC_STUB IShellView_EnableModeless_Stub(
1435 struct IRpcStubBuffer* This,
1436 struct IRpcChannelBuffer* pRpcChannelBuffer,
1437 PRPC_MESSAGE pRpcMessage,
1438 DWORD* pdwStubPhase);
1439 HRESULT CALLBACK IShellView_UIActivate_Proxy(
1440 IShellView* This,
1441 UINT uState);
1442 void __RPC_STUB IShellView_UIActivate_Stub(
1443 struct IRpcStubBuffer* This,
1444 struct IRpcChannelBuffer* pRpcChannelBuffer,
1445 PRPC_MESSAGE pRpcMessage,
1446 DWORD* pdwStubPhase);
1447 HRESULT CALLBACK IShellView_Refresh_Proxy(
1448 IShellView* This);
1449 void __RPC_STUB IShellView_Refresh_Stub(
1450 struct IRpcStubBuffer* This,
1451 struct IRpcChannelBuffer* pRpcChannelBuffer,
1452 PRPC_MESSAGE pRpcMessage,
1453 DWORD* pdwStubPhase);
1454 HRESULT CALLBACK IShellView_CreateViewWindow_Proxy(
1455 IShellView* This,
1456 IShellView* psvPrevious,
1457 LPCFOLDERSETTINGS lpfs,
1458 IShellBrowser* psb,
1459 RECT* prcView,
1460 HWND* phWnd);
1461 void __RPC_STUB IShellView_CreateViewWindow_Stub(
1462 struct IRpcStubBuffer* This,
1463 struct IRpcChannelBuffer* pRpcChannelBuffer,
1464 PRPC_MESSAGE pRpcMessage,
1465 DWORD* pdwStubPhase);
1466 HRESULT CALLBACK IShellView_DestroyViewWindow_Proxy(
1467 IShellView* This);
1468 void __RPC_STUB IShellView_DestroyViewWindow_Stub(
1469 struct IRpcStubBuffer* This,
1470 struct IRpcChannelBuffer* pRpcChannelBuffer,
1471 PRPC_MESSAGE pRpcMessage,
1472 DWORD* pdwStubPhase);
1473 HRESULT CALLBACK IShellView_GetCurrentInfo_Proxy(
1474 IShellView* This,
1475 LPFOLDERSETTINGS lpfs);
1476 void __RPC_STUB IShellView_GetCurrentInfo_Stub(
1477 struct IRpcStubBuffer* This,
1478 struct IRpcChannelBuffer* pRpcChannelBuffer,
1479 PRPC_MESSAGE pRpcMessage,
1480 DWORD* pdwStubPhase);
1481 HRESULT CALLBACK IShellView_SaveViewState_Proxy(
1482 IShellView* This);
1483 void __RPC_STUB IShellView_SaveViewState_Stub(
1484 struct IRpcStubBuffer* This,
1485 struct IRpcChannelBuffer* pRpcChannelBuffer,
1486 PRPC_MESSAGE pRpcMessage,
1487 DWORD* pdwStubPhase);
1488 HRESULT CALLBACK IShellView_SelectItem_Proxy(
1489 IShellView* This,
1490 LPCITEMIDLIST pidlItem,
1491 SVSIF uFlags);
1492 void __RPC_STUB IShellView_SelectItem_Stub(
1493 struct IRpcStubBuffer* This,
1494 struct IRpcChannelBuffer* pRpcChannelBuffer,
1495 PRPC_MESSAGE pRpcMessage,
1496 DWORD* pdwStubPhase);
1497 HRESULT CALLBACK IShellView_GetItemObject_Proxy(
1498 IShellView* This,
1499 UINT uItem,
1500 REFIID riid,
1501 void** ppv);
1502 void __RPC_STUB IShellView_GetItemObject_Stub(
1503 struct IRpcStubBuffer* This,
1504 struct IRpcChannelBuffer* pRpcChannelBuffer,
1505 PRPC_MESSAGE pRpcMessage,
1506 DWORD* pdwStubPhase);
1508 #endif /* __IShellView_INTERFACE_DEFINED__ */
1510 typedef IShellBrowser *LPSHELLBROWSER;
1512 #define SBSP_DEFBROWSER 0x00000000
1513 #define SBSP_SAMEBROWSER 0x00000001
1514 #define SBSP_NEWBROWSER 0x00000002
1515 #define SBSP_DEFMODE 0x00000000
1516 #define SBSP_OPENMODE 0x00000010
1517 #define SBSP_EXPLOREMODE 0x00000020
1518 #define SBSP_HELPMODE 0x00000040
1519 #define SBSP_NOTRANSFERHIST 0x00000080
1520 #define SBSP_ABSOLUTE 0x00000000
1521 #define SBSP_RELATIVE 0x00001000
1522 #define SBSP_PARENT 0x00002000
1523 #define SBSP_NAVIGATEBACK 0x00004000
1524 #define SBSP_NAVIGATEFORWARD 0x00008000
1525 #define SBSP_ALLOW_AUTONAVIGATE 0x00010000
1526 #define SBSP_NOAUTOSELECT 0x04000000
1527 #define SBSP_WRITENOHISTORY 0x08000000
1528 #define SBSP_REDIRECT 0x40000000
1529 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
1530 #define FCW_STATUS 0x0001
1531 #define FCW_TOOLBAR 0x0002
1532 #define FCW_TREE 0x0003
1533 #define FCW_INTERNETBAR 0x0006
1534 #define FCW_PROGRESS 0x0008
1535 #define FCT_MERGE 0x0001
1536 #define FCT_CONFIGABLE 0x0002
1537 #define FCT_ADDTOEND 0x0004
1538 #if 0
1539 typedef LPARAM LPTBBUTTONSB;
1541 #else
1542 #include <commctrl.h>
1543 typedef LPTBBUTTON LPTBBUTTONSB;
1544 #endif
1545 /*****************************************************************************
1546 * IShellBrowser interface
1548 #ifndef __IShellBrowser_INTERFACE_DEFINED__
1549 #define __IShellBrowser_INTERFACE_DEFINED__
1551 DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1552 #if defined(__cplusplus) && !defined(CINTERFACE)
1553 struct IShellBrowser : public IOleWindow
1555 virtual HRESULT STDMETHODCALLTYPE InsertMenusSB(
1556 HMENU hmenuShared,
1557 LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
1559 virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
1560 HMENU hmenuShared,
1561 HOLEMENU holemenuReserved,
1562 HWND hwndActiveObject) = 0;
1564 virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB(
1565 HMENU hmenuShared) = 0;
1567 virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB(
1568 LPCOLESTR pszStatusText) = 0;
1570 virtual HRESULT STDMETHODCALLTYPE EnableModelessSB(
1571 BOOL fEnable) = 0;
1573 virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
1574 MSG* pmsg,
1575 WORD wID) = 0;
1577 virtual HRESULT STDMETHODCALLTYPE BrowseObject(
1578 LPCITEMIDLIST pidl,
1579 UINT wFlags) = 0;
1581 virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
1582 DWORD grfMode,
1583 IStream** ppStrm) = 0;
1585 virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
1586 UINT id,
1587 HWND* phwnd) = 0;
1589 virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
1590 UINT id,
1591 UINT uMsg,
1592 WPARAM wParam,
1593 LPARAM lParam,
1594 LRESULT* pret) = 0;
1596 virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView(
1597 IShellView** ppshv) = 0;
1599 virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive(
1600 IShellView* pshv) = 0;
1602 virtual HRESULT STDMETHODCALLTYPE SetToolbarItems(
1603 LPTBBUTTONSB lpButtons,
1604 UINT nButtons,
1605 UINT uFlags) = 0;
1608 #else
1609 typedef struct IShellBrowserVtbl IShellBrowserVtbl;
1610 struct IShellBrowser {
1611 const IShellBrowserVtbl* lpVtbl;
1613 struct IShellBrowserVtbl {
1614 ICOM_MSVTABLE_COMPAT_FIELDS
1616 /*** IUnknown methods ***/
1617 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1618 IShellBrowser* This,
1619 REFIID riid,
1620 void** ppvObject);
1622 ULONG (STDMETHODCALLTYPE *AddRef)(
1623 IShellBrowser* This);
1625 ULONG (STDMETHODCALLTYPE *Release)(
1626 IShellBrowser* This);
1628 /*** IOleWindow methods ***/
1629 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1630 IShellBrowser* This,
1631 HWND* phwnd);
1633 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1634 IShellBrowser* This,
1635 BOOL fEnterMode);
1637 /*** IShellBrowser methods ***/
1638 HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
1639 IShellBrowser* This,
1640 HMENU hmenuShared,
1641 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1643 HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
1644 IShellBrowser* This,
1645 HMENU hmenuShared,
1646 HOLEMENU holemenuReserved,
1647 HWND hwndActiveObject);
1649 HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
1650 IShellBrowser* This,
1651 HMENU hmenuShared);
1653 HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
1654 IShellBrowser* This,
1655 LPCOLESTR pszStatusText);
1657 HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
1658 IShellBrowser* This,
1659 BOOL fEnable);
1661 HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
1662 IShellBrowser* This,
1663 MSG* pmsg,
1664 WORD wID);
1666 HRESULT (STDMETHODCALLTYPE *BrowseObject)(
1667 IShellBrowser* This,
1668 LPCITEMIDLIST pidl,
1669 UINT wFlags);
1671 HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
1672 IShellBrowser* This,
1673 DWORD grfMode,
1674 IStream** ppStrm);
1676 HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
1677 IShellBrowser* This,
1678 UINT id,
1679 HWND* phwnd);
1681 HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
1682 IShellBrowser* This,
1683 UINT id,
1684 UINT uMsg,
1685 WPARAM wParam,
1686 LPARAM lParam,
1687 LRESULT* pret);
1689 HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
1690 IShellBrowser* This,
1691 IShellView** ppshv);
1693 HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
1694 IShellBrowser* This,
1695 IShellView* pshv);
1697 HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
1698 IShellBrowser* This,
1699 LPTBBUTTONSB lpButtons,
1700 UINT nButtons,
1701 UINT uFlags);
1705 /*** IUnknown methods ***/
1706 #define IShellBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1707 #define IShellBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
1708 #define IShellBrowser_Release(p) (p)->lpVtbl->Release(p)
1709 /*** IOleWindow methods ***/
1710 #define IShellBrowser_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1711 #define IShellBrowser_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1712 /*** IShellBrowser methods ***/
1713 #define IShellBrowser_InsertMenusSB(p,a,b) (p)->lpVtbl->InsertMenusSB(p,a,b)
1714 #define IShellBrowser_SetMenuSB(p,a,b,c) (p)->lpVtbl->SetMenuSB(p,a,b,c)
1715 #define IShellBrowser_RemoveMenusSB(p,a) (p)->lpVtbl->RemoveMenusSB(p,a)
1716 #define IShellBrowser_SetStatusTextSB(p,a) (p)->lpVtbl->SetStatusTextSB(p,a)
1717 #define IShellBrowser_EnableModelessSB(p,a) (p)->lpVtbl->EnableModelessSB(p,a)
1718 #define IShellBrowser_TranslateAcceleratorSB(p,a,b) (p)->lpVtbl->TranslateAcceleratorSB(p,a,b)
1719 #define IShellBrowser_BrowseObject(p,a,b) (p)->lpVtbl->BrowseObject(p,a,b)
1720 #define IShellBrowser_GetViewStateStream(p,a,b) (p)->lpVtbl->GetViewStateStream(p,a,b)
1721 #define IShellBrowser_GetControlWindow(p,a,b) (p)->lpVtbl->GetControlWindow(p,a,b)
1722 #define IShellBrowser_SendControlMsg(p,a,b,c,d,e) (p)->lpVtbl->SendControlMsg(p,a,b,c,d,e)
1723 #define IShellBrowser_QueryActiveShellView(p,a) (p)->lpVtbl->QueryActiveShellView(p,a)
1724 #define IShellBrowser_OnViewWindowActive(p,a) (p)->lpVtbl->OnViewWindowActive(p,a)
1725 #define IShellBrowser_SetToolbarItems(p,a,b,c) (p)->lpVtbl->SetToolbarItems(p,a,b,c)
1727 #endif
1729 #define IShellBrowser_METHODS \
1730 ICOM_MSVTABLE_COMPAT_FIELDS \
1731 /*** IUnknown methods ***/ \
1732 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1733 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1734 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1735 /*** IOleWindow methods ***/ \
1736 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1737 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1738 /*** IShellBrowser methods ***/ \
1739 STDMETHOD_(HRESULT,InsertMenusSB)(THIS_ HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) PURE; \
1740 STDMETHOD_(HRESULT,SetMenuSB)(THIS_ HMENU hmenuShared, HOLEMENU holemenuReserved, HWND hwndActiveObject) PURE; \
1741 STDMETHOD_(HRESULT,RemoveMenusSB)(THIS_ HMENU hmenuShared) PURE; \
1742 STDMETHOD_(HRESULT,SetStatusTextSB)(THIS_ LPCOLESTR pszStatusText) PURE; \
1743 STDMETHOD_(HRESULT,EnableModelessSB)(THIS_ BOOL fEnable) PURE; \
1744 STDMETHOD_(HRESULT,TranslateAcceleratorSB)(THIS_ MSG* pmsg, WORD wID) PURE; \
1745 STDMETHOD_(HRESULT,BrowseObject)(THIS_ LPCITEMIDLIST pidl, UINT wFlags) PURE; \
1746 STDMETHOD_(HRESULT,GetViewStateStream)(THIS_ DWORD grfMode, IStream** ppStrm) PURE; \
1747 STDMETHOD_(HRESULT,GetControlWindow)(THIS_ UINT id, HWND* phwnd) PURE; \
1748 STDMETHOD_(HRESULT,SendControlMsg)(THIS_ UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* pret) PURE; \
1749 STDMETHOD_(HRESULT,QueryActiveShellView)(THIS_ IShellView** ppshv) PURE; \
1750 STDMETHOD_(HRESULT,OnViewWindowActive)(THIS_ IShellView* pshv) PURE; \
1751 STDMETHOD_(HRESULT,SetToolbarItems)(THIS_ LPTBBUTTONSB lpButtons, UINT nButtons, UINT uFlags) PURE;
1753 HRESULT CALLBACK IShellBrowser_InsertMenusSB_Proxy(
1754 IShellBrowser* This,
1755 HMENU hmenuShared,
1756 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1757 void __RPC_STUB IShellBrowser_InsertMenusSB_Stub(
1758 struct IRpcStubBuffer* This,
1759 struct IRpcChannelBuffer* pRpcChannelBuffer,
1760 PRPC_MESSAGE pRpcMessage,
1761 DWORD* pdwStubPhase);
1762 HRESULT CALLBACK IShellBrowser_SetMenuSB_Proxy(
1763 IShellBrowser* This,
1764 HMENU hmenuShared,
1765 HOLEMENU holemenuReserved,
1766 HWND hwndActiveObject);
1767 void __RPC_STUB IShellBrowser_SetMenuSB_Stub(
1768 struct IRpcStubBuffer* This,
1769 struct IRpcChannelBuffer* pRpcChannelBuffer,
1770 PRPC_MESSAGE pRpcMessage,
1771 DWORD* pdwStubPhase);
1772 HRESULT CALLBACK IShellBrowser_RemoveMenusSB_Proxy(
1773 IShellBrowser* This,
1774 HMENU hmenuShared);
1775 void __RPC_STUB IShellBrowser_RemoveMenusSB_Stub(
1776 struct IRpcStubBuffer* This,
1777 struct IRpcChannelBuffer* pRpcChannelBuffer,
1778 PRPC_MESSAGE pRpcMessage,
1779 DWORD* pdwStubPhase);
1780 HRESULT CALLBACK IShellBrowser_SetStatusTextSB_Proxy(
1781 IShellBrowser* This,
1782 LPCOLESTR pszStatusText);
1783 void __RPC_STUB IShellBrowser_SetStatusTextSB_Stub(
1784 struct IRpcStubBuffer* This,
1785 struct IRpcChannelBuffer* pRpcChannelBuffer,
1786 PRPC_MESSAGE pRpcMessage,
1787 DWORD* pdwStubPhase);
1788 HRESULT CALLBACK IShellBrowser_EnableModelessSB_Proxy(
1789 IShellBrowser* This,
1790 BOOL fEnable);
1791 void __RPC_STUB IShellBrowser_EnableModelessSB_Stub(
1792 struct IRpcStubBuffer* This,
1793 struct IRpcChannelBuffer* pRpcChannelBuffer,
1794 PRPC_MESSAGE pRpcMessage,
1795 DWORD* pdwStubPhase);
1796 HRESULT CALLBACK IShellBrowser_TranslateAcceleratorSB_Proxy(
1797 IShellBrowser* This,
1798 MSG* pmsg,
1799 WORD wID);
1800 void __RPC_STUB IShellBrowser_TranslateAcceleratorSB_Stub(
1801 struct IRpcStubBuffer* This,
1802 struct IRpcChannelBuffer* pRpcChannelBuffer,
1803 PRPC_MESSAGE pRpcMessage,
1804 DWORD* pdwStubPhase);
1805 HRESULT CALLBACK IShellBrowser_BrowseObject_Proxy(
1806 IShellBrowser* This,
1807 LPCITEMIDLIST pidl,
1808 UINT wFlags);
1809 void __RPC_STUB IShellBrowser_BrowseObject_Stub(
1810 struct IRpcStubBuffer* This,
1811 struct IRpcChannelBuffer* pRpcChannelBuffer,
1812 PRPC_MESSAGE pRpcMessage,
1813 DWORD* pdwStubPhase);
1814 HRESULT CALLBACK IShellBrowser_GetViewStateStream_Proxy(
1815 IShellBrowser* This,
1816 DWORD grfMode,
1817 IStream** ppStrm);
1818 void __RPC_STUB IShellBrowser_GetViewStateStream_Stub(
1819 struct IRpcStubBuffer* This,
1820 struct IRpcChannelBuffer* pRpcChannelBuffer,
1821 PRPC_MESSAGE pRpcMessage,
1822 DWORD* pdwStubPhase);
1823 HRESULT CALLBACK IShellBrowser_GetControlWindow_Proxy(
1824 IShellBrowser* This,
1825 UINT id,
1826 HWND* phwnd);
1827 void __RPC_STUB IShellBrowser_GetControlWindow_Stub(
1828 struct IRpcStubBuffer* This,
1829 struct IRpcChannelBuffer* pRpcChannelBuffer,
1830 PRPC_MESSAGE pRpcMessage,
1831 DWORD* pdwStubPhase);
1832 HRESULT CALLBACK IShellBrowser_QueryActiveShellView_Proxy(
1833 IShellBrowser* This,
1834 IShellView** ppshv);
1835 void __RPC_STUB IShellBrowser_QueryActiveShellView_Stub(
1836 struct IRpcStubBuffer* This,
1837 struct IRpcChannelBuffer* pRpcChannelBuffer,
1838 PRPC_MESSAGE pRpcMessage,
1839 DWORD* pdwStubPhase);
1840 HRESULT CALLBACK IShellBrowser_OnViewWindowActive_Proxy(
1841 IShellBrowser* This,
1842 IShellView* pshv);
1843 void __RPC_STUB IShellBrowser_OnViewWindowActive_Stub(
1844 struct IRpcStubBuffer* This,
1845 struct IRpcChannelBuffer* pRpcChannelBuffer,
1846 PRPC_MESSAGE pRpcMessage,
1847 DWORD* pdwStubPhase);
1849 #endif /* __IShellBrowser_INTERFACE_DEFINED__ */
1851 #ifndef __IShellLinkA_FWD_DEFINED__
1852 #define __IShellLinkA_FWD_DEFINED__
1853 typedef struct IShellLinkA IShellLinkA;
1854 #endif
1856 typedef enum {
1857 SLR_NO_UI = 0x1,
1858 SLR_ANY_MATCH = 0x2,
1859 SLR_UPDATE = 0x4,
1860 SLR_NOUPDATE = 0x8,
1861 SLR_NOSEARCH = 0x10,
1862 SLR_NOTRACK = 0x20,
1863 SLR_NOLINKINFO = 0x40,
1864 SLR_INVOKE_MSI = 0x80,
1865 SLR_NO_UI_WITH_MSG_PUMP = 0x101
1866 } SLR_FLAGS;
1868 typedef enum {
1869 SLGP_SHORTPATH = 0x1,
1870 SLGP_UNCPRIORITY = 0x2,
1871 SLGP_RAWPATH = 0x4
1872 } SLGP_FLAGS;
1874 /*****************************************************************************
1875 * IShellLinkA interface
1877 #ifndef __IShellLinkA_INTERFACE_DEFINED__
1878 #define __IShellLinkA_INTERFACE_DEFINED__
1880 DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1881 #if defined(__cplusplus) && !defined(CINTERFACE)
1882 struct IShellLinkA : public IUnknown
1884 virtual HRESULT STDMETHODCALLTYPE GetPath(
1885 LPSTR pszFile,
1886 int cch,
1887 WIN32_FIND_DATAA* pfd,
1888 DWORD fFlags) = 0;
1890 virtual HRESULT STDMETHODCALLTYPE GetIDList(
1891 LPITEMIDLIST* ppidl) = 0;
1893 virtual HRESULT STDMETHODCALLTYPE SetIDList(
1894 LPCITEMIDLIST pidl) = 0;
1896 virtual HRESULT STDMETHODCALLTYPE GetDescription(
1897 LPSTR pszName,
1898 int cch) = 0;
1900 virtual HRESULT STDMETHODCALLTYPE SetDescription(
1901 LPCSTR pszName) = 0;
1903 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
1904 LPSTR pszDir,
1905 int cch) = 0;
1907 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
1908 LPCSTR pszDir) = 0;
1910 virtual HRESULT STDMETHODCALLTYPE GetArguments(
1911 LPSTR pszArgs,
1912 int cch) = 0;
1914 virtual HRESULT STDMETHODCALLTYPE SetArguments(
1915 LPCSTR pszArgs) = 0;
1917 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
1918 WORD* pwHotkey) = 0;
1920 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
1921 WORD wHotkey) = 0;
1923 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
1924 int* piShowCmd) = 0;
1926 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
1927 int iShowCmd) = 0;
1929 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
1930 LPSTR pszIconPath,
1931 int cch,
1932 int* piIcon) = 0;
1934 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
1935 LPCSTR pszIconPath,
1936 int iIcon) = 0;
1938 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
1939 LPCSTR pszPathRel,
1940 DWORD dwReserved) = 0;
1942 virtual HRESULT STDMETHODCALLTYPE Resolve(
1943 HWND hwnd,
1944 DWORD fFlags) = 0;
1946 virtual HRESULT STDMETHODCALLTYPE SetPath(
1947 LPCSTR pszFile) = 0;
1950 #else
1951 typedef struct IShellLinkAVtbl IShellLinkAVtbl;
1952 struct IShellLinkA {
1953 const IShellLinkAVtbl* lpVtbl;
1955 struct IShellLinkAVtbl {
1956 ICOM_MSVTABLE_COMPAT_FIELDS
1958 /*** IUnknown methods ***/
1959 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1960 IShellLinkA* This,
1961 REFIID riid,
1962 void** ppvObject);
1964 ULONG (STDMETHODCALLTYPE *AddRef)(
1965 IShellLinkA* This);
1967 ULONG (STDMETHODCALLTYPE *Release)(
1968 IShellLinkA* This);
1970 /*** IShellLinkA methods ***/
1971 HRESULT (STDMETHODCALLTYPE *GetPath)(
1972 IShellLinkA* This,
1973 LPSTR pszFile,
1974 int cch,
1975 WIN32_FIND_DATAA* pfd,
1976 DWORD fFlags);
1978 HRESULT (STDMETHODCALLTYPE *GetIDList)(
1979 IShellLinkA* This,
1980 LPITEMIDLIST* ppidl);
1982 HRESULT (STDMETHODCALLTYPE *SetIDList)(
1983 IShellLinkA* This,
1984 LPCITEMIDLIST pidl);
1986 HRESULT (STDMETHODCALLTYPE *GetDescription)(
1987 IShellLinkA* This,
1988 LPSTR pszName,
1989 int cch);
1991 HRESULT (STDMETHODCALLTYPE *SetDescription)(
1992 IShellLinkA* This,
1993 LPCSTR pszName);
1995 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
1996 IShellLinkA* This,
1997 LPSTR pszDir,
1998 int cch);
2000 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2001 IShellLinkA* This,
2002 LPCSTR pszDir);
2004 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2005 IShellLinkA* This,
2006 LPSTR pszArgs,
2007 int cch);
2009 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2010 IShellLinkA* This,
2011 LPCSTR pszArgs);
2013 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2014 IShellLinkA* This,
2015 WORD* pwHotkey);
2017 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2018 IShellLinkA* This,
2019 WORD wHotkey);
2021 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2022 IShellLinkA* This,
2023 int* piShowCmd);
2025 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2026 IShellLinkA* This,
2027 int iShowCmd);
2029 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2030 IShellLinkA* This,
2031 LPSTR pszIconPath,
2032 int cch,
2033 int* piIcon);
2035 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2036 IShellLinkA* This,
2037 LPCSTR pszIconPath,
2038 int iIcon);
2040 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2041 IShellLinkA* This,
2042 LPCSTR pszPathRel,
2043 DWORD dwReserved);
2045 HRESULT (STDMETHODCALLTYPE *Resolve)(
2046 IShellLinkA* This,
2047 HWND hwnd,
2048 DWORD fFlags);
2050 HRESULT (STDMETHODCALLTYPE *SetPath)(
2051 IShellLinkA* This,
2052 LPCSTR pszFile);
2056 /*** IUnknown methods ***/
2057 #define IShellLinkA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2058 #define IShellLinkA_AddRef(p) (p)->lpVtbl->AddRef(p)
2059 #define IShellLinkA_Release(p) (p)->lpVtbl->Release(p)
2060 /*** IShellLinkA methods ***/
2061 #define IShellLinkA_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2062 #define IShellLinkA_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2063 #define IShellLinkA_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2064 #define IShellLinkA_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2065 #define IShellLinkA_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2066 #define IShellLinkA_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2067 #define IShellLinkA_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2068 #define IShellLinkA_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2069 #define IShellLinkA_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2070 #define IShellLinkA_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2071 #define IShellLinkA_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2072 #define IShellLinkA_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2073 #define IShellLinkA_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2074 #define IShellLinkA_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2075 #define IShellLinkA_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2076 #define IShellLinkA_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2077 #define IShellLinkA_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2078 #define IShellLinkA_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2080 #endif
2082 #define IShellLinkA_METHODS \
2083 ICOM_MSVTABLE_COMPAT_FIELDS \
2084 /*** IUnknown methods ***/ \
2085 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2086 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2087 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2088 /*** IShellLinkA methods ***/ \
2089 STDMETHOD_(HRESULT,GetPath)(THIS_ LPSTR pszFile, int cch, WIN32_FIND_DATAA* pfd, DWORD fFlags) PURE; \
2090 STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2091 STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \
2092 STDMETHOD_(HRESULT,GetDescription)(THIS_ LPSTR pszName, int cch) PURE; \
2093 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCSTR pszName) PURE; \
2094 STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPSTR pszDir, int cch) PURE; \
2095 STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCSTR pszDir) PURE; \
2096 STDMETHOD_(HRESULT,GetArguments)(THIS_ LPSTR pszArgs, int cch) PURE; \
2097 STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCSTR pszArgs) PURE; \
2098 STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \
2099 STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \
2100 STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \
2101 STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \
2102 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPSTR pszIconPath, int cch, int* piIcon) PURE; \
2103 STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCSTR pszIconPath, int iIcon) PURE; \
2104 STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCSTR pszPathRel, DWORD dwReserved) PURE; \
2105 STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \
2106 STDMETHOD_(HRESULT,SetPath)(THIS_ LPCSTR pszFile) PURE;
2108 HRESULT CALLBACK IShellLinkA_GetPath_Proxy(
2109 IShellLinkA* This,
2110 LPSTR pszFile,
2111 int cch,
2112 WIN32_FIND_DATAA* pfd,
2113 DWORD fFlags);
2114 void __RPC_STUB IShellLinkA_GetPath_Stub(
2115 struct IRpcStubBuffer* This,
2116 struct IRpcChannelBuffer* pRpcChannelBuffer,
2117 PRPC_MESSAGE pRpcMessage,
2118 DWORD* pdwStubPhase);
2119 HRESULT CALLBACK IShellLinkA_GetIDList_Proxy(
2120 IShellLinkA* This,
2121 LPITEMIDLIST* ppidl);
2122 void __RPC_STUB IShellLinkA_GetIDList_Stub(
2123 struct IRpcStubBuffer* This,
2124 struct IRpcChannelBuffer* pRpcChannelBuffer,
2125 PRPC_MESSAGE pRpcMessage,
2126 DWORD* pdwStubPhase);
2127 HRESULT CALLBACK IShellLinkA_SetIDList_Proxy(
2128 IShellLinkA* This,
2129 LPCITEMIDLIST pidl);
2130 void __RPC_STUB IShellLinkA_SetIDList_Stub(
2131 struct IRpcStubBuffer* This,
2132 struct IRpcChannelBuffer* pRpcChannelBuffer,
2133 PRPC_MESSAGE pRpcMessage,
2134 DWORD* pdwStubPhase);
2135 HRESULT CALLBACK IShellLinkA_GetDescription_Proxy(
2136 IShellLinkA* This,
2137 LPSTR pszName,
2138 int cch);
2139 void __RPC_STUB IShellLinkA_GetDescription_Stub(
2140 struct IRpcStubBuffer* This,
2141 struct IRpcChannelBuffer* pRpcChannelBuffer,
2142 PRPC_MESSAGE pRpcMessage,
2143 DWORD* pdwStubPhase);
2144 HRESULT CALLBACK IShellLinkA_SetDescription_Proxy(
2145 IShellLinkA* This,
2146 LPCSTR pszName);
2147 void __RPC_STUB IShellLinkA_SetDescription_Stub(
2148 struct IRpcStubBuffer* This,
2149 struct IRpcChannelBuffer* pRpcChannelBuffer,
2150 PRPC_MESSAGE pRpcMessage,
2151 DWORD* pdwStubPhase);
2152 HRESULT CALLBACK IShellLinkA_GetWorkingDirectory_Proxy(
2153 IShellLinkA* This,
2154 LPSTR pszDir,
2155 int cch);
2156 void __RPC_STUB IShellLinkA_GetWorkingDirectory_Stub(
2157 struct IRpcStubBuffer* This,
2158 struct IRpcChannelBuffer* pRpcChannelBuffer,
2159 PRPC_MESSAGE pRpcMessage,
2160 DWORD* pdwStubPhase);
2161 HRESULT CALLBACK IShellLinkA_SetWorkingDirectory_Proxy(
2162 IShellLinkA* This,
2163 LPCSTR pszDir);
2164 void __RPC_STUB IShellLinkA_SetWorkingDirectory_Stub(
2165 struct IRpcStubBuffer* This,
2166 struct IRpcChannelBuffer* pRpcChannelBuffer,
2167 PRPC_MESSAGE pRpcMessage,
2168 DWORD* pdwStubPhase);
2169 HRESULT CALLBACK IShellLinkA_GetArguments_Proxy(
2170 IShellLinkA* This,
2171 LPSTR pszArgs,
2172 int cch);
2173 void __RPC_STUB IShellLinkA_GetArguments_Stub(
2174 struct IRpcStubBuffer* This,
2175 struct IRpcChannelBuffer* pRpcChannelBuffer,
2176 PRPC_MESSAGE pRpcMessage,
2177 DWORD* pdwStubPhase);
2178 HRESULT CALLBACK IShellLinkA_SetArguments_Proxy(
2179 IShellLinkA* This,
2180 LPCSTR pszArgs);
2181 void __RPC_STUB IShellLinkA_SetArguments_Stub(
2182 struct IRpcStubBuffer* This,
2183 struct IRpcChannelBuffer* pRpcChannelBuffer,
2184 PRPC_MESSAGE pRpcMessage,
2185 DWORD* pdwStubPhase);
2186 HRESULT CALLBACK IShellLinkA_GetHotkey_Proxy(
2187 IShellLinkA* This,
2188 WORD* pwHotkey);
2189 void __RPC_STUB IShellLinkA_GetHotkey_Stub(
2190 struct IRpcStubBuffer* This,
2191 struct IRpcChannelBuffer* pRpcChannelBuffer,
2192 PRPC_MESSAGE pRpcMessage,
2193 DWORD* pdwStubPhase);
2194 HRESULT CALLBACK IShellLinkA_SetHotkey_Proxy(
2195 IShellLinkA* This,
2196 WORD wHotkey);
2197 void __RPC_STUB IShellLinkA_SetHotkey_Stub(
2198 struct IRpcStubBuffer* This,
2199 struct IRpcChannelBuffer* pRpcChannelBuffer,
2200 PRPC_MESSAGE pRpcMessage,
2201 DWORD* pdwStubPhase);
2202 HRESULT CALLBACK IShellLinkA_GetShowCmd_Proxy(
2203 IShellLinkA* This,
2204 int* piShowCmd);
2205 void __RPC_STUB IShellLinkA_GetShowCmd_Stub(
2206 struct IRpcStubBuffer* This,
2207 struct IRpcChannelBuffer* pRpcChannelBuffer,
2208 PRPC_MESSAGE pRpcMessage,
2209 DWORD* pdwStubPhase);
2210 HRESULT CALLBACK IShellLinkA_SetShowCmd_Proxy(
2211 IShellLinkA* This,
2212 int iShowCmd);
2213 void __RPC_STUB IShellLinkA_SetShowCmd_Stub(
2214 struct IRpcStubBuffer* This,
2215 struct IRpcChannelBuffer* pRpcChannelBuffer,
2216 PRPC_MESSAGE pRpcMessage,
2217 DWORD* pdwStubPhase);
2218 HRESULT CALLBACK IShellLinkA_GetIconLocation_Proxy(
2219 IShellLinkA* This,
2220 LPSTR pszIconPath,
2221 int cch,
2222 int* piIcon);
2223 void __RPC_STUB IShellLinkA_GetIconLocation_Stub(
2224 struct IRpcStubBuffer* This,
2225 struct IRpcChannelBuffer* pRpcChannelBuffer,
2226 PRPC_MESSAGE pRpcMessage,
2227 DWORD* pdwStubPhase);
2228 HRESULT CALLBACK IShellLinkA_SetIconLocation_Proxy(
2229 IShellLinkA* This,
2230 LPCSTR pszIconPath,
2231 int iIcon);
2232 void __RPC_STUB IShellLinkA_SetIconLocation_Stub(
2233 struct IRpcStubBuffer* This,
2234 struct IRpcChannelBuffer* pRpcChannelBuffer,
2235 PRPC_MESSAGE pRpcMessage,
2236 DWORD* pdwStubPhase);
2237 HRESULT CALLBACK IShellLinkA_SetRelativePath_Proxy(
2238 IShellLinkA* This,
2239 LPCSTR pszPathRel,
2240 DWORD dwReserved);
2241 void __RPC_STUB IShellLinkA_SetRelativePath_Stub(
2242 struct IRpcStubBuffer* This,
2243 struct IRpcChannelBuffer* pRpcChannelBuffer,
2244 PRPC_MESSAGE pRpcMessage,
2245 DWORD* pdwStubPhase);
2246 HRESULT CALLBACK IShellLinkA_Resolve_Proxy(
2247 IShellLinkA* This,
2248 HWND hwnd,
2249 DWORD fFlags);
2250 void __RPC_STUB IShellLinkA_Resolve_Stub(
2251 struct IRpcStubBuffer* This,
2252 struct IRpcChannelBuffer* pRpcChannelBuffer,
2253 PRPC_MESSAGE pRpcMessage,
2254 DWORD* pdwStubPhase);
2255 HRESULT CALLBACK IShellLinkA_SetPath_Proxy(
2256 IShellLinkA* This,
2257 LPCSTR pszFile);
2258 void __RPC_STUB IShellLinkA_SetPath_Stub(
2259 struct IRpcStubBuffer* This,
2260 struct IRpcChannelBuffer* pRpcChannelBuffer,
2261 PRPC_MESSAGE pRpcMessage,
2262 DWORD* pdwStubPhase);
2264 #endif /* __IShellLinkA_INTERFACE_DEFINED__ */
2266 #ifndef __IShellLinkW_FWD_DEFINED__
2267 #define __IShellLinkW_FWD_DEFINED__
2268 typedef struct IShellLinkW IShellLinkW;
2269 #endif
2271 /*****************************************************************************
2272 * IShellLinkW interface
2274 #ifndef __IShellLinkW_INTERFACE_DEFINED__
2275 #define __IShellLinkW_INTERFACE_DEFINED__
2277 DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2278 #if defined(__cplusplus) && !defined(CINTERFACE)
2279 struct IShellLinkW : public IUnknown
2281 virtual HRESULT STDMETHODCALLTYPE GetPath(
2282 LPWSTR pszFile,
2283 int cch,
2284 WIN32_FIND_DATAW* pfd,
2285 DWORD fFlags) = 0;
2287 virtual HRESULT STDMETHODCALLTYPE GetIDList(
2288 LPITEMIDLIST* ppidl) = 0;
2290 virtual HRESULT STDMETHODCALLTYPE SetIDList(
2291 LPCITEMIDLIST pidl) = 0;
2293 virtual HRESULT STDMETHODCALLTYPE GetDescription(
2294 LPWSTR pszName,
2295 int cch) = 0;
2297 virtual HRESULT STDMETHODCALLTYPE SetDescription(
2298 LPCWSTR pszName) = 0;
2300 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
2301 LPWSTR pszDir,
2302 int cch) = 0;
2304 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
2305 LPCWSTR pszDir) = 0;
2307 virtual HRESULT STDMETHODCALLTYPE GetArguments(
2308 LPWSTR pszArgs,
2309 int cch) = 0;
2311 virtual HRESULT STDMETHODCALLTYPE SetArguments(
2312 LPCWSTR pszArgs) = 0;
2314 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
2315 WORD* pwHotkey) = 0;
2317 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
2318 WORD wHotkey) = 0;
2320 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
2321 int* piShowCmd) = 0;
2323 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
2324 int iShowCmd) = 0;
2326 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2327 LPWSTR pszIconPath,
2328 int cch,
2329 int* piIcon) = 0;
2331 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
2332 LPCWSTR pszIconPath,
2333 int iIcon) = 0;
2335 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
2336 LPCWSTR pszPathRel,
2337 DWORD dwReserved) = 0;
2339 virtual HRESULT STDMETHODCALLTYPE Resolve(
2340 HWND hwnd,
2341 DWORD fFlags) = 0;
2343 virtual HRESULT STDMETHODCALLTYPE SetPath(
2344 LPCWSTR pszFile) = 0;
2347 #else
2348 typedef struct IShellLinkWVtbl IShellLinkWVtbl;
2349 struct IShellLinkW {
2350 const IShellLinkWVtbl* lpVtbl;
2352 struct IShellLinkWVtbl {
2353 ICOM_MSVTABLE_COMPAT_FIELDS
2355 /*** IUnknown methods ***/
2356 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2357 IShellLinkW* This,
2358 REFIID riid,
2359 void** ppvObject);
2361 ULONG (STDMETHODCALLTYPE *AddRef)(
2362 IShellLinkW* This);
2364 ULONG (STDMETHODCALLTYPE *Release)(
2365 IShellLinkW* This);
2367 /*** IShellLinkW methods ***/
2368 HRESULT (STDMETHODCALLTYPE *GetPath)(
2369 IShellLinkW* This,
2370 LPWSTR pszFile,
2371 int cch,
2372 WIN32_FIND_DATAW* pfd,
2373 DWORD fFlags);
2375 HRESULT (STDMETHODCALLTYPE *GetIDList)(
2376 IShellLinkW* This,
2377 LPITEMIDLIST* ppidl);
2379 HRESULT (STDMETHODCALLTYPE *SetIDList)(
2380 IShellLinkW* This,
2381 LPCITEMIDLIST pidl);
2383 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2384 IShellLinkW* This,
2385 LPWSTR pszName,
2386 int cch);
2388 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2389 IShellLinkW* This,
2390 LPCWSTR pszName);
2392 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2393 IShellLinkW* This,
2394 LPWSTR pszDir,
2395 int cch);
2397 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2398 IShellLinkW* This,
2399 LPCWSTR pszDir);
2401 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2402 IShellLinkW* This,
2403 LPWSTR pszArgs,
2404 int cch);
2406 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2407 IShellLinkW* This,
2408 LPCWSTR pszArgs);
2410 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2411 IShellLinkW* This,
2412 WORD* pwHotkey);
2414 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2415 IShellLinkW* This,
2416 WORD wHotkey);
2418 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2419 IShellLinkW* This,
2420 int* piShowCmd);
2422 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2423 IShellLinkW* This,
2424 int iShowCmd);
2426 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2427 IShellLinkW* This,
2428 LPWSTR pszIconPath,
2429 int cch,
2430 int* piIcon);
2432 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2433 IShellLinkW* This,
2434 LPCWSTR pszIconPath,
2435 int iIcon);
2437 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2438 IShellLinkW* This,
2439 LPCWSTR pszPathRel,
2440 DWORD dwReserved);
2442 HRESULT (STDMETHODCALLTYPE *Resolve)(
2443 IShellLinkW* This,
2444 HWND hwnd,
2445 DWORD fFlags);
2447 HRESULT (STDMETHODCALLTYPE *SetPath)(
2448 IShellLinkW* This,
2449 LPCWSTR pszFile);
2453 /*** IUnknown methods ***/
2454 #define IShellLinkW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2455 #define IShellLinkW_AddRef(p) (p)->lpVtbl->AddRef(p)
2456 #define IShellLinkW_Release(p) (p)->lpVtbl->Release(p)
2457 /*** IShellLinkW methods ***/
2458 #define IShellLinkW_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2459 #define IShellLinkW_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2460 #define IShellLinkW_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2461 #define IShellLinkW_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2462 #define IShellLinkW_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2463 #define IShellLinkW_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2464 #define IShellLinkW_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2465 #define IShellLinkW_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2466 #define IShellLinkW_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2467 #define IShellLinkW_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2468 #define IShellLinkW_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2469 #define IShellLinkW_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2470 #define IShellLinkW_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2471 #define IShellLinkW_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2472 #define IShellLinkW_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2473 #define IShellLinkW_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2474 #define IShellLinkW_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2475 #define IShellLinkW_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2477 #endif
2479 #define IShellLinkW_METHODS \
2480 ICOM_MSVTABLE_COMPAT_FIELDS \
2481 /*** IUnknown methods ***/ \
2482 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2483 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2484 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2485 /*** IShellLinkW methods ***/ \
2486 STDMETHOD_(HRESULT,GetPath)(THIS_ LPWSTR pszFile, int cch, WIN32_FIND_DATAW* pfd, DWORD fFlags) PURE; \
2487 STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2488 STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \
2489 STDMETHOD_(HRESULT,GetDescription)(THIS_ LPWSTR pszName, int cch) PURE; \
2490 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCWSTR pszName) PURE; \
2491 STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPWSTR pszDir, int cch) PURE; \
2492 STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCWSTR pszDir) PURE; \
2493 STDMETHOD_(HRESULT,GetArguments)(THIS_ LPWSTR pszArgs, int cch) PURE; \
2494 STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCWSTR pszArgs) PURE; \
2495 STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \
2496 STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \
2497 STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \
2498 STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \
2499 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPWSTR pszIconPath, int cch, int* piIcon) PURE; \
2500 STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCWSTR pszIconPath, int iIcon) PURE; \
2501 STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCWSTR pszPathRel, DWORD dwReserved) PURE; \
2502 STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \
2503 STDMETHOD_(HRESULT,SetPath)(THIS_ LPCWSTR pszFile) PURE;
2505 HRESULT CALLBACK IShellLinkW_GetPath_Proxy(
2506 IShellLinkW* This,
2507 LPWSTR pszFile,
2508 int cch,
2509 WIN32_FIND_DATAW* pfd,
2510 DWORD fFlags);
2511 void __RPC_STUB IShellLinkW_GetPath_Stub(
2512 struct IRpcStubBuffer* This,
2513 struct IRpcChannelBuffer* pRpcChannelBuffer,
2514 PRPC_MESSAGE pRpcMessage,
2515 DWORD* pdwStubPhase);
2516 HRESULT CALLBACK IShellLinkW_GetIDList_Proxy(
2517 IShellLinkW* This,
2518 LPITEMIDLIST* ppidl);
2519 void __RPC_STUB IShellLinkW_GetIDList_Stub(
2520 struct IRpcStubBuffer* This,
2521 struct IRpcChannelBuffer* pRpcChannelBuffer,
2522 PRPC_MESSAGE pRpcMessage,
2523 DWORD* pdwStubPhase);
2524 HRESULT CALLBACK IShellLinkW_SetIDList_Proxy(
2525 IShellLinkW* This,
2526 LPCITEMIDLIST pidl);
2527 void __RPC_STUB IShellLinkW_SetIDList_Stub(
2528 struct IRpcStubBuffer* This,
2529 struct IRpcChannelBuffer* pRpcChannelBuffer,
2530 PRPC_MESSAGE pRpcMessage,
2531 DWORD* pdwStubPhase);
2532 HRESULT CALLBACK IShellLinkW_GetDescription_Proxy(
2533 IShellLinkW* This,
2534 LPWSTR pszName,
2535 int cch);
2536 void __RPC_STUB IShellLinkW_GetDescription_Stub(
2537 struct IRpcStubBuffer* This,
2538 struct IRpcChannelBuffer* pRpcChannelBuffer,
2539 PRPC_MESSAGE pRpcMessage,
2540 DWORD* pdwStubPhase);
2541 HRESULT CALLBACK IShellLinkW_SetDescription_Proxy(
2542 IShellLinkW* This,
2543 LPCWSTR pszName);
2544 void __RPC_STUB IShellLinkW_SetDescription_Stub(
2545 struct IRpcStubBuffer* This,
2546 struct IRpcChannelBuffer* pRpcChannelBuffer,
2547 PRPC_MESSAGE pRpcMessage,
2548 DWORD* pdwStubPhase);
2549 HRESULT CALLBACK IShellLinkW_GetWorkingDirectory_Proxy(
2550 IShellLinkW* This,
2551 LPWSTR pszDir,
2552 int cch);
2553 void __RPC_STUB IShellLinkW_GetWorkingDirectory_Stub(
2554 struct IRpcStubBuffer* This,
2555 struct IRpcChannelBuffer* pRpcChannelBuffer,
2556 PRPC_MESSAGE pRpcMessage,
2557 DWORD* pdwStubPhase);
2558 HRESULT CALLBACK IShellLinkW_SetWorkingDirectory_Proxy(
2559 IShellLinkW* This,
2560 LPCWSTR pszDir);
2561 void __RPC_STUB IShellLinkW_SetWorkingDirectory_Stub(
2562 struct IRpcStubBuffer* This,
2563 struct IRpcChannelBuffer* pRpcChannelBuffer,
2564 PRPC_MESSAGE pRpcMessage,
2565 DWORD* pdwStubPhase);
2566 HRESULT CALLBACK IShellLinkW_GetArguments_Proxy(
2567 IShellLinkW* This,
2568 LPWSTR pszArgs,
2569 int cch);
2570 void __RPC_STUB IShellLinkW_GetArguments_Stub(
2571 struct IRpcStubBuffer* This,
2572 struct IRpcChannelBuffer* pRpcChannelBuffer,
2573 PRPC_MESSAGE pRpcMessage,
2574 DWORD* pdwStubPhase);
2575 HRESULT CALLBACK IShellLinkW_SetArguments_Proxy(
2576 IShellLinkW* This,
2577 LPCWSTR pszArgs);
2578 void __RPC_STUB IShellLinkW_SetArguments_Stub(
2579 struct IRpcStubBuffer* This,
2580 struct IRpcChannelBuffer* pRpcChannelBuffer,
2581 PRPC_MESSAGE pRpcMessage,
2582 DWORD* pdwStubPhase);
2583 HRESULT CALLBACK IShellLinkW_GetHotkey_Proxy(
2584 IShellLinkW* This,
2585 WORD* pwHotkey);
2586 void __RPC_STUB IShellLinkW_GetHotkey_Stub(
2587 struct IRpcStubBuffer* This,
2588 struct IRpcChannelBuffer* pRpcChannelBuffer,
2589 PRPC_MESSAGE pRpcMessage,
2590 DWORD* pdwStubPhase);
2591 HRESULT CALLBACK IShellLinkW_SetHotkey_Proxy(
2592 IShellLinkW* This,
2593 WORD wHotkey);
2594 void __RPC_STUB IShellLinkW_SetHotkey_Stub(
2595 struct IRpcStubBuffer* This,
2596 struct IRpcChannelBuffer* pRpcChannelBuffer,
2597 PRPC_MESSAGE pRpcMessage,
2598 DWORD* pdwStubPhase);
2599 HRESULT CALLBACK IShellLinkW_GetShowCmd_Proxy(
2600 IShellLinkW* This,
2601 int* piShowCmd);
2602 void __RPC_STUB IShellLinkW_GetShowCmd_Stub(
2603 struct IRpcStubBuffer* This,
2604 struct IRpcChannelBuffer* pRpcChannelBuffer,
2605 PRPC_MESSAGE pRpcMessage,
2606 DWORD* pdwStubPhase);
2607 HRESULT CALLBACK IShellLinkW_SetShowCmd_Proxy(
2608 IShellLinkW* This,
2609 int iShowCmd);
2610 void __RPC_STUB IShellLinkW_SetShowCmd_Stub(
2611 struct IRpcStubBuffer* This,
2612 struct IRpcChannelBuffer* pRpcChannelBuffer,
2613 PRPC_MESSAGE pRpcMessage,
2614 DWORD* pdwStubPhase);
2615 HRESULT CALLBACK IShellLinkW_GetIconLocation_Proxy(
2616 IShellLinkW* This,
2617 LPWSTR pszIconPath,
2618 int cch,
2619 int* piIcon);
2620 void __RPC_STUB IShellLinkW_GetIconLocation_Stub(
2621 struct IRpcStubBuffer* This,
2622 struct IRpcChannelBuffer* pRpcChannelBuffer,
2623 PRPC_MESSAGE pRpcMessage,
2624 DWORD* pdwStubPhase);
2625 HRESULT CALLBACK IShellLinkW_SetIconLocation_Proxy(
2626 IShellLinkW* This,
2627 LPCWSTR pszIconPath,
2628 int iIcon);
2629 void __RPC_STUB IShellLinkW_SetIconLocation_Stub(
2630 struct IRpcStubBuffer* This,
2631 struct IRpcChannelBuffer* pRpcChannelBuffer,
2632 PRPC_MESSAGE pRpcMessage,
2633 DWORD* pdwStubPhase);
2634 HRESULT CALLBACK IShellLinkW_SetRelativePath_Proxy(
2635 IShellLinkW* This,
2636 LPCWSTR pszPathRel,
2637 DWORD dwReserved);
2638 void __RPC_STUB IShellLinkW_SetRelativePath_Stub(
2639 struct IRpcStubBuffer* This,
2640 struct IRpcChannelBuffer* pRpcChannelBuffer,
2641 PRPC_MESSAGE pRpcMessage,
2642 DWORD* pdwStubPhase);
2643 HRESULT CALLBACK IShellLinkW_Resolve_Proxy(
2644 IShellLinkW* This,
2645 HWND hwnd,
2646 DWORD fFlags);
2647 void __RPC_STUB IShellLinkW_Resolve_Stub(
2648 struct IRpcStubBuffer* This,
2649 struct IRpcChannelBuffer* pRpcChannelBuffer,
2650 PRPC_MESSAGE pRpcMessage,
2651 DWORD* pdwStubPhase);
2652 HRESULT CALLBACK IShellLinkW_SetPath_Proxy(
2653 IShellLinkW* This,
2654 LPCWSTR pszFile);
2655 void __RPC_STUB IShellLinkW_SetPath_Stub(
2656 struct IRpcStubBuffer* This,
2657 struct IRpcChannelBuffer* pRpcChannelBuffer,
2658 PRPC_MESSAGE pRpcMessage,
2659 DWORD* pdwStubPhase);
2661 #endif /* __IShellLinkW_INTERFACE_DEFINED__ */
2663 #define IShellLink WINELIB_NAME_AW(IShellLink)
2664 #ifndef __IShellExtInit_FWD_DEFINED__
2665 #define __IShellExtInit_FWD_DEFINED__
2666 typedef struct IShellExtInit IShellExtInit;
2667 #endif
2669 typedef IShellExtInit *LPSHELLEXTINIT;
2671 /*****************************************************************************
2672 * IShellExtInit interface
2674 #ifndef __IShellExtInit_INTERFACE_DEFINED__
2675 #define __IShellExtInit_INTERFACE_DEFINED__
2677 DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2678 #if defined(__cplusplus) && !defined(CINTERFACE)
2679 struct IShellExtInit : public IUnknown
2681 virtual HRESULT STDMETHODCALLTYPE Initialize(
2682 LPCITEMIDLIST pidlFolder,
2683 IDataObject* pdtobj,
2684 HKEY hkeyProgID) = 0;
2687 #else
2688 typedef struct IShellExtInitVtbl IShellExtInitVtbl;
2689 struct IShellExtInit {
2690 const IShellExtInitVtbl* lpVtbl;
2692 struct IShellExtInitVtbl {
2693 ICOM_MSVTABLE_COMPAT_FIELDS
2695 /*** IUnknown methods ***/
2696 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2697 IShellExtInit* This,
2698 REFIID riid,
2699 void** ppvObject);
2701 ULONG (STDMETHODCALLTYPE *AddRef)(
2702 IShellExtInit* This);
2704 ULONG (STDMETHODCALLTYPE *Release)(
2705 IShellExtInit* This);
2707 /*** IShellExtInit methods ***/
2708 HRESULT (STDMETHODCALLTYPE *Initialize)(
2709 IShellExtInit* This,
2710 LPCITEMIDLIST pidlFolder,
2711 IDataObject* pdtobj,
2712 HKEY hkeyProgID);
2716 /*** IUnknown methods ***/
2717 #define IShellExtInit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2718 #define IShellExtInit_AddRef(p) (p)->lpVtbl->AddRef(p)
2719 #define IShellExtInit_Release(p) (p)->lpVtbl->Release(p)
2720 /*** IShellExtInit methods ***/
2721 #define IShellExtInit_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
2723 #endif
2725 #define IShellExtInit_METHODS \
2726 ICOM_MSVTABLE_COMPAT_FIELDS \
2727 /*** IUnknown methods ***/ \
2728 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2729 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2730 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2731 /*** IShellExtInit methods ***/ \
2732 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidlFolder, IDataObject* pdtobj, HKEY hkeyProgID) PURE;
2734 HRESULT CALLBACK IShellExtInit_Initialize_Proxy(
2735 IShellExtInit* This,
2736 LPCITEMIDLIST pidlFolder,
2737 IDataObject* pdtobj,
2738 HKEY hkeyProgID);
2739 void __RPC_STUB IShellExtInit_Initialize_Stub(
2740 struct IRpcStubBuffer* This,
2741 struct IRpcChannelBuffer* pRpcChannelBuffer,
2742 PRPC_MESSAGE pRpcMessage,
2743 DWORD* pdwStubPhase);
2745 #endif /* __IShellExtInit_INTERFACE_DEFINED__ */
2747 #ifndef __IPersistFolder3_FWD_DEFINED__
2748 #define __IPersistFolder3_FWD_DEFINED__
2749 typedef struct IPersistFolder3 IPersistFolder3;
2750 #endif
2752 typedef struct {
2753 LPITEMIDLIST pidlTargetFolder;
2754 WCHAR szTargetParsingName[260];
2755 WCHAR szNetworkProvider[260];
2756 DWORD dwAttributes;
2757 int csidl;
2758 } PERSIST_FOLDER_TARGET_INFO;
2760 /*****************************************************************************
2761 * IPersistFolder3 interface
2763 #ifndef __IPersistFolder3_INTERFACE_DEFINED__
2764 #define __IPersistFolder3_INTERFACE_DEFINED__
2766 DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf);
2767 #if defined(__cplusplus) && !defined(CINTERFACE)
2768 struct IPersistFolder3 : public IPersistFolder2
2770 virtual HRESULT STDMETHODCALLTYPE InitializeEx(
2771 IBindCtx* pbc,
2772 LPCITEMIDLIST pidlRoot,
2773 const PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2775 virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
2776 PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2779 #else
2780 typedef struct IPersistFolder3Vtbl IPersistFolder3Vtbl;
2781 struct IPersistFolder3 {
2782 const IPersistFolder3Vtbl* lpVtbl;
2784 struct IPersistFolder3Vtbl {
2785 ICOM_MSVTABLE_COMPAT_FIELDS
2787 /*** IUnknown methods ***/
2788 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2789 IPersistFolder3* This,
2790 REFIID riid,
2791 void** ppvObject);
2793 ULONG (STDMETHODCALLTYPE *AddRef)(
2794 IPersistFolder3* This);
2796 ULONG (STDMETHODCALLTYPE *Release)(
2797 IPersistFolder3* This);
2799 /*** IPersist methods ***/
2800 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2801 IPersistFolder3* This,
2802 CLSID* pClassID);
2804 /*** IPersistFolder methods ***/
2805 HRESULT (STDMETHODCALLTYPE *Initialize)(
2806 IPersistFolder3* This,
2807 LPCITEMIDLIST pidl);
2809 /*** IPersistFolder2 methods ***/
2810 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
2811 IPersistFolder3* This,
2812 LPITEMIDLIST* ppidl);
2814 /*** IPersistFolder3 methods ***/
2815 HRESULT (STDMETHODCALLTYPE *InitializeEx)(
2816 IPersistFolder3* This,
2817 IBindCtx* pbc,
2818 LPCITEMIDLIST pidlRoot,
2819 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2821 HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
2822 IPersistFolder3* This,
2823 PERSIST_FOLDER_TARGET_INFO* ppfti);
2827 /*** IUnknown methods ***/
2828 #define IPersistFolder3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2829 #define IPersistFolder3_AddRef(p) (p)->lpVtbl->AddRef(p)
2830 #define IPersistFolder3_Release(p) (p)->lpVtbl->Release(p)
2831 /*** IPersist methods ***/
2832 #define IPersistFolder3_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2833 /*** IPersistFolder methods ***/
2834 #define IPersistFolder3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
2835 /*** IPersistFolder2 methods ***/
2836 #define IPersistFolder3_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
2837 /*** IPersistFolder3 methods ***/
2838 #define IPersistFolder3_InitializeEx(p,a,b,c) (p)->lpVtbl->InitializeEx(p,a,b,c)
2839 #define IPersistFolder3_GetFolderTargetInfo(p,a) (p)->lpVtbl->GetFolderTargetInfo(p,a)
2841 #endif
2843 #define IPersistFolder3_METHODS \
2844 ICOM_MSVTABLE_COMPAT_FIELDS \
2845 /*** IUnknown methods ***/ \
2846 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2847 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2848 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2849 /*** IPersist methods ***/ \
2850 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2851 /*** IPersistFolder methods ***/ \
2852 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \
2853 /*** IPersistFolder2 methods ***/ \
2854 STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2855 /*** IPersistFolder3 methods ***/ \
2856 STDMETHOD_(HRESULT,InitializeEx)(THIS_ IBindCtx* pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO* ppfti) PURE; \
2857 STDMETHOD_(HRESULT,GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO* ppfti) PURE;
2859 HRESULT CALLBACK IPersistFolder3_InitializeEx_Proxy(
2860 IPersistFolder3* This,
2861 IBindCtx* pbc,
2862 LPCITEMIDLIST pidlRoot,
2863 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2864 void __RPC_STUB IPersistFolder3_InitializeEx_Stub(
2865 struct IRpcStubBuffer* This,
2866 struct IRpcChannelBuffer* pRpcChannelBuffer,
2867 PRPC_MESSAGE pRpcMessage,
2868 DWORD* pdwStubPhase);
2869 HRESULT CALLBACK IPersistFolder3_GetFolderTargetInfo_Proxy(
2870 IPersistFolder3* This,
2871 PERSIST_FOLDER_TARGET_INFO* ppfti);
2872 void __RPC_STUB IPersistFolder3_GetFolderTargetInfo_Stub(
2873 struct IRpcStubBuffer* This,
2874 struct IRpcChannelBuffer* pRpcChannelBuffer,
2875 PRPC_MESSAGE pRpcMessage,
2876 DWORD* pdwStubPhase);
2878 #endif /* __IPersistFolder3_INTERFACE_DEFINED__ */
2880 #ifndef __IExtractIconA_FWD_DEFINED__
2881 #define __IExtractIconA_FWD_DEFINED__
2882 typedef struct IExtractIconA IExtractIconA;
2883 #endif
2885 #define GIL_OPENICON 0x0001
2886 #define GIL_FORSHELL 0x0002
2887 #define GIL_ASYNC 0x0020
2888 #define GIL_DEFAULTICON 0x0040
2889 #define GIL_FORSHORTCUT 0x0080
2890 #define GIL_SIMULATEDOC 0x0001
2891 #define GIL_PERINSTANCE 0x0002
2892 #define GIL_PERCLASS 0x0004
2893 #define GIL_NOTFILENAME 0x0008
2894 #define GIL_DONTCACHE 0x0010
2895 typedef IExtractIconA *LPEXTRACTICONA;
2897 /*****************************************************************************
2898 * IExtractIconA interface
2900 #ifndef __IExtractIconA_INTERFACE_DEFINED__
2901 #define __IExtractIconA_INTERFACE_DEFINED__
2903 DEFINE_GUID(IID_IExtractIconA, 0x000214eb, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2904 #if defined(__cplusplus) && !defined(CINTERFACE)
2905 struct IExtractIconA : public IUnknown
2907 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2908 UINT uFlags,
2909 LPSTR szIconFile,
2910 UINT cchMax,
2911 INT* piIndex,
2912 UINT* pwFlags) = 0;
2914 virtual HRESULT STDMETHODCALLTYPE Extract(
2915 LPCSTR pszFile,
2916 UINT nIconIndex,
2917 HICON* phiconLarge,
2918 HICON* phiconSmall,
2919 UINT nIconSize) = 0;
2922 #else
2923 typedef struct IExtractIconAVtbl IExtractIconAVtbl;
2924 struct IExtractIconA {
2925 const IExtractIconAVtbl* lpVtbl;
2927 struct IExtractIconAVtbl {
2928 ICOM_MSVTABLE_COMPAT_FIELDS
2930 /*** IUnknown methods ***/
2931 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2932 IExtractIconA* This,
2933 REFIID riid,
2934 void** ppvObject);
2936 ULONG (STDMETHODCALLTYPE *AddRef)(
2937 IExtractIconA* This);
2939 ULONG (STDMETHODCALLTYPE *Release)(
2940 IExtractIconA* This);
2942 /*** IExtractIconA methods ***/
2943 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2944 IExtractIconA* This,
2945 UINT uFlags,
2946 LPSTR szIconFile,
2947 UINT cchMax,
2948 INT* piIndex,
2949 UINT* pwFlags);
2951 HRESULT (STDMETHODCALLTYPE *Extract)(
2952 IExtractIconA* This,
2953 LPCSTR pszFile,
2954 UINT nIconIndex,
2955 HICON* phiconLarge,
2956 HICON* phiconSmall,
2957 UINT nIconSize);
2961 /*** IUnknown methods ***/
2962 #define IExtractIconA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2963 #define IExtractIconA_AddRef(p) (p)->lpVtbl->AddRef(p)
2964 #define IExtractIconA_Release(p) (p)->lpVtbl->Release(p)
2965 /*** IExtractIconA methods ***/
2966 #define IExtractIconA_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
2967 #define IExtractIconA_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
2969 #endif
2971 #define IExtractIconA_METHODS \
2972 ICOM_MSVTABLE_COMPAT_FIELDS \
2973 /*** IUnknown methods ***/ \
2974 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2975 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2976 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2977 /*** IExtractIconA methods ***/ \
2978 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \
2979 STDMETHOD_(HRESULT,Extract)(THIS_ LPCSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE;
2981 HRESULT CALLBACK IExtractIconA_GetIconLocation_Proxy(
2982 IExtractIconA* This,
2983 UINT uFlags,
2984 LPSTR szIconFile,
2985 UINT cchMax,
2986 INT* piIndex,
2987 UINT* pwFlags);
2988 void __RPC_STUB IExtractIconA_GetIconLocation_Stub(
2989 struct IRpcStubBuffer* This,
2990 struct IRpcChannelBuffer* pRpcChannelBuffer,
2991 PRPC_MESSAGE pRpcMessage,
2992 DWORD* pdwStubPhase);
2993 HRESULT CALLBACK IExtractIconA_Extract_Proxy(
2994 IExtractIconA* This,
2995 LPCSTR pszFile,
2996 UINT nIconIndex,
2997 HICON* phiconLarge,
2998 HICON* phiconSmall,
2999 UINT nIconSize);
3000 void __RPC_STUB IExtractIconA_Extract_Stub(
3001 struct IRpcStubBuffer* This,
3002 struct IRpcChannelBuffer* pRpcChannelBuffer,
3003 PRPC_MESSAGE pRpcMessage,
3004 DWORD* pdwStubPhase);
3006 #endif /* __IExtractIconA_INTERFACE_DEFINED__ */
3008 #ifndef __IExtractIconW_FWD_DEFINED__
3009 #define __IExtractIconW_FWD_DEFINED__
3010 typedef struct IExtractIconW IExtractIconW;
3011 #endif
3013 typedef IExtractIconW *LPEXTRACTICONW;
3015 /*****************************************************************************
3016 * IExtractIconW interface
3018 #ifndef __IExtractIconW_INTERFACE_DEFINED__
3019 #define __IExtractIconW_INTERFACE_DEFINED__
3021 DEFINE_GUID(IID_IExtractIconW, 0x000214fa, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3022 #if defined(__cplusplus) && !defined(CINTERFACE)
3023 struct IExtractIconW : public IUnknown
3025 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
3026 UINT uFlags,
3027 LPWSTR szIconFile,
3028 UINT cchMax,
3029 INT* piIndex,
3030 UINT* pwFlags) = 0;
3032 virtual HRESULT STDMETHODCALLTYPE Extract(
3033 LPCWSTR pszFile,
3034 UINT nIconIndex,
3035 HICON* phiconLarge,
3036 HICON* phiconSmall,
3037 UINT nIconSize) = 0;
3040 #else
3041 typedef struct IExtractIconWVtbl IExtractIconWVtbl;
3042 struct IExtractIconW {
3043 const IExtractIconWVtbl* lpVtbl;
3045 struct IExtractIconWVtbl {
3046 ICOM_MSVTABLE_COMPAT_FIELDS
3048 /*** IUnknown methods ***/
3049 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3050 IExtractIconW* This,
3051 REFIID riid,
3052 void** ppvObject);
3054 ULONG (STDMETHODCALLTYPE *AddRef)(
3055 IExtractIconW* This);
3057 ULONG (STDMETHODCALLTYPE *Release)(
3058 IExtractIconW* This);
3060 /*** IExtractIconW methods ***/
3061 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
3062 IExtractIconW* This,
3063 UINT uFlags,
3064 LPWSTR szIconFile,
3065 UINT cchMax,
3066 INT* piIndex,
3067 UINT* pwFlags);
3069 HRESULT (STDMETHODCALLTYPE *Extract)(
3070 IExtractIconW* This,
3071 LPCWSTR pszFile,
3072 UINT nIconIndex,
3073 HICON* phiconLarge,
3074 HICON* phiconSmall,
3075 UINT nIconSize);
3079 /*** IUnknown methods ***/
3080 #define IExtractIconW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3081 #define IExtractIconW_AddRef(p) (p)->lpVtbl->AddRef(p)
3082 #define IExtractIconW_Release(p) (p)->lpVtbl->Release(p)
3083 /*** IExtractIconW methods ***/
3084 #define IExtractIconW_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
3085 #define IExtractIconW_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
3087 #endif
3089 #define IExtractIconW_METHODS \
3090 ICOM_MSVTABLE_COMPAT_FIELDS \
3091 /*** IUnknown methods ***/ \
3092 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3093 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3094 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3095 /*** IExtractIconW methods ***/ \
3096 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPWSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \
3097 STDMETHOD_(HRESULT,Extract)(THIS_ LPCWSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE;
3099 HRESULT CALLBACK IExtractIconW_GetIconLocation_Proxy(
3100 IExtractIconW* This,
3101 UINT uFlags,
3102 LPWSTR szIconFile,
3103 UINT cchMax,
3104 INT* piIndex,
3105 UINT* pwFlags);
3106 void __RPC_STUB IExtractIconW_GetIconLocation_Stub(
3107 struct IRpcStubBuffer* This,
3108 struct IRpcChannelBuffer* pRpcChannelBuffer,
3109 PRPC_MESSAGE pRpcMessage,
3110 DWORD* pdwStubPhase);
3111 HRESULT CALLBACK IExtractIconW_Extract_Proxy(
3112 IExtractIconW* This,
3113 LPCWSTR pszFile,
3114 UINT nIconIndex,
3115 HICON* phiconLarge,
3116 HICON* phiconSmall,
3117 UINT nIconSize);
3118 void __RPC_STUB IExtractIconW_Extract_Stub(
3119 struct IRpcStubBuffer* This,
3120 struct IRpcChannelBuffer* pRpcChannelBuffer,
3121 PRPC_MESSAGE pRpcMessage,
3122 DWORD* pdwStubPhase);
3124 #endif /* __IExtractIconW_INTERFACE_DEFINED__ */
3126 #define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)
3127 #define IExtractIcon WINELIB_NAME_AW(IExtractIcon)
3128 #ifndef __ICommDlgBrowser_FWD_DEFINED__
3129 #define __ICommDlgBrowser_FWD_DEFINED__
3130 typedef struct ICommDlgBrowser ICommDlgBrowser;
3131 #endif
3133 #define CDBOSC_SETFOCUS 0x00000000
3134 #define CDBOSC_KILLFOCUS 0x00000001
3135 #define CDBOSC_SELCHANGE 0x00000002
3136 #define CDBOSC_RENAME 0x00000003
3137 #define CDBOSC_STATECHANGE 0x00000004
3138 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
3140 /*****************************************************************************
3141 * ICommDlgBrowser interface
3143 #ifndef __ICommDlgBrowser_INTERFACE_DEFINED__
3144 #define __ICommDlgBrowser_INTERFACE_DEFINED__
3146 DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3147 #if defined(__cplusplus) && !defined(CINTERFACE)
3148 struct ICommDlgBrowser : public IUnknown
3150 virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand(
3151 IShellView* shv) = 0;
3153 virtual HRESULT STDMETHODCALLTYPE OnStateChange(
3154 IShellView* shv,
3155 ULONG uChange) = 0;
3157 virtual HRESULT STDMETHODCALLTYPE IncludeObject(
3158 IShellView* shv,
3159 LPCITEMIDLIST pidl) = 0;
3162 #else
3163 typedef struct ICommDlgBrowserVtbl ICommDlgBrowserVtbl;
3164 struct ICommDlgBrowser {
3165 const ICommDlgBrowserVtbl* lpVtbl;
3167 struct ICommDlgBrowserVtbl {
3168 ICOM_MSVTABLE_COMPAT_FIELDS
3170 /*** IUnknown methods ***/
3171 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3172 ICommDlgBrowser* This,
3173 REFIID riid,
3174 void** ppvObject);
3176 ULONG (STDMETHODCALLTYPE *AddRef)(
3177 ICommDlgBrowser* This);
3179 ULONG (STDMETHODCALLTYPE *Release)(
3180 ICommDlgBrowser* This);
3182 /*** ICommDlgBrowser methods ***/
3183 HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
3184 ICommDlgBrowser* This,
3185 IShellView* shv);
3187 HRESULT (STDMETHODCALLTYPE *OnStateChange)(
3188 ICommDlgBrowser* This,
3189 IShellView* shv,
3190 ULONG uChange);
3192 HRESULT (STDMETHODCALLTYPE *IncludeObject)(
3193 ICommDlgBrowser* This,
3194 IShellView* shv,
3195 LPCITEMIDLIST pidl);
3199 /*** IUnknown methods ***/
3200 #define ICommDlgBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3201 #define ICommDlgBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
3202 #define ICommDlgBrowser_Release(p) (p)->lpVtbl->Release(p)
3203 /*** ICommDlgBrowser methods ***/
3204 #define ICommDlgBrowser_OnDefaultCommand(p,a) (p)->lpVtbl->OnDefaultCommand(p,a)
3205 #define ICommDlgBrowser_OnStateChange(p,a,b) (p)->lpVtbl->OnStateChange(p,a,b)
3206 #define ICommDlgBrowser_IncludeObject(p,a,b) (p)->lpVtbl->IncludeObject(p,a,b)
3208 #endif
3210 #define ICommDlgBrowser_METHODS \
3211 ICOM_MSVTABLE_COMPAT_FIELDS \
3212 /*** IUnknown methods ***/ \
3213 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3214 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3215 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3216 /*** ICommDlgBrowser methods ***/ \
3217 STDMETHOD_(HRESULT,OnDefaultCommand)(THIS_ IShellView* shv) PURE; \
3218 STDMETHOD_(HRESULT,OnStateChange)(THIS_ IShellView* shv, ULONG uChange) PURE; \
3219 STDMETHOD_(HRESULT,IncludeObject)(THIS_ IShellView* shv, LPCITEMIDLIST pidl) PURE;
3221 HRESULT CALLBACK ICommDlgBrowser_OnDefaultCommand_Proxy(
3222 ICommDlgBrowser* This,
3223 IShellView* shv);
3224 void __RPC_STUB ICommDlgBrowser_OnDefaultCommand_Stub(
3225 struct IRpcStubBuffer* This,
3226 struct IRpcChannelBuffer* pRpcChannelBuffer,
3227 PRPC_MESSAGE pRpcMessage,
3228 DWORD* pdwStubPhase);
3229 HRESULT CALLBACK ICommDlgBrowser_OnStateChange_Proxy(
3230 ICommDlgBrowser* This,
3231 IShellView* shv,
3232 ULONG uChange);
3233 void __RPC_STUB ICommDlgBrowser_OnStateChange_Stub(
3234 struct IRpcStubBuffer* This,
3235 struct IRpcChannelBuffer* pRpcChannelBuffer,
3236 PRPC_MESSAGE pRpcMessage,
3237 DWORD* pdwStubPhase);
3238 HRESULT CALLBACK ICommDlgBrowser_IncludeObject_Proxy(
3239 ICommDlgBrowser* This,
3240 IShellView* shv,
3241 LPCITEMIDLIST pidl);
3242 void __RPC_STUB ICommDlgBrowser_IncludeObject_Stub(
3243 struct IRpcStubBuffer* This,
3244 struct IRpcChannelBuffer* pRpcChannelBuffer,
3245 PRPC_MESSAGE pRpcMessage,
3246 DWORD* pdwStubPhase);
3248 #endif /* __ICommDlgBrowser_INTERFACE_DEFINED__ */
3250 #ifndef __IDockingWindowFrame_FWD_DEFINED__
3251 #define __IDockingWindowFrame_FWD_DEFINED__
3252 typedef struct IDockingWindowFrame IDockingWindowFrame;
3253 #endif
3255 #define DWFRF_NORMAL 0x0000
3256 #define DWFRF_DELETECONFIGDATA 0x0001
3257 #define DWFAF_HIDDEN 0x0001
3258 /*****************************************************************************
3259 * IDockingWindowFrame interface
3261 #ifndef __IDockingWindowFrame_INTERFACE_DEFINED__
3262 #define __IDockingWindowFrame_INTERFACE_DEFINED__
3264 DEFINE_GUID(IID_IDockingWindowFrame, 0x47d2657a, 0x7b27, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
3265 #if defined(__cplusplus) && !defined(CINTERFACE)
3266 struct IDockingWindowFrame : public IOleWindow
3268 virtual HRESULT STDMETHODCALLTYPE AddToolbar(
3269 IUnknown* punkSrc,
3270 LPCWSTR pwszItem,
3271 DWORD dwAddFlags) = 0;
3273 virtual HRESULT STDMETHODCALLTYPE RemoveToolbar(
3274 IUnknown* punkSrc,
3275 DWORD dwRemoveFlags) = 0;
3277 virtual HRESULT STDMETHODCALLTYPE FindToolbar(
3278 LPCWSTR pwszItem,
3279 REFIID riid,
3280 LPVOID* ppvObj) = 0;
3283 #else
3284 typedef struct IDockingWindowFrameVtbl IDockingWindowFrameVtbl;
3285 struct IDockingWindowFrame {
3286 const IDockingWindowFrameVtbl* lpVtbl;
3288 struct IDockingWindowFrameVtbl {
3289 ICOM_MSVTABLE_COMPAT_FIELDS
3291 /*** IUnknown methods ***/
3292 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3293 IDockingWindowFrame* This,
3294 REFIID riid,
3295 void** ppvObject);
3297 ULONG (STDMETHODCALLTYPE *AddRef)(
3298 IDockingWindowFrame* This);
3300 ULONG (STDMETHODCALLTYPE *Release)(
3301 IDockingWindowFrame* This);
3303 /*** IOleWindow methods ***/
3304 HRESULT (STDMETHODCALLTYPE *GetWindow)(
3305 IDockingWindowFrame* This,
3306 HWND* phwnd);
3308 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
3309 IDockingWindowFrame* This,
3310 BOOL fEnterMode);
3312 /*** IDockingWindowFrame methods ***/
3313 HRESULT (STDMETHODCALLTYPE *AddToolbar)(
3314 IDockingWindowFrame* This,
3315 IUnknown* punkSrc,
3316 LPCWSTR pwszItem,
3317 DWORD dwAddFlags);
3319 HRESULT (STDMETHODCALLTYPE *RemoveToolbar)(
3320 IDockingWindowFrame* This,
3321 IUnknown* punkSrc,
3322 DWORD dwRemoveFlags);
3324 HRESULT (STDMETHODCALLTYPE *FindToolbar)(
3325 IDockingWindowFrame* This,
3326 LPCWSTR pwszItem,
3327 REFIID riid,
3328 LPVOID* ppvObj);
3332 /*** IUnknown methods ***/
3333 #define IDockingWindowFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3334 #define IDockingWindowFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
3335 #define IDockingWindowFrame_Release(p) (p)->lpVtbl->Release(p)
3336 /*** IOleWindow methods ***/
3337 #define IDockingWindowFrame_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
3338 #define IDockingWindowFrame_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
3339 /*** IDockingWindowFrame methods ***/
3340 #define IDockingWindowFrame_AddToolbar(p,a,b,c) (p)->lpVtbl->AddToolbar(p,a,b,c)
3341 #define IDockingWindowFrame_RemoveToolbar(p,a,b) (p)->lpVtbl->RemoveToolbar(p,a,b)
3342 #define IDockingWindowFrame_FindToolbar(p,a,b,c) (p)->lpVtbl->FindToolbar(p,a,b,c)
3344 #endif
3346 #define IDockingWindowFrame_METHODS \
3347 ICOM_MSVTABLE_COMPAT_FIELDS \
3348 /*** IUnknown methods ***/ \
3349 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3350 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3351 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3352 /*** IOleWindow methods ***/ \
3353 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
3354 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
3355 /*** IDockingWindowFrame methods ***/ \
3356 STDMETHOD_(HRESULT,AddToolbar)(THIS_ IUnknown* punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags) PURE; \
3357 STDMETHOD_(HRESULT,RemoveToolbar)(THIS_ IUnknown* punkSrc, DWORD dwRemoveFlags) PURE; \
3358 STDMETHOD_(HRESULT,FindToolbar)(THIS_ LPCWSTR pwszItem, REFIID riid, LPVOID* ppvObj) PURE;
3360 HRESULT CALLBACK IDockingWindowFrame_AddToolbar_Proxy(
3361 IDockingWindowFrame* This,
3362 IUnknown* punkSrc,
3363 LPCWSTR pwszItem,
3364 DWORD dwAddFlags);
3365 void __RPC_STUB IDockingWindowFrame_AddToolbar_Stub(
3366 struct IRpcStubBuffer* This,
3367 struct IRpcChannelBuffer* pRpcChannelBuffer,
3368 PRPC_MESSAGE pRpcMessage,
3369 DWORD* pdwStubPhase);
3370 HRESULT CALLBACK IDockingWindowFrame_RemoveToolbar_Proxy(
3371 IDockingWindowFrame* This,
3372 IUnknown* punkSrc,
3373 DWORD dwRemoveFlags);
3374 void __RPC_STUB IDockingWindowFrame_RemoveToolbar_Stub(
3375 struct IRpcStubBuffer* This,
3376 struct IRpcChannelBuffer* pRpcChannelBuffer,
3377 PRPC_MESSAGE pRpcMessage,
3378 DWORD* pdwStubPhase);
3379 HRESULT CALLBACK IDockingWindowFrame_FindToolbar_Proxy(
3380 IDockingWindowFrame* This,
3381 LPCWSTR pwszItem,
3382 REFIID riid,
3383 LPVOID* ppvObj);
3384 void __RPC_STUB IDockingWindowFrame_FindToolbar_Stub(
3385 struct IRpcStubBuffer* This,
3386 struct IRpcChannelBuffer* pRpcChannelBuffer,
3387 PRPC_MESSAGE pRpcMessage,
3388 DWORD* pdwStubPhase);
3390 #endif /* __IDockingWindowFrame_INTERFACE_DEFINED__ */
3392 #ifndef __IDragSourceHelper_FWD_DEFINED__
3393 #define __IDragSourceHelper_FWD_DEFINED__
3394 typedef struct IDragSourceHelper IDragSourceHelper;
3395 #endif
3397 typedef struct {
3398 SIZE sizeDragImage;
3399 POINT ptOffset;
3400 HBITMAP hbmpDragImage;
3401 COLORREF crColorKey;
3402 } SHDRAGIMAGE, *LPSHDRAGIMAGE;
3404 /*****************************************************************************
3405 * IDragSourceHelper interface
3407 #ifndef __IDragSourceHelper_INTERFACE_DEFINED__
3408 #define __IDragSourceHelper_INTERFACE_DEFINED__
3410 DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
3411 #if defined(__cplusplus) && !defined(CINTERFACE)
3412 struct IDragSourceHelper : public IUnknown
3414 virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
3415 LPSHDRAGIMAGE pshdi,
3416 IDataObject* pDataObject) = 0;
3418 virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow(
3419 HWND hwnd,
3420 POINT* ppt,
3421 IDataObject* pDataObject) = 0;
3424 #else
3425 typedef struct IDragSourceHelperVtbl IDragSourceHelperVtbl;
3426 struct IDragSourceHelper {
3427 const IDragSourceHelperVtbl* lpVtbl;
3429 struct IDragSourceHelperVtbl {
3430 ICOM_MSVTABLE_COMPAT_FIELDS
3432 /*** IUnknown methods ***/
3433 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3434 IDragSourceHelper* This,
3435 REFIID riid,
3436 void** ppvObject);
3438 ULONG (STDMETHODCALLTYPE *AddRef)(
3439 IDragSourceHelper* This);
3441 ULONG (STDMETHODCALLTYPE *Release)(
3442 IDragSourceHelper* This);
3444 /*** IDragSourceHelper methods ***/
3445 HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
3446 IDragSourceHelper* This,
3447 LPSHDRAGIMAGE pshdi,
3448 IDataObject* pDataObject);
3450 HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
3451 IDragSourceHelper* This,
3452 HWND hwnd,
3453 POINT* ppt,
3454 IDataObject* pDataObject);
3458 /*** IUnknown methods ***/
3459 #define IDragSourceHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3460 #define IDragSourceHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3461 #define IDragSourceHelper_Release(p) (p)->lpVtbl->Release(p)
3462 /*** IDragSourceHelper methods ***/
3463 #define IDragSourceHelper_InitializeFromBitmap(p,a,b) (p)->lpVtbl->InitializeFromBitmap(p,a,b)
3464 #define IDragSourceHelper_InitializeFromWindow(p,a,b,c) (p)->lpVtbl->InitializeFromWindow(p,a,b,c)
3466 #endif
3468 #define IDragSourceHelper_METHODS \
3469 ICOM_MSVTABLE_COMPAT_FIELDS \
3470 /*** IUnknown methods ***/ \
3471 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3472 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3473 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3474 /*** IDragSourceHelper methods ***/ \
3475 STDMETHOD_(HRESULT,InitializeFromBitmap)(THIS_ LPSHDRAGIMAGE pshdi, IDataObject* pDataObject) PURE; \
3476 STDMETHOD_(HRESULT,InitializeFromWindow)(THIS_ HWND hwnd, POINT* ppt, IDataObject* pDataObject) PURE;
3478 HRESULT CALLBACK IDragSourceHelper_InitializeFromBitmap_Proxy(
3479 IDragSourceHelper* This,
3480 LPSHDRAGIMAGE pshdi,
3481 IDataObject* pDataObject);
3482 void __RPC_STUB IDragSourceHelper_InitializeFromBitmap_Stub(
3483 struct IRpcStubBuffer* This,
3484 struct IRpcChannelBuffer* pRpcChannelBuffer,
3485 PRPC_MESSAGE pRpcMessage,
3486 DWORD* pdwStubPhase);
3487 HRESULT CALLBACK IDragSourceHelper_InitializeFromWindow_Proxy(
3488 IDragSourceHelper* This,
3489 HWND hwnd,
3490 POINT* ppt,
3491 IDataObject* pDataObject);
3492 void __RPC_STUB IDragSourceHelper_InitializeFromWindow_Stub(
3493 struct IRpcStubBuffer* This,
3494 struct IRpcChannelBuffer* pRpcChannelBuffer,
3495 PRPC_MESSAGE pRpcMessage,
3496 DWORD* pdwStubPhase);
3498 #endif /* __IDragSourceHelper_INTERFACE_DEFINED__ */
3500 #ifndef __IDropTargetHelper_FWD_DEFINED__
3501 #define __IDropTargetHelper_FWD_DEFINED__
3502 typedef struct IDropTargetHelper IDropTargetHelper;
3503 #endif
3505 /*****************************************************************************
3506 * IDropTargetHelper interface
3508 #ifndef __IDropTargetHelper_INTERFACE_DEFINED__
3509 #define __IDropTargetHelper_INTERFACE_DEFINED__
3511 DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
3512 #if defined(__cplusplus) && !defined(CINTERFACE)
3513 struct IDropTargetHelper : public IUnknown
3515 virtual HRESULT STDMETHODCALLTYPE DragEnter(
3516 HWND hwndTarget,
3517 IDataObject* pDataObject,
3518 POINT* ppt,
3519 DWORD dwEffect) = 0;
3521 virtual HRESULT STDMETHODCALLTYPE DragLeave(
3522 ) = 0;
3524 virtual HRESULT STDMETHODCALLTYPE DragOver(
3525 POINT* ppt,
3526 DWORD dwEffect) = 0;
3528 virtual HRESULT STDMETHODCALLTYPE Drop(
3529 IDataObject* pDataObject,
3530 POINT* ppt,
3531 DWORD dwEffect) = 0;
3533 virtual HRESULT STDMETHODCALLTYPE Show(
3534 BOOL fShow) = 0;
3537 #else
3538 typedef struct IDropTargetHelperVtbl IDropTargetHelperVtbl;
3539 struct IDropTargetHelper {
3540 const IDropTargetHelperVtbl* lpVtbl;
3542 struct IDropTargetHelperVtbl {
3543 ICOM_MSVTABLE_COMPAT_FIELDS
3545 /*** IUnknown methods ***/
3546 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3547 IDropTargetHelper* This,
3548 REFIID riid,
3549 void** ppvObject);
3551 ULONG (STDMETHODCALLTYPE *AddRef)(
3552 IDropTargetHelper* This);
3554 ULONG (STDMETHODCALLTYPE *Release)(
3555 IDropTargetHelper* This);
3557 /*** IDropTargetHelper methods ***/
3558 HRESULT (STDMETHODCALLTYPE *DragEnter)(
3559 IDropTargetHelper* This,
3560 HWND hwndTarget,
3561 IDataObject* pDataObject,
3562 POINT* ppt,
3563 DWORD dwEffect);
3565 HRESULT (STDMETHODCALLTYPE *DragLeave)(
3566 IDropTargetHelper* This);
3568 HRESULT (STDMETHODCALLTYPE *DragOver)(
3569 IDropTargetHelper* This,
3570 POINT* ppt,
3571 DWORD dwEffect);
3573 HRESULT (STDMETHODCALLTYPE *Drop)(
3574 IDropTargetHelper* This,
3575 IDataObject* pDataObject,
3576 POINT* ppt,
3577 DWORD dwEffect);
3579 HRESULT (STDMETHODCALLTYPE *Show)(
3580 IDropTargetHelper* This,
3581 BOOL fShow);
3585 /*** IUnknown methods ***/
3586 #define IDropTargetHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3587 #define IDropTargetHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3588 #define IDropTargetHelper_Release(p) (p)->lpVtbl->Release(p)
3589 /*** IDropTargetHelper methods ***/
3590 #define IDropTargetHelper_DragEnter(p,a,b,c,d) (p)->lpVtbl->DragEnter(p,a,b,c,d)
3591 #define IDropTargetHelper_DragLeave(p) (p)->lpVtbl->DragLeave(p)
3592 #define IDropTargetHelper_DragOver(p,a,b) (p)->lpVtbl->DragOver(p,a,b)
3593 #define IDropTargetHelper_Drop(p,a,b,c) (p)->lpVtbl->Drop(p,a,b,c)
3594 #define IDropTargetHelper_Show(p,a) (p)->lpVtbl->Show(p,a)
3596 #endif
3598 #define IDropTargetHelper_METHODS \
3599 ICOM_MSVTABLE_COMPAT_FIELDS \
3600 /*** IUnknown methods ***/ \
3601 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3602 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3603 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3604 /*** IDropTargetHelper methods ***/ \
3605 STDMETHOD_(HRESULT,DragEnter)(THIS_ HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \
3606 STDMETHOD_(HRESULT,DragLeave)(THIS) PURE; \
3607 STDMETHOD_(HRESULT,DragOver)(THIS_ POINT* ppt, DWORD dwEffect) PURE; \
3608 STDMETHOD_(HRESULT,Drop)(THIS_ IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \
3609 STDMETHOD_(HRESULT,Show)(THIS_ BOOL fShow) PURE;
3611 HRESULT CALLBACK IDropTargetHelper_DragEnter_Proxy(
3612 IDropTargetHelper* This,
3613 HWND hwndTarget,
3614 IDataObject* pDataObject,
3615 POINT* ppt,
3616 DWORD dwEffect);
3617 void __RPC_STUB IDropTargetHelper_DragEnter_Stub(
3618 struct IRpcStubBuffer* This,
3619 struct IRpcChannelBuffer* pRpcChannelBuffer,
3620 PRPC_MESSAGE pRpcMessage,
3621 DWORD* pdwStubPhase);
3622 HRESULT CALLBACK IDropTargetHelper_DragLeave_Proxy(
3623 IDropTargetHelper* This);
3624 void __RPC_STUB IDropTargetHelper_DragLeave_Stub(
3625 struct IRpcStubBuffer* This,
3626 struct IRpcChannelBuffer* pRpcChannelBuffer,
3627 PRPC_MESSAGE pRpcMessage,
3628 DWORD* pdwStubPhase);
3629 HRESULT CALLBACK IDropTargetHelper_DragOver_Proxy(
3630 IDropTargetHelper* This,
3631 POINT* ppt,
3632 DWORD dwEffect);
3633 void __RPC_STUB IDropTargetHelper_DragOver_Stub(
3634 struct IRpcStubBuffer* This,
3635 struct IRpcChannelBuffer* pRpcChannelBuffer,
3636 PRPC_MESSAGE pRpcMessage,
3637 DWORD* pdwStubPhase);
3638 HRESULT CALLBACK IDropTargetHelper_Drop_Proxy(
3639 IDropTargetHelper* This,
3640 IDataObject* pDataObject,
3641 POINT* ppt,
3642 DWORD dwEffect);
3643 void __RPC_STUB IDropTargetHelper_Drop_Stub(
3644 struct IRpcStubBuffer* This,
3645 struct IRpcChannelBuffer* pRpcChannelBuffer,
3646 PRPC_MESSAGE pRpcMessage,
3647 DWORD* pdwStubPhase);
3648 HRESULT CALLBACK IDropTargetHelper_Show_Proxy(
3649 IDropTargetHelper* This,
3650 BOOL fShow);
3651 void __RPC_STUB IDropTargetHelper_Show_Stub(
3652 struct IRpcStubBuffer* This,
3653 struct IRpcChannelBuffer* pRpcChannelBuffer,
3654 PRPC_MESSAGE pRpcMessage,
3655 DWORD* pdwStubPhase);
3657 #endif /* __IDropTargetHelper_INTERFACE_DEFINED__ */
3659 #ifndef __IContextMenu_FWD_DEFINED__
3660 #define __IContextMenu_FWD_DEFINED__
3661 typedef struct IContextMenu IContextMenu;
3662 #endif
3664 #define CMF_NORMAL 0x00000000
3665 #define CMF_DEFAULTONLY 0x00000001
3666 #define CMF_VERBSONLY 0x00000002
3667 #define CMF_EXPLORE 0x00000004
3668 #define CMF_NOVERBS 0x00000008
3669 #define CMF_CANRENAME 0x00000010
3670 #define CMF_NODEFAULT 0x00000020
3671 #define CMF_INCLUDESTATIC 0x00000040
3672 #define CMF_EXTENDEDVERBS 0x00000100
3673 #define CMF_RESERVED 0xffff0000
3674 #define GCS_VERBA 0x00000000
3675 #define GCS_HELPTEXTA 0x00000001
3676 #define GCS_VALIDATEA 0x00000002
3677 #define GCS_VERBW 0x00000004
3678 #define GCS_HELPTEXTW 0x00000005
3679 #define GCS_VALIDATEW 0x00000006
3680 #define GCS_UNICODE 0x00000004
3681 #define GCS_VERB WINELIB_NAME_AW(GCS_VERB)
3682 #define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)
3683 #define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)
3684 #define CMDSTR_NEWFOLDERA "NewFolder"
3685 #define CMDSTR_VIEWLISTA "ViewList"
3686 #define CMDSTR_VIEWDETAILSA "ViewDetails"
3687 #if defined(__GNUC__)
3688 # define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }
3689 # define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }
3690 # define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }
3691 #elif defined(_MSC_VER)
3692 # define CMDSTR_NEWFOLDERW L"NewFolder"
3693 # define CMDSTR_VIEWLISTW L"ViewList"
3694 # define CMDSTR_VIEWDETAILSW L"ViewDetails"
3695 #else
3696 static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};
3697 static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};
3698 static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};
3699 #endif
3700 #define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)
3701 #define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)
3702 #define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)
3703 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
3704 #define CMIC_MASK_ICON SEE_MASK_ICON
3705 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
3706 #define CMIC_MASK_UNICODE SEE_MASK_UNICODE
3707 #define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE
3708 #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
3709 #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
3710 #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
3711 #define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK
3712 #define CMIC_MASK_SHIFT_DOWN 0x10000000
3713 #define CMIC_MASK_PTINVOKE 0x20000000
3714 #define CMIC_MASK_CONTROL_DOWN 0x40000000
3715 #define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE
3716 #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS
3717 typedef IContextMenu *LPCONTEXTMENU;
3719 typedef struct tagCMINVOKECOMMANDINFO {
3720 DWORD cbSize;
3721 DWORD fMask;
3722 HWND hwnd;
3723 LPCSTR lpVerb;
3724 LPCSTR lpParameters;
3725 LPCSTR lpDirectory;
3726 INT nShow;
3727 DWORD dwHotKey;
3728 HANDLE hIcon;
3729 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
3731 typedef struct tagCMInvokeCommandInfoEx {
3732 DWORD cbSize;
3733 DWORD fMask;
3734 HWND hwnd;
3735 LPCSTR lpVerb;
3736 LPCSTR lpParameters;
3737 LPCSTR lpDirectory;
3738 INT nShow;
3739 DWORD dwHotKey;
3740 HANDLE hIcon;
3741 LPCSTR lpTitle;
3742 LPCWSTR lpVerbW;
3743 LPCWSTR lpParametersW;
3744 LPCWSTR lpDirectoryW;
3745 LPCWSTR lpTitleW;
3746 POINT ptInvoke;
3747 } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX;
3749 /*****************************************************************************
3750 * IContextMenu interface
3752 #ifndef __IContextMenu_INTERFACE_DEFINED__
3753 #define __IContextMenu_INTERFACE_DEFINED__
3755 DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3756 #if defined(__cplusplus) && !defined(CINTERFACE)
3757 struct IContextMenu : public IUnknown
3759 virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
3760 HMENU hmenu,
3761 UINT indexMenu,
3762 UINT idCmdFirst,
3763 UINT idCmdLast,
3764 UINT uFlags) = 0;
3766 virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
3767 LPCMINVOKECOMMANDINFO lpici) = 0;
3769 virtual HRESULT STDMETHODCALLTYPE GetCommandString(
3770 UINT idCmd,
3771 UINT uType,
3772 UINT* pwReserved,
3773 LPSTR pszName,
3774 UINT cchMax) = 0;
3777 #else
3778 typedef struct IContextMenuVtbl IContextMenuVtbl;
3779 struct IContextMenu {
3780 const IContextMenuVtbl* lpVtbl;
3782 struct IContextMenuVtbl {
3783 ICOM_MSVTABLE_COMPAT_FIELDS
3785 /*** IUnknown methods ***/
3786 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3787 IContextMenu* This,
3788 REFIID riid,
3789 void** ppvObject);
3791 ULONG (STDMETHODCALLTYPE *AddRef)(
3792 IContextMenu* This);
3794 ULONG (STDMETHODCALLTYPE *Release)(
3795 IContextMenu* This);
3797 /*** IContextMenu methods ***/
3798 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3799 IContextMenu* This,
3800 HMENU hmenu,
3801 UINT indexMenu,
3802 UINT idCmdFirst,
3803 UINT idCmdLast,
3804 UINT uFlags);
3806 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3807 IContextMenu* This,
3808 LPCMINVOKECOMMANDINFO lpici);
3810 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3811 IContextMenu* This,
3812 UINT idCmd,
3813 UINT uType,
3814 UINT* pwReserved,
3815 LPSTR pszName,
3816 UINT cchMax);
3820 /*** IUnknown methods ***/
3821 #define IContextMenu_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3822 #define IContextMenu_AddRef(p) (p)->lpVtbl->AddRef(p)
3823 #define IContextMenu_Release(p) (p)->lpVtbl->Release(p)
3824 /*** IContextMenu methods ***/
3825 #define IContextMenu_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3826 #define IContextMenu_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3827 #define IContextMenu_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3829 #endif
3831 #define IContextMenu_METHODS \
3832 ICOM_MSVTABLE_COMPAT_FIELDS \
3833 /*** IUnknown methods ***/ \
3834 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3835 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3836 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3837 /*** IContextMenu methods ***/ \
3838 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
3839 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
3840 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE;
3842 HRESULT CALLBACK IContextMenu_QueryContextMenu_Proxy(
3843 IContextMenu* This,
3844 HMENU hmenu,
3845 UINT indexMenu,
3846 UINT idCmdFirst,
3847 UINT idCmdLast,
3848 UINT uFlags);
3849 void __RPC_STUB IContextMenu_QueryContextMenu_Stub(
3850 struct IRpcStubBuffer* This,
3851 struct IRpcChannelBuffer* pRpcChannelBuffer,
3852 PRPC_MESSAGE pRpcMessage,
3853 DWORD* pdwStubPhase);
3854 HRESULT CALLBACK IContextMenu_InvokeCommand_Proxy(
3855 IContextMenu* This,
3856 LPCMINVOKECOMMANDINFO lpici);
3857 void __RPC_STUB IContextMenu_InvokeCommand_Stub(
3858 struct IRpcStubBuffer* This,
3859 struct IRpcChannelBuffer* pRpcChannelBuffer,
3860 PRPC_MESSAGE pRpcMessage,
3861 DWORD* pdwStubPhase);
3862 HRESULT CALLBACK IContextMenu_GetCommandString_Proxy(
3863 IContextMenu* This,
3864 UINT idCmd,
3865 UINT uType,
3866 UINT* pwReserved,
3867 LPSTR pszName,
3868 UINT cchMax);
3869 void __RPC_STUB IContextMenu_GetCommandString_Stub(
3870 struct IRpcStubBuffer* This,
3871 struct IRpcChannelBuffer* pRpcChannelBuffer,
3872 PRPC_MESSAGE pRpcMessage,
3873 DWORD* pdwStubPhase);
3875 #endif /* __IContextMenu_INTERFACE_DEFINED__ */
3877 #ifndef __IContextMenu2_FWD_DEFINED__
3878 #define __IContextMenu2_FWD_DEFINED__
3879 typedef struct IContextMenu2 IContextMenu2;
3880 #endif
3882 typedef IContextMenu2 *LPCONTEXTMENU2;
3884 /*****************************************************************************
3885 * IContextMenu2 interface
3887 #ifndef __IContextMenu2_INTERFACE_DEFINED__
3888 #define __IContextMenu2_INTERFACE_DEFINED__
3890 DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3891 #if defined(__cplusplus) && !defined(CINTERFACE)
3892 struct IContextMenu2 : public IContextMenu
3894 virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(
3895 UINT uMsg,
3896 WPARAM wParam,
3897 LPARAM lParam) = 0;
3900 #else
3901 typedef struct IContextMenu2Vtbl IContextMenu2Vtbl;
3902 struct IContextMenu2 {
3903 const IContextMenu2Vtbl* lpVtbl;
3905 struct IContextMenu2Vtbl {
3906 ICOM_MSVTABLE_COMPAT_FIELDS
3908 /*** IUnknown methods ***/
3909 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3910 IContextMenu2* This,
3911 REFIID riid,
3912 void** ppvObject);
3914 ULONG (STDMETHODCALLTYPE *AddRef)(
3915 IContextMenu2* This);
3917 ULONG (STDMETHODCALLTYPE *Release)(
3918 IContextMenu2* This);
3920 /*** IContextMenu methods ***/
3921 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3922 IContextMenu2* This,
3923 HMENU hmenu,
3924 UINT indexMenu,
3925 UINT idCmdFirst,
3926 UINT idCmdLast,
3927 UINT uFlags);
3929 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3930 IContextMenu2* This,
3931 LPCMINVOKECOMMANDINFO lpici);
3933 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3934 IContextMenu2* This,
3935 UINT idCmd,
3936 UINT uType,
3937 UINT* pwReserved,
3938 LPSTR pszName,
3939 UINT cchMax);
3941 /*** IContextMenu2 methods ***/
3942 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
3943 IContextMenu2* This,
3944 UINT uMsg,
3945 WPARAM wParam,
3946 LPARAM lParam);
3950 /*** IUnknown methods ***/
3951 #define IContextMenu2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3952 #define IContextMenu2_AddRef(p) (p)->lpVtbl->AddRef(p)
3953 #define IContextMenu2_Release(p) (p)->lpVtbl->Release(p)
3954 /*** IContextMenu methods ***/
3955 #define IContextMenu2_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3956 #define IContextMenu2_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3957 #define IContextMenu2_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3958 /*** IContextMenu2 methods ***/
3959 #define IContextMenu2_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
3961 #endif
3963 #define IContextMenu2_METHODS \
3964 ICOM_MSVTABLE_COMPAT_FIELDS \
3965 /*** IUnknown methods ***/ \
3966 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3967 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3968 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3969 /*** IContextMenu methods ***/ \
3970 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
3971 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
3972 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \
3973 /*** IContextMenu2 methods ***/ \
3974 STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE;
3976 HRESULT CALLBACK IContextMenu2_HandleMenuMsg_Proxy(
3977 IContextMenu2* This,
3978 UINT uMsg,
3979 WPARAM wParam,
3980 LPARAM lParam);
3981 void __RPC_STUB IContextMenu2_HandleMenuMsg_Stub(
3982 struct IRpcStubBuffer* This,
3983 struct IRpcChannelBuffer* pRpcChannelBuffer,
3984 PRPC_MESSAGE pRpcMessage,
3985 DWORD* pdwStubPhase);
3987 #endif /* __IContextMenu2_INTERFACE_DEFINED__ */
3989 #ifndef __IContextMenu3_FWD_DEFINED__
3990 #define __IContextMenu3_FWD_DEFINED__
3991 typedef struct IContextMenu3 IContextMenu3;
3992 #endif
3994 typedef IContextMenu3 *LPCONTEXTMENU3;
3996 /*****************************************************************************
3997 * IContextMenu3 interface
3999 #ifndef __IContextMenu3_INTERFACE_DEFINED__
4000 #define __IContextMenu3_INTERFACE_DEFINED__
4002 DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19);
4003 #if defined(__cplusplus) && !defined(CINTERFACE)
4004 struct IContextMenu3 : public IContextMenu2
4006 virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(
4007 UINT uMsg,
4008 WPARAM wParam,
4009 LPARAM lParam,
4010 LRESULT* plResult) = 0;
4013 #else
4014 typedef struct IContextMenu3Vtbl IContextMenu3Vtbl;
4015 struct IContextMenu3 {
4016 const IContextMenu3Vtbl* lpVtbl;
4018 struct IContextMenu3Vtbl {
4019 ICOM_MSVTABLE_COMPAT_FIELDS
4021 /*** IUnknown methods ***/
4022 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4023 IContextMenu3* This,
4024 REFIID riid,
4025 void** ppvObject);
4027 ULONG (STDMETHODCALLTYPE *AddRef)(
4028 IContextMenu3* This);
4030 ULONG (STDMETHODCALLTYPE *Release)(
4031 IContextMenu3* This);
4033 /*** IContextMenu methods ***/
4034 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
4035 IContextMenu3* This,
4036 HMENU hmenu,
4037 UINT indexMenu,
4038 UINT idCmdFirst,
4039 UINT idCmdLast,
4040 UINT uFlags);
4042 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
4043 IContextMenu3* This,
4044 LPCMINVOKECOMMANDINFO lpici);
4046 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
4047 IContextMenu3* This,
4048 UINT idCmd,
4049 UINT uType,
4050 UINT* pwReserved,
4051 LPSTR pszName,
4052 UINT cchMax);
4054 /*** IContextMenu2 methods ***/
4055 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
4056 IContextMenu3* This,
4057 UINT uMsg,
4058 WPARAM wParam,
4059 LPARAM lParam);
4061 /*** IContextMenu3 methods ***/
4062 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
4063 IContextMenu3* This,
4064 UINT uMsg,
4065 WPARAM wParam,
4066 LPARAM lParam,
4067 LRESULT* plResult);
4071 /*** IUnknown methods ***/
4072 #define IContextMenu3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4073 #define IContextMenu3_AddRef(p) (p)->lpVtbl->AddRef(p)
4074 #define IContextMenu3_Release(p) (p)->lpVtbl->Release(p)
4075 /*** IContextMenu methods ***/
4076 #define IContextMenu3_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
4077 #define IContextMenu3_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
4078 #define IContextMenu3_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
4079 /*** IContextMenu2 methods ***/
4080 #define IContextMenu3_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
4081 /*** IContextMenu3 methods ***/
4082 #define IContextMenu3_HandleMenuMsg2(p,a,b,c,d) (p)->lpVtbl->HandleMenuMsg2(p,a,b,c,d)
4084 #endif
4086 #define IContextMenu3_METHODS \
4087 ICOM_MSVTABLE_COMPAT_FIELDS \
4088 /*** IUnknown methods ***/ \
4089 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4090 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4091 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4092 /*** IContextMenu methods ***/ \
4093 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
4094 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
4095 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \
4096 /*** IContextMenu2 methods ***/ \
4097 STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE; \
4098 /*** IContextMenu3 methods ***/ \
4099 STDMETHOD_(HRESULT,HandleMenuMsg2)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* plResult) PURE;
4101 HRESULT CALLBACK IContextMenu3_HandleMenuMsg2_Proxy(
4102 IContextMenu3* This,
4103 UINT uMsg,
4104 WPARAM wParam,
4105 LPARAM lParam,
4106 LRESULT* plResult);
4107 void __RPC_STUB IContextMenu3_HandleMenuMsg2_Stub(
4108 struct IRpcStubBuffer* This,
4109 struct IRpcChannelBuffer* pRpcChannelBuffer,
4110 PRPC_MESSAGE pRpcMessage,
4111 DWORD* pdwStubPhase);
4113 #endif /* __IContextMenu3_INTERFACE_DEFINED__ */
4115 #ifdef __cplusplus
4117 #endif
4118 #endif /* __WIDL_SHOBJIDL_H */