Get rid of the ICOM_MSVTABLE_COMPAT support, g++ no longer requires
[wine/multimedia.git] / include / shobjidl.h
blobd959e6e7a674d01b02cdb972c071c8caa034ab6a
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 BEGIN_INTERFACE
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);
67 END_INTERFACE
70 #ifdef COBJMACROS
71 /*** IUnknown methods ***/
72 #define IPersistFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
73 #define IPersistFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
74 #define IPersistFolder_Release(p) (p)->lpVtbl->Release(p)
75 /*** IPersist methods ***/
76 #define IPersistFolder_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
77 /*** IPersistFolder methods ***/
78 #define IPersistFolder_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
79 #endif
81 #endif
83 #define IPersistFolder_METHODS \
84 /*** IUnknown methods ***/ \
85 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
86 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
87 STDMETHOD_(ULONG,Release)(THIS) PURE; \
88 /*** IPersist methods ***/ \
89 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
90 /*** IPersistFolder methods ***/ \
91 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE;
93 HRESULT CALLBACK IPersistFolder_Initialize_Proxy(
94 IPersistFolder* This,
95 LPCITEMIDLIST pidl);
96 void __RPC_STUB IPersistFolder_Initialize_Stub(
97 struct IRpcStubBuffer* This,
98 struct IRpcChannelBuffer* pRpcChannelBuffer,
99 PRPC_MESSAGE pRpcMessage,
100 DWORD* pdwStubPhase);
102 #endif /* __IPersistFolder_INTERFACE_DEFINED__ */
104 #ifndef __IPersistFolder2_FWD_DEFINED__
105 #define __IPersistFolder2_FWD_DEFINED__
106 typedef struct IPersistFolder2 IPersistFolder2;
107 #endif
109 typedef IPersistFolder2 *LPPERSISTFOLDER2;
111 /*****************************************************************************
112 * IPersistFolder2 interface
114 #ifndef __IPersistFolder2_INTERFACE_DEFINED__
115 #define __IPersistFolder2_INTERFACE_DEFINED__
117 DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
118 #if defined(__cplusplus) && !defined(CINTERFACE)
119 struct IPersistFolder2 : public IPersistFolder
121 virtual HRESULT STDMETHODCALLTYPE GetCurFolder(
122 LPITEMIDLIST* ppidl) = 0;
125 #else
126 typedef struct IPersistFolder2Vtbl IPersistFolder2Vtbl;
127 struct IPersistFolder2 {
128 const IPersistFolder2Vtbl* lpVtbl;
130 struct IPersistFolder2Vtbl {
131 BEGIN_INTERFACE
133 /*** IUnknown methods ***/
134 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
135 IPersistFolder2* This,
136 REFIID riid,
137 void** ppvObject);
139 ULONG (STDMETHODCALLTYPE *AddRef)(
140 IPersistFolder2* This);
142 ULONG (STDMETHODCALLTYPE *Release)(
143 IPersistFolder2* This);
145 /*** IPersist methods ***/
146 HRESULT (STDMETHODCALLTYPE *GetClassID)(
147 IPersistFolder2* This,
148 CLSID* pClassID);
150 /*** IPersistFolder methods ***/
151 HRESULT (STDMETHODCALLTYPE *Initialize)(
152 IPersistFolder2* This,
153 LPCITEMIDLIST pidl);
155 /*** IPersistFolder2 methods ***/
156 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
157 IPersistFolder2* This,
158 LPITEMIDLIST* ppidl);
160 END_INTERFACE
163 #ifdef COBJMACROS
164 /*** IUnknown methods ***/
165 #define IPersistFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
166 #define IPersistFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
167 #define IPersistFolder2_Release(p) (p)->lpVtbl->Release(p)
168 /*** IPersist methods ***/
169 #define IPersistFolder2_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
170 /*** IPersistFolder methods ***/
171 #define IPersistFolder2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
172 /*** IPersistFolder2 methods ***/
173 #define IPersistFolder2_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
174 #endif
176 #endif
178 #define IPersistFolder2_METHODS \
179 /*** IUnknown methods ***/ \
180 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
181 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
182 STDMETHOD_(ULONG,Release)(THIS) PURE; \
183 /*** IPersist methods ***/ \
184 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
185 /*** IPersistFolder methods ***/ \
186 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \
187 /*** IPersistFolder2 methods ***/ \
188 STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE;
190 HRESULT CALLBACK IPersistFolder2_GetCurFolder_Proxy(
191 IPersistFolder2* This,
192 LPITEMIDLIST* ppidl);
193 void __RPC_STUB IPersistFolder2_GetCurFolder_Stub(
194 struct IRpcStubBuffer* This,
195 struct IRpcChannelBuffer* pRpcChannelBuffer,
196 PRPC_MESSAGE pRpcMessage,
197 DWORD* pdwStubPhase);
199 #endif /* __IPersistFolder2_INTERFACE_DEFINED__ */
201 #ifndef __IEnumIDList_FWD_DEFINED__
202 #define __IEnumIDList_FWD_DEFINED__
203 typedef struct IEnumIDList IEnumIDList;
204 #endif
206 typedef IEnumIDList *LPENUMIDLIST;
208 /*****************************************************************************
209 * IEnumIDList interface
211 #ifndef __IEnumIDList_INTERFACE_DEFINED__
212 #define __IEnumIDList_INTERFACE_DEFINED__
214 DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
215 #if defined(__cplusplus) && !defined(CINTERFACE)
216 struct IEnumIDList : public IUnknown
218 virtual HRESULT STDMETHODCALLTYPE Next(
219 ULONG celt,
220 LPITEMIDLIST* rgelt,
221 ULONG* pceltFetched) = 0;
223 virtual HRESULT STDMETHODCALLTYPE Skip(
224 ULONG celt) = 0;
226 virtual HRESULT STDMETHODCALLTYPE Reset(
227 ) = 0;
229 virtual HRESULT STDMETHODCALLTYPE Clone(
230 IEnumIDList** ppenum) = 0;
233 #else
234 typedef struct IEnumIDListVtbl IEnumIDListVtbl;
235 struct IEnumIDList {
236 const IEnumIDListVtbl* lpVtbl;
238 struct IEnumIDListVtbl {
239 BEGIN_INTERFACE
241 /*** IUnknown methods ***/
242 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
243 IEnumIDList* This,
244 REFIID riid,
245 void** ppvObject);
247 ULONG (STDMETHODCALLTYPE *AddRef)(
248 IEnumIDList* This);
250 ULONG (STDMETHODCALLTYPE *Release)(
251 IEnumIDList* This);
253 /*** IEnumIDList methods ***/
254 HRESULT (STDMETHODCALLTYPE *Next)(
255 IEnumIDList* This,
256 ULONG celt,
257 LPITEMIDLIST* rgelt,
258 ULONG* pceltFetched);
260 HRESULT (STDMETHODCALLTYPE *Skip)(
261 IEnumIDList* This,
262 ULONG celt);
264 HRESULT (STDMETHODCALLTYPE *Reset)(
265 IEnumIDList* This);
267 HRESULT (STDMETHODCALLTYPE *Clone)(
268 IEnumIDList* This,
269 IEnumIDList** ppenum);
271 END_INTERFACE
274 #ifdef COBJMACROS
275 /*** IUnknown methods ***/
276 #define IEnumIDList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
277 #define IEnumIDList_AddRef(p) (p)->lpVtbl->AddRef(p)
278 #define IEnumIDList_Release(p) (p)->lpVtbl->Release(p)
279 /*** IEnumIDList methods ***/
280 #define IEnumIDList_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
281 #define IEnumIDList_Skip(p,a) (p)->lpVtbl->Skip(p,a)
282 #define IEnumIDList_Reset(p) (p)->lpVtbl->Reset(p)
283 #define IEnumIDList_Clone(p,a) (p)->lpVtbl->Clone(p,a)
284 #endif
286 #endif
288 #define IEnumIDList_METHODS \
289 /*** IUnknown methods ***/ \
290 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
291 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
292 STDMETHOD_(ULONG,Release)(THIS) PURE; \
293 /*** IEnumIDList methods ***/ \
294 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, LPITEMIDLIST* rgelt, ULONG* pceltFetched) PURE; \
295 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
296 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
297 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumIDList** ppenum) PURE;
299 HRESULT CALLBACK IEnumIDList_Next_Proxy(
300 IEnumIDList* This,
301 ULONG celt,
302 LPITEMIDLIST* rgelt,
303 ULONG* pceltFetched);
304 void __RPC_STUB IEnumIDList_Next_Stub(
305 struct IRpcStubBuffer* This,
306 struct IRpcChannelBuffer* pRpcChannelBuffer,
307 PRPC_MESSAGE pRpcMessage,
308 DWORD* pdwStubPhase);
309 HRESULT CALLBACK IEnumIDList_Skip_Proxy(
310 IEnumIDList* This,
311 ULONG celt);
312 void __RPC_STUB IEnumIDList_Skip_Stub(
313 struct IRpcStubBuffer* This,
314 struct IRpcChannelBuffer* pRpcChannelBuffer,
315 PRPC_MESSAGE pRpcMessage,
316 DWORD* pdwStubPhase);
317 HRESULT CALLBACK IEnumIDList_Reset_Proxy(
318 IEnumIDList* This);
319 void __RPC_STUB IEnumIDList_Reset_Stub(
320 struct IRpcStubBuffer* This,
321 struct IRpcChannelBuffer* pRpcChannelBuffer,
322 PRPC_MESSAGE pRpcMessage,
323 DWORD* pdwStubPhase);
324 HRESULT CALLBACK IEnumIDList_Clone_Proxy(
325 IEnumIDList* This,
326 IEnumIDList** ppenum);
327 void __RPC_STUB IEnumIDList_Clone_Stub(
328 struct IRpcStubBuffer* This,
329 struct IRpcChannelBuffer* pRpcChannelBuffer,
330 PRPC_MESSAGE pRpcMessage,
331 DWORD* pdwStubPhase);
333 #endif /* __IEnumIDList_INTERFACE_DEFINED__ */
335 #ifndef __IShellFolder_FWD_DEFINED__
336 #define __IShellFolder_FWD_DEFINED__
337 typedef struct IShellFolder IShellFolder;
338 #endif
340 typedef IShellFolder *LPSHELLFOLDER;
342 typedef enum tagSHGDN {
343 SHGDN_NORMAL = 0,
344 SHGDN_INFOLDER = 1,
345 SHGDN_FOREDITING = 0x1000,
346 SHGDN_INCLUDE_NONFILESYS = 0x2000,
347 SHGDN_FORADDRESSBAR = 0x4000,
348 SHGDN_FORPARSING = 0x8000
349 } SHGNO;
351 typedef DWORD SHGDNF;
353 enum tagSHCONTF {
354 SHCONTF_FOLDERS = 32,
355 SHCONTF_NONFOLDERS = 64,
356 SHCONTF_INCLUDEHIDDEN = 128,
357 SHCONTF_INIT_ON_FIRST_NEXT = 256,
358 SHCONTF_NETPRINTERSRCH = 512,
359 SHCONTF_SHAREABLE = 1024,
360 SHCONTF_STORAGE = 2048
363 typedef DWORD SHCONTF;
365 #define SFGAO_CANCOPY DROPEFFECT_COPY
366 #define SFGAO_CANMOVE DROPEFFECT_MOVE
367 #define SFGAO_CANLINK DROPEFFECT_LINK
368 #define SFGAO_CANRENAME 0x00000010L
369 #define SFGAO_CANDELETE 0x00000020L
370 #define SFGAO_HASPROPSHEET 0x00000040L
371 #define SFGAO_DROPTARGET 0x00000100L
372 #define SFGAO_CAPABILITYMASK 0x00000177L
373 #define SFGAO_LINK 0x00010000L
374 #define SFGAO_SHARE 0x00020000L
375 #define SFGAO_READONLY 0x00040000L
376 #define SFGAO_GHOSTED 0x00080000L
377 #define SFGAO_HIDDEN 0x00080000L
378 #define SFGAO_DISPLAYATTRMASK 0x000F0000L
379 #define SFGAO_FILESYSANCESTOR 0x10000000L
380 #define SFGAO_FOLDER 0x20000000L
381 #define SFGAO_FILESYSTEM 0x40000000L
382 #define SFGAO_HASSUBFOLDER 0x80000000L
383 #define SFGAO_CONTENTSMASK 0x80000000L
384 #define SFGAO_VALIDATE 0x01000000L
385 #define SFGAO_REMOVABLE 0x02000000L
386 #define SFGAO_COMPRESSED 0x04000000L
387 #define SFGAO_BROWSABLE 0x08000000L
388 #define SFGAO_NONENUMERATED 0x00100000L
389 #define SFGAO_NEWCONTENT 0x00200000L
390 typedef ULONG SFGAOF;
392 /*****************************************************************************
393 * IShellFolder interface
395 #ifndef __IShellFolder_INTERFACE_DEFINED__
396 #define __IShellFolder_INTERFACE_DEFINED__
398 DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
399 #if defined(__cplusplus) && !defined(CINTERFACE)
400 struct IShellFolder : public IUnknown
402 virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
403 HWND hwndOwner,
404 LPBC pbcReserved,
405 LPOLESTR lpszDisplayName,
406 ULONG* pchEaten,
407 LPITEMIDLIST* ppidl,
408 ULONG* pdwAttributes) = 0;
410 virtual HRESULT STDMETHODCALLTYPE EnumObjects(
411 HWND hwndOwner,
412 SHCONTF grfFlags,
413 IEnumIDList** ppenumIDList) = 0;
415 virtual HRESULT STDMETHODCALLTYPE BindToObject(
416 LPCITEMIDLIST pidl,
417 LPBC pbcReserved,
418 REFIID riid,
419 void** ppvOut) = 0;
421 virtual HRESULT STDMETHODCALLTYPE BindToStorage(
422 LPCITEMIDLIST pidl,
423 LPBC pbcReserved,
424 REFIID riid,
425 void** ppvObj) = 0;
427 virtual HRESULT STDMETHODCALLTYPE CompareIDs(
428 LPARAM lParam,
429 LPCITEMIDLIST pidl1,
430 LPCITEMIDLIST pidl2) = 0;
432 virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
433 HWND hwndOwner,
434 REFIID riid,
435 void** ppvOut) = 0;
437 virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
438 UINT cidl,
439 LPCITEMIDLIST* apidl,
440 SFGAOF* rgfInOut) = 0;
442 virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
443 HWND hwndOwner,
444 UINT cidl,
445 LPCITEMIDLIST* apidl,
446 REFIID riid,
447 UINT* prgfInOut,
448 void** ppvOut) = 0;
450 virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
451 LPCITEMIDLIST pidl,
452 SHGDNF uFlags,
453 STRRET* lpName) = 0;
455 virtual HRESULT STDMETHODCALLTYPE SetNameOf(
456 HWND hwnd,
457 LPCITEMIDLIST pidl,
458 LPCOLESTR lpszName,
459 SHGDNF uFlags,
460 LPITEMIDLIST* ppidlOut) = 0;
463 #else
464 typedef struct IShellFolderVtbl IShellFolderVtbl;
465 struct IShellFolder {
466 const IShellFolderVtbl* lpVtbl;
468 struct IShellFolderVtbl {
469 BEGIN_INTERFACE
471 /*** IUnknown methods ***/
472 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
473 IShellFolder* This,
474 REFIID riid,
475 void** ppvObject);
477 ULONG (STDMETHODCALLTYPE *AddRef)(
478 IShellFolder* This);
480 ULONG (STDMETHODCALLTYPE *Release)(
481 IShellFolder* This);
483 /*** IShellFolder methods ***/
484 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
485 IShellFolder* This,
486 HWND hwndOwner,
487 LPBC pbcReserved,
488 LPOLESTR lpszDisplayName,
489 ULONG* pchEaten,
490 LPITEMIDLIST* ppidl,
491 ULONG* pdwAttributes);
493 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
494 IShellFolder* This,
495 HWND hwndOwner,
496 SHCONTF grfFlags,
497 IEnumIDList** ppenumIDList);
499 HRESULT (STDMETHODCALLTYPE *BindToObject)(
500 IShellFolder* This,
501 LPCITEMIDLIST pidl,
502 LPBC pbcReserved,
503 REFIID riid,
504 void** ppvOut);
506 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
507 IShellFolder* This,
508 LPCITEMIDLIST pidl,
509 LPBC pbcReserved,
510 REFIID riid,
511 void** ppvObj);
513 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
514 IShellFolder* This,
515 LPARAM lParam,
516 LPCITEMIDLIST pidl1,
517 LPCITEMIDLIST pidl2);
519 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
520 IShellFolder* This,
521 HWND hwndOwner,
522 REFIID riid,
523 void** ppvOut);
525 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
526 IShellFolder* This,
527 UINT cidl,
528 LPCITEMIDLIST* apidl,
529 SFGAOF* rgfInOut);
531 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
532 IShellFolder* This,
533 HWND hwndOwner,
534 UINT cidl,
535 LPCITEMIDLIST* apidl,
536 REFIID riid,
537 UINT* prgfInOut,
538 void** ppvOut);
540 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
541 IShellFolder* This,
542 LPCITEMIDLIST pidl,
543 SHGDNF uFlags,
544 STRRET* lpName);
546 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
547 IShellFolder* This,
548 HWND hwnd,
549 LPCITEMIDLIST pidl,
550 LPCOLESTR lpszName,
551 SHGDNF uFlags,
552 LPITEMIDLIST* ppidlOut);
554 END_INTERFACE
557 #ifdef COBJMACROS
558 /*** IUnknown methods ***/
559 #define IShellFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
560 #define IShellFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
561 #define IShellFolder_Release(p) (p)->lpVtbl->Release(p)
562 /*** IShellFolder methods ***/
563 #define IShellFolder_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
564 #define IShellFolder_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
565 #define IShellFolder_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
566 #define IShellFolder_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
567 #define IShellFolder_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
568 #define IShellFolder_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
569 #define IShellFolder_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
570 #define IShellFolder_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
571 #define IShellFolder_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
572 #define IShellFolder_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
573 #endif
575 #endif
577 #define IShellFolder_METHODS \
578 /*** IUnknown methods ***/ \
579 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
580 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
581 STDMETHOD_(ULONG,Release)(THIS) PURE; \
582 /*** IShellFolder methods ***/ \
583 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \
584 STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \
585 STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \
586 STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \
587 STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \
588 STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \
589 STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \
590 STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \
591 STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \
592 STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE;
594 HRESULT CALLBACK IShellFolder_ParseDisplayName_Proxy(
595 IShellFolder* This,
596 HWND hwndOwner,
597 LPBC pbcReserved,
598 LPOLESTR lpszDisplayName,
599 ULONG* pchEaten,
600 LPITEMIDLIST* ppidl,
601 ULONG* pdwAttributes);
602 void __RPC_STUB IShellFolder_ParseDisplayName_Stub(
603 struct IRpcStubBuffer* This,
604 struct IRpcChannelBuffer* pRpcChannelBuffer,
605 PRPC_MESSAGE pRpcMessage,
606 DWORD* pdwStubPhase);
607 HRESULT CALLBACK IShellFolder_EnumObjects_Proxy(
608 IShellFolder* This,
609 HWND hwndOwner,
610 SHCONTF grfFlags,
611 IEnumIDList** ppenumIDList);
612 void __RPC_STUB IShellFolder_EnumObjects_Stub(
613 struct IRpcStubBuffer* This,
614 struct IRpcChannelBuffer* pRpcChannelBuffer,
615 PRPC_MESSAGE pRpcMessage,
616 DWORD* pdwStubPhase);
617 HRESULT CALLBACK IShellFolder_BindToObject_Proxy(
618 IShellFolder* This,
619 LPCITEMIDLIST pidl,
620 LPBC pbcReserved,
621 REFIID riid,
622 void** ppvOut);
623 void __RPC_STUB IShellFolder_BindToObject_Stub(
624 struct IRpcStubBuffer* This,
625 struct IRpcChannelBuffer* pRpcChannelBuffer,
626 PRPC_MESSAGE pRpcMessage,
627 DWORD* pdwStubPhase);
628 HRESULT CALLBACK IShellFolder_BindToStorage_Proxy(
629 IShellFolder* This,
630 LPCITEMIDLIST pidl,
631 LPBC pbcReserved,
632 REFIID riid,
633 void** ppvObj);
634 void __RPC_STUB IShellFolder_BindToStorage_Stub(
635 struct IRpcStubBuffer* This,
636 struct IRpcChannelBuffer* pRpcChannelBuffer,
637 PRPC_MESSAGE pRpcMessage,
638 DWORD* pdwStubPhase);
639 HRESULT CALLBACK IShellFolder_CompareIDs_Proxy(
640 IShellFolder* This,
641 LPARAM lParam,
642 LPCITEMIDLIST pidl1,
643 LPCITEMIDLIST pidl2);
644 void __RPC_STUB IShellFolder_CompareIDs_Stub(
645 struct IRpcStubBuffer* This,
646 struct IRpcChannelBuffer* pRpcChannelBuffer,
647 PRPC_MESSAGE pRpcMessage,
648 DWORD* pdwStubPhase);
649 HRESULT CALLBACK IShellFolder_CreateViewObject_Proxy(
650 IShellFolder* This,
651 HWND hwndOwner,
652 REFIID riid,
653 void** ppvOut);
654 void __RPC_STUB IShellFolder_CreateViewObject_Stub(
655 struct IRpcStubBuffer* This,
656 struct IRpcChannelBuffer* pRpcChannelBuffer,
657 PRPC_MESSAGE pRpcMessage,
658 DWORD* pdwStubPhase);
659 HRESULT CALLBACK IShellFolder_GetAttributesOf_Proxy(
660 IShellFolder* This,
661 UINT cidl,
662 LPCITEMIDLIST* apidl,
663 SFGAOF* rgfInOut);
664 void __RPC_STUB IShellFolder_GetAttributesOf_Stub(
665 struct IRpcStubBuffer* This,
666 struct IRpcChannelBuffer* pRpcChannelBuffer,
667 PRPC_MESSAGE pRpcMessage,
668 DWORD* pdwStubPhase);
669 HRESULT CALLBACK IShellFolder_GetUIObjectOf_Proxy(
670 IShellFolder* This,
671 HWND hwndOwner,
672 UINT cidl,
673 LPCITEMIDLIST* apidl,
674 REFIID riid,
675 UINT* prgfInOut,
676 void** ppvOut);
677 void __RPC_STUB IShellFolder_GetUIObjectOf_Stub(
678 struct IRpcStubBuffer* This,
679 struct IRpcChannelBuffer* pRpcChannelBuffer,
680 PRPC_MESSAGE pRpcMessage,
681 DWORD* pdwStubPhase);
682 HRESULT CALLBACK IShellFolder_GetDisplayNameOf_Proxy(
683 IShellFolder* This,
684 LPCITEMIDLIST pidl,
685 SHGDNF uFlags,
686 STRRET* lpName);
687 void __RPC_STUB IShellFolder_GetDisplayNameOf_Stub(
688 struct IRpcStubBuffer* This,
689 struct IRpcChannelBuffer* pRpcChannelBuffer,
690 PRPC_MESSAGE pRpcMessage,
691 DWORD* pdwStubPhase);
692 HRESULT CALLBACK IShellFolder_SetNameOf_Proxy(
693 IShellFolder* This,
694 HWND hwnd,
695 LPCITEMIDLIST pidl,
696 LPCOLESTR lpszName,
697 SHGDNF uFlags,
698 LPITEMIDLIST* ppidlOut);
699 void __RPC_STUB IShellFolder_SetNameOf_Stub(
700 struct IRpcStubBuffer* This,
701 struct IRpcChannelBuffer* pRpcChannelBuffer,
702 PRPC_MESSAGE pRpcMessage,
703 DWORD* pdwStubPhase);
705 #endif /* __IShellFolder_INTERFACE_DEFINED__ */
707 #ifndef __IEnumExtraSearch_FWD_DEFINED__
708 #define __IEnumExtraSearch_FWD_DEFINED__
709 typedef struct IEnumExtraSearch IEnumExtraSearch;
710 #endif
712 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
714 typedef struct {
715 GUID guidSearch;
716 WCHAR wszFriendlyName[80];
717 WCHAR wszUrl[2084];
718 } EXTRASEARCH, *LPEXTRASEARCH;
720 /*****************************************************************************
721 * IEnumExtraSearch interface
723 #ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
724 #define __IEnumExtraSearch_INTERFACE_DEFINED__
726 DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13);
727 #if defined(__cplusplus) && !defined(CINTERFACE)
728 struct IEnumExtraSearch : public IUnknown
730 virtual HRESULT STDMETHODCALLTYPE Next(
731 ULONG celt,
732 EXTRASEARCH* rgelt,
733 ULONG* pceltFetched) = 0;
735 virtual HRESULT STDMETHODCALLTYPE Skip(
736 ULONG celt) = 0;
738 virtual HRESULT STDMETHODCALLTYPE Reset(
739 ) = 0;
741 virtual HRESULT STDMETHODCALLTYPE Clone(
742 IEnumExtraSearch** ppenum) = 0;
745 #else
746 typedef struct IEnumExtraSearchVtbl IEnumExtraSearchVtbl;
747 struct IEnumExtraSearch {
748 const IEnumExtraSearchVtbl* lpVtbl;
750 struct IEnumExtraSearchVtbl {
751 BEGIN_INTERFACE
753 /*** IUnknown methods ***/
754 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
755 IEnumExtraSearch* This,
756 REFIID riid,
757 void** ppvObject);
759 ULONG (STDMETHODCALLTYPE *AddRef)(
760 IEnumExtraSearch* This);
762 ULONG (STDMETHODCALLTYPE *Release)(
763 IEnumExtraSearch* This);
765 /*** IEnumExtraSearch methods ***/
766 HRESULT (STDMETHODCALLTYPE *Next)(
767 IEnumExtraSearch* This,
768 ULONG celt,
769 EXTRASEARCH* rgelt,
770 ULONG* pceltFetched);
772 HRESULT (STDMETHODCALLTYPE *Skip)(
773 IEnumExtraSearch* This,
774 ULONG celt);
776 HRESULT (STDMETHODCALLTYPE *Reset)(
777 IEnumExtraSearch* This);
779 HRESULT (STDMETHODCALLTYPE *Clone)(
780 IEnumExtraSearch* This,
781 IEnumExtraSearch** ppenum);
783 END_INTERFACE
786 #ifdef COBJMACROS
787 /*** IUnknown methods ***/
788 #define IEnumExtraSearch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
789 #define IEnumExtraSearch_AddRef(p) (p)->lpVtbl->AddRef(p)
790 #define IEnumExtraSearch_Release(p) (p)->lpVtbl->Release(p)
791 /*** IEnumExtraSearch methods ***/
792 #define IEnumExtraSearch_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
793 #define IEnumExtraSearch_Skip(p,a) (p)->lpVtbl->Skip(p,a)
794 #define IEnumExtraSearch_Reset(p) (p)->lpVtbl->Reset(p)
795 #define IEnumExtraSearch_Clone(p,a) (p)->lpVtbl->Clone(p,a)
796 #endif
798 #endif
800 #define IEnumExtraSearch_METHODS \
801 /*** IUnknown methods ***/ \
802 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
803 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
804 STDMETHOD_(ULONG,Release)(THIS) PURE; \
805 /*** IEnumExtraSearch methods ***/ \
806 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, EXTRASEARCH* rgelt, ULONG* pceltFetched) PURE; \
807 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
808 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
809 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumExtraSearch** ppenum) PURE;
811 HRESULT CALLBACK IEnumExtraSearch_Next_Proxy(
812 IEnumExtraSearch* This,
813 ULONG celt,
814 EXTRASEARCH* rgelt,
815 ULONG* pceltFetched);
816 void __RPC_STUB IEnumExtraSearch_Next_Stub(
817 struct IRpcStubBuffer* This,
818 struct IRpcChannelBuffer* pRpcChannelBuffer,
819 PRPC_MESSAGE pRpcMessage,
820 DWORD* pdwStubPhase);
821 HRESULT CALLBACK IEnumExtraSearch_Skip_Proxy(
822 IEnumExtraSearch* This,
823 ULONG celt);
824 void __RPC_STUB IEnumExtraSearch_Skip_Stub(
825 struct IRpcStubBuffer* This,
826 struct IRpcChannelBuffer* pRpcChannelBuffer,
827 PRPC_MESSAGE pRpcMessage,
828 DWORD* pdwStubPhase);
829 HRESULT CALLBACK IEnumExtraSearch_Reset_Proxy(
830 IEnumExtraSearch* This);
831 void __RPC_STUB IEnumExtraSearch_Reset_Stub(
832 struct IRpcStubBuffer* This,
833 struct IRpcChannelBuffer* pRpcChannelBuffer,
834 PRPC_MESSAGE pRpcMessage,
835 DWORD* pdwStubPhase);
836 HRESULT CALLBACK IEnumExtraSearch_Clone_Proxy(
837 IEnumExtraSearch* This,
838 IEnumExtraSearch** ppenum);
839 void __RPC_STUB IEnumExtraSearch_Clone_Stub(
840 struct IRpcStubBuffer* This,
841 struct IRpcChannelBuffer* pRpcChannelBuffer,
842 PRPC_MESSAGE pRpcMessage,
843 DWORD* pdwStubPhase);
845 #endif /* __IEnumExtraSearch_INTERFACE_DEFINED__ */
847 #ifndef __IShellFolder2_FWD_DEFINED__
848 #define __IShellFolder2_FWD_DEFINED__
849 typedef struct IShellFolder2 IShellFolder2;
850 #endif
852 typedef enum {
853 SHCOLSTATE_TYPE_STR = 0x1,
854 SHCOLSTATE_TYPE_INT = 0x2,
855 SHCOLSTATE_TYPE_DATE = 0x3,
856 SHCOLSTATE_TYPEMASK = 0xf,
857 SHCOLSTATE_ONBYDEFAULT = 0x10,
858 SHCOLSTATE_SLOW = 0x20,
859 SHCOLSTATE_EXTENDED = 0x40,
860 SHCOLSTATE_SECONDARYUI = 0x80,
861 SHCOLSTATE_HIDDEN = 0x100,
862 SHCOLSTATE_PREFER_VARCMP = 0x200
863 } SHCOLSTATE;
865 typedef DWORD SHCOLSTATEF;
867 typedef struct {
868 GUID fmtid;
869 DWORD pid;
870 } SHCOLUMNID, *LPSHCOLUMNID;
872 typedef const SHCOLUMNID *LPCSHCOLUMNID;
874 /*****************************************************************************
875 * IShellFolder2 interface
877 #ifndef __IShellFolder2_INTERFACE_DEFINED__
878 #define __IShellFolder2_INTERFACE_DEFINED__
880 DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1);
881 #if defined(__cplusplus) && !defined(CINTERFACE)
882 struct IShellFolder2 : public IShellFolder
884 virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(
885 GUID* lpguid) = 0;
887 virtual HRESULT STDMETHODCALLTYPE EnumSearches(
888 IEnumExtraSearch** ppenum) = 0;
890 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
891 DWORD dwReserved,
892 ULONG* pSort,
893 ULONG* pDisplay) = 0;
895 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
896 UINT iColumn,
897 SHCOLSTATEF* pcsFlags) = 0;
899 virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
900 LPCITEMIDLIST pidl,
901 const SHCOLUMNID* pscid,
902 VARIANT* pv) = 0;
904 virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
905 LPCITEMIDLIST pidl,
906 UINT iColumn,
907 SHELLDETAILS* psd) = 0;
909 virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
910 UINT iColumn,
911 SHCOLUMNID* pscid) = 0;
914 #else
915 typedef struct IShellFolder2Vtbl IShellFolder2Vtbl;
916 struct IShellFolder2 {
917 const IShellFolder2Vtbl* lpVtbl;
919 struct IShellFolder2Vtbl {
920 BEGIN_INTERFACE
922 /*** IUnknown methods ***/
923 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
924 IShellFolder2* This,
925 REFIID riid,
926 void** ppvObject);
928 ULONG (STDMETHODCALLTYPE *AddRef)(
929 IShellFolder2* This);
931 ULONG (STDMETHODCALLTYPE *Release)(
932 IShellFolder2* This);
934 /*** IShellFolder methods ***/
935 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
936 IShellFolder2* This,
937 HWND hwndOwner,
938 LPBC pbcReserved,
939 LPOLESTR lpszDisplayName,
940 ULONG* pchEaten,
941 LPITEMIDLIST* ppidl,
942 ULONG* pdwAttributes);
944 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
945 IShellFolder2* This,
946 HWND hwndOwner,
947 SHCONTF grfFlags,
948 IEnumIDList** ppenumIDList);
950 HRESULT (STDMETHODCALLTYPE *BindToObject)(
951 IShellFolder2* This,
952 LPCITEMIDLIST pidl,
953 LPBC pbcReserved,
954 REFIID riid,
955 void** ppvOut);
957 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
958 IShellFolder2* This,
959 LPCITEMIDLIST pidl,
960 LPBC pbcReserved,
961 REFIID riid,
962 void** ppvObj);
964 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
965 IShellFolder2* This,
966 LPARAM lParam,
967 LPCITEMIDLIST pidl1,
968 LPCITEMIDLIST pidl2);
970 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
971 IShellFolder2* This,
972 HWND hwndOwner,
973 REFIID riid,
974 void** ppvOut);
976 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
977 IShellFolder2* This,
978 UINT cidl,
979 LPCITEMIDLIST* apidl,
980 SFGAOF* rgfInOut);
982 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
983 IShellFolder2* This,
984 HWND hwndOwner,
985 UINT cidl,
986 LPCITEMIDLIST* apidl,
987 REFIID riid,
988 UINT* prgfInOut,
989 void** ppvOut);
991 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
992 IShellFolder2* This,
993 LPCITEMIDLIST pidl,
994 SHGDNF uFlags,
995 STRRET* lpName);
997 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
998 IShellFolder2* This,
999 HWND hwnd,
1000 LPCITEMIDLIST pidl,
1001 LPCOLESTR lpszName,
1002 SHGDNF uFlags,
1003 LPITEMIDLIST* ppidlOut);
1005 /*** IShellFolder2 methods ***/
1006 HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
1007 IShellFolder2* This,
1008 GUID* lpguid);
1010 HRESULT (STDMETHODCALLTYPE *EnumSearches)(
1011 IShellFolder2* This,
1012 IEnumExtraSearch** ppenum);
1014 HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
1015 IShellFolder2* This,
1016 DWORD dwReserved,
1017 ULONG* pSort,
1018 ULONG* pDisplay);
1020 HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
1021 IShellFolder2* This,
1022 UINT iColumn,
1023 SHCOLSTATEF* pcsFlags);
1025 HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
1026 IShellFolder2* This,
1027 LPCITEMIDLIST pidl,
1028 const SHCOLUMNID* pscid,
1029 VARIANT* pv);
1031 HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
1032 IShellFolder2* This,
1033 LPCITEMIDLIST pidl,
1034 UINT iColumn,
1035 SHELLDETAILS* psd);
1037 HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
1038 IShellFolder2* This,
1039 UINT iColumn,
1040 SHCOLUMNID* pscid);
1042 END_INTERFACE
1045 #ifdef COBJMACROS
1046 /*** IUnknown methods ***/
1047 #define IShellFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1048 #define IShellFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
1049 #define IShellFolder2_Release(p) (p)->lpVtbl->Release(p)
1050 /*** IShellFolder methods ***/
1051 #define IShellFolder2_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
1052 #define IShellFolder2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
1053 #define IShellFolder2_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
1054 #define IShellFolder2_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
1055 #define IShellFolder2_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
1056 #define IShellFolder2_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
1057 #define IShellFolder2_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
1058 #define IShellFolder2_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
1059 #define IShellFolder2_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
1060 #define IShellFolder2_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
1061 /*** IShellFolder2 methods ***/
1062 #define IShellFolder2_GetDefaultSearchGUID(p,a) (p)->lpVtbl->GetDefaultSearchGUID(p,a)
1063 #define IShellFolder2_EnumSearches(p,a) (p)->lpVtbl->EnumSearches(p,a)
1064 #define IShellFolder2_GetDefaultColumn(p,a,b,c) (p)->lpVtbl->GetDefaultColumn(p,a,b,c)
1065 #define IShellFolder2_GetDefaultColumnState(p,a,b) (p)->lpVtbl->GetDefaultColumnState(p,a,b)
1066 #define IShellFolder2_GetDetailsEx(p,a,b,c) (p)->lpVtbl->GetDetailsEx(p,a,b,c)
1067 #define IShellFolder2_GetDetailsOf(p,a,b,c) (p)->lpVtbl->GetDetailsOf(p,a,b,c)
1068 #define IShellFolder2_MapColumnToSCID(p,a,b) (p)->lpVtbl->MapColumnToSCID(p,a,b)
1069 #endif
1071 #endif
1073 #define IShellFolder2_METHODS \
1074 /*** IUnknown methods ***/ \
1075 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1076 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1077 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1078 /*** IShellFolder methods ***/ \
1079 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \
1080 STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \
1081 STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \
1082 STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \
1083 STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \
1084 STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \
1085 STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \
1086 STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \
1087 STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \
1088 STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE; \
1089 /*** IShellFolder2 methods ***/ \
1090 STDMETHOD_(HRESULT,GetDefaultSearchGUID)(THIS_ GUID* lpguid) PURE; \
1091 STDMETHOD_(HRESULT,EnumSearches)(THIS_ IEnumExtraSearch** ppenum) PURE; \
1092 STDMETHOD_(HRESULT,GetDefaultColumn)(THIS_ DWORD dwReserved, ULONG* pSort, ULONG* pDisplay) PURE; \
1093 STDMETHOD_(HRESULT,GetDefaultColumnState)(THIS_ UINT iColumn, SHCOLSTATEF* pcsFlags) PURE; \
1094 STDMETHOD_(HRESULT,GetDetailsEx)(THIS_ LPCITEMIDLIST pidl, const SHCOLUMNID* pscid, VARIANT* pv) PURE; \
1095 STDMETHOD_(HRESULT,GetDetailsOf)(THIS_ LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS* psd) PURE; \
1096 STDMETHOD_(HRESULT,MapColumnToSCID)(THIS_ UINT iColumn, SHCOLUMNID* pscid) PURE;
1098 HRESULT CALLBACK IShellFolder2_GetDefaultSearchGUID_Proxy(
1099 IShellFolder2* This,
1100 GUID* lpguid);
1101 void __RPC_STUB IShellFolder2_GetDefaultSearchGUID_Stub(
1102 struct IRpcStubBuffer* This,
1103 struct IRpcChannelBuffer* pRpcChannelBuffer,
1104 PRPC_MESSAGE pRpcMessage,
1105 DWORD* pdwStubPhase);
1106 HRESULT CALLBACK IShellFolder2_EnumSearches_Proxy(
1107 IShellFolder2* This,
1108 IEnumExtraSearch** ppenum);
1109 void __RPC_STUB IShellFolder2_EnumSearches_Stub(
1110 struct IRpcStubBuffer* This,
1111 struct IRpcChannelBuffer* pRpcChannelBuffer,
1112 PRPC_MESSAGE pRpcMessage,
1113 DWORD* pdwStubPhase);
1114 HRESULT CALLBACK IShellFolder2_GetDefaultColumn_Proxy(
1115 IShellFolder2* This,
1116 DWORD dwReserved,
1117 ULONG* pSort,
1118 ULONG* pDisplay);
1119 void __RPC_STUB IShellFolder2_GetDefaultColumn_Stub(
1120 struct IRpcStubBuffer* This,
1121 struct IRpcChannelBuffer* pRpcChannelBuffer,
1122 PRPC_MESSAGE pRpcMessage,
1123 DWORD* pdwStubPhase);
1124 HRESULT CALLBACK IShellFolder2_GetDefaultColumnState_Proxy(
1125 IShellFolder2* This,
1126 UINT iColumn,
1127 SHCOLSTATEF* pcsFlags);
1128 void __RPC_STUB IShellFolder2_GetDefaultColumnState_Stub(
1129 struct IRpcStubBuffer* This,
1130 struct IRpcChannelBuffer* pRpcChannelBuffer,
1131 PRPC_MESSAGE pRpcMessage,
1132 DWORD* pdwStubPhase);
1133 HRESULT CALLBACK IShellFolder2_GetDetailsEx_Proxy(
1134 IShellFolder2* This,
1135 LPCITEMIDLIST pidl,
1136 const SHCOLUMNID* pscid,
1137 VARIANT* pv);
1138 void __RPC_STUB IShellFolder2_GetDetailsEx_Stub(
1139 struct IRpcStubBuffer* This,
1140 struct IRpcChannelBuffer* pRpcChannelBuffer,
1141 PRPC_MESSAGE pRpcMessage,
1142 DWORD* pdwStubPhase);
1143 HRESULT CALLBACK IShellFolder2_GetDetailsOf_Proxy(
1144 IShellFolder2* This,
1145 LPCITEMIDLIST pidl,
1146 UINT iColumn,
1147 SHELLDETAILS* psd);
1148 void __RPC_STUB IShellFolder2_GetDetailsOf_Stub(
1149 struct IRpcStubBuffer* This,
1150 struct IRpcChannelBuffer* pRpcChannelBuffer,
1151 PRPC_MESSAGE pRpcMessage,
1152 DWORD* pdwStubPhase);
1153 HRESULT CALLBACK IShellFolder2_MapColumnToSCID_Proxy(
1154 IShellFolder2* This,
1155 UINT iColumn,
1156 SHCOLUMNID* pscid);
1157 void __RPC_STUB IShellFolder2_MapColumnToSCID_Stub(
1158 struct IRpcStubBuffer* This,
1159 struct IRpcChannelBuffer* pRpcChannelBuffer,
1160 PRPC_MESSAGE pRpcMessage,
1161 DWORD* pdwStubPhase);
1163 #endif /* __IShellFolder2_INTERFACE_DEFINED__ */
1165 typedef char *LPVIEWSETTINGS;
1167 typedef enum {
1168 FWF_AUTOARRANGE = 0x1,
1169 FWF_ABBREVIATEDNAMES = 0x2,
1170 FWF_SNAPTOGRID = 0x4,
1171 FWF_OWNERDATA = 0x8,
1172 FWF_BESTFITWINDOW = 0x10,
1173 FWF_DESKTOP = 0x20,
1174 FWF_SINGLESEL = 0x40,
1175 FWF_NOSUBFOLDERS = 0x80,
1176 FWF_TRANSPARENT = 0x100,
1177 FWF_NOCLIENTEDGE = 0x200,
1178 FWF_NOSCROLL = 0x400,
1179 FWF_ALIGNLEFT = 0x800,
1180 FWF_NOICONS = 0x1000,
1181 FWF_SHOWSELALWAYS = 0x2000,
1182 FWF_NOVISIBLE = 0x4000,
1183 FWF_SINGLECLICKACTIVATE = 0x8000,
1184 FWF_NOWEBVIEW = 0x10000,
1185 FWF_HIDEFILENAMES = 0x20000,
1186 FWF_CHECKSELECT = 0x40000
1187 } FOLDERFLAGS;
1189 typedef enum {
1190 FVM_ICON = 1,
1191 FVM_FIRST = FVM_ICON,
1192 FVM_SMALLICON = 2,
1193 FVM_LIST = 3,
1194 FVM_DETAILS = 4,
1195 FVM_THUMBNAIL = 5,
1196 FVM_TILE = 6,
1197 FVM_THUMBSTRIP = 7,
1198 FVM_LAST = FVM_THUMBSTRIP
1199 } FOLDERVIEWMODE;
1201 typedef struct {
1202 UINT ViewMode;
1203 UINT fFlags;
1204 } FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
1206 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
1208 #ifndef __IShellBrowser_FWD_DEFINED__
1209 #define __IShellBrowser_FWD_DEFINED__
1210 typedef struct IShellBrowser IShellBrowser;
1211 #endif
1213 #ifndef __IShellView_FWD_DEFINED__
1214 #define __IShellView_FWD_DEFINED__
1215 typedef struct IShellView IShellView;
1216 #endif
1218 typedef IShellView *LPSHELLVIEW;
1220 #define SVSI_DESELECT 0x00000000
1221 #define SVSI_SELECT 0x00000001
1222 #define SVSI_EDIT 0x00000003
1223 #define SVSI_DESELECTOTHERS 0x00000004
1224 #define SVSI_ENSUREVISIBLE 0x00000008
1225 #define SVSI_FOCUSED 0x00000010
1226 #define SVSI_TRANSLATEPT 0x00000020
1227 #define SVSI_SELECTIONMARK 0x00000040
1228 #define SVSI_POSITIONITEM 0x00000080
1229 #define SVSI_CHECK 0x00000100
1230 #define SVSI_NOSTATECHANGE 0x80000000
1231 typedef UINT SVSIF;
1233 typedef enum {
1234 SVGIO_BACKGROUND = 0x0,
1235 SVGIO_SELECTION = 0x1,
1236 SVGIO_ALLVIEW = 0x2,
1237 SVGIO_CHECKED = 0x3,
1238 SVGIO_TYPE_MASK = 0xf,
1239 SVGIO_FLAG_VIEWORDER = 0x80000000
1240 } SVGIO;
1242 typedef enum {
1243 SVUIA_DEACTIVATE = 0,
1244 SVUIA_ACTIVATE_NOFOCUS = 1,
1245 SVUIA_ACTIVATE_FOCUS = 2,
1246 SVUIA_INPLACEACTIVATE = 3
1247 } SVUIA_STATUS;
1249 #if 0
1250 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
1252 #else
1253 #include <prsht.h>
1254 typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
1255 #endif
1256 /*****************************************************************************
1257 * IShellView interface
1259 #ifndef __IShellView_INTERFACE_DEFINED__
1260 #define __IShellView_INTERFACE_DEFINED__
1262 DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1263 #if defined(__cplusplus) && !defined(CINTERFACE)
1264 struct IShellView : public IOleWindow
1266 virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
1267 MSG* pmsg) = 0;
1269 virtual HRESULT STDMETHODCALLTYPE EnableModeless(
1270 BOOL fEnable) = 0;
1272 virtual HRESULT STDMETHODCALLTYPE UIActivate(
1273 UINT uState) = 0;
1275 virtual HRESULT STDMETHODCALLTYPE Refresh(
1276 ) = 0;
1278 virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
1279 IShellView* psvPrevious,
1280 LPCFOLDERSETTINGS lpfs,
1281 IShellBrowser* psb,
1282 RECT* prcView,
1283 HWND* phWnd) = 0;
1285 virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
1286 ) = 0;
1288 virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
1289 LPFOLDERSETTINGS lpfs) = 0;
1291 virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
1292 DWORD dwReserved,
1293 LPFNSVADDPROPSHEETPAGE pfn,
1294 LPARAM lparam) = 0;
1296 virtual HRESULT STDMETHODCALLTYPE SaveViewState(
1297 ) = 0;
1299 virtual HRESULT STDMETHODCALLTYPE SelectItem(
1300 LPCITEMIDLIST pidlItem,
1301 SVSIF uFlags) = 0;
1303 virtual HRESULT STDMETHODCALLTYPE GetItemObject(
1304 UINT uItem,
1305 REFIID riid,
1306 void** ppv) = 0;
1309 #else
1310 typedef struct IShellViewVtbl IShellViewVtbl;
1311 struct IShellView {
1312 const IShellViewVtbl* lpVtbl;
1314 struct IShellViewVtbl {
1315 BEGIN_INTERFACE
1317 /*** IUnknown methods ***/
1318 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1319 IShellView* This,
1320 REFIID riid,
1321 void** ppvObject);
1323 ULONG (STDMETHODCALLTYPE *AddRef)(
1324 IShellView* This);
1326 ULONG (STDMETHODCALLTYPE *Release)(
1327 IShellView* This);
1329 /*** IOleWindow methods ***/
1330 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1331 IShellView* This,
1332 HWND* phwnd);
1334 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1335 IShellView* This,
1336 BOOL fEnterMode);
1338 /*** IShellView methods ***/
1339 HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
1340 IShellView* This,
1341 MSG* pmsg);
1343 HRESULT (STDMETHODCALLTYPE *EnableModeless)(
1344 IShellView* This,
1345 BOOL fEnable);
1347 HRESULT (STDMETHODCALLTYPE *UIActivate)(
1348 IShellView* This,
1349 UINT uState);
1351 HRESULT (STDMETHODCALLTYPE *Refresh)(
1352 IShellView* This);
1354 HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
1355 IShellView* This,
1356 IShellView* psvPrevious,
1357 LPCFOLDERSETTINGS lpfs,
1358 IShellBrowser* psb,
1359 RECT* prcView,
1360 HWND* phWnd);
1362 HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
1363 IShellView* This);
1365 HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
1366 IShellView* This,
1367 LPFOLDERSETTINGS lpfs);
1369 HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
1370 IShellView* This,
1371 DWORD dwReserved,
1372 LPFNSVADDPROPSHEETPAGE pfn,
1373 LPARAM lparam);
1375 HRESULT (STDMETHODCALLTYPE *SaveViewState)(
1376 IShellView* This);
1378 HRESULT (STDMETHODCALLTYPE *SelectItem)(
1379 IShellView* This,
1380 LPCITEMIDLIST pidlItem,
1381 SVSIF uFlags);
1383 HRESULT (STDMETHODCALLTYPE *GetItemObject)(
1384 IShellView* This,
1385 UINT uItem,
1386 REFIID riid,
1387 void** ppv);
1389 END_INTERFACE
1392 #ifdef COBJMACROS
1393 /*** IUnknown methods ***/
1394 #define IShellView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1395 #define IShellView_AddRef(p) (p)->lpVtbl->AddRef(p)
1396 #define IShellView_Release(p) (p)->lpVtbl->Release(p)
1397 /*** IOleWindow methods ***/
1398 #define IShellView_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1399 #define IShellView_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1400 /*** IShellView methods ***/
1401 #define IShellView_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
1402 #define IShellView_EnableModeless(p,a) (p)->lpVtbl->EnableModeless(p,a)
1403 #define IShellView_UIActivate(p,a) (p)->lpVtbl->UIActivate(p,a)
1404 #define IShellView_Refresh(p) (p)->lpVtbl->Refresh(p)
1405 #define IShellView_CreateViewWindow(p,a,b,c,d,e) (p)->lpVtbl->CreateViewWindow(p,a,b,c,d,e)
1406 #define IShellView_DestroyViewWindow(p) (p)->lpVtbl->DestroyViewWindow(p)
1407 #define IShellView_GetCurrentInfo(p,a) (p)->lpVtbl->GetCurrentInfo(p,a)
1408 #define IShellView_AddPropertySheetPages(p,a,b,c) (p)->lpVtbl->AddPropertySheetPages(p,a,b,c)
1409 #define IShellView_SaveViewState(p) (p)->lpVtbl->SaveViewState(p)
1410 #define IShellView_SelectItem(p,a,b) (p)->lpVtbl->SelectItem(p,a,b)
1411 #define IShellView_GetItemObject(p,a,b,c) (p)->lpVtbl->GetItemObject(p,a,b,c)
1412 #endif
1414 #endif
1416 #define IShellView_METHODS \
1417 /*** IUnknown methods ***/ \
1418 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1419 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1420 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1421 /*** IOleWindow methods ***/ \
1422 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1423 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1424 /*** IShellView methods ***/ \
1425 STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ MSG* pmsg) PURE; \
1426 STDMETHOD_(HRESULT,EnableModeless)(THIS_ BOOL fEnable) PURE; \
1427 STDMETHOD_(HRESULT,UIActivate)(THIS_ UINT uState) PURE; \
1428 STDMETHOD_(HRESULT,Refresh)(THIS) PURE; \
1429 STDMETHOD_(HRESULT,CreateViewWindow)(THIS_ IShellView* psvPrevious, LPCFOLDERSETTINGS lpfs, IShellBrowser* psb, RECT* prcView, HWND* phWnd) PURE; \
1430 STDMETHOD_(HRESULT,DestroyViewWindow)(THIS) PURE; \
1431 STDMETHOD_(HRESULT,GetCurrentInfo)(THIS_ LPFOLDERSETTINGS lpfs) PURE; \
1432 STDMETHOD_(HRESULT,AddPropertySheetPages)(THIS_ DWORD dwReserved, LPFNSVADDPROPSHEETPAGE pfn, LPARAM lparam) PURE; \
1433 STDMETHOD_(HRESULT,SaveViewState)(THIS) PURE; \
1434 STDMETHOD_(HRESULT,SelectItem)(THIS_ LPCITEMIDLIST pidlItem, SVSIF uFlags) PURE; \
1435 STDMETHOD_(HRESULT,GetItemObject)(THIS_ UINT uItem, REFIID riid, void** ppv) PURE;
1437 HRESULT CALLBACK IShellView_TranslateAccelerator_Proxy(
1438 IShellView* This,
1439 MSG* pmsg);
1440 void __RPC_STUB IShellView_TranslateAccelerator_Stub(
1441 struct IRpcStubBuffer* This,
1442 struct IRpcChannelBuffer* pRpcChannelBuffer,
1443 PRPC_MESSAGE pRpcMessage,
1444 DWORD* pdwStubPhase);
1445 HRESULT CALLBACK IShellView_EnableModeless_Proxy(
1446 IShellView* This,
1447 BOOL fEnable);
1448 void __RPC_STUB IShellView_EnableModeless_Stub(
1449 struct IRpcStubBuffer* This,
1450 struct IRpcChannelBuffer* pRpcChannelBuffer,
1451 PRPC_MESSAGE pRpcMessage,
1452 DWORD* pdwStubPhase);
1453 HRESULT CALLBACK IShellView_UIActivate_Proxy(
1454 IShellView* This,
1455 UINT uState);
1456 void __RPC_STUB IShellView_UIActivate_Stub(
1457 struct IRpcStubBuffer* This,
1458 struct IRpcChannelBuffer* pRpcChannelBuffer,
1459 PRPC_MESSAGE pRpcMessage,
1460 DWORD* pdwStubPhase);
1461 HRESULT CALLBACK IShellView_Refresh_Proxy(
1462 IShellView* This);
1463 void __RPC_STUB IShellView_Refresh_Stub(
1464 struct IRpcStubBuffer* This,
1465 struct IRpcChannelBuffer* pRpcChannelBuffer,
1466 PRPC_MESSAGE pRpcMessage,
1467 DWORD* pdwStubPhase);
1468 HRESULT CALLBACK IShellView_CreateViewWindow_Proxy(
1469 IShellView* This,
1470 IShellView* psvPrevious,
1471 LPCFOLDERSETTINGS lpfs,
1472 IShellBrowser* psb,
1473 RECT* prcView,
1474 HWND* phWnd);
1475 void __RPC_STUB IShellView_CreateViewWindow_Stub(
1476 struct IRpcStubBuffer* This,
1477 struct IRpcChannelBuffer* pRpcChannelBuffer,
1478 PRPC_MESSAGE pRpcMessage,
1479 DWORD* pdwStubPhase);
1480 HRESULT CALLBACK IShellView_DestroyViewWindow_Proxy(
1481 IShellView* This);
1482 void __RPC_STUB IShellView_DestroyViewWindow_Stub(
1483 struct IRpcStubBuffer* This,
1484 struct IRpcChannelBuffer* pRpcChannelBuffer,
1485 PRPC_MESSAGE pRpcMessage,
1486 DWORD* pdwStubPhase);
1487 HRESULT CALLBACK IShellView_GetCurrentInfo_Proxy(
1488 IShellView* This,
1489 LPFOLDERSETTINGS lpfs);
1490 void __RPC_STUB IShellView_GetCurrentInfo_Stub(
1491 struct IRpcStubBuffer* This,
1492 struct IRpcChannelBuffer* pRpcChannelBuffer,
1493 PRPC_MESSAGE pRpcMessage,
1494 DWORD* pdwStubPhase);
1495 HRESULT CALLBACK IShellView_SaveViewState_Proxy(
1496 IShellView* This);
1497 void __RPC_STUB IShellView_SaveViewState_Stub(
1498 struct IRpcStubBuffer* This,
1499 struct IRpcChannelBuffer* pRpcChannelBuffer,
1500 PRPC_MESSAGE pRpcMessage,
1501 DWORD* pdwStubPhase);
1502 HRESULT CALLBACK IShellView_SelectItem_Proxy(
1503 IShellView* This,
1504 LPCITEMIDLIST pidlItem,
1505 SVSIF uFlags);
1506 void __RPC_STUB IShellView_SelectItem_Stub(
1507 struct IRpcStubBuffer* This,
1508 struct IRpcChannelBuffer* pRpcChannelBuffer,
1509 PRPC_MESSAGE pRpcMessage,
1510 DWORD* pdwStubPhase);
1511 HRESULT CALLBACK IShellView_GetItemObject_Proxy(
1512 IShellView* This,
1513 UINT uItem,
1514 REFIID riid,
1515 void** ppv);
1516 void __RPC_STUB IShellView_GetItemObject_Stub(
1517 struct IRpcStubBuffer* This,
1518 struct IRpcChannelBuffer* pRpcChannelBuffer,
1519 PRPC_MESSAGE pRpcMessage,
1520 DWORD* pdwStubPhase);
1522 #endif /* __IShellView_INTERFACE_DEFINED__ */
1524 typedef IShellBrowser *LPSHELLBROWSER;
1526 #define SBSP_DEFBROWSER 0x00000000
1527 #define SBSP_SAMEBROWSER 0x00000001
1528 #define SBSP_NEWBROWSER 0x00000002
1529 #define SBSP_DEFMODE 0x00000000
1530 #define SBSP_OPENMODE 0x00000010
1531 #define SBSP_EXPLOREMODE 0x00000020
1532 #define SBSP_HELPMODE 0x00000040
1533 #define SBSP_NOTRANSFERHIST 0x00000080
1534 #define SBSP_ABSOLUTE 0x00000000
1535 #define SBSP_RELATIVE 0x00001000
1536 #define SBSP_PARENT 0x00002000
1537 #define SBSP_NAVIGATEBACK 0x00004000
1538 #define SBSP_NAVIGATEFORWARD 0x00008000
1539 #define SBSP_ALLOW_AUTONAVIGATE 0x00010000
1540 #define SBSP_NOAUTOSELECT 0x04000000
1541 #define SBSP_WRITENOHISTORY 0x08000000
1542 #define SBSP_REDIRECT 0x40000000
1543 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
1544 #define FCW_STATUS 0x0001
1545 #define FCW_TOOLBAR 0x0002
1546 #define FCW_TREE 0x0003
1547 #define FCW_INTERNETBAR 0x0006
1548 #define FCW_PROGRESS 0x0008
1549 #define FCT_MERGE 0x0001
1550 #define FCT_CONFIGABLE 0x0002
1551 #define FCT_ADDTOEND 0x0004
1552 #if 0
1553 typedef LPARAM LPTBBUTTONSB;
1555 #else
1556 #include <commctrl.h>
1557 typedef LPTBBUTTON LPTBBUTTONSB;
1558 #endif
1559 /*****************************************************************************
1560 * IShellBrowser interface
1562 #ifndef __IShellBrowser_INTERFACE_DEFINED__
1563 #define __IShellBrowser_INTERFACE_DEFINED__
1565 DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1566 #if defined(__cplusplus) && !defined(CINTERFACE)
1567 struct IShellBrowser : public IOleWindow
1569 virtual HRESULT STDMETHODCALLTYPE InsertMenusSB(
1570 HMENU hmenuShared,
1571 LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
1573 virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
1574 HMENU hmenuShared,
1575 HOLEMENU holemenuReserved,
1576 HWND hwndActiveObject) = 0;
1578 virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB(
1579 HMENU hmenuShared) = 0;
1581 virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB(
1582 LPCOLESTR pszStatusText) = 0;
1584 virtual HRESULT STDMETHODCALLTYPE EnableModelessSB(
1585 BOOL fEnable) = 0;
1587 virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
1588 MSG* pmsg,
1589 WORD wID) = 0;
1591 virtual HRESULT STDMETHODCALLTYPE BrowseObject(
1592 LPCITEMIDLIST pidl,
1593 UINT wFlags) = 0;
1595 virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
1596 DWORD grfMode,
1597 IStream** ppStrm) = 0;
1599 virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
1600 UINT id,
1601 HWND* phwnd) = 0;
1603 virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
1604 UINT id,
1605 UINT uMsg,
1606 WPARAM wParam,
1607 LPARAM lParam,
1608 LRESULT* pret) = 0;
1610 virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView(
1611 IShellView** ppshv) = 0;
1613 virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive(
1614 IShellView* pshv) = 0;
1616 virtual HRESULT STDMETHODCALLTYPE SetToolbarItems(
1617 LPTBBUTTONSB lpButtons,
1618 UINT nButtons,
1619 UINT uFlags) = 0;
1622 #else
1623 typedef struct IShellBrowserVtbl IShellBrowserVtbl;
1624 struct IShellBrowser {
1625 const IShellBrowserVtbl* lpVtbl;
1627 struct IShellBrowserVtbl {
1628 BEGIN_INTERFACE
1630 /*** IUnknown methods ***/
1631 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1632 IShellBrowser* This,
1633 REFIID riid,
1634 void** ppvObject);
1636 ULONG (STDMETHODCALLTYPE *AddRef)(
1637 IShellBrowser* This);
1639 ULONG (STDMETHODCALLTYPE *Release)(
1640 IShellBrowser* This);
1642 /*** IOleWindow methods ***/
1643 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1644 IShellBrowser* This,
1645 HWND* phwnd);
1647 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1648 IShellBrowser* This,
1649 BOOL fEnterMode);
1651 /*** IShellBrowser methods ***/
1652 HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
1653 IShellBrowser* This,
1654 HMENU hmenuShared,
1655 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1657 HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
1658 IShellBrowser* This,
1659 HMENU hmenuShared,
1660 HOLEMENU holemenuReserved,
1661 HWND hwndActiveObject);
1663 HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
1664 IShellBrowser* This,
1665 HMENU hmenuShared);
1667 HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
1668 IShellBrowser* This,
1669 LPCOLESTR pszStatusText);
1671 HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
1672 IShellBrowser* This,
1673 BOOL fEnable);
1675 HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
1676 IShellBrowser* This,
1677 MSG* pmsg,
1678 WORD wID);
1680 HRESULT (STDMETHODCALLTYPE *BrowseObject)(
1681 IShellBrowser* This,
1682 LPCITEMIDLIST pidl,
1683 UINT wFlags);
1685 HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
1686 IShellBrowser* This,
1687 DWORD grfMode,
1688 IStream** ppStrm);
1690 HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
1691 IShellBrowser* This,
1692 UINT id,
1693 HWND* phwnd);
1695 HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
1696 IShellBrowser* This,
1697 UINT id,
1698 UINT uMsg,
1699 WPARAM wParam,
1700 LPARAM lParam,
1701 LRESULT* pret);
1703 HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
1704 IShellBrowser* This,
1705 IShellView** ppshv);
1707 HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
1708 IShellBrowser* This,
1709 IShellView* pshv);
1711 HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
1712 IShellBrowser* This,
1713 LPTBBUTTONSB lpButtons,
1714 UINT nButtons,
1715 UINT uFlags);
1717 END_INTERFACE
1720 #ifdef COBJMACROS
1721 /*** IUnknown methods ***/
1722 #define IShellBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1723 #define IShellBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
1724 #define IShellBrowser_Release(p) (p)->lpVtbl->Release(p)
1725 /*** IOleWindow methods ***/
1726 #define IShellBrowser_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1727 #define IShellBrowser_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1728 /*** IShellBrowser methods ***/
1729 #define IShellBrowser_InsertMenusSB(p,a,b) (p)->lpVtbl->InsertMenusSB(p,a,b)
1730 #define IShellBrowser_SetMenuSB(p,a,b,c) (p)->lpVtbl->SetMenuSB(p,a,b,c)
1731 #define IShellBrowser_RemoveMenusSB(p,a) (p)->lpVtbl->RemoveMenusSB(p,a)
1732 #define IShellBrowser_SetStatusTextSB(p,a) (p)->lpVtbl->SetStatusTextSB(p,a)
1733 #define IShellBrowser_EnableModelessSB(p,a) (p)->lpVtbl->EnableModelessSB(p,a)
1734 #define IShellBrowser_TranslateAcceleratorSB(p,a,b) (p)->lpVtbl->TranslateAcceleratorSB(p,a,b)
1735 #define IShellBrowser_BrowseObject(p,a,b) (p)->lpVtbl->BrowseObject(p,a,b)
1736 #define IShellBrowser_GetViewStateStream(p,a,b) (p)->lpVtbl->GetViewStateStream(p,a,b)
1737 #define IShellBrowser_GetControlWindow(p,a,b) (p)->lpVtbl->GetControlWindow(p,a,b)
1738 #define IShellBrowser_SendControlMsg(p,a,b,c,d,e) (p)->lpVtbl->SendControlMsg(p,a,b,c,d,e)
1739 #define IShellBrowser_QueryActiveShellView(p,a) (p)->lpVtbl->QueryActiveShellView(p,a)
1740 #define IShellBrowser_OnViewWindowActive(p,a) (p)->lpVtbl->OnViewWindowActive(p,a)
1741 #define IShellBrowser_SetToolbarItems(p,a,b,c) (p)->lpVtbl->SetToolbarItems(p,a,b,c)
1742 #endif
1744 #endif
1746 #define IShellBrowser_METHODS \
1747 /*** IUnknown methods ***/ \
1748 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1749 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1750 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1751 /*** IOleWindow methods ***/ \
1752 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1753 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1754 /*** IShellBrowser methods ***/ \
1755 STDMETHOD_(HRESULT,InsertMenusSB)(THIS_ HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) PURE; \
1756 STDMETHOD_(HRESULT,SetMenuSB)(THIS_ HMENU hmenuShared, HOLEMENU holemenuReserved, HWND hwndActiveObject) PURE; \
1757 STDMETHOD_(HRESULT,RemoveMenusSB)(THIS_ HMENU hmenuShared) PURE; \
1758 STDMETHOD_(HRESULT,SetStatusTextSB)(THIS_ LPCOLESTR pszStatusText) PURE; \
1759 STDMETHOD_(HRESULT,EnableModelessSB)(THIS_ BOOL fEnable) PURE; \
1760 STDMETHOD_(HRESULT,TranslateAcceleratorSB)(THIS_ MSG* pmsg, WORD wID) PURE; \
1761 STDMETHOD_(HRESULT,BrowseObject)(THIS_ LPCITEMIDLIST pidl, UINT wFlags) PURE; \
1762 STDMETHOD_(HRESULT,GetViewStateStream)(THIS_ DWORD grfMode, IStream** ppStrm) PURE; \
1763 STDMETHOD_(HRESULT,GetControlWindow)(THIS_ UINT id, HWND* phwnd) PURE; \
1764 STDMETHOD_(HRESULT,SendControlMsg)(THIS_ UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* pret) PURE; \
1765 STDMETHOD_(HRESULT,QueryActiveShellView)(THIS_ IShellView** ppshv) PURE; \
1766 STDMETHOD_(HRESULT,OnViewWindowActive)(THIS_ IShellView* pshv) PURE; \
1767 STDMETHOD_(HRESULT,SetToolbarItems)(THIS_ LPTBBUTTONSB lpButtons, UINT nButtons, UINT uFlags) PURE;
1769 HRESULT CALLBACK IShellBrowser_InsertMenusSB_Proxy(
1770 IShellBrowser* This,
1771 HMENU hmenuShared,
1772 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1773 void __RPC_STUB IShellBrowser_InsertMenusSB_Stub(
1774 struct IRpcStubBuffer* This,
1775 struct IRpcChannelBuffer* pRpcChannelBuffer,
1776 PRPC_MESSAGE pRpcMessage,
1777 DWORD* pdwStubPhase);
1778 HRESULT CALLBACK IShellBrowser_SetMenuSB_Proxy(
1779 IShellBrowser* This,
1780 HMENU hmenuShared,
1781 HOLEMENU holemenuReserved,
1782 HWND hwndActiveObject);
1783 void __RPC_STUB IShellBrowser_SetMenuSB_Stub(
1784 struct IRpcStubBuffer* This,
1785 struct IRpcChannelBuffer* pRpcChannelBuffer,
1786 PRPC_MESSAGE pRpcMessage,
1787 DWORD* pdwStubPhase);
1788 HRESULT CALLBACK IShellBrowser_RemoveMenusSB_Proxy(
1789 IShellBrowser* This,
1790 HMENU hmenuShared);
1791 void __RPC_STUB IShellBrowser_RemoveMenusSB_Stub(
1792 struct IRpcStubBuffer* This,
1793 struct IRpcChannelBuffer* pRpcChannelBuffer,
1794 PRPC_MESSAGE pRpcMessage,
1795 DWORD* pdwStubPhase);
1796 HRESULT CALLBACK IShellBrowser_SetStatusTextSB_Proxy(
1797 IShellBrowser* This,
1798 LPCOLESTR pszStatusText);
1799 void __RPC_STUB IShellBrowser_SetStatusTextSB_Stub(
1800 struct IRpcStubBuffer* This,
1801 struct IRpcChannelBuffer* pRpcChannelBuffer,
1802 PRPC_MESSAGE pRpcMessage,
1803 DWORD* pdwStubPhase);
1804 HRESULT CALLBACK IShellBrowser_EnableModelessSB_Proxy(
1805 IShellBrowser* This,
1806 BOOL fEnable);
1807 void __RPC_STUB IShellBrowser_EnableModelessSB_Stub(
1808 struct IRpcStubBuffer* This,
1809 struct IRpcChannelBuffer* pRpcChannelBuffer,
1810 PRPC_MESSAGE pRpcMessage,
1811 DWORD* pdwStubPhase);
1812 HRESULT CALLBACK IShellBrowser_TranslateAcceleratorSB_Proxy(
1813 IShellBrowser* This,
1814 MSG* pmsg,
1815 WORD wID);
1816 void __RPC_STUB IShellBrowser_TranslateAcceleratorSB_Stub(
1817 struct IRpcStubBuffer* This,
1818 struct IRpcChannelBuffer* pRpcChannelBuffer,
1819 PRPC_MESSAGE pRpcMessage,
1820 DWORD* pdwStubPhase);
1821 HRESULT CALLBACK IShellBrowser_BrowseObject_Proxy(
1822 IShellBrowser* This,
1823 LPCITEMIDLIST pidl,
1824 UINT wFlags);
1825 void __RPC_STUB IShellBrowser_BrowseObject_Stub(
1826 struct IRpcStubBuffer* This,
1827 struct IRpcChannelBuffer* pRpcChannelBuffer,
1828 PRPC_MESSAGE pRpcMessage,
1829 DWORD* pdwStubPhase);
1830 HRESULT CALLBACK IShellBrowser_GetViewStateStream_Proxy(
1831 IShellBrowser* This,
1832 DWORD grfMode,
1833 IStream** ppStrm);
1834 void __RPC_STUB IShellBrowser_GetViewStateStream_Stub(
1835 struct IRpcStubBuffer* This,
1836 struct IRpcChannelBuffer* pRpcChannelBuffer,
1837 PRPC_MESSAGE pRpcMessage,
1838 DWORD* pdwStubPhase);
1839 HRESULT CALLBACK IShellBrowser_GetControlWindow_Proxy(
1840 IShellBrowser* This,
1841 UINT id,
1842 HWND* phwnd);
1843 void __RPC_STUB IShellBrowser_GetControlWindow_Stub(
1844 struct IRpcStubBuffer* This,
1845 struct IRpcChannelBuffer* pRpcChannelBuffer,
1846 PRPC_MESSAGE pRpcMessage,
1847 DWORD* pdwStubPhase);
1848 HRESULT CALLBACK IShellBrowser_QueryActiveShellView_Proxy(
1849 IShellBrowser* This,
1850 IShellView** ppshv);
1851 void __RPC_STUB IShellBrowser_QueryActiveShellView_Stub(
1852 struct IRpcStubBuffer* This,
1853 struct IRpcChannelBuffer* pRpcChannelBuffer,
1854 PRPC_MESSAGE pRpcMessage,
1855 DWORD* pdwStubPhase);
1856 HRESULT CALLBACK IShellBrowser_OnViewWindowActive_Proxy(
1857 IShellBrowser* This,
1858 IShellView* pshv);
1859 void __RPC_STUB IShellBrowser_OnViewWindowActive_Stub(
1860 struct IRpcStubBuffer* This,
1861 struct IRpcChannelBuffer* pRpcChannelBuffer,
1862 PRPC_MESSAGE pRpcMessage,
1863 DWORD* pdwStubPhase);
1865 #endif /* __IShellBrowser_INTERFACE_DEFINED__ */
1867 #ifndef __IShellLinkA_FWD_DEFINED__
1868 #define __IShellLinkA_FWD_DEFINED__
1869 typedef struct IShellLinkA IShellLinkA;
1870 #endif
1872 typedef enum {
1873 SLR_NO_UI = 0x1,
1874 SLR_ANY_MATCH = 0x2,
1875 SLR_UPDATE = 0x4,
1876 SLR_NOUPDATE = 0x8,
1877 SLR_NOSEARCH = 0x10,
1878 SLR_NOTRACK = 0x20,
1879 SLR_NOLINKINFO = 0x40,
1880 SLR_INVOKE_MSI = 0x80,
1881 SLR_NO_UI_WITH_MSG_PUMP = 0x101
1882 } SLR_FLAGS;
1884 typedef enum {
1885 SLGP_SHORTPATH = 0x1,
1886 SLGP_UNCPRIORITY = 0x2,
1887 SLGP_RAWPATH = 0x4
1888 } SLGP_FLAGS;
1890 /*****************************************************************************
1891 * IShellLinkA interface
1893 #ifndef __IShellLinkA_INTERFACE_DEFINED__
1894 #define __IShellLinkA_INTERFACE_DEFINED__
1896 DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1897 #if defined(__cplusplus) && !defined(CINTERFACE)
1898 struct IShellLinkA : public IUnknown
1900 virtual HRESULT STDMETHODCALLTYPE GetPath(
1901 LPSTR pszFile,
1902 int cch,
1903 WIN32_FIND_DATAA* pfd,
1904 DWORD fFlags) = 0;
1906 virtual HRESULT STDMETHODCALLTYPE GetIDList(
1907 LPITEMIDLIST* ppidl) = 0;
1909 virtual HRESULT STDMETHODCALLTYPE SetIDList(
1910 LPCITEMIDLIST pidl) = 0;
1912 virtual HRESULT STDMETHODCALLTYPE GetDescription(
1913 LPSTR pszName,
1914 int cch) = 0;
1916 virtual HRESULT STDMETHODCALLTYPE SetDescription(
1917 LPCSTR pszName) = 0;
1919 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
1920 LPSTR pszDir,
1921 int cch) = 0;
1923 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
1924 LPCSTR pszDir) = 0;
1926 virtual HRESULT STDMETHODCALLTYPE GetArguments(
1927 LPSTR pszArgs,
1928 int cch) = 0;
1930 virtual HRESULT STDMETHODCALLTYPE SetArguments(
1931 LPCSTR pszArgs) = 0;
1933 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
1934 WORD* pwHotkey) = 0;
1936 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
1937 WORD wHotkey) = 0;
1939 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
1940 int* piShowCmd) = 0;
1942 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
1943 int iShowCmd) = 0;
1945 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
1946 LPSTR pszIconPath,
1947 int cch,
1948 int* piIcon) = 0;
1950 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
1951 LPCSTR pszIconPath,
1952 int iIcon) = 0;
1954 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
1955 LPCSTR pszPathRel,
1956 DWORD dwReserved) = 0;
1958 virtual HRESULT STDMETHODCALLTYPE Resolve(
1959 HWND hwnd,
1960 DWORD fFlags) = 0;
1962 virtual HRESULT STDMETHODCALLTYPE SetPath(
1963 LPCSTR pszFile) = 0;
1966 #else
1967 typedef struct IShellLinkAVtbl IShellLinkAVtbl;
1968 struct IShellLinkA {
1969 const IShellLinkAVtbl* lpVtbl;
1971 struct IShellLinkAVtbl {
1972 BEGIN_INTERFACE
1974 /*** IUnknown methods ***/
1975 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1976 IShellLinkA* This,
1977 REFIID riid,
1978 void** ppvObject);
1980 ULONG (STDMETHODCALLTYPE *AddRef)(
1981 IShellLinkA* This);
1983 ULONG (STDMETHODCALLTYPE *Release)(
1984 IShellLinkA* This);
1986 /*** IShellLinkA methods ***/
1987 HRESULT (STDMETHODCALLTYPE *GetPath)(
1988 IShellLinkA* This,
1989 LPSTR pszFile,
1990 int cch,
1991 WIN32_FIND_DATAA* pfd,
1992 DWORD fFlags);
1994 HRESULT (STDMETHODCALLTYPE *GetIDList)(
1995 IShellLinkA* This,
1996 LPITEMIDLIST* ppidl);
1998 HRESULT (STDMETHODCALLTYPE *SetIDList)(
1999 IShellLinkA* This,
2000 LPCITEMIDLIST pidl);
2002 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2003 IShellLinkA* This,
2004 LPSTR pszName,
2005 int cch);
2007 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2008 IShellLinkA* This,
2009 LPCSTR pszName);
2011 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2012 IShellLinkA* This,
2013 LPSTR pszDir,
2014 int cch);
2016 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2017 IShellLinkA* This,
2018 LPCSTR pszDir);
2020 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2021 IShellLinkA* This,
2022 LPSTR pszArgs,
2023 int cch);
2025 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2026 IShellLinkA* This,
2027 LPCSTR pszArgs);
2029 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2030 IShellLinkA* This,
2031 WORD* pwHotkey);
2033 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2034 IShellLinkA* This,
2035 WORD wHotkey);
2037 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2038 IShellLinkA* This,
2039 int* piShowCmd);
2041 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2042 IShellLinkA* This,
2043 int iShowCmd);
2045 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2046 IShellLinkA* This,
2047 LPSTR pszIconPath,
2048 int cch,
2049 int* piIcon);
2051 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2052 IShellLinkA* This,
2053 LPCSTR pszIconPath,
2054 int iIcon);
2056 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2057 IShellLinkA* This,
2058 LPCSTR pszPathRel,
2059 DWORD dwReserved);
2061 HRESULT (STDMETHODCALLTYPE *Resolve)(
2062 IShellLinkA* This,
2063 HWND hwnd,
2064 DWORD fFlags);
2066 HRESULT (STDMETHODCALLTYPE *SetPath)(
2067 IShellLinkA* This,
2068 LPCSTR pszFile);
2070 END_INTERFACE
2073 #ifdef COBJMACROS
2074 /*** IUnknown methods ***/
2075 #define IShellLinkA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2076 #define IShellLinkA_AddRef(p) (p)->lpVtbl->AddRef(p)
2077 #define IShellLinkA_Release(p) (p)->lpVtbl->Release(p)
2078 /*** IShellLinkA methods ***/
2079 #define IShellLinkA_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2080 #define IShellLinkA_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2081 #define IShellLinkA_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2082 #define IShellLinkA_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2083 #define IShellLinkA_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2084 #define IShellLinkA_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2085 #define IShellLinkA_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2086 #define IShellLinkA_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2087 #define IShellLinkA_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2088 #define IShellLinkA_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2089 #define IShellLinkA_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2090 #define IShellLinkA_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2091 #define IShellLinkA_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2092 #define IShellLinkA_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2093 #define IShellLinkA_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2094 #define IShellLinkA_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2095 #define IShellLinkA_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2096 #define IShellLinkA_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2097 #endif
2099 #endif
2101 #define IShellLinkA_METHODS \
2102 /*** IUnknown methods ***/ \
2103 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2104 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2105 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2106 /*** IShellLinkA methods ***/ \
2107 STDMETHOD_(HRESULT,GetPath)(THIS_ LPSTR pszFile, int cch, WIN32_FIND_DATAA* pfd, DWORD fFlags) PURE; \
2108 STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2109 STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \
2110 STDMETHOD_(HRESULT,GetDescription)(THIS_ LPSTR pszName, int cch) PURE; \
2111 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCSTR pszName) PURE; \
2112 STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPSTR pszDir, int cch) PURE; \
2113 STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCSTR pszDir) PURE; \
2114 STDMETHOD_(HRESULT,GetArguments)(THIS_ LPSTR pszArgs, int cch) PURE; \
2115 STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCSTR pszArgs) PURE; \
2116 STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \
2117 STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \
2118 STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \
2119 STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \
2120 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPSTR pszIconPath, int cch, int* piIcon) PURE; \
2121 STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCSTR pszIconPath, int iIcon) PURE; \
2122 STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCSTR pszPathRel, DWORD dwReserved) PURE; \
2123 STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \
2124 STDMETHOD_(HRESULT,SetPath)(THIS_ LPCSTR pszFile) PURE;
2126 HRESULT CALLBACK IShellLinkA_GetPath_Proxy(
2127 IShellLinkA* This,
2128 LPSTR pszFile,
2129 int cch,
2130 WIN32_FIND_DATAA* pfd,
2131 DWORD fFlags);
2132 void __RPC_STUB IShellLinkA_GetPath_Stub(
2133 struct IRpcStubBuffer* This,
2134 struct IRpcChannelBuffer* pRpcChannelBuffer,
2135 PRPC_MESSAGE pRpcMessage,
2136 DWORD* pdwStubPhase);
2137 HRESULT CALLBACK IShellLinkA_GetIDList_Proxy(
2138 IShellLinkA* This,
2139 LPITEMIDLIST* ppidl);
2140 void __RPC_STUB IShellLinkA_GetIDList_Stub(
2141 struct IRpcStubBuffer* This,
2142 struct IRpcChannelBuffer* pRpcChannelBuffer,
2143 PRPC_MESSAGE pRpcMessage,
2144 DWORD* pdwStubPhase);
2145 HRESULT CALLBACK IShellLinkA_SetIDList_Proxy(
2146 IShellLinkA* This,
2147 LPCITEMIDLIST pidl);
2148 void __RPC_STUB IShellLinkA_SetIDList_Stub(
2149 struct IRpcStubBuffer* This,
2150 struct IRpcChannelBuffer* pRpcChannelBuffer,
2151 PRPC_MESSAGE pRpcMessage,
2152 DWORD* pdwStubPhase);
2153 HRESULT CALLBACK IShellLinkA_GetDescription_Proxy(
2154 IShellLinkA* This,
2155 LPSTR pszName,
2156 int cch);
2157 void __RPC_STUB IShellLinkA_GetDescription_Stub(
2158 struct IRpcStubBuffer* This,
2159 struct IRpcChannelBuffer* pRpcChannelBuffer,
2160 PRPC_MESSAGE pRpcMessage,
2161 DWORD* pdwStubPhase);
2162 HRESULT CALLBACK IShellLinkA_SetDescription_Proxy(
2163 IShellLinkA* This,
2164 LPCSTR pszName);
2165 void __RPC_STUB IShellLinkA_SetDescription_Stub(
2166 struct IRpcStubBuffer* This,
2167 struct IRpcChannelBuffer* pRpcChannelBuffer,
2168 PRPC_MESSAGE pRpcMessage,
2169 DWORD* pdwStubPhase);
2170 HRESULT CALLBACK IShellLinkA_GetWorkingDirectory_Proxy(
2171 IShellLinkA* This,
2172 LPSTR pszDir,
2173 int cch);
2174 void __RPC_STUB IShellLinkA_GetWorkingDirectory_Stub(
2175 struct IRpcStubBuffer* This,
2176 struct IRpcChannelBuffer* pRpcChannelBuffer,
2177 PRPC_MESSAGE pRpcMessage,
2178 DWORD* pdwStubPhase);
2179 HRESULT CALLBACK IShellLinkA_SetWorkingDirectory_Proxy(
2180 IShellLinkA* This,
2181 LPCSTR pszDir);
2182 void __RPC_STUB IShellLinkA_SetWorkingDirectory_Stub(
2183 struct IRpcStubBuffer* This,
2184 struct IRpcChannelBuffer* pRpcChannelBuffer,
2185 PRPC_MESSAGE pRpcMessage,
2186 DWORD* pdwStubPhase);
2187 HRESULT CALLBACK IShellLinkA_GetArguments_Proxy(
2188 IShellLinkA* This,
2189 LPSTR pszArgs,
2190 int cch);
2191 void __RPC_STUB IShellLinkA_GetArguments_Stub(
2192 struct IRpcStubBuffer* This,
2193 struct IRpcChannelBuffer* pRpcChannelBuffer,
2194 PRPC_MESSAGE pRpcMessage,
2195 DWORD* pdwStubPhase);
2196 HRESULT CALLBACK IShellLinkA_SetArguments_Proxy(
2197 IShellLinkA* This,
2198 LPCSTR pszArgs);
2199 void __RPC_STUB IShellLinkA_SetArguments_Stub(
2200 struct IRpcStubBuffer* This,
2201 struct IRpcChannelBuffer* pRpcChannelBuffer,
2202 PRPC_MESSAGE pRpcMessage,
2203 DWORD* pdwStubPhase);
2204 HRESULT CALLBACK IShellLinkA_GetHotkey_Proxy(
2205 IShellLinkA* This,
2206 WORD* pwHotkey);
2207 void __RPC_STUB IShellLinkA_GetHotkey_Stub(
2208 struct IRpcStubBuffer* This,
2209 struct IRpcChannelBuffer* pRpcChannelBuffer,
2210 PRPC_MESSAGE pRpcMessage,
2211 DWORD* pdwStubPhase);
2212 HRESULT CALLBACK IShellLinkA_SetHotkey_Proxy(
2213 IShellLinkA* This,
2214 WORD wHotkey);
2215 void __RPC_STUB IShellLinkA_SetHotkey_Stub(
2216 struct IRpcStubBuffer* This,
2217 struct IRpcChannelBuffer* pRpcChannelBuffer,
2218 PRPC_MESSAGE pRpcMessage,
2219 DWORD* pdwStubPhase);
2220 HRESULT CALLBACK IShellLinkA_GetShowCmd_Proxy(
2221 IShellLinkA* This,
2222 int* piShowCmd);
2223 void __RPC_STUB IShellLinkA_GetShowCmd_Stub(
2224 struct IRpcStubBuffer* This,
2225 struct IRpcChannelBuffer* pRpcChannelBuffer,
2226 PRPC_MESSAGE pRpcMessage,
2227 DWORD* pdwStubPhase);
2228 HRESULT CALLBACK IShellLinkA_SetShowCmd_Proxy(
2229 IShellLinkA* This,
2230 int iShowCmd);
2231 void __RPC_STUB IShellLinkA_SetShowCmd_Stub(
2232 struct IRpcStubBuffer* This,
2233 struct IRpcChannelBuffer* pRpcChannelBuffer,
2234 PRPC_MESSAGE pRpcMessage,
2235 DWORD* pdwStubPhase);
2236 HRESULT CALLBACK IShellLinkA_GetIconLocation_Proxy(
2237 IShellLinkA* This,
2238 LPSTR pszIconPath,
2239 int cch,
2240 int* piIcon);
2241 void __RPC_STUB IShellLinkA_GetIconLocation_Stub(
2242 struct IRpcStubBuffer* This,
2243 struct IRpcChannelBuffer* pRpcChannelBuffer,
2244 PRPC_MESSAGE pRpcMessage,
2245 DWORD* pdwStubPhase);
2246 HRESULT CALLBACK IShellLinkA_SetIconLocation_Proxy(
2247 IShellLinkA* This,
2248 LPCSTR pszIconPath,
2249 int iIcon);
2250 void __RPC_STUB IShellLinkA_SetIconLocation_Stub(
2251 struct IRpcStubBuffer* This,
2252 struct IRpcChannelBuffer* pRpcChannelBuffer,
2253 PRPC_MESSAGE pRpcMessage,
2254 DWORD* pdwStubPhase);
2255 HRESULT CALLBACK IShellLinkA_SetRelativePath_Proxy(
2256 IShellLinkA* This,
2257 LPCSTR pszPathRel,
2258 DWORD dwReserved);
2259 void __RPC_STUB IShellLinkA_SetRelativePath_Stub(
2260 struct IRpcStubBuffer* This,
2261 struct IRpcChannelBuffer* pRpcChannelBuffer,
2262 PRPC_MESSAGE pRpcMessage,
2263 DWORD* pdwStubPhase);
2264 HRESULT CALLBACK IShellLinkA_Resolve_Proxy(
2265 IShellLinkA* This,
2266 HWND hwnd,
2267 DWORD fFlags);
2268 void __RPC_STUB IShellLinkA_Resolve_Stub(
2269 struct IRpcStubBuffer* This,
2270 struct IRpcChannelBuffer* pRpcChannelBuffer,
2271 PRPC_MESSAGE pRpcMessage,
2272 DWORD* pdwStubPhase);
2273 HRESULT CALLBACK IShellLinkA_SetPath_Proxy(
2274 IShellLinkA* This,
2275 LPCSTR pszFile);
2276 void __RPC_STUB IShellLinkA_SetPath_Stub(
2277 struct IRpcStubBuffer* This,
2278 struct IRpcChannelBuffer* pRpcChannelBuffer,
2279 PRPC_MESSAGE pRpcMessage,
2280 DWORD* pdwStubPhase);
2282 #endif /* __IShellLinkA_INTERFACE_DEFINED__ */
2284 #ifndef __IShellLinkW_FWD_DEFINED__
2285 #define __IShellLinkW_FWD_DEFINED__
2286 typedef struct IShellLinkW IShellLinkW;
2287 #endif
2289 /*****************************************************************************
2290 * IShellLinkW interface
2292 #ifndef __IShellLinkW_INTERFACE_DEFINED__
2293 #define __IShellLinkW_INTERFACE_DEFINED__
2295 DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2296 #if defined(__cplusplus) && !defined(CINTERFACE)
2297 struct IShellLinkW : public IUnknown
2299 virtual HRESULT STDMETHODCALLTYPE GetPath(
2300 LPWSTR pszFile,
2301 int cch,
2302 WIN32_FIND_DATAW* pfd,
2303 DWORD fFlags) = 0;
2305 virtual HRESULT STDMETHODCALLTYPE GetIDList(
2306 LPITEMIDLIST* ppidl) = 0;
2308 virtual HRESULT STDMETHODCALLTYPE SetIDList(
2309 LPCITEMIDLIST pidl) = 0;
2311 virtual HRESULT STDMETHODCALLTYPE GetDescription(
2312 LPWSTR pszName,
2313 int cch) = 0;
2315 virtual HRESULT STDMETHODCALLTYPE SetDescription(
2316 LPCWSTR pszName) = 0;
2318 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
2319 LPWSTR pszDir,
2320 int cch) = 0;
2322 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
2323 LPCWSTR pszDir) = 0;
2325 virtual HRESULT STDMETHODCALLTYPE GetArguments(
2326 LPWSTR pszArgs,
2327 int cch) = 0;
2329 virtual HRESULT STDMETHODCALLTYPE SetArguments(
2330 LPCWSTR pszArgs) = 0;
2332 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
2333 WORD* pwHotkey) = 0;
2335 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
2336 WORD wHotkey) = 0;
2338 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
2339 int* piShowCmd) = 0;
2341 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
2342 int iShowCmd) = 0;
2344 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2345 LPWSTR pszIconPath,
2346 int cch,
2347 int* piIcon) = 0;
2349 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
2350 LPCWSTR pszIconPath,
2351 int iIcon) = 0;
2353 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
2354 LPCWSTR pszPathRel,
2355 DWORD dwReserved) = 0;
2357 virtual HRESULT STDMETHODCALLTYPE Resolve(
2358 HWND hwnd,
2359 DWORD fFlags) = 0;
2361 virtual HRESULT STDMETHODCALLTYPE SetPath(
2362 LPCWSTR pszFile) = 0;
2365 #else
2366 typedef struct IShellLinkWVtbl IShellLinkWVtbl;
2367 struct IShellLinkW {
2368 const IShellLinkWVtbl* lpVtbl;
2370 struct IShellLinkWVtbl {
2371 BEGIN_INTERFACE
2373 /*** IUnknown methods ***/
2374 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2375 IShellLinkW* This,
2376 REFIID riid,
2377 void** ppvObject);
2379 ULONG (STDMETHODCALLTYPE *AddRef)(
2380 IShellLinkW* This);
2382 ULONG (STDMETHODCALLTYPE *Release)(
2383 IShellLinkW* This);
2385 /*** IShellLinkW methods ***/
2386 HRESULT (STDMETHODCALLTYPE *GetPath)(
2387 IShellLinkW* This,
2388 LPWSTR pszFile,
2389 int cch,
2390 WIN32_FIND_DATAW* pfd,
2391 DWORD fFlags);
2393 HRESULT (STDMETHODCALLTYPE *GetIDList)(
2394 IShellLinkW* This,
2395 LPITEMIDLIST* ppidl);
2397 HRESULT (STDMETHODCALLTYPE *SetIDList)(
2398 IShellLinkW* This,
2399 LPCITEMIDLIST pidl);
2401 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2402 IShellLinkW* This,
2403 LPWSTR pszName,
2404 int cch);
2406 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2407 IShellLinkW* This,
2408 LPCWSTR pszName);
2410 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2411 IShellLinkW* This,
2412 LPWSTR pszDir,
2413 int cch);
2415 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2416 IShellLinkW* This,
2417 LPCWSTR pszDir);
2419 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2420 IShellLinkW* This,
2421 LPWSTR pszArgs,
2422 int cch);
2424 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2425 IShellLinkW* This,
2426 LPCWSTR pszArgs);
2428 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2429 IShellLinkW* This,
2430 WORD* pwHotkey);
2432 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2433 IShellLinkW* This,
2434 WORD wHotkey);
2436 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2437 IShellLinkW* This,
2438 int* piShowCmd);
2440 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2441 IShellLinkW* This,
2442 int iShowCmd);
2444 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2445 IShellLinkW* This,
2446 LPWSTR pszIconPath,
2447 int cch,
2448 int* piIcon);
2450 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2451 IShellLinkW* This,
2452 LPCWSTR pszIconPath,
2453 int iIcon);
2455 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2456 IShellLinkW* This,
2457 LPCWSTR pszPathRel,
2458 DWORD dwReserved);
2460 HRESULT (STDMETHODCALLTYPE *Resolve)(
2461 IShellLinkW* This,
2462 HWND hwnd,
2463 DWORD fFlags);
2465 HRESULT (STDMETHODCALLTYPE *SetPath)(
2466 IShellLinkW* This,
2467 LPCWSTR pszFile);
2469 END_INTERFACE
2472 #ifdef COBJMACROS
2473 /*** IUnknown methods ***/
2474 #define IShellLinkW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2475 #define IShellLinkW_AddRef(p) (p)->lpVtbl->AddRef(p)
2476 #define IShellLinkW_Release(p) (p)->lpVtbl->Release(p)
2477 /*** IShellLinkW methods ***/
2478 #define IShellLinkW_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2479 #define IShellLinkW_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2480 #define IShellLinkW_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2481 #define IShellLinkW_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2482 #define IShellLinkW_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2483 #define IShellLinkW_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2484 #define IShellLinkW_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2485 #define IShellLinkW_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2486 #define IShellLinkW_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2487 #define IShellLinkW_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2488 #define IShellLinkW_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2489 #define IShellLinkW_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2490 #define IShellLinkW_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2491 #define IShellLinkW_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2492 #define IShellLinkW_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2493 #define IShellLinkW_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2494 #define IShellLinkW_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2495 #define IShellLinkW_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2496 #endif
2498 #endif
2500 #define IShellLinkW_METHODS \
2501 /*** IUnknown methods ***/ \
2502 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2503 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2504 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2505 /*** IShellLinkW methods ***/ \
2506 STDMETHOD_(HRESULT,GetPath)(THIS_ LPWSTR pszFile, int cch, WIN32_FIND_DATAW* pfd, DWORD fFlags) PURE; \
2507 STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2508 STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \
2509 STDMETHOD_(HRESULT,GetDescription)(THIS_ LPWSTR pszName, int cch) PURE; \
2510 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCWSTR pszName) PURE; \
2511 STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPWSTR pszDir, int cch) PURE; \
2512 STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCWSTR pszDir) PURE; \
2513 STDMETHOD_(HRESULT,GetArguments)(THIS_ LPWSTR pszArgs, int cch) PURE; \
2514 STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCWSTR pszArgs) PURE; \
2515 STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \
2516 STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \
2517 STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \
2518 STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \
2519 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPWSTR pszIconPath, int cch, int* piIcon) PURE; \
2520 STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCWSTR pszIconPath, int iIcon) PURE; \
2521 STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCWSTR pszPathRel, DWORD dwReserved) PURE; \
2522 STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \
2523 STDMETHOD_(HRESULT,SetPath)(THIS_ LPCWSTR pszFile) PURE;
2525 HRESULT CALLBACK IShellLinkW_GetPath_Proxy(
2526 IShellLinkW* This,
2527 LPWSTR pszFile,
2528 int cch,
2529 WIN32_FIND_DATAW* pfd,
2530 DWORD fFlags);
2531 void __RPC_STUB IShellLinkW_GetPath_Stub(
2532 struct IRpcStubBuffer* This,
2533 struct IRpcChannelBuffer* pRpcChannelBuffer,
2534 PRPC_MESSAGE pRpcMessage,
2535 DWORD* pdwStubPhase);
2536 HRESULT CALLBACK IShellLinkW_GetIDList_Proxy(
2537 IShellLinkW* This,
2538 LPITEMIDLIST* ppidl);
2539 void __RPC_STUB IShellLinkW_GetIDList_Stub(
2540 struct IRpcStubBuffer* This,
2541 struct IRpcChannelBuffer* pRpcChannelBuffer,
2542 PRPC_MESSAGE pRpcMessage,
2543 DWORD* pdwStubPhase);
2544 HRESULT CALLBACK IShellLinkW_SetIDList_Proxy(
2545 IShellLinkW* This,
2546 LPCITEMIDLIST pidl);
2547 void __RPC_STUB IShellLinkW_SetIDList_Stub(
2548 struct IRpcStubBuffer* This,
2549 struct IRpcChannelBuffer* pRpcChannelBuffer,
2550 PRPC_MESSAGE pRpcMessage,
2551 DWORD* pdwStubPhase);
2552 HRESULT CALLBACK IShellLinkW_GetDescription_Proxy(
2553 IShellLinkW* This,
2554 LPWSTR pszName,
2555 int cch);
2556 void __RPC_STUB IShellLinkW_GetDescription_Stub(
2557 struct IRpcStubBuffer* This,
2558 struct IRpcChannelBuffer* pRpcChannelBuffer,
2559 PRPC_MESSAGE pRpcMessage,
2560 DWORD* pdwStubPhase);
2561 HRESULT CALLBACK IShellLinkW_SetDescription_Proxy(
2562 IShellLinkW* This,
2563 LPCWSTR pszName);
2564 void __RPC_STUB IShellLinkW_SetDescription_Stub(
2565 struct IRpcStubBuffer* This,
2566 struct IRpcChannelBuffer* pRpcChannelBuffer,
2567 PRPC_MESSAGE pRpcMessage,
2568 DWORD* pdwStubPhase);
2569 HRESULT CALLBACK IShellLinkW_GetWorkingDirectory_Proxy(
2570 IShellLinkW* This,
2571 LPWSTR pszDir,
2572 int cch);
2573 void __RPC_STUB IShellLinkW_GetWorkingDirectory_Stub(
2574 struct IRpcStubBuffer* This,
2575 struct IRpcChannelBuffer* pRpcChannelBuffer,
2576 PRPC_MESSAGE pRpcMessage,
2577 DWORD* pdwStubPhase);
2578 HRESULT CALLBACK IShellLinkW_SetWorkingDirectory_Proxy(
2579 IShellLinkW* This,
2580 LPCWSTR pszDir);
2581 void __RPC_STUB IShellLinkW_SetWorkingDirectory_Stub(
2582 struct IRpcStubBuffer* This,
2583 struct IRpcChannelBuffer* pRpcChannelBuffer,
2584 PRPC_MESSAGE pRpcMessage,
2585 DWORD* pdwStubPhase);
2586 HRESULT CALLBACK IShellLinkW_GetArguments_Proxy(
2587 IShellLinkW* This,
2588 LPWSTR pszArgs,
2589 int cch);
2590 void __RPC_STUB IShellLinkW_GetArguments_Stub(
2591 struct IRpcStubBuffer* This,
2592 struct IRpcChannelBuffer* pRpcChannelBuffer,
2593 PRPC_MESSAGE pRpcMessage,
2594 DWORD* pdwStubPhase);
2595 HRESULT CALLBACK IShellLinkW_SetArguments_Proxy(
2596 IShellLinkW* This,
2597 LPCWSTR pszArgs);
2598 void __RPC_STUB IShellLinkW_SetArguments_Stub(
2599 struct IRpcStubBuffer* This,
2600 struct IRpcChannelBuffer* pRpcChannelBuffer,
2601 PRPC_MESSAGE pRpcMessage,
2602 DWORD* pdwStubPhase);
2603 HRESULT CALLBACK IShellLinkW_GetHotkey_Proxy(
2604 IShellLinkW* This,
2605 WORD* pwHotkey);
2606 void __RPC_STUB IShellLinkW_GetHotkey_Stub(
2607 struct IRpcStubBuffer* This,
2608 struct IRpcChannelBuffer* pRpcChannelBuffer,
2609 PRPC_MESSAGE pRpcMessage,
2610 DWORD* pdwStubPhase);
2611 HRESULT CALLBACK IShellLinkW_SetHotkey_Proxy(
2612 IShellLinkW* This,
2613 WORD wHotkey);
2614 void __RPC_STUB IShellLinkW_SetHotkey_Stub(
2615 struct IRpcStubBuffer* This,
2616 struct IRpcChannelBuffer* pRpcChannelBuffer,
2617 PRPC_MESSAGE pRpcMessage,
2618 DWORD* pdwStubPhase);
2619 HRESULT CALLBACK IShellLinkW_GetShowCmd_Proxy(
2620 IShellLinkW* This,
2621 int* piShowCmd);
2622 void __RPC_STUB IShellLinkW_GetShowCmd_Stub(
2623 struct IRpcStubBuffer* This,
2624 struct IRpcChannelBuffer* pRpcChannelBuffer,
2625 PRPC_MESSAGE pRpcMessage,
2626 DWORD* pdwStubPhase);
2627 HRESULT CALLBACK IShellLinkW_SetShowCmd_Proxy(
2628 IShellLinkW* This,
2629 int iShowCmd);
2630 void __RPC_STUB IShellLinkW_SetShowCmd_Stub(
2631 struct IRpcStubBuffer* This,
2632 struct IRpcChannelBuffer* pRpcChannelBuffer,
2633 PRPC_MESSAGE pRpcMessage,
2634 DWORD* pdwStubPhase);
2635 HRESULT CALLBACK IShellLinkW_GetIconLocation_Proxy(
2636 IShellLinkW* This,
2637 LPWSTR pszIconPath,
2638 int cch,
2639 int* piIcon);
2640 void __RPC_STUB IShellLinkW_GetIconLocation_Stub(
2641 struct IRpcStubBuffer* This,
2642 struct IRpcChannelBuffer* pRpcChannelBuffer,
2643 PRPC_MESSAGE pRpcMessage,
2644 DWORD* pdwStubPhase);
2645 HRESULT CALLBACK IShellLinkW_SetIconLocation_Proxy(
2646 IShellLinkW* This,
2647 LPCWSTR pszIconPath,
2648 int iIcon);
2649 void __RPC_STUB IShellLinkW_SetIconLocation_Stub(
2650 struct IRpcStubBuffer* This,
2651 struct IRpcChannelBuffer* pRpcChannelBuffer,
2652 PRPC_MESSAGE pRpcMessage,
2653 DWORD* pdwStubPhase);
2654 HRESULT CALLBACK IShellLinkW_SetRelativePath_Proxy(
2655 IShellLinkW* This,
2656 LPCWSTR pszPathRel,
2657 DWORD dwReserved);
2658 void __RPC_STUB IShellLinkW_SetRelativePath_Stub(
2659 struct IRpcStubBuffer* This,
2660 struct IRpcChannelBuffer* pRpcChannelBuffer,
2661 PRPC_MESSAGE pRpcMessage,
2662 DWORD* pdwStubPhase);
2663 HRESULT CALLBACK IShellLinkW_Resolve_Proxy(
2664 IShellLinkW* This,
2665 HWND hwnd,
2666 DWORD fFlags);
2667 void __RPC_STUB IShellLinkW_Resolve_Stub(
2668 struct IRpcStubBuffer* This,
2669 struct IRpcChannelBuffer* pRpcChannelBuffer,
2670 PRPC_MESSAGE pRpcMessage,
2671 DWORD* pdwStubPhase);
2672 HRESULT CALLBACK IShellLinkW_SetPath_Proxy(
2673 IShellLinkW* This,
2674 LPCWSTR pszFile);
2675 void __RPC_STUB IShellLinkW_SetPath_Stub(
2676 struct IRpcStubBuffer* This,
2677 struct IRpcChannelBuffer* pRpcChannelBuffer,
2678 PRPC_MESSAGE pRpcMessage,
2679 DWORD* pdwStubPhase);
2681 #endif /* __IShellLinkW_INTERFACE_DEFINED__ */
2683 #define IShellLink WINELIB_NAME_AW(IShellLink)
2684 #ifndef __IShellExtInit_FWD_DEFINED__
2685 #define __IShellExtInit_FWD_DEFINED__
2686 typedef struct IShellExtInit IShellExtInit;
2687 #endif
2689 typedef IShellExtInit *LPSHELLEXTINIT;
2691 /*****************************************************************************
2692 * IShellExtInit interface
2694 #ifndef __IShellExtInit_INTERFACE_DEFINED__
2695 #define __IShellExtInit_INTERFACE_DEFINED__
2697 DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2698 #if defined(__cplusplus) && !defined(CINTERFACE)
2699 struct IShellExtInit : public IUnknown
2701 virtual HRESULT STDMETHODCALLTYPE Initialize(
2702 LPCITEMIDLIST pidlFolder,
2703 IDataObject* pdtobj,
2704 HKEY hkeyProgID) = 0;
2707 #else
2708 typedef struct IShellExtInitVtbl IShellExtInitVtbl;
2709 struct IShellExtInit {
2710 const IShellExtInitVtbl* lpVtbl;
2712 struct IShellExtInitVtbl {
2713 BEGIN_INTERFACE
2715 /*** IUnknown methods ***/
2716 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2717 IShellExtInit* This,
2718 REFIID riid,
2719 void** ppvObject);
2721 ULONG (STDMETHODCALLTYPE *AddRef)(
2722 IShellExtInit* This);
2724 ULONG (STDMETHODCALLTYPE *Release)(
2725 IShellExtInit* This);
2727 /*** IShellExtInit methods ***/
2728 HRESULT (STDMETHODCALLTYPE *Initialize)(
2729 IShellExtInit* This,
2730 LPCITEMIDLIST pidlFolder,
2731 IDataObject* pdtobj,
2732 HKEY hkeyProgID);
2734 END_INTERFACE
2737 #ifdef COBJMACROS
2738 /*** IUnknown methods ***/
2739 #define IShellExtInit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2740 #define IShellExtInit_AddRef(p) (p)->lpVtbl->AddRef(p)
2741 #define IShellExtInit_Release(p) (p)->lpVtbl->Release(p)
2742 /*** IShellExtInit methods ***/
2743 #define IShellExtInit_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
2744 #endif
2746 #endif
2748 #define IShellExtInit_METHODS \
2749 /*** IUnknown methods ***/ \
2750 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2751 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2752 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2753 /*** IShellExtInit methods ***/ \
2754 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidlFolder, IDataObject* pdtobj, HKEY hkeyProgID) PURE;
2756 HRESULT CALLBACK IShellExtInit_Initialize_Proxy(
2757 IShellExtInit* This,
2758 LPCITEMIDLIST pidlFolder,
2759 IDataObject* pdtobj,
2760 HKEY hkeyProgID);
2761 void __RPC_STUB IShellExtInit_Initialize_Stub(
2762 struct IRpcStubBuffer* This,
2763 struct IRpcChannelBuffer* pRpcChannelBuffer,
2764 PRPC_MESSAGE pRpcMessage,
2765 DWORD* pdwStubPhase);
2767 #endif /* __IShellExtInit_INTERFACE_DEFINED__ */
2769 #ifndef __IPersistFolder3_FWD_DEFINED__
2770 #define __IPersistFolder3_FWD_DEFINED__
2771 typedef struct IPersistFolder3 IPersistFolder3;
2772 #endif
2774 typedef struct {
2775 LPITEMIDLIST pidlTargetFolder;
2776 WCHAR szTargetParsingName[260];
2777 WCHAR szNetworkProvider[260];
2778 DWORD dwAttributes;
2779 int csidl;
2780 } PERSIST_FOLDER_TARGET_INFO;
2782 /*****************************************************************************
2783 * IPersistFolder3 interface
2785 #ifndef __IPersistFolder3_INTERFACE_DEFINED__
2786 #define __IPersistFolder3_INTERFACE_DEFINED__
2788 DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf);
2789 #if defined(__cplusplus) && !defined(CINTERFACE)
2790 struct IPersistFolder3 : public IPersistFolder2
2792 virtual HRESULT STDMETHODCALLTYPE InitializeEx(
2793 IBindCtx* pbc,
2794 LPCITEMIDLIST pidlRoot,
2795 const PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2797 virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
2798 PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2801 #else
2802 typedef struct IPersistFolder3Vtbl IPersistFolder3Vtbl;
2803 struct IPersistFolder3 {
2804 const IPersistFolder3Vtbl* lpVtbl;
2806 struct IPersistFolder3Vtbl {
2807 BEGIN_INTERFACE
2809 /*** IUnknown methods ***/
2810 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2811 IPersistFolder3* This,
2812 REFIID riid,
2813 void** ppvObject);
2815 ULONG (STDMETHODCALLTYPE *AddRef)(
2816 IPersistFolder3* This);
2818 ULONG (STDMETHODCALLTYPE *Release)(
2819 IPersistFolder3* This);
2821 /*** IPersist methods ***/
2822 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2823 IPersistFolder3* This,
2824 CLSID* pClassID);
2826 /*** IPersistFolder methods ***/
2827 HRESULT (STDMETHODCALLTYPE *Initialize)(
2828 IPersistFolder3* This,
2829 LPCITEMIDLIST pidl);
2831 /*** IPersistFolder2 methods ***/
2832 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
2833 IPersistFolder3* This,
2834 LPITEMIDLIST* ppidl);
2836 /*** IPersistFolder3 methods ***/
2837 HRESULT (STDMETHODCALLTYPE *InitializeEx)(
2838 IPersistFolder3* This,
2839 IBindCtx* pbc,
2840 LPCITEMIDLIST pidlRoot,
2841 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2843 HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
2844 IPersistFolder3* This,
2845 PERSIST_FOLDER_TARGET_INFO* ppfti);
2847 END_INTERFACE
2850 #ifdef COBJMACROS
2851 /*** IUnknown methods ***/
2852 #define IPersistFolder3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2853 #define IPersistFolder3_AddRef(p) (p)->lpVtbl->AddRef(p)
2854 #define IPersistFolder3_Release(p) (p)->lpVtbl->Release(p)
2855 /*** IPersist methods ***/
2856 #define IPersistFolder3_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2857 /*** IPersistFolder methods ***/
2858 #define IPersistFolder3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
2859 /*** IPersistFolder2 methods ***/
2860 #define IPersistFolder3_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
2861 /*** IPersistFolder3 methods ***/
2862 #define IPersistFolder3_InitializeEx(p,a,b,c) (p)->lpVtbl->InitializeEx(p,a,b,c)
2863 #define IPersistFolder3_GetFolderTargetInfo(p,a) (p)->lpVtbl->GetFolderTargetInfo(p,a)
2864 #endif
2866 #endif
2868 #define IPersistFolder3_METHODS \
2869 /*** IUnknown methods ***/ \
2870 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2871 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2872 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2873 /*** IPersist methods ***/ \
2874 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2875 /*** IPersistFolder methods ***/ \
2876 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \
2877 /*** IPersistFolder2 methods ***/ \
2878 STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2879 /*** IPersistFolder3 methods ***/ \
2880 STDMETHOD_(HRESULT,InitializeEx)(THIS_ IBindCtx* pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO* ppfti) PURE; \
2881 STDMETHOD_(HRESULT,GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO* ppfti) PURE;
2883 HRESULT CALLBACK IPersistFolder3_InitializeEx_Proxy(
2884 IPersistFolder3* This,
2885 IBindCtx* pbc,
2886 LPCITEMIDLIST pidlRoot,
2887 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2888 void __RPC_STUB IPersistFolder3_InitializeEx_Stub(
2889 struct IRpcStubBuffer* This,
2890 struct IRpcChannelBuffer* pRpcChannelBuffer,
2891 PRPC_MESSAGE pRpcMessage,
2892 DWORD* pdwStubPhase);
2893 HRESULT CALLBACK IPersistFolder3_GetFolderTargetInfo_Proxy(
2894 IPersistFolder3* This,
2895 PERSIST_FOLDER_TARGET_INFO* ppfti);
2896 void __RPC_STUB IPersistFolder3_GetFolderTargetInfo_Stub(
2897 struct IRpcStubBuffer* This,
2898 struct IRpcChannelBuffer* pRpcChannelBuffer,
2899 PRPC_MESSAGE pRpcMessage,
2900 DWORD* pdwStubPhase);
2902 #endif /* __IPersistFolder3_INTERFACE_DEFINED__ */
2904 #ifndef __IExtractIconA_FWD_DEFINED__
2905 #define __IExtractIconA_FWD_DEFINED__
2906 typedef struct IExtractIconA IExtractIconA;
2907 #endif
2909 #define GIL_OPENICON 0x0001
2910 #define GIL_FORSHELL 0x0002
2911 #define GIL_ASYNC 0x0020
2912 #define GIL_DEFAULTICON 0x0040
2913 #define GIL_FORSHORTCUT 0x0080
2914 #define GIL_SIMULATEDOC 0x0001
2915 #define GIL_PERINSTANCE 0x0002
2916 #define GIL_PERCLASS 0x0004
2917 #define GIL_NOTFILENAME 0x0008
2918 #define GIL_DONTCACHE 0x0010
2919 typedef IExtractIconA *LPEXTRACTICONA;
2921 /*****************************************************************************
2922 * IExtractIconA interface
2924 #ifndef __IExtractIconA_INTERFACE_DEFINED__
2925 #define __IExtractIconA_INTERFACE_DEFINED__
2927 DEFINE_GUID(IID_IExtractIconA, 0x000214eb, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2928 #if defined(__cplusplus) && !defined(CINTERFACE)
2929 struct IExtractIconA : public IUnknown
2931 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2932 UINT uFlags,
2933 LPSTR szIconFile,
2934 UINT cchMax,
2935 INT* piIndex,
2936 UINT* pwFlags) = 0;
2938 virtual HRESULT STDMETHODCALLTYPE Extract(
2939 LPCSTR pszFile,
2940 UINT nIconIndex,
2941 HICON* phiconLarge,
2942 HICON* phiconSmall,
2943 UINT nIconSize) = 0;
2946 #else
2947 typedef struct IExtractIconAVtbl IExtractIconAVtbl;
2948 struct IExtractIconA {
2949 const IExtractIconAVtbl* lpVtbl;
2951 struct IExtractIconAVtbl {
2952 BEGIN_INTERFACE
2954 /*** IUnknown methods ***/
2955 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2956 IExtractIconA* This,
2957 REFIID riid,
2958 void** ppvObject);
2960 ULONG (STDMETHODCALLTYPE *AddRef)(
2961 IExtractIconA* This);
2963 ULONG (STDMETHODCALLTYPE *Release)(
2964 IExtractIconA* This);
2966 /*** IExtractIconA methods ***/
2967 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2968 IExtractIconA* This,
2969 UINT uFlags,
2970 LPSTR szIconFile,
2971 UINT cchMax,
2972 INT* piIndex,
2973 UINT* pwFlags);
2975 HRESULT (STDMETHODCALLTYPE *Extract)(
2976 IExtractIconA* This,
2977 LPCSTR pszFile,
2978 UINT nIconIndex,
2979 HICON* phiconLarge,
2980 HICON* phiconSmall,
2981 UINT nIconSize);
2983 END_INTERFACE
2986 #ifdef COBJMACROS
2987 /*** IUnknown methods ***/
2988 #define IExtractIconA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2989 #define IExtractIconA_AddRef(p) (p)->lpVtbl->AddRef(p)
2990 #define IExtractIconA_Release(p) (p)->lpVtbl->Release(p)
2991 /*** IExtractIconA methods ***/
2992 #define IExtractIconA_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
2993 #define IExtractIconA_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
2994 #endif
2996 #endif
2998 #define IExtractIconA_METHODS \
2999 /*** IUnknown methods ***/ \
3000 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3001 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3002 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3003 /*** IExtractIconA methods ***/ \
3004 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \
3005 STDMETHOD_(HRESULT,Extract)(THIS_ LPCSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE;
3007 HRESULT CALLBACK IExtractIconA_GetIconLocation_Proxy(
3008 IExtractIconA* This,
3009 UINT uFlags,
3010 LPSTR szIconFile,
3011 UINT cchMax,
3012 INT* piIndex,
3013 UINT* pwFlags);
3014 void __RPC_STUB IExtractIconA_GetIconLocation_Stub(
3015 struct IRpcStubBuffer* This,
3016 struct IRpcChannelBuffer* pRpcChannelBuffer,
3017 PRPC_MESSAGE pRpcMessage,
3018 DWORD* pdwStubPhase);
3019 HRESULT CALLBACK IExtractIconA_Extract_Proxy(
3020 IExtractIconA* This,
3021 LPCSTR pszFile,
3022 UINT nIconIndex,
3023 HICON* phiconLarge,
3024 HICON* phiconSmall,
3025 UINT nIconSize);
3026 void __RPC_STUB IExtractIconA_Extract_Stub(
3027 struct IRpcStubBuffer* This,
3028 struct IRpcChannelBuffer* pRpcChannelBuffer,
3029 PRPC_MESSAGE pRpcMessage,
3030 DWORD* pdwStubPhase);
3032 #endif /* __IExtractIconA_INTERFACE_DEFINED__ */
3034 #ifndef __IExtractIconW_FWD_DEFINED__
3035 #define __IExtractIconW_FWD_DEFINED__
3036 typedef struct IExtractIconW IExtractIconW;
3037 #endif
3039 typedef IExtractIconW *LPEXTRACTICONW;
3041 /*****************************************************************************
3042 * IExtractIconW interface
3044 #ifndef __IExtractIconW_INTERFACE_DEFINED__
3045 #define __IExtractIconW_INTERFACE_DEFINED__
3047 DEFINE_GUID(IID_IExtractIconW, 0x000214fa, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3048 #if defined(__cplusplus) && !defined(CINTERFACE)
3049 struct IExtractIconW : public IUnknown
3051 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
3052 UINT uFlags,
3053 LPWSTR szIconFile,
3054 UINT cchMax,
3055 INT* piIndex,
3056 UINT* pwFlags) = 0;
3058 virtual HRESULT STDMETHODCALLTYPE Extract(
3059 LPCWSTR pszFile,
3060 UINT nIconIndex,
3061 HICON* phiconLarge,
3062 HICON* phiconSmall,
3063 UINT nIconSize) = 0;
3066 #else
3067 typedef struct IExtractIconWVtbl IExtractIconWVtbl;
3068 struct IExtractIconW {
3069 const IExtractIconWVtbl* lpVtbl;
3071 struct IExtractIconWVtbl {
3072 BEGIN_INTERFACE
3074 /*** IUnknown methods ***/
3075 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3076 IExtractIconW* This,
3077 REFIID riid,
3078 void** ppvObject);
3080 ULONG (STDMETHODCALLTYPE *AddRef)(
3081 IExtractIconW* This);
3083 ULONG (STDMETHODCALLTYPE *Release)(
3084 IExtractIconW* This);
3086 /*** IExtractIconW methods ***/
3087 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
3088 IExtractIconW* This,
3089 UINT uFlags,
3090 LPWSTR szIconFile,
3091 UINT cchMax,
3092 INT* piIndex,
3093 UINT* pwFlags);
3095 HRESULT (STDMETHODCALLTYPE *Extract)(
3096 IExtractIconW* This,
3097 LPCWSTR pszFile,
3098 UINT nIconIndex,
3099 HICON* phiconLarge,
3100 HICON* phiconSmall,
3101 UINT nIconSize);
3103 END_INTERFACE
3106 #ifdef COBJMACROS
3107 /*** IUnknown methods ***/
3108 #define IExtractIconW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3109 #define IExtractIconW_AddRef(p) (p)->lpVtbl->AddRef(p)
3110 #define IExtractIconW_Release(p) (p)->lpVtbl->Release(p)
3111 /*** IExtractIconW methods ***/
3112 #define IExtractIconW_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
3113 #define IExtractIconW_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
3114 #endif
3116 #endif
3118 #define IExtractIconW_METHODS \
3119 /*** IUnknown methods ***/ \
3120 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3121 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3122 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3123 /*** IExtractIconW methods ***/ \
3124 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPWSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \
3125 STDMETHOD_(HRESULT,Extract)(THIS_ LPCWSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE;
3127 HRESULT CALLBACK IExtractIconW_GetIconLocation_Proxy(
3128 IExtractIconW* This,
3129 UINT uFlags,
3130 LPWSTR szIconFile,
3131 UINT cchMax,
3132 INT* piIndex,
3133 UINT* pwFlags);
3134 void __RPC_STUB IExtractIconW_GetIconLocation_Stub(
3135 struct IRpcStubBuffer* This,
3136 struct IRpcChannelBuffer* pRpcChannelBuffer,
3137 PRPC_MESSAGE pRpcMessage,
3138 DWORD* pdwStubPhase);
3139 HRESULT CALLBACK IExtractIconW_Extract_Proxy(
3140 IExtractIconW* This,
3141 LPCWSTR pszFile,
3142 UINT nIconIndex,
3143 HICON* phiconLarge,
3144 HICON* phiconSmall,
3145 UINT nIconSize);
3146 void __RPC_STUB IExtractIconW_Extract_Stub(
3147 struct IRpcStubBuffer* This,
3148 struct IRpcChannelBuffer* pRpcChannelBuffer,
3149 PRPC_MESSAGE pRpcMessage,
3150 DWORD* pdwStubPhase);
3152 #endif /* __IExtractIconW_INTERFACE_DEFINED__ */
3154 #define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)
3155 #define IExtractIcon WINELIB_NAME_AW(IExtractIcon)
3156 #ifndef __ICommDlgBrowser_FWD_DEFINED__
3157 #define __ICommDlgBrowser_FWD_DEFINED__
3158 typedef struct ICommDlgBrowser ICommDlgBrowser;
3159 #endif
3161 #define CDBOSC_SETFOCUS 0x00000000
3162 #define CDBOSC_KILLFOCUS 0x00000001
3163 #define CDBOSC_SELCHANGE 0x00000002
3164 #define CDBOSC_RENAME 0x00000003
3165 #define CDBOSC_STATECHANGE 0x00000004
3166 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
3168 /*****************************************************************************
3169 * ICommDlgBrowser interface
3171 #ifndef __ICommDlgBrowser_INTERFACE_DEFINED__
3172 #define __ICommDlgBrowser_INTERFACE_DEFINED__
3174 DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3175 #if defined(__cplusplus) && !defined(CINTERFACE)
3176 struct ICommDlgBrowser : public IUnknown
3178 virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand(
3179 IShellView* shv) = 0;
3181 virtual HRESULT STDMETHODCALLTYPE OnStateChange(
3182 IShellView* shv,
3183 ULONG uChange) = 0;
3185 virtual HRESULT STDMETHODCALLTYPE IncludeObject(
3186 IShellView* shv,
3187 LPCITEMIDLIST pidl) = 0;
3190 #else
3191 typedef struct ICommDlgBrowserVtbl ICommDlgBrowserVtbl;
3192 struct ICommDlgBrowser {
3193 const ICommDlgBrowserVtbl* lpVtbl;
3195 struct ICommDlgBrowserVtbl {
3196 BEGIN_INTERFACE
3198 /*** IUnknown methods ***/
3199 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3200 ICommDlgBrowser* This,
3201 REFIID riid,
3202 void** ppvObject);
3204 ULONG (STDMETHODCALLTYPE *AddRef)(
3205 ICommDlgBrowser* This);
3207 ULONG (STDMETHODCALLTYPE *Release)(
3208 ICommDlgBrowser* This);
3210 /*** ICommDlgBrowser methods ***/
3211 HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
3212 ICommDlgBrowser* This,
3213 IShellView* shv);
3215 HRESULT (STDMETHODCALLTYPE *OnStateChange)(
3216 ICommDlgBrowser* This,
3217 IShellView* shv,
3218 ULONG uChange);
3220 HRESULT (STDMETHODCALLTYPE *IncludeObject)(
3221 ICommDlgBrowser* This,
3222 IShellView* shv,
3223 LPCITEMIDLIST pidl);
3225 END_INTERFACE
3228 #ifdef COBJMACROS
3229 /*** IUnknown methods ***/
3230 #define ICommDlgBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3231 #define ICommDlgBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
3232 #define ICommDlgBrowser_Release(p) (p)->lpVtbl->Release(p)
3233 /*** ICommDlgBrowser methods ***/
3234 #define ICommDlgBrowser_OnDefaultCommand(p,a) (p)->lpVtbl->OnDefaultCommand(p,a)
3235 #define ICommDlgBrowser_OnStateChange(p,a,b) (p)->lpVtbl->OnStateChange(p,a,b)
3236 #define ICommDlgBrowser_IncludeObject(p,a,b) (p)->lpVtbl->IncludeObject(p,a,b)
3237 #endif
3239 #endif
3241 #define ICommDlgBrowser_METHODS \
3242 /*** IUnknown methods ***/ \
3243 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3244 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3245 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3246 /*** ICommDlgBrowser methods ***/ \
3247 STDMETHOD_(HRESULT,OnDefaultCommand)(THIS_ IShellView* shv) PURE; \
3248 STDMETHOD_(HRESULT,OnStateChange)(THIS_ IShellView* shv, ULONG uChange) PURE; \
3249 STDMETHOD_(HRESULT,IncludeObject)(THIS_ IShellView* shv, LPCITEMIDLIST pidl) PURE;
3251 HRESULT CALLBACK ICommDlgBrowser_OnDefaultCommand_Proxy(
3252 ICommDlgBrowser* This,
3253 IShellView* shv);
3254 void __RPC_STUB ICommDlgBrowser_OnDefaultCommand_Stub(
3255 struct IRpcStubBuffer* This,
3256 struct IRpcChannelBuffer* pRpcChannelBuffer,
3257 PRPC_MESSAGE pRpcMessage,
3258 DWORD* pdwStubPhase);
3259 HRESULT CALLBACK ICommDlgBrowser_OnStateChange_Proxy(
3260 ICommDlgBrowser* This,
3261 IShellView* shv,
3262 ULONG uChange);
3263 void __RPC_STUB ICommDlgBrowser_OnStateChange_Stub(
3264 struct IRpcStubBuffer* This,
3265 struct IRpcChannelBuffer* pRpcChannelBuffer,
3266 PRPC_MESSAGE pRpcMessage,
3267 DWORD* pdwStubPhase);
3268 HRESULT CALLBACK ICommDlgBrowser_IncludeObject_Proxy(
3269 ICommDlgBrowser* This,
3270 IShellView* shv,
3271 LPCITEMIDLIST pidl);
3272 void __RPC_STUB ICommDlgBrowser_IncludeObject_Stub(
3273 struct IRpcStubBuffer* This,
3274 struct IRpcChannelBuffer* pRpcChannelBuffer,
3275 PRPC_MESSAGE pRpcMessage,
3276 DWORD* pdwStubPhase);
3278 #endif /* __ICommDlgBrowser_INTERFACE_DEFINED__ */
3280 #ifndef __IDockingWindowFrame_FWD_DEFINED__
3281 #define __IDockingWindowFrame_FWD_DEFINED__
3282 typedef struct IDockingWindowFrame IDockingWindowFrame;
3283 #endif
3285 #define DWFRF_NORMAL 0x0000
3286 #define DWFRF_DELETECONFIGDATA 0x0001
3287 #define DWFAF_HIDDEN 0x0001
3288 /*****************************************************************************
3289 * IDockingWindowFrame interface
3291 #ifndef __IDockingWindowFrame_INTERFACE_DEFINED__
3292 #define __IDockingWindowFrame_INTERFACE_DEFINED__
3294 DEFINE_GUID(IID_IDockingWindowFrame, 0x47d2657a, 0x7b27, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
3295 #if defined(__cplusplus) && !defined(CINTERFACE)
3296 struct IDockingWindowFrame : public IOleWindow
3298 virtual HRESULT STDMETHODCALLTYPE AddToolbar(
3299 IUnknown* punkSrc,
3300 LPCWSTR pwszItem,
3301 DWORD dwAddFlags) = 0;
3303 virtual HRESULT STDMETHODCALLTYPE RemoveToolbar(
3304 IUnknown* punkSrc,
3305 DWORD dwRemoveFlags) = 0;
3307 virtual HRESULT STDMETHODCALLTYPE FindToolbar(
3308 LPCWSTR pwszItem,
3309 REFIID riid,
3310 LPVOID* ppvObj) = 0;
3313 #else
3314 typedef struct IDockingWindowFrameVtbl IDockingWindowFrameVtbl;
3315 struct IDockingWindowFrame {
3316 const IDockingWindowFrameVtbl* lpVtbl;
3318 struct IDockingWindowFrameVtbl {
3319 BEGIN_INTERFACE
3321 /*** IUnknown methods ***/
3322 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3323 IDockingWindowFrame* This,
3324 REFIID riid,
3325 void** ppvObject);
3327 ULONG (STDMETHODCALLTYPE *AddRef)(
3328 IDockingWindowFrame* This);
3330 ULONG (STDMETHODCALLTYPE *Release)(
3331 IDockingWindowFrame* This);
3333 /*** IOleWindow methods ***/
3334 HRESULT (STDMETHODCALLTYPE *GetWindow)(
3335 IDockingWindowFrame* This,
3336 HWND* phwnd);
3338 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
3339 IDockingWindowFrame* This,
3340 BOOL fEnterMode);
3342 /*** IDockingWindowFrame methods ***/
3343 HRESULT (STDMETHODCALLTYPE *AddToolbar)(
3344 IDockingWindowFrame* This,
3345 IUnknown* punkSrc,
3346 LPCWSTR pwszItem,
3347 DWORD dwAddFlags);
3349 HRESULT (STDMETHODCALLTYPE *RemoveToolbar)(
3350 IDockingWindowFrame* This,
3351 IUnknown* punkSrc,
3352 DWORD dwRemoveFlags);
3354 HRESULT (STDMETHODCALLTYPE *FindToolbar)(
3355 IDockingWindowFrame* This,
3356 LPCWSTR pwszItem,
3357 REFIID riid,
3358 LPVOID* ppvObj);
3360 END_INTERFACE
3363 #ifdef COBJMACROS
3364 /*** IUnknown methods ***/
3365 #define IDockingWindowFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3366 #define IDockingWindowFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
3367 #define IDockingWindowFrame_Release(p) (p)->lpVtbl->Release(p)
3368 /*** IOleWindow methods ***/
3369 #define IDockingWindowFrame_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
3370 #define IDockingWindowFrame_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
3371 /*** IDockingWindowFrame methods ***/
3372 #define IDockingWindowFrame_AddToolbar(p,a,b,c) (p)->lpVtbl->AddToolbar(p,a,b,c)
3373 #define IDockingWindowFrame_RemoveToolbar(p,a,b) (p)->lpVtbl->RemoveToolbar(p,a,b)
3374 #define IDockingWindowFrame_FindToolbar(p,a,b,c) (p)->lpVtbl->FindToolbar(p,a,b,c)
3375 #endif
3377 #endif
3379 #define IDockingWindowFrame_METHODS \
3380 /*** IUnknown methods ***/ \
3381 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3382 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3383 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3384 /*** IOleWindow methods ***/ \
3385 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
3386 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
3387 /*** IDockingWindowFrame methods ***/ \
3388 STDMETHOD_(HRESULT,AddToolbar)(THIS_ IUnknown* punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags) PURE; \
3389 STDMETHOD_(HRESULT,RemoveToolbar)(THIS_ IUnknown* punkSrc, DWORD dwRemoveFlags) PURE; \
3390 STDMETHOD_(HRESULT,FindToolbar)(THIS_ LPCWSTR pwszItem, REFIID riid, LPVOID* ppvObj) PURE;
3392 HRESULT CALLBACK IDockingWindowFrame_AddToolbar_Proxy(
3393 IDockingWindowFrame* This,
3394 IUnknown* punkSrc,
3395 LPCWSTR pwszItem,
3396 DWORD dwAddFlags);
3397 void __RPC_STUB IDockingWindowFrame_AddToolbar_Stub(
3398 struct IRpcStubBuffer* This,
3399 struct IRpcChannelBuffer* pRpcChannelBuffer,
3400 PRPC_MESSAGE pRpcMessage,
3401 DWORD* pdwStubPhase);
3402 HRESULT CALLBACK IDockingWindowFrame_RemoveToolbar_Proxy(
3403 IDockingWindowFrame* This,
3404 IUnknown* punkSrc,
3405 DWORD dwRemoveFlags);
3406 void __RPC_STUB IDockingWindowFrame_RemoveToolbar_Stub(
3407 struct IRpcStubBuffer* This,
3408 struct IRpcChannelBuffer* pRpcChannelBuffer,
3409 PRPC_MESSAGE pRpcMessage,
3410 DWORD* pdwStubPhase);
3411 HRESULT CALLBACK IDockingWindowFrame_FindToolbar_Proxy(
3412 IDockingWindowFrame* This,
3413 LPCWSTR pwszItem,
3414 REFIID riid,
3415 LPVOID* ppvObj);
3416 void __RPC_STUB IDockingWindowFrame_FindToolbar_Stub(
3417 struct IRpcStubBuffer* This,
3418 struct IRpcChannelBuffer* pRpcChannelBuffer,
3419 PRPC_MESSAGE pRpcMessage,
3420 DWORD* pdwStubPhase);
3422 #endif /* __IDockingWindowFrame_INTERFACE_DEFINED__ */
3424 #ifndef __IDragSourceHelper_FWD_DEFINED__
3425 #define __IDragSourceHelper_FWD_DEFINED__
3426 typedef struct IDragSourceHelper IDragSourceHelper;
3427 #endif
3429 typedef struct {
3430 SIZE sizeDragImage;
3431 POINT ptOffset;
3432 HBITMAP hbmpDragImage;
3433 COLORREF crColorKey;
3434 } SHDRAGIMAGE, *LPSHDRAGIMAGE;
3436 /*****************************************************************************
3437 * IDragSourceHelper interface
3439 #ifndef __IDragSourceHelper_INTERFACE_DEFINED__
3440 #define __IDragSourceHelper_INTERFACE_DEFINED__
3442 DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
3443 #if defined(__cplusplus) && !defined(CINTERFACE)
3444 struct IDragSourceHelper : public IUnknown
3446 virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
3447 LPSHDRAGIMAGE pshdi,
3448 IDataObject* pDataObject) = 0;
3450 virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow(
3451 HWND hwnd,
3452 POINT* ppt,
3453 IDataObject* pDataObject) = 0;
3456 #else
3457 typedef struct IDragSourceHelperVtbl IDragSourceHelperVtbl;
3458 struct IDragSourceHelper {
3459 const IDragSourceHelperVtbl* lpVtbl;
3461 struct IDragSourceHelperVtbl {
3462 BEGIN_INTERFACE
3464 /*** IUnknown methods ***/
3465 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3466 IDragSourceHelper* This,
3467 REFIID riid,
3468 void** ppvObject);
3470 ULONG (STDMETHODCALLTYPE *AddRef)(
3471 IDragSourceHelper* This);
3473 ULONG (STDMETHODCALLTYPE *Release)(
3474 IDragSourceHelper* This);
3476 /*** IDragSourceHelper methods ***/
3477 HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
3478 IDragSourceHelper* This,
3479 LPSHDRAGIMAGE pshdi,
3480 IDataObject* pDataObject);
3482 HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
3483 IDragSourceHelper* This,
3484 HWND hwnd,
3485 POINT* ppt,
3486 IDataObject* pDataObject);
3488 END_INTERFACE
3491 #ifdef COBJMACROS
3492 /*** IUnknown methods ***/
3493 #define IDragSourceHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3494 #define IDragSourceHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3495 #define IDragSourceHelper_Release(p) (p)->lpVtbl->Release(p)
3496 /*** IDragSourceHelper methods ***/
3497 #define IDragSourceHelper_InitializeFromBitmap(p,a,b) (p)->lpVtbl->InitializeFromBitmap(p,a,b)
3498 #define IDragSourceHelper_InitializeFromWindow(p,a,b,c) (p)->lpVtbl->InitializeFromWindow(p,a,b,c)
3499 #endif
3501 #endif
3503 #define IDragSourceHelper_METHODS \
3504 /*** IUnknown methods ***/ \
3505 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3506 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3507 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3508 /*** IDragSourceHelper methods ***/ \
3509 STDMETHOD_(HRESULT,InitializeFromBitmap)(THIS_ LPSHDRAGIMAGE pshdi, IDataObject* pDataObject) PURE; \
3510 STDMETHOD_(HRESULT,InitializeFromWindow)(THIS_ HWND hwnd, POINT* ppt, IDataObject* pDataObject) PURE;
3512 HRESULT CALLBACK IDragSourceHelper_InitializeFromBitmap_Proxy(
3513 IDragSourceHelper* This,
3514 LPSHDRAGIMAGE pshdi,
3515 IDataObject* pDataObject);
3516 void __RPC_STUB IDragSourceHelper_InitializeFromBitmap_Stub(
3517 struct IRpcStubBuffer* This,
3518 struct IRpcChannelBuffer* pRpcChannelBuffer,
3519 PRPC_MESSAGE pRpcMessage,
3520 DWORD* pdwStubPhase);
3521 HRESULT CALLBACK IDragSourceHelper_InitializeFromWindow_Proxy(
3522 IDragSourceHelper* This,
3523 HWND hwnd,
3524 POINT* ppt,
3525 IDataObject* pDataObject);
3526 void __RPC_STUB IDragSourceHelper_InitializeFromWindow_Stub(
3527 struct IRpcStubBuffer* This,
3528 struct IRpcChannelBuffer* pRpcChannelBuffer,
3529 PRPC_MESSAGE pRpcMessage,
3530 DWORD* pdwStubPhase);
3532 #endif /* __IDragSourceHelper_INTERFACE_DEFINED__ */
3534 #ifndef __IDropTargetHelper_FWD_DEFINED__
3535 #define __IDropTargetHelper_FWD_DEFINED__
3536 typedef struct IDropTargetHelper IDropTargetHelper;
3537 #endif
3539 /*****************************************************************************
3540 * IDropTargetHelper interface
3542 #ifndef __IDropTargetHelper_INTERFACE_DEFINED__
3543 #define __IDropTargetHelper_INTERFACE_DEFINED__
3545 DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
3546 #if defined(__cplusplus) && !defined(CINTERFACE)
3547 struct IDropTargetHelper : public IUnknown
3549 virtual HRESULT STDMETHODCALLTYPE DragEnter(
3550 HWND hwndTarget,
3551 IDataObject* pDataObject,
3552 POINT* ppt,
3553 DWORD dwEffect) = 0;
3555 virtual HRESULT STDMETHODCALLTYPE DragLeave(
3556 ) = 0;
3558 virtual HRESULT STDMETHODCALLTYPE DragOver(
3559 POINT* ppt,
3560 DWORD dwEffect) = 0;
3562 virtual HRESULT STDMETHODCALLTYPE Drop(
3563 IDataObject* pDataObject,
3564 POINT* ppt,
3565 DWORD dwEffect) = 0;
3567 virtual HRESULT STDMETHODCALLTYPE Show(
3568 BOOL fShow) = 0;
3571 #else
3572 typedef struct IDropTargetHelperVtbl IDropTargetHelperVtbl;
3573 struct IDropTargetHelper {
3574 const IDropTargetHelperVtbl* lpVtbl;
3576 struct IDropTargetHelperVtbl {
3577 BEGIN_INTERFACE
3579 /*** IUnknown methods ***/
3580 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3581 IDropTargetHelper* This,
3582 REFIID riid,
3583 void** ppvObject);
3585 ULONG (STDMETHODCALLTYPE *AddRef)(
3586 IDropTargetHelper* This);
3588 ULONG (STDMETHODCALLTYPE *Release)(
3589 IDropTargetHelper* This);
3591 /*** IDropTargetHelper methods ***/
3592 HRESULT (STDMETHODCALLTYPE *DragEnter)(
3593 IDropTargetHelper* This,
3594 HWND hwndTarget,
3595 IDataObject* pDataObject,
3596 POINT* ppt,
3597 DWORD dwEffect);
3599 HRESULT (STDMETHODCALLTYPE *DragLeave)(
3600 IDropTargetHelper* This);
3602 HRESULT (STDMETHODCALLTYPE *DragOver)(
3603 IDropTargetHelper* This,
3604 POINT* ppt,
3605 DWORD dwEffect);
3607 HRESULT (STDMETHODCALLTYPE *Drop)(
3608 IDropTargetHelper* This,
3609 IDataObject* pDataObject,
3610 POINT* ppt,
3611 DWORD dwEffect);
3613 HRESULT (STDMETHODCALLTYPE *Show)(
3614 IDropTargetHelper* This,
3615 BOOL fShow);
3617 END_INTERFACE
3620 #ifdef COBJMACROS
3621 /*** IUnknown methods ***/
3622 #define IDropTargetHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3623 #define IDropTargetHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3624 #define IDropTargetHelper_Release(p) (p)->lpVtbl->Release(p)
3625 /*** IDropTargetHelper methods ***/
3626 #define IDropTargetHelper_DragEnter(p,a,b,c,d) (p)->lpVtbl->DragEnter(p,a,b,c,d)
3627 #define IDropTargetHelper_DragLeave(p) (p)->lpVtbl->DragLeave(p)
3628 #define IDropTargetHelper_DragOver(p,a,b) (p)->lpVtbl->DragOver(p,a,b)
3629 #define IDropTargetHelper_Drop(p,a,b,c) (p)->lpVtbl->Drop(p,a,b,c)
3630 #define IDropTargetHelper_Show(p,a) (p)->lpVtbl->Show(p,a)
3631 #endif
3633 #endif
3635 #define IDropTargetHelper_METHODS \
3636 /*** IUnknown methods ***/ \
3637 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3638 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3639 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3640 /*** IDropTargetHelper methods ***/ \
3641 STDMETHOD_(HRESULT,DragEnter)(THIS_ HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \
3642 STDMETHOD_(HRESULT,DragLeave)(THIS) PURE; \
3643 STDMETHOD_(HRESULT,DragOver)(THIS_ POINT* ppt, DWORD dwEffect) PURE; \
3644 STDMETHOD_(HRESULT,Drop)(THIS_ IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \
3645 STDMETHOD_(HRESULT,Show)(THIS_ BOOL fShow) PURE;
3647 HRESULT CALLBACK IDropTargetHelper_DragEnter_Proxy(
3648 IDropTargetHelper* This,
3649 HWND hwndTarget,
3650 IDataObject* pDataObject,
3651 POINT* ppt,
3652 DWORD dwEffect);
3653 void __RPC_STUB IDropTargetHelper_DragEnter_Stub(
3654 struct IRpcStubBuffer* This,
3655 struct IRpcChannelBuffer* pRpcChannelBuffer,
3656 PRPC_MESSAGE pRpcMessage,
3657 DWORD* pdwStubPhase);
3658 HRESULT CALLBACK IDropTargetHelper_DragLeave_Proxy(
3659 IDropTargetHelper* This);
3660 void __RPC_STUB IDropTargetHelper_DragLeave_Stub(
3661 struct IRpcStubBuffer* This,
3662 struct IRpcChannelBuffer* pRpcChannelBuffer,
3663 PRPC_MESSAGE pRpcMessage,
3664 DWORD* pdwStubPhase);
3665 HRESULT CALLBACK IDropTargetHelper_DragOver_Proxy(
3666 IDropTargetHelper* This,
3667 POINT* ppt,
3668 DWORD dwEffect);
3669 void __RPC_STUB IDropTargetHelper_DragOver_Stub(
3670 struct IRpcStubBuffer* This,
3671 struct IRpcChannelBuffer* pRpcChannelBuffer,
3672 PRPC_MESSAGE pRpcMessage,
3673 DWORD* pdwStubPhase);
3674 HRESULT CALLBACK IDropTargetHelper_Drop_Proxy(
3675 IDropTargetHelper* This,
3676 IDataObject* pDataObject,
3677 POINT* ppt,
3678 DWORD dwEffect);
3679 void __RPC_STUB IDropTargetHelper_Drop_Stub(
3680 struct IRpcStubBuffer* This,
3681 struct IRpcChannelBuffer* pRpcChannelBuffer,
3682 PRPC_MESSAGE pRpcMessage,
3683 DWORD* pdwStubPhase);
3684 HRESULT CALLBACK IDropTargetHelper_Show_Proxy(
3685 IDropTargetHelper* This,
3686 BOOL fShow);
3687 void __RPC_STUB IDropTargetHelper_Show_Stub(
3688 struct IRpcStubBuffer* This,
3689 struct IRpcChannelBuffer* pRpcChannelBuffer,
3690 PRPC_MESSAGE pRpcMessage,
3691 DWORD* pdwStubPhase);
3693 #endif /* __IDropTargetHelper_INTERFACE_DEFINED__ */
3695 #ifndef __IContextMenu_FWD_DEFINED__
3696 #define __IContextMenu_FWD_DEFINED__
3697 typedef struct IContextMenu IContextMenu;
3698 #endif
3700 #define CMF_NORMAL 0x00000000
3701 #define CMF_DEFAULTONLY 0x00000001
3702 #define CMF_VERBSONLY 0x00000002
3703 #define CMF_EXPLORE 0x00000004
3704 #define CMF_NOVERBS 0x00000008
3705 #define CMF_CANRENAME 0x00000010
3706 #define CMF_NODEFAULT 0x00000020
3707 #define CMF_INCLUDESTATIC 0x00000040
3708 #define CMF_EXTENDEDVERBS 0x00000100
3709 #define CMF_RESERVED 0xffff0000
3710 #define GCS_VERBA 0x00000000
3711 #define GCS_HELPTEXTA 0x00000001
3712 #define GCS_VALIDATEA 0x00000002
3713 #define GCS_VERBW 0x00000004
3714 #define GCS_HELPTEXTW 0x00000005
3715 #define GCS_VALIDATEW 0x00000006
3716 #define GCS_UNICODE 0x00000004
3717 #define GCS_VERB WINELIB_NAME_AW(GCS_VERB)
3718 #define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)
3719 #define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)
3720 #define CMDSTR_NEWFOLDERA "NewFolder"
3721 #define CMDSTR_VIEWLISTA "ViewList"
3722 #define CMDSTR_VIEWDETAILSA "ViewDetails"
3723 #if defined(__GNUC__)
3724 # define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }
3725 # define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }
3726 # define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }
3727 #elif defined(_MSC_VER)
3728 # define CMDSTR_NEWFOLDERW L"NewFolder"
3729 # define CMDSTR_VIEWLISTW L"ViewList"
3730 # define CMDSTR_VIEWDETAILSW L"ViewDetails"
3731 #else
3732 static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};
3733 static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};
3734 static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};
3735 #endif
3736 #define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)
3737 #define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)
3738 #define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)
3739 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
3740 #define CMIC_MASK_ICON SEE_MASK_ICON
3741 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
3742 #define CMIC_MASK_UNICODE SEE_MASK_UNICODE
3743 #define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE
3744 #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
3745 #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
3746 #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
3747 #define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK
3748 #define CMIC_MASK_SHIFT_DOWN 0x10000000
3749 #define CMIC_MASK_PTINVOKE 0x20000000
3750 #define CMIC_MASK_CONTROL_DOWN 0x40000000
3751 #define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE
3752 #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS
3753 typedef IContextMenu *LPCONTEXTMENU;
3755 typedef struct tagCMINVOKECOMMANDINFO {
3756 DWORD cbSize;
3757 DWORD fMask;
3758 HWND hwnd;
3759 LPCSTR lpVerb;
3760 LPCSTR lpParameters;
3761 LPCSTR lpDirectory;
3762 INT nShow;
3763 DWORD dwHotKey;
3764 HANDLE hIcon;
3765 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
3767 typedef struct tagCMInvokeCommandInfoEx {
3768 DWORD cbSize;
3769 DWORD fMask;
3770 HWND hwnd;
3771 LPCSTR lpVerb;
3772 LPCSTR lpParameters;
3773 LPCSTR lpDirectory;
3774 INT nShow;
3775 DWORD dwHotKey;
3776 HANDLE hIcon;
3777 LPCSTR lpTitle;
3778 LPCWSTR lpVerbW;
3779 LPCWSTR lpParametersW;
3780 LPCWSTR lpDirectoryW;
3781 LPCWSTR lpTitleW;
3782 POINT ptInvoke;
3783 } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX;
3785 /*****************************************************************************
3786 * IContextMenu interface
3788 #ifndef __IContextMenu_INTERFACE_DEFINED__
3789 #define __IContextMenu_INTERFACE_DEFINED__
3791 DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3792 #if defined(__cplusplus) && !defined(CINTERFACE)
3793 struct IContextMenu : public IUnknown
3795 virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
3796 HMENU hmenu,
3797 UINT indexMenu,
3798 UINT idCmdFirst,
3799 UINT idCmdLast,
3800 UINT uFlags) = 0;
3802 virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
3803 LPCMINVOKECOMMANDINFO lpici) = 0;
3805 virtual HRESULT STDMETHODCALLTYPE GetCommandString(
3806 UINT idCmd,
3807 UINT uType,
3808 UINT* pwReserved,
3809 LPSTR pszName,
3810 UINT cchMax) = 0;
3813 #else
3814 typedef struct IContextMenuVtbl IContextMenuVtbl;
3815 struct IContextMenu {
3816 const IContextMenuVtbl* lpVtbl;
3818 struct IContextMenuVtbl {
3819 BEGIN_INTERFACE
3821 /*** IUnknown methods ***/
3822 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3823 IContextMenu* This,
3824 REFIID riid,
3825 void** ppvObject);
3827 ULONG (STDMETHODCALLTYPE *AddRef)(
3828 IContextMenu* This);
3830 ULONG (STDMETHODCALLTYPE *Release)(
3831 IContextMenu* This);
3833 /*** IContextMenu methods ***/
3834 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3835 IContextMenu* This,
3836 HMENU hmenu,
3837 UINT indexMenu,
3838 UINT idCmdFirst,
3839 UINT idCmdLast,
3840 UINT uFlags);
3842 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3843 IContextMenu* This,
3844 LPCMINVOKECOMMANDINFO lpici);
3846 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3847 IContextMenu* This,
3848 UINT idCmd,
3849 UINT uType,
3850 UINT* pwReserved,
3851 LPSTR pszName,
3852 UINT cchMax);
3854 END_INTERFACE
3857 #ifdef COBJMACROS
3858 /*** IUnknown methods ***/
3859 #define IContextMenu_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3860 #define IContextMenu_AddRef(p) (p)->lpVtbl->AddRef(p)
3861 #define IContextMenu_Release(p) (p)->lpVtbl->Release(p)
3862 /*** IContextMenu methods ***/
3863 #define IContextMenu_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3864 #define IContextMenu_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3865 #define IContextMenu_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3866 #endif
3868 #endif
3870 #define IContextMenu_METHODS \
3871 /*** IUnknown methods ***/ \
3872 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3873 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3874 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3875 /*** IContextMenu methods ***/ \
3876 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
3877 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
3878 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE;
3880 HRESULT CALLBACK IContextMenu_QueryContextMenu_Proxy(
3881 IContextMenu* This,
3882 HMENU hmenu,
3883 UINT indexMenu,
3884 UINT idCmdFirst,
3885 UINT idCmdLast,
3886 UINT uFlags);
3887 void __RPC_STUB IContextMenu_QueryContextMenu_Stub(
3888 struct IRpcStubBuffer* This,
3889 struct IRpcChannelBuffer* pRpcChannelBuffer,
3890 PRPC_MESSAGE pRpcMessage,
3891 DWORD* pdwStubPhase);
3892 HRESULT CALLBACK IContextMenu_InvokeCommand_Proxy(
3893 IContextMenu* This,
3894 LPCMINVOKECOMMANDINFO lpici);
3895 void __RPC_STUB IContextMenu_InvokeCommand_Stub(
3896 struct IRpcStubBuffer* This,
3897 struct IRpcChannelBuffer* pRpcChannelBuffer,
3898 PRPC_MESSAGE pRpcMessage,
3899 DWORD* pdwStubPhase);
3900 HRESULT CALLBACK IContextMenu_GetCommandString_Proxy(
3901 IContextMenu* This,
3902 UINT idCmd,
3903 UINT uType,
3904 UINT* pwReserved,
3905 LPSTR pszName,
3906 UINT cchMax);
3907 void __RPC_STUB IContextMenu_GetCommandString_Stub(
3908 struct IRpcStubBuffer* This,
3909 struct IRpcChannelBuffer* pRpcChannelBuffer,
3910 PRPC_MESSAGE pRpcMessage,
3911 DWORD* pdwStubPhase);
3913 #endif /* __IContextMenu_INTERFACE_DEFINED__ */
3915 #ifndef __IContextMenu2_FWD_DEFINED__
3916 #define __IContextMenu2_FWD_DEFINED__
3917 typedef struct IContextMenu2 IContextMenu2;
3918 #endif
3920 typedef IContextMenu2 *LPCONTEXTMENU2;
3922 /*****************************************************************************
3923 * IContextMenu2 interface
3925 #ifndef __IContextMenu2_INTERFACE_DEFINED__
3926 #define __IContextMenu2_INTERFACE_DEFINED__
3928 DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3929 #if defined(__cplusplus) && !defined(CINTERFACE)
3930 struct IContextMenu2 : public IContextMenu
3932 virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(
3933 UINT uMsg,
3934 WPARAM wParam,
3935 LPARAM lParam) = 0;
3938 #else
3939 typedef struct IContextMenu2Vtbl IContextMenu2Vtbl;
3940 struct IContextMenu2 {
3941 const IContextMenu2Vtbl* lpVtbl;
3943 struct IContextMenu2Vtbl {
3944 BEGIN_INTERFACE
3946 /*** IUnknown methods ***/
3947 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3948 IContextMenu2* This,
3949 REFIID riid,
3950 void** ppvObject);
3952 ULONG (STDMETHODCALLTYPE *AddRef)(
3953 IContextMenu2* This);
3955 ULONG (STDMETHODCALLTYPE *Release)(
3956 IContextMenu2* This);
3958 /*** IContextMenu methods ***/
3959 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3960 IContextMenu2* This,
3961 HMENU hmenu,
3962 UINT indexMenu,
3963 UINT idCmdFirst,
3964 UINT idCmdLast,
3965 UINT uFlags);
3967 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3968 IContextMenu2* This,
3969 LPCMINVOKECOMMANDINFO lpici);
3971 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3972 IContextMenu2* This,
3973 UINT idCmd,
3974 UINT uType,
3975 UINT* pwReserved,
3976 LPSTR pszName,
3977 UINT cchMax);
3979 /*** IContextMenu2 methods ***/
3980 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
3981 IContextMenu2* This,
3982 UINT uMsg,
3983 WPARAM wParam,
3984 LPARAM lParam);
3986 END_INTERFACE
3989 #ifdef COBJMACROS
3990 /*** IUnknown methods ***/
3991 #define IContextMenu2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3992 #define IContextMenu2_AddRef(p) (p)->lpVtbl->AddRef(p)
3993 #define IContextMenu2_Release(p) (p)->lpVtbl->Release(p)
3994 /*** IContextMenu methods ***/
3995 #define IContextMenu2_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3996 #define IContextMenu2_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3997 #define IContextMenu2_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3998 /*** IContextMenu2 methods ***/
3999 #define IContextMenu2_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
4000 #endif
4002 #endif
4004 #define IContextMenu2_METHODS \
4005 /*** IUnknown methods ***/ \
4006 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4007 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4008 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4009 /*** IContextMenu methods ***/ \
4010 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
4011 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
4012 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \
4013 /*** IContextMenu2 methods ***/ \
4014 STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE;
4016 HRESULT CALLBACK IContextMenu2_HandleMenuMsg_Proxy(
4017 IContextMenu2* This,
4018 UINT uMsg,
4019 WPARAM wParam,
4020 LPARAM lParam);
4021 void __RPC_STUB IContextMenu2_HandleMenuMsg_Stub(
4022 struct IRpcStubBuffer* This,
4023 struct IRpcChannelBuffer* pRpcChannelBuffer,
4024 PRPC_MESSAGE pRpcMessage,
4025 DWORD* pdwStubPhase);
4027 #endif /* __IContextMenu2_INTERFACE_DEFINED__ */
4029 #ifndef __IContextMenu3_FWD_DEFINED__
4030 #define __IContextMenu3_FWD_DEFINED__
4031 typedef struct IContextMenu3 IContextMenu3;
4032 #endif
4034 typedef IContextMenu3 *LPCONTEXTMENU3;
4036 /*****************************************************************************
4037 * IContextMenu3 interface
4039 #ifndef __IContextMenu3_INTERFACE_DEFINED__
4040 #define __IContextMenu3_INTERFACE_DEFINED__
4042 DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19);
4043 #if defined(__cplusplus) && !defined(CINTERFACE)
4044 struct IContextMenu3 : public IContextMenu2
4046 virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(
4047 UINT uMsg,
4048 WPARAM wParam,
4049 LPARAM lParam,
4050 LRESULT* plResult) = 0;
4053 #else
4054 typedef struct IContextMenu3Vtbl IContextMenu3Vtbl;
4055 struct IContextMenu3 {
4056 const IContextMenu3Vtbl* lpVtbl;
4058 struct IContextMenu3Vtbl {
4059 BEGIN_INTERFACE
4061 /*** IUnknown methods ***/
4062 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4063 IContextMenu3* This,
4064 REFIID riid,
4065 void** ppvObject);
4067 ULONG (STDMETHODCALLTYPE *AddRef)(
4068 IContextMenu3* This);
4070 ULONG (STDMETHODCALLTYPE *Release)(
4071 IContextMenu3* This);
4073 /*** IContextMenu methods ***/
4074 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
4075 IContextMenu3* This,
4076 HMENU hmenu,
4077 UINT indexMenu,
4078 UINT idCmdFirst,
4079 UINT idCmdLast,
4080 UINT uFlags);
4082 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
4083 IContextMenu3* This,
4084 LPCMINVOKECOMMANDINFO lpici);
4086 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
4087 IContextMenu3* This,
4088 UINT idCmd,
4089 UINT uType,
4090 UINT* pwReserved,
4091 LPSTR pszName,
4092 UINT cchMax);
4094 /*** IContextMenu2 methods ***/
4095 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
4096 IContextMenu3* This,
4097 UINT uMsg,
4098 WPARAM wParam,
4099 LPARAM lParam);
4101 /*** IContextMenu3 methods ***/
4102 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
4103 IContextMenu3* This,
4104 UINT uMsg,
4105 WPARAM wParam,
4106 LPARAM lParam,
4107 LRESULT* plResult);
4109 END_INTERFACE
4112 #ifdef COBJMACROS
4113 /*** IUnknown methods ***/
4114 #define IContextMenu3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4115 #define IContextMenu3_AddRef(p) (p)->lpVtbl->AddRef(p)
4116 #define IContextMenu3_Release(p) (p)->lpVtbl->Release(p)
4117 /*** IContextMenu methods ***/
4118 #define IContextMenu3_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
4119 #define IContextMenu3_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
4120 #define IContextMenu3_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
4121 /*** IContextMenu2 methods ***/
4122 #define IContextMenu3_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
4123 /*** IContextMenu3 methods ***/
4124 #define IContextMenu3_HandleMenuMsg2(p,a,b,c,d) (p)->lpVtbl->HandleMenuMsg2(p,a,b,c,d)
4125 #endif
4127 #endif
4129 #define IContextMenu3_METHODS \
4130 /*** IUnknown methods ***/ \
4131 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4132 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4133 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4134 /*** IContextMenu methods ***/ \
4135 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
4136 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
4137 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \
4138 /*** IContextMenu2 methods ***/ \
4139 STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE; \
4140 /*** IContextMenu3 methods ***/ \
4141 STDMETHOD_(HRESULT,HandleMenuMsg2)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* plResult) PURE;
4143 HRESULT CALLBACK IContextMenu3_HandleMenuMsg2_Proxy(
4144 IContextMenu3* This,
4145 UINT uMsg,
4146 WPARAM wParam,
4147 LPARAM lParam,
4148 LRESULT* plResult);
4149 void __RPC_STUB IContextMenu3_HandleMenuMsg2_Stub(
4150 struct IRpcStubBuffer* This,
4151 struct IRpcChannelBuffer* pRpcChannelBuffer,
4152 PRPC_MESSAGE pRpcMessage,
4153 DWORD* pdwStubPhase);
4155 #endif /* __IContextMenu3_INTERFACE_DEFINED__ */
4157 #ifndef __IShellExecuteHookA_FWD_DEFINED__
4158 #define __IShellExecuteHookA_FWD_DEFINED__
4159 typedef struct IShellExecuteHookA IShellExecuteHookA;
4160 #endif
4162 struct _SHELLEXECUTEINFOA;
4163 /*****************************************************************************
4164 * IShellExecuteHookA interface
4166 #ifndef __IShellExecuteHookA_INTERFACE_DEFINED__
4167 #define __IShellExecuteHookA_INTERFACE_DEFINED__
4169 DEFINE_GUID(IID_IShellExecuteHookA, 0x000214f5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4170 #if defined(__cplusplus) && !defined(CINTERFACE)
4171 struct IShellExecuteHookA : public IUnknown
4173 virtual HRESULT STDMETHODCALLTYPE Execute(
4174 struct _SHELLEXECUTEINFOA* pei) = 0;
4177 #else
4178 typedef struct IShellExecuteHookAVtbl IShellExecuteHookAVtbl;
4179 struct IShellExecuteHookA {
4180 const IShellExecuteHookAVtbl* lpVtbl;
4182 struct IShellExecuteHookAVtbl {
4183 BEGIN_INTERFACE
4185 /*** IUnknown methods ***/
4186 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4187 IShellExecuteHookA* This,
4188 REFIID riid,
4189 void** ppvObject);
4191 ULONG (STDMETHODCALLTYPE *AddRef)(
4192 IShellExecuteHookA* This);
4194 ULONG (STDMETHODCALLTYPE *Release)(
4195 IShellExecuteHookA* This);
4197 /*** IShellExecuteHookA methods ***/
4198 HRESULT (STDMETHODCALLTYPE *Execute)(
4199 IShellExecuteHookA* This,
4200 struct _SHELLEXECUTEINFOA* pei);
4202 END_INTERFACE
4205 #ifdef COBJMACROS
4206 /*** IUnknown methods ***/
4207 #define IShellExecuteHookA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4208 #define IShellExecuteHookA_AddRef(p) (p)->lpVtbl->AddRef(p)
4209 #define IShellExecuteHookA_Release(p) (p)->lpVtbl->Release(p)
4210 /*** IShellExecuteHookA methods ***/
4211 #define IShellExecuteHookA_Execute(p,a) (p)->lpVtbl->Execute(p,a)
4212 #endif
4214 #endif
4216 #define IShellExecuteHookA_METHODS \
4217 /*** IUnknown methods ***/ \
4218 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4219 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4220 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4221 /*** IShellExecuteHookA methods ***/ \
4222 STDMETHOD_(HRESULT,Execute)(THIS_ struct _SHELLEXECUTEINFOA* pei) PURE;
4224 HRESULT CALLBACK IShellExecuteHookA_Execute_Proxy(
4225 IShellExecuteHookA* This,
4226 struct _SHELLEXECUTEINFOA* pei);
4227 void __RPC_STUB IShellExecuteHookA_Execute_Stub(
4228 struct IRpcStubBuffer* This,
4229 struct IRpcChannelBuffer* pRpcChannelBuffer,
4230 PRPC_MESSAGE pRpcMessage,
4231 DWORD* pdwStubPhase);
4233 #endif /* __IShellExecuteHookA_INTERFACE_DEFINED__ */
4235 #ifndef __IShellExecuteHookW_FWD_DEFINED__
4236 #define __IShellExecuteHookW_FWD_DEFINED__
4237 typedef struct IShellExecuteHookW IShellExecuteHookW;
4238 #endif
4240 struct _SHELLEXECUTEINFOW;
4241 /*****************************************************************************
4242 * IShellExecuteHookW interface
4244 #ifndef __IShellExecuteHookW_INTERFACE_DEFINED__
4245 #define __IShellExecuteHookW_INTERFACE_DEFINED__
4247 DEFINE_GUID(IID_IShellExecuteHookW, 0x000214fb, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4248 #if defined(__cplusplus) && !defined(CINTERFACE)
4249 struct IShellExecuteHookW : public IUnknown
4251 virtual HRESULT STDMETHODCALLTYPE Execute(
4252 struct _SHELLEXECUTEINFOW* pei) = 0;
4255 #else
4256 typedef struct IShellExecuteHookWVtbl IShellExecuteHookWVtbl;
4257 struct IShellExecuteHookW {
4258 const IShellExecuteHookWVtbl* lpVtbl;
4260 struct IShellExecuteHookWVtbl {
4261 BEGIN_INTERFACE
4263 /*** IUnknown methods ***/
4264 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4265 IShellExecuteHookW* This,
4266 REFIID riid,
4267 void** ppvObject);
4269 ULONG (STDMETHODCALLTYPE *AddRef)(
4270 IShellExecuteHookW* This);
4272 ULONG (STDMETHODCALLTYPE *Release)(
4273 IShellExecuteHookW* This);
4275 /*** IShellExecuteHookW methods ***/
4276 HRESULT (STDMETHODCALLTYPE *Execute)(
4277 IShellExecuteHookW* This,
4278 struct _SHELLEXECUTEINFOW* pei);
4280 END_INTERFACE
4283 #ifdef COBJMACROS
4284 /*** IUnknown methods ***/
4285 #define IShellExecuteHookW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4286 #define IShellExecuteHookW_AddRef(p) (p)->lpVtbl->AddRef(p)
4287 #define IShellExecuteHookW_Release(p) (p)->lpVtbl->Release(p)
4288 /*** IShellExecuteHookW methods ***/
4289 #define IShellExecuteHookW_Execute(p,a) (p)->lpVtbl->Execute(p,a)
4290 #endif
4292 #endif
4294 #define IShellExecuteHookW_METHODS \
4295 /*** IUnknown methods ***/ \
4296 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4297 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4298 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4299 /*** IShellExecuteHookW methods ***/ \
4300 STDMETHOD_(HRESULT,Execute)(THIS_ struct _SHELLEXECUTEINFOW* pei) PURE;
4302 HRESULT CALLBACK IShellExecuteHookW_Execute_Proxy(
4303 IShellExecuteHookW* This,
4304 struct _SHELLEXECUTEINFOW* pei);
4305 void __RPC_STUB IShellExecuteHookW_Execute_Stub(
4306 struct IRpcStubBuffer* This,
4307 struct IRpcChannelBuffer* pRpcChannelBuffer,
4308 PRPC_MESSAGE pRpcMessage,
4309 DWORD* pdwStubPhase);
4311 #endif /* __IShellExecuteHookW_INTERFACE_DEFINED__ */
4313 #ifdef __cplusplus
4315 #endif
4316 #endif /* __WIDL_SHOBJIDL_H */