1 /*** Autogenerated by WIDL 0.1 from shobjidl.idl - Do not edit ***/
5 #ifndef __WIDL_SHOBJIDL_H
6 #define __WIDL_SHOBJIDL_H
16 #ifndef __IPersistFolder_FWD_DEFINED__
17 #define __IPersistFolder_FWD_DEFINED__
18 typedef struct IPersistFolder IPersistFolder;
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;
38 typedef struct IPersistFolderVtbl IPersistFolderVtbl;
39 struct IPersistFolder {
40 const IPersistFolderVtbl* lpVtbl;
42 struct IPersistFolderVtbl {
43 ICOM_MSVTABLE_COMPAT_FIELDS
45 /*** IUnknown methods ***/
46 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
51 ULONG (STDMETHODCALLTYPE *AddRef)(
52 IPersistFolder* This);
54 ULONG (STDMETHODCALLTYPE *Release)(
55 IPersistFolder* This);
57 /*** IPersist methods ***/
58 HRESULT (STDMETHODCALLTYPE *GetClassID)(
62 /*** IPersistFolder methods ***/
63 HRESULT (STDMETHODCALLTYPE *Initialize)(
70 /*** IUnknown methods ***/
71 #define IPersistFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
72 #define IPersistFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
73 #define IPersistFolder_Release(p) (p)->lpVtbl->Release(p)
74 /*** IPersist methods ***/
75 #define IPersistFolder_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
76 /*** IPersistFolder methods ***/
77 #define IPersistFolder_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
82 #define IPersistFolder_METHODS \
83 ICOM_MSVTABLE_COMPAT_FIELDS \
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(
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;
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;
126 typedef struct IPersistFolder2Vtbl IPersistFolder2Vtbl;
127 struct IPersistFolder2 {
128 const IPersistFolder2Vtbl* lpVtbl;
130 struct IPersistFolder2Vtbl {
131 ICOM_MSVTABLE_COMPAT_FIELDS
133 /*** IUnknown methods ***/
134 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
135 IPersistFolder2* This,
139 ULONG (STDMETHODCALLTYPE *AddRef)(
140 IPersistFolder2* This);
142 ULONG (STDMETHODCALLTYPE *Release)(
143 IPersistFolder2* This);
145 /*** IPersist methods ***/
146 HRESULT (STDMETHODCALLTYPE *GetClassID)(
147 IPersistFolder2* This,
150 /*** IPersistFolder methods ***/
151 HRESULT (STDMETHODCALLTYPE *Initialize)(
152 IPersistFolder2* This,
155 /*** IPersistFolder2 methods ***/
156 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
157 IPersistFolder2* This,
158 LPITEMIDLIST* ppidl);
163 /*** IUnknown methods ***/
164 #define IPersistFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
165 #define IPersistFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
166 #define IPersistFolder2_Release(p) (p)->lpVtbl->Release(p)
167 /*** IPersist methods ***/
168 #define IPersistFolder2_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
169 /*** IPersistFolder methods ***/
170 #define IPersistFolder2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
171 /*** IPersistFolder2 methods ***/
172 #define IPersistFolder2_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
177 #define IPersistFolder2_METHODS \
178 ICOM_MSVTABLE_COMPAT_FIELDS \
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;
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(
221 ULONG* pceltFetched) = 0;
223 virtual HRESULT STDMETHODCALLTYPE Skip(
226 virtual HRESULT STDMETHODCALLTYPE Reset(
229 virtual HRESULT STDMETHODCALLTYPE Clone(
230 IEnumIDList** ppenum) = 0;
234 typedef struct IEnumIDListVtbl IEnumIDListVtbl;
236 const IEnumIDListVtbl* lpVtbl;
238 struct IEnumIDListVtbl {
239 ICOM_MSVTABLE_COMPAT_FIELDS
241 /*** IUnknown methods ***/
242 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
247 ULONG (STDMETHODCALLTYPE *AddRef)(
250 ULONG (STDMETHODCALLTYPE *Release)(
253 /*** IEnumIDList methods ***/
254 HRESULT (STDMETHODCALLTYPE *Next)(
258 ULONG* pceltFetched);
260 HRESULT (STDMETHODCALLTYPE *Skip)(
264 HRESULT (STDMETHODCALLTYPE *Reset)(
267 HRESULT (STDMETHODCALLTYPE *Clone)(
269 IEnumIDList** ppenum);
274 /*** IUnknown methods ***/
275 #define IEnumIDList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
276 #define IEnumIDList_AddRef(p) (p)->lpVtbl->AddRef(p)
277 #define IEnumIDList_Release(p) (p)->lpVtbl->Release(p)
278 /*** IEnumIDList methods ***/
279 #define IEnumIDList_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
280 #define IEnumIDList_Skip(p,a) (p)->lpVtbl->Skip(p,a)
281 #define IEnumIDList_Reset(p) (p)->lpVtbl->Reset(p)
282 #define IEnumIDList_Clone(p,a) (p)->lpVtbl->Clone(p,a)
287 #define IEnumIDList_METHODS \
288 ICOM_MSVTABLE_COMPAT_FIELDS \
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(
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(
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(
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(
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;
340 typedef IShellFolder *LPSHELLFOLDER;
342 typedef enum tagSHGDN {
345 SHGDN_FOREDITING = 0x1000,
346 SHGDN_INCLUDE_NONFILESYS = 0x2000,
347 SHGDN_FORADDRESSBAR = 0x4000,
348 SHGDN_FORPARSING = 0x8000
351 typedef DWORD SHGDNF;
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(
405 LPOLESTR lpszDisplayName,
408 ULONG* pdwAttributes) = 0;
410 virtual HRESULT STDMETHODCALLTYPE EnumObjects(
413 IEnumIDList** ppenumIDList) = 0;
415 virtual HRESULT STDMETHODCALLTYPE BindToObject(
421 virtual HRESULT STDMETHODCALLTYPE BindToStorage(
427 virtual HRESULT STDMETHODCALLTYPE CompareIDs(
430 LPCITEMIDLIST pidl2) = 0;
432 virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
437 virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
439 LPCITEMIDLIST* apidl,
440 SFGAOF* rgfInOut) = 0;
442 virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
445 LPCITEMIDLIST* apidl,
450 virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
455 virtual HRESULT STDMETHODCALLTYPE SetNameOf(
460 LPITEMIDLIST* ppidlOut) = 0;
464 typedef struct IShellFolderVtbl IShellFolderVtbl;
465 struct IShellFolder {
466 const IShellFolderVtbl* lpVtbl;
468 struct IShellFolderVtbl {
469 ICOM_MSVTABLE_COMPAT_FIELDS
471 /*** IUnknown methods ***/
472 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
477 ULONG (STDMETHODCALLTYPE *AddRef)(
480 ULONG (STDMETHODCALLTYPE *Release)(
483 /*** IShellFolder methods ***/
484 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
488 LPOLESTR lpszDisplayName,
491 ULONG* pdwAttributes);
493 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
497 IEnumIDList** ppenumIDList);
499 HRESULT (STDMETHODCALLTYPE *BindToObject)(
506 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
513 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
517 LPCITEMIDLIST pidl2);
519 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
525 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
528 LPCITEMIDLIST* apidl,
531 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
535 LPCITEMIDLIST* apidl,
540 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
546 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
552 LPITEMIDLIST* ppidlOut);
557 /*** IUnknown methods ***/
558 #define IShellFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
559 #define IShellFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
560 #define IShellFolder_Release(p) (p)->lpVtbl->Release(p)
561 /*** IShellFolder methods ***/
562 #define IShellFolder_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
563 #define IShellFolder_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
564 #define IShellFolder_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
565 #define IShellFolder_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
566 #define IShellFolder_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
567 #define IShellFolder_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
568 #define IShellFolder_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
569 #define IShellFolder_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
570 #define IShellFolder_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
571 #define IShellFolder_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
576 #define IShellFolder_METHODS \
577 ICOM_MSVTABLE_COMPAT_FIELDS \
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(
598 LPOLESTR lpszDisplayName,
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(
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(
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(
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(
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(
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(
662 LPCITEMIDLIST* apidl,
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(
673 LPCITEMIDLIST* apidl,
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(
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(
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;
712 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
716 WCHAR wszFriendlyName[80];
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(
733 ULONG* pceltFetched) = 0;
735 virtual HRESULT STDMETHODCALLTYPE Skip(
738 virtual HRESULT STDMETHODCALLTYPE Reset(
741 virtual HRESULT STDMETHODCALLTYPE Clone(
742 IEnumExtraSearch** ppenum) = 0;
746 typedef struct IEnumExtraSearchVtbl IEnumExtraSearchVtbl;
747 struct IEnumExtraSearch {
748 const IEnumExtraSearchVtbl* lpVtbl;
750 struct IEnumExtraSearchVtbl {
751 ICOM_MSVTABLE_COMPAT_FIELDS
753 /*** IUnknown methods ***/
754 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
755 IEnumExtraSearch* This,
759 ULONG (STDMETHODCALLTYPE *AddRef)(
760 IEnumExtraSearch* This);
762 ULONG (STDMETHODCALLTYPE *Release)(
763 IEnumExtraSearch* This);
765 /*** IEnumExtraSearch methods ***/
766 HRESULT (STDMETHODCALLTYPE *Next)(
767 IEnumExtraSearch* This,
770 ULONG* pceltFetched);
772 HRESULT (STDMETHODCALLTYPE *Skip)(
773 IEnumExtraSearch* This,
776 HRESULT (STDMETHODCALLTYPE *Reset)(
777 IEnumExtraSearch* This);
779 HRESULT (STDMETHODCALLTYPE *Clone)(
780 IEnumExtraSearch* This,
781 IEnumExtraSearch** ppenum);
786 /*** IUnknown methods ***/
787 #define IEnumExtraSearch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
788 #define IEnumExtraSearch_AddRef(p) (p)->lpVtbl->AddRef(p)
789 #define IEnumExtraSearch_Release(p) (p)->lpVtbl->Release(p)
790 /*** IEnumExtraSearch methods ***/
791 #define IEnumExtraSearch_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
792 #define IEnumExtraSearch_Skip(p,a) (p)->lpVtbl->Skip(p,a)
793 #define IEnumExtraSearch_Reset(p) (p)->lpVtbl->Reset(p)
794 #define IEnumExtraSearch_Clone(p,a) (p)->lpVtbl->Clone(p,a)
799 #define IEnumExtraSearch_METHODS \
800 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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,
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;
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
865 typedef DWORD SHCOLSTATEF;
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(
887 virtual HRESULT STDMETHODCALLTYPE EnumSearches(
888 IEnumExtraSearch** ppenum) = 0;
890 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
893 ULONG* pDisplay) = 0;
895 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
897 SHCOLSTATEF* pcsFlags) = 0;
899 virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
901 const SHCOLUMNID* pscid,
904 virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
907 SHELLDETAILS* psd) = 0;
909 virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
911 SHCOLUMNID* pscid) = 0;
915 typedef struct IShellFolder2Vtbl IShellFolder2Vtbl;
916 struct IShellFolder2 {
917 const IShellFolder2Vtbl* lpVtbl;
919 struct IShellFolder2Vtbl {
920 ICOM_MSVTABLE_COMPAT_FIELDS
922 /*** IUnknown methods ***/
923 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
928 ULONG (STDMETHODCALLTYPE *AddRef)(
929 IShellFolder2* This);
931 ULONG (STDMETHODCALLTYPE *Release)(
932 IShellFolder2* This);
934 /*** IShellFolder methods ***/
935 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
939 LPOLESTR lpszDisplayName,
942 ULONG* pdwAttributes);
944 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
948 IEnumIDList** ppenumIDList);
950 HRESULT (STDMETHODCALLTYPE *BindToObject)(
957 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
964 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
968 LPCITEMIDLIST pidl2);
970 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
976 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
979 LPCITEMIDLIST* apidl,
982 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
986 LPCITEMIDLIST* apidl,
991 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
997 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
1003 LPITEMIDLIST* ppidlOut);
1005 /*** IShellFolder2 methods ***/
1006 HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
1007 IShellFolder2* This,
1010 HRESULT (STDMETHODCALLTYPE *EnumSearches)(
1011 IShellFolder2* This,
1012 IEnumExtraSearch** ppenum);
1014 HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
1015 IShellFolder2* This,
1020 HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
1021 IShellFolder2* This,
1023 SHCOLSTATEF* pcsFlags);
1025 HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
1026 IShellFolder2* This,
1028 const SHCOLUMNID* pscid,
1031 HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
1032 IShellFolder2* This,
1037 HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
1038 IShellFolder2* This,
1045 /*** IUnknown methods ***/
1046 #define IShellFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1047 #define IShellFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
1048 #define IShellFolder2_Release(p) (p)->lpVtbl->Release(p)
1049 /*** IShellFolder methods ***/
1050 #define IShellFolder2_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
1051 #define IShellFolder2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
1052 #define IShellFolder2_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
1053 #define IShellFolder2_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
1054 #define IShellFolder2_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
1055 #define IShellFolder2_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
1056 #define IShellFolder2_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
1057 #define IShellFolder2_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
1058 #define IShellFolder2_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
1059 #define IShellFolder2_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
1060 /*** IShellFolder2 methods ***/
1061 #define IShellFolder2_GetDefaultSearchGUID(p,a) (p)->lpVtbl->GetDefaultSearchGUID(p,a)
1062 #define IShellFolder2_EnumSearches(p,a) (p)->lpVtbl->EnumSearches(p,a)
1063 #define IShellFolder2_GetDefaultColumn(p,a,b,c) (p)->lpVtbl->GetDefaultColumn(p,a,b,c)
1064 #define IShellFolder2_GetDefaultColumnState(p,a,b) (p)->lpVtbl->GetDefaultColumnState(p,a,b)
1065 #define IShellFolder2_GetDetailsEx(p,a,b,c) (p)->lpVtbl->GetDetailsEx(p,a,b,c)
1066 #define IShellFolder2_GetDetailsOf(p,a,b,c) (p)->lpVtbl->GetDetailsOf(p,a,b,c)
1067 #define IShellFolder2_MapColumnToSCID(p,a,b) (p)->lpVtbl->MapColumnToSCID(p,a,b)
1072 #define IShellFolder2_METHODS \
1073 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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,
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,
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,
1136 const SHCOLUMNID* pscid,
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,
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,
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;
1168 FWF_AUTOARRANGE = 0x1,
1169 FWF_ABBREVIATEDNAMES = 0x2,
1170 FWF_SNAPTOGRID = 0x4,
1171 FWF_OWNERDATA = 0x8,
1172 FWF_BESTFITWINDOW = 0x10,
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
1191 FVM_FIRST = FVM_ICON,
1198 FVM_LAST = FVM_THUMBSTRIP
1204 } FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
1206 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
1208 #ifndef __IShellBrowser_FWD_DEFINED__
1209 #define __IShellBrowser_FWD_DEFINED__
1210 typedef struct IShellBrowser IShellBrowser;
1213 #ifndef __IShellView_FWD_DEFINED__
1214 #define __IShellView_FWD_DEFINED__
1215 typedef struct IShellView IShellView;
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
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
1243 SVUIA_DEACTIVATE = 0,
1244 SVUIA_ACTIVATE_NOFOCUS = 1,
1245 SVUIA_ACTIVATE_FOCUS = 2,
1246 SVUIA_INPLACEACTIVATE = 3
1250 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
1254 typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
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(
1269 virtual HRESULT STDMETHODCALLTYPE EnableModeless(
1272 virtual HRESULT STDMETHODCALLTYPE UIActivate(
1275 virtual HRESULT STDMETHODCALLTYPE Refresh(
1278 virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
1279 IShellView* psvPrevious,
1280 LPCFOLDERSETTINGS lpfs,
1285 virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
1288 virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
1289 LPFOLDERSETTINGS lpfs) = 0;
1291 virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
1293 LPFNSVADDPROPSHEETPAGE pfn,
1296 virtual HRESULT STDMETHODCALLTYPE SaveViewState(
1299 virtual HRESULT STDMETHODCALLTYPE SelectItem(
1300 LPCITEMIDLIST pidlItem,
1303 virtual HRESULT STDMETHODCALLTYPE GetItemObject(
1310 typedef struct IShellViewVtbl IShellViewVtbl;
1312 const IShellViewVtbl* lpVtbl;
1314 struct IShellViewVtbl {
1315 ICOM_MSVTABLE_COMPAT_FIELDS
1317 /*** IUnknown methods ***/
1318 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1323 ULONG (STDMETHODCALLTYPE *AddRef)(
1326 ULONG (STDMETHODCALLTYPE *Release)(
1329 /*** IOleWindow methods ***/
1330 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1334 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1338 /*** IShellView methods ***/
1339 HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
1343 HRESULT (STDMETHODCALLTYPE *EnableModeless)(
1347 HRESULT (STDMETHODCALLTYPE *UIActivate)(
1351 HRESULT (STDMETHODCALLTYPE *Refresh)(
1354 HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
1356 IShellView* psvPrevious,
1357 LPCFOLDERSETTINGS lpfs,
1362 HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
1365 HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
1367 LPFOLDERSETTINGS lpfs);
1369 HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
1372 LPFNSVADDPROPSHEETPAGE pfn,
1375 HRESULT (STDMETHODCALLTYPE *SaveViewState)(
1378 HRESULT (STDMETHODCALLTYPE *SelectItem)(
1380 LPCITEMIDLIST pidlItem,
1383 HRESULT (STDMETHODCALLTYPE *GetItemObject)(
1392 /*** IUnknown methods ***/
1393 #define IShellView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1394 #define IShellView_AddRef(p) (p)->lpVtbl->AddRef(p)
1395 #define IShellView_Release(p) (p)->lpVtbl->Release(p)
1396 /*** IOleWindow methods ***/
1397 #define IShellView_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1398 #define IShellView_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1399 /*** IShellView methods ***/
1400 #define IShellView_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
1401 #define IShellView_EnableModeless(p,a) (p)->lpVtbl->EnableModeless(p,a)
1402 #define IShellView_UIActivate(p,a) (p)->lpVtbl->UIActivate(p,a)
1403 #define IShellView_Refresh(p) (p)->lpVtbl->Refresh(p)
1404 #define IShellView_CreateViewWindow(p,a,b,c,d,e) (p)->lpVtbl->CreateViewWindow(p,a,b,c,d,e)
1405 #define IShellView_DestroyViewWindow(p) (p)->lpVtbl->DestroyViewWindow(p)
1406 #define IShellView_GetCurrentInfo(p,a) (p)->lpVtbl->GetCurrentInfo(p,a)
1407 #define IShellView_AddPropertySheetPages(p,a,b,c) (p)->lpVtbl->AddPropertySheetPages(p,a,b,c)
1408 #define IShellView_SaveViewState(p) (p)->lpVtbl->SaveViewState(p)
1409 #define IShellView_SelectItem(p,a,b) (p)->lpVtbl->SelectItem(p,a,b)
1410 #define IShellView_GetItemObject(p,a,b,c) (p)->lpVtbl->GetItemObject(p,a,b,c)
1415 #define IShellView_METHODS \
1416 ICOM_MSVTABLE_COMPAT_FIELDS \
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(
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(
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(
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(
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(
1470 IShellView* psvPrevious,
1471 LPCFOLDERSETTINGS lpfs,
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(
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(
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(
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(
1504 LPCITEMIDLIST pidlItem,
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(
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
1553 typedef LPARAM LPTBBUTTONSB;
1556 #include <commctrl.h>
1557 typedef LPTBBUTTON LPTBBUTTONSB;
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(
1571 LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
1573 virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
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(
1587 virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
1591 virtual HRESULT STDMETHODCALLTYPE BrowseObject(
1595 virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
1597 IStream** ppStrm) = 0;
1599 virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
1603 virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
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,
1623 typedef struct IShellBrowserVtbl IShellBrowserVtbl;
1624 struct IShellBrowser {
1625 const IShellBrowserVtbl* lpVtbl;
1627 struct IShellBrowserVtbl {
1628 ICOM_MSVTABLE_COMPAT_FIELDS
1630 /*** IUnknown methods ***/
1631 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1632 IShellBrowser* This,
1636 ULONG (STDMETHODCALLTYPE *AddRef)(
1637 IShellBrowser* This);
1639 ULONG (STDMETHODCALLTYPE *Release)(
1640 IShellBrowser* This);
1642 /*** IOleWindow methods ***/
1643 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1644 IShellBrowser* This,
1647 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1648 IShellBrowser* This,
1651 /*** IShellBrowser methods ***/
1652 HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
1653 IShellBrowser* This,
1655 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1657 HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
1658 IShellBrowser* This,
1660 HOLEMENU holemenuReserved,
1661 HWND hwndActiveObject);
1663 HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
1664 IShellBrowser* This,
1667 HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
1668 IShellBrowser* This,
1669 LPCOLESTR pszStatusText);
1671 HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
1672 IShellBrowser* This,
1675 HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
1676 IShellBrowser* This,
1680 HRESULT (STDMETHODCALLTYPE *BrowseObject)(
1681 IShellBrowser* This,
1685 HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
1686 IShellBrowser* This,
1690 HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
1691 IShellBrowser* This,
1695 HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
1696 IShellBrowser* This,
1703 HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
1704 IShellBrowser* This,
1705 IShellView** ppshv);
1707 HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
1708 IShellBrowser* This,
1711 HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
1712 IShellBrowser* This,
1713 LPTBBUTTONSB lpButtons,
1720 /*** IUnknown methods ***/
1721 #define IShellBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1722 #define IShellBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
1723 #define IShellBrowser_Release(p) (p)->lpVtbl->Release(p)
1724 /*** IOleWindow methods ***/
1725 #define IShellBrowser_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1726 #define IShellBrowser_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1727 /*** IShellBrowser methods ***/
1728 #define IShellBrowser_InsertMenusSB(p,a,b) (p)->lpVtbl->InsertMenusSB(p,a,b)
1729 #define IShellBrowser_SetMenuSB(p,a,b,c) (p)->lpVtbl->SetMenuSB(p,a,b,c)
1730 #define IShellBrowser_RemoveMenusSB(p,a) (p)->lpVtbl->RemoveMenusSB(p,a)
1731 #define IShellBrowser_SetStatusTextSB(p,a) (p)->lpVtbl->SetStatusTextSB(p,a)
1732 #define IShellBrowser_EnableModelessSB(p,a) (p)->lpVtbl->EnableModelessSB(p,a)
1733 #define IShellBrowser_TranslateAcceleratorSB(p,a,b) (p)->lpVtbl->TranslateAcceleratorSB(p,a,b)
1734 #define IShellBrowser_BrowseObject(p,a,b) (p)->lpVtbl->BrowseObject(p,a,b)
1735 #define IShellBrowser_GetViewStateStream(p,a,b) (p)->lpVtbl->GetViewStateStream(p,a,b)
1736 #define IShellBrowser_GetControlWindow(p,a,b) (p)->lpVtbl->GetControlWindow(p,a,b)
1737 #define IShellBrowser_SendControlMsg(p,a,b,c,d,e) (p)->lpVtbl->SendControlMsg(p,a,b,c,d,e)
1738 #define IShellBrowser_QueryActiveShellView(p,a) (p)->lpVtbl->QueryActiveShellView(p,a)
1739 #define IShellBrowser_OnViewWindowActive(p,a) (p)->lpVtbl->OnViewWindowActive(p,a)
1740 #define IShellBrowser_SetToolbarItems(p,a,b,c) (p)->lpVtbl->SetToolbarItems(p,a,b,c)
1745 #define IShellBrowser_METHODS \
1746 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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,
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,
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,
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,
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,
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,
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,
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,
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;
1874 SLR_ANY_MATCH = 0x2,
1877 SLR_NOSEARCH = 0x10,
1879 SLR_NOLINKINFO = 0x40,
1880 SLR_INVOKE_MSI = 0x80,
1881 SLR_NO_UI_WITH_MSG_PUMP = 0x101
1885 SLGP_SHORTPATH = 0x1,
1886 SLGP_UNCPRIORITY = 0x2,
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(
1903 WIN32_FIND_DATAA* pfd,
1906 virtual HRESULT STDMETHODCALLTYPE GetIDList(
1907 LPITEMIDLIST* ppidl) = 0;
1909 virtual HRESULT STDMETHODCALLTYPE SetIDList(
1910 LPCITEMIDLIST pidl) = 0;
1912 virtual HRESULT STDMETHODCALLTYPE GetDescription(
1916 virtual HRESULT STDMETHODCALLTYPE SetDescription(
1917 LPCSTR pszName) = 0;
1919 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
1923 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
1926 virtual HRESULT STDMETHODCALLTYPE GetArguments(
1930 virtual HRESULT STDMETHODCALLTYPE SetArguments(
1931 LPCSTR pszArgs) = 0;
1933 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
1934 WORD* pwHotkey) = 0;
1936 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
1939 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
1940 int* piShowCmd) = 0;
1942 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
1945 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
1950 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
1954 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
1956 DWORD dwReserved) = 0;
1958 virtual HRESULT STDMETHODCALLTYPE Resolve(
1962 virtual HRESULT STDMETHODCALLTYPE SetPath(
1963 LPCSTR pszFile) = 0;
1967 typedef struct IShellLinkAVtbl IShellLinkAVtbl;
1968 struct IShellLinkA {
1969 const IShellLinkAVtbl* lpVtbl;
1971 struct IShellLinkAVtbl {
1972 ICOM_MSVTABLE_COMPAT_FIELDS
1974 /*** IUnknown methods ***/
1975 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1980 ULONG (STDMETHODCALLTYPE *AddRef)(
1983 ULONG (STDMETHODCALLTYPE *Release)(
1986 /*** IShellLinkA methods ***/
1987 HRESULT (STDMETHODCALLTYPE *GetPath)(
1991 WIN32_FIND_DATAA* pfd,
1994 HRESULT (STDMETHODCALLTYPE *GetIDList)(
1996 LPITEMIDLIST* ppidl);
1998 HRESULT (STDMETHODCALLTYPE *SetIDList)(
2000 LPCITEMIDLIST pidl);
2002 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2007 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2011 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2016 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2020 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2025 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2029 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2033 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2037 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2041 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2045 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2051 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2056 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2061 HRESULT (STDMETHODCALLTYPE *Resolve)(
2066 HRESULT (STDMETHODCALLTYPE *SetPath)(
2073 /*** IUnknown methods ***/
2074 #define IShellLinkA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2075 #define IShellLinkA_AddRef(p) (p)->lpVtbl->AddRef(p)
2076 #define IShellLinkA_Release(p) (p)->lpVtbl->Release(p)
2077 /*** IShellLinkA methods ***/
2078 #define IShellLinkA_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2079 #define IShellLinkA_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2080 #define IShellLinkA_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2081 #define IShellLinkA_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2082 #define IShellLinkA_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2083 #define IShellLinkA_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2084 #define IShellLinkA_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2085 #define IShellLinkA_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2086 #define IShellLinkA_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2087 #define IShellLinkA_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2088 #define IShellLinkA_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2089 #define IShellLinkA_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2090 #define IShellLinkA_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2091 #define IShellLinkA_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2092 #define IShellLinkA_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2093 #define IShellLinkA_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2094 #define IShellLinkA_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2095 #define IShellLinkA_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2100 #define IShellLinkA_METHODS \
2101 ICOM_MSVTABLE_COMPAT_FIELDS \
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(
2130 WIN32_FIND_DATAA* pfd,
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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;
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(
2302 WIN32_FIND_DATAW* pfd,
2305 virtual HRESULT STDMETHODCALLTYPE GetIDList(
2306 LPITEMIDLIST* ppidl) = 0;
2308 virtual HRESULT STDMETHODCALLTYPE SetIDList(
2309 LPCITEMIDLIST pidl) = 0;
2311 virtual HRESULT STDMETHODCALLTYPE GetDescription(
2315 virtual HRESULT STDMETHODCALLTYPE SetDescription(
2316 LPCWSTR pszName) = 0;
2318 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
2322 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
2323 LPCWSTR pszDir) = 0;
2325 virtual HRESULT STDMETHODCALLTYPE GetArguments(
2329 virtual HRESULT STDMETHODCALLTYPE SetArguments(
2330 LPCWSTR pszArgs) = 0;
2332 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
2333 WORD* pwHotkey) = 0;
2335 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
2338 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
2339 int* piShowCmd) = 0;
2341 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
2344 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2349 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
2350 LPCWSTR pszIconPath,
2353 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
2355 DWORD dwReserved) = 0;
2357 virtual HRESULT STDMETHODCALLTYPE Resolve(
2361 virtual HRESULT STDMETHODCALLTYPE SetPath(
2362 LPCWSTR pszFile) = 0;
2366 typedef struct IShellLinkWVtbl IShellLinkWVtbl;
2367 struct IShellLinkW {
2368 const IShellLinkWVtbl* lpVtbl;
2370 struct IShellLinkWVtbl {
2371 ICOM_MSVTABLE_COMPAT_FIELDS
2373 /*** IUnknown methods ***/
2374 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2379 ULONG (STDMETHODCALLTYPE *AddRef)(
2382 ULONG (STDMETHODCALLTYPE *Release)(
2385 /*** IShellLinkW methods ***/
2386 HRESULT (STDMETHODCALLTYPE *GetPath)(
2390 WIN32_FIND_DATAW* pfd,
2393 HRESULT (STDMETHODCALLTYPE *GetIDList)(
2395 LPITEMIDLIST* ppidl);
2397 HRESULT (STDMETHODCALLTYPE *SetIDList)(
2399 LPCITEMIDLIST pidl);
2401 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2406 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2410 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2415 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2419 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2424 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2428 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2432 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2436 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2440 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2444 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2450 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2452 LPCWSTR pszIconPath,
2455 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2460 HRESULT (STDMETHODCALLTYPE *Resolve)(
2465 HRESULT (STDMETHODCALLTYPE *SetPath)(
2472 /*** IUnknown methods ***/
2473 #define IShellLinkW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2474 #define IShellLinkW_AddRef(p) (p)->lpVtbl->AddRef(p)
2475 #define IShellLinkW_Release(p) (p)->lpVtbl->Release(p)
2476 /*** IShellLinkW methods ***/
2477 #define IShellLinkW_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2478 #define IShellLinkW_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2479 #define IShellLinkW_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2480 #define IShellLinkW_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2481 #define IShellLinkW_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2482 #define IShellLinkW_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2483 #define IShellLinkW_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2484 #define IShellLinkW_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2485 #define IShellLinkW_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2486 #define IShellLinkW_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2487 #define IShellLinkW_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2488 #define IShellLinkW_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2489 #define IShellLinkW_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2490 #define IShellLinkW_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2491 #define IShellLinkW_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2492 #define IShellLinkW_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2493 #define IShellLinkW_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2494 #define IShellLinkW_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2499 #define IShellLinkW_METHODS \
2500 ICOM_MSVTABLE_COMPAT_FIELDS \
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(
2529 WIN32_FIND_DATAW* pfd,
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
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(
2647 LPCWSTR pszIconPath,
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(
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(
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(
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;
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;
2708 typedef struct IShellExtInitVtbl IShellExtInitVtbl;
2709 struct IShellExtInit {
2710 const IShellExtInitVtbl* lpVtbl;
2712 struct IShellExtInitVtbl {
2713 ICOM_MSVTABLE_COMPAT_FIELDS
2715 /*** IUnknown methods ***/
2716 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2717 IShellExtInit* This,
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,
2737 /*** IUnknown methods ***/
2738 #define IShellExtInit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2739 #define IShellExtInit_AddRef(p) (p)->lpVtbl->AddRef(p)
2740 #define IShellExtInit_Release(p) (p)->lpVtbl->Release(p)
2741 /*** IShellExtInit methods ***/
2742 #define IShellExtInit_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
2747 #define IShellExtInit_METHODS \
2748 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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;
2775 LPITEMIDLIST pidlTargetFolder;
2776 WCHAR szTargetParsingName[260];
2777 WCHAR szNetworkProvider[260];
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(
2794 LPCITEMIDLIST pidlRoot,
2795 const PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2797 virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
2798 PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2802 typedef struct IPersistFolder3Vtbl IPersistFolder3Vtbl;
2803 struct IPersistFolder3 {
2804 const IPersistFolder3Vtbl* lpVtbl;
2806 struct IPersistFolder3Vtbl {
2807 ICOM_MSVTABLE_COMPAT_FIELDS
2809 /*** IUnknown methods ***/
2810 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2811 IPersistFolder3* This,
2815 ULONG (STDMETHODCALLTYPE *AddRef)(
2816 IPersistFolder3* This);
2818 ULONG (STDMETHODCALLTYPE *Release)(
2819 IPersistFolder3* This);
2821 /*** IPersist methods ***/
2822 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2823 IPersistFolder3* This,
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,
2840 LPCITEMIDLIST pidlRoot,
2841 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2843 HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
2844 IPersistFolder3* This,
2845 PERSIST_FOLDER_TARGET_INFO* ppfti);
2850 /*** IUnknown methods ***/
2851 #define IPersistFolder3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2852 #define IPersistFolder3_AddRef(p) (p)->lpVtbl->AddRef(p)
2853 #define IPersistFolder3_Release(p) (p)->lpVtbl->Release(p)
2854 /*** IPersist methods ***/
2855 #define IPersistFolder3_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2856 /*** IPersistFolder methods ***/
2857 #define IPersistFolder3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
2858 /*** IPersistFolder2 methods ***/
2859 #define IPersistFolder3_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
2860 /*** IPersistFolder3 methods ***/
2861 #define IPersistFolder3_InitializeEx(p,a,b,c) (p)->lpVtbl->InitializeEx(p,a,b,c)
2862 #define IPersistFolder3_GetFolderTargetInfo(p,a) (p)->lpVtbl->GetFolderTargetInfo(p,a)
2867 #define IPersistFolder3_METHODS \
2868 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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;
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(
2938 virtual HRESULT STDMETHODCALLTYPE Extract(
2943 UINT nIconSize) = 0;
2947 typedef struct IExtractIconAVtbl IExtractIconAVtbl;
2948 struct IExtractIconA {
2949 const IExtractIconAVtbl* lpVtbl;
2951 struct IExtractIconAVtbl {
2952 ICOM_MSVTABLE_COMPAT_FIELDS
2954 /*** IUnknown methods ***/
2955 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2956 IExtractIconA* This,
2960 ULONG (STDMETHODCALLTYPE *AddRef)(
2961 IExtractIconA* This);
2963 ULONG (STDMETHODCALLTYPE *Release)(
2964 IExtractIconA* This);
2966 /*** IExtractIconA methods ***/
2967 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2968 IExtractIconA* This,
2975 HRESULT (STDMETHODCALLTYPE *Extract)(
2976 IExtractIconA* This,
2986 /*** IUnknown methods ***/
2987 #define IExtractIconA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2988 #define IExtractIconA_AddRef(p) (p)->lpVtbl->AddRef(p)
2989 #define IExtractIconA_Release(p) (p)->lpVtbl->Release(p)
2990 /*** IExtractIconA methods ***/
2991 #define IExtractIconA_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
2992 #define IExtractIconA_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
2997 #define IExtractIconA_METHODS \
2998 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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,
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;
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(
3058 virtual HRESULT STDMETHODCALLTYPE Extract(
3063 UINT nIconSize) = 0;
3067 typedef struct IExtractIconWVtbl IExtractIconWVtbl;
3068 struct IExtractIconW {
3069 const IExtractIconWVtbl* lpVtbl;
3071 struct IExtractIconWVtbl {
3072 ICOM_MSVTABLE_COMPAT_FIELDS
3074 /*** IUnknown methods ***/
3075 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3076 IExtractIconW* This,
3080 ULONG (STDMETHODCALLTYPE *AddRef)(
3081 IExtractIconW* This);
3083 ULONG (STDMETHODCALLTYPE *Release)(
3084 IExtractIconW* This);
3086 /*** IExtractIconW methods ***/
3087 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
3088 IExtractIconW* This,
3095 HRESULT (STDMETHODCALLTYPE *Extract)(
3096 IExtractIconW* This,
3106 /*** IUnknown methods ***/
3107 #define IExtractIconW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3108 #define IExtractIconW_AddRef(p) (p)->lpVtbl->AddRef(p)
3109 #define IExtractIconW_Release(p) (p)->lpVtbl->Release(p)
3110 /*** IExtractIconW methods ***/
3111 #define IExtractIconW_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
3112 #define IExtractIconW_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
3117 #define IExtractIconW_METHODS \
3118 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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,
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;
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(
3185 virtual HRESULT STDMETHODCALLTYPE IncludeObject(
3187 LPCITEMIDLIST pidl) = 0;
3191 typedef struct ICommDlgBrowserVtbl ICommDlgBrowserVtbl;
3192 struct ICommDlgBrowser {
3193 const ICommDlgBrowserVtbl* lpVtbl;
3195 struct ICommDlgBrowserVtbl {
3196 ICOM_MSVTABLE_COMPAT_FIELDS
3198 /*** IUnknown methods ***/
3199 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3200 ICommDlgBrowser* This,
3204 ULONG (STDMETHODCALLTYPE *AddRef)(
3205 ICommDlgBrowser* This);
3207 ULONG (STDMETHODCALLTYPE *Release)(
3208 ICommDlgBrowser* This);
3210 /*** ICommDlgBrowser methods ***/
3211 HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
3212 ICommDlgBrowser* This,
3215 HRESULT (STDMETHODCALLTYPE *OnStateChange)(
3216 ICommDlgBrowser* This,
3220 HRESULT (STDMETHODCALLTYPE *IncludeObject)(
3221 ICommDlgBrowser* This,
3223 LPCITEMIDLIST pidl);
3228 /*** IUnknown methods ***/
3229 #define ICommDlgBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3230 #define ICommDlgBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
3231 #define ICommDlgBrowser_Release(p) (p)->lpVtbl->Release(p)
3232 /*** ICommDlgBrowser methods ***/
3233 #define ICommDlgBrowser_OnDefaultCommand(p,a) (p)->lpVtbl->OnDefaultCommand(p,a)
3234 #define ICommDlgBrowser_OnStateChange(p,a,b) (p)->lpVtbl->OnStateChange(p,a,b)
3235 #define ICommDlgBrowser_IncludeObject(p,a,b) (p)->lpVtbl->IncludeObject(p,a,b)
3240 #define ICommDlgBrowser_METHODS \
3241 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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,
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,
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;
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(
3301 DWORD dwAddFlags) = 0;
3303 virtual HRESULT STDMETHODCALLTYPE RemoveToolbar(
3305 DWORD dwRemoveFlags) = 0;
3307 virtual HRESULT STDMETHODCALLTYPE FindToolbar(
3310 LPVOID* ppvObj) = 0;
3314 typedef struct IDockingWindowFrameVtbl IDockingWindowFrameVtbl;
3315 struct IDockingWindowFrame {
3316 const IDockingWindowFrameVtbl* lpVtbl;
3318 struct IDockingWindowFrameVtbl {
3319 ICOM_MSVTABLE_COMPAT_FIELDS
3321 /*** IUnknown methods ***/
3322 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3323 IDockingWindowFrame* This,
3327 ULONG (STDMETHODCALLTYPE *AddRef)(
3328 IDockingWindowFrame* This);
3330 ULONG (STDMETHODCALLTYPE *Release)(
3331 IDockingWindowFrame* This);
3333 /*** IOleWindow methods ***/
3334 HRESULT (STDMETHODCALLTYPE *GetWindow)(
3335 IDockingWindowFrame* This,
3338 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
3339 IDockingWindowFrame* This,
3342 /*** IDockingWindowFrame methods ***/
3343 HRESULT (STDMETHODCALLTYPE *AddToolbar)(
3344 IDockingWindowFrame* This,
3349 HRESULT (STDMETHODCALLTYPE *RemoveToolbar)(
3350 IDockingWindowFrame* This,
3352 DWORD dwRemoveFlags);
3354 HRESULT (STDMETHODCALLTYPE *FindToolbar)(
3355 IDockingWindowFrame* This,
3363 /*** IUnknown methods ***/
3364 #define IDockingWindowFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3365 #define IDockingWindowFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
3366 #define IDockingWindowFrame_Release(p) (p)->lpVtbl->Release(p)
3367 /*** IOleWindow methods ***/
3368 #define IDockingWindowFrame_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
3369 #define IDockingWindowFrame_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
3370 /*** IDockingWindowFrame methods ***/
3371 #define IDockingWindowFrame_AddToolbar(p,a,b,c) (p)->lpVtbl->AddToolbar(p,a,b,c)
3372 #define IDockingWindowFrame_RemoveToolbar(p,a,b) (p)->lpVtbl->RemoveToolbar(p,a,b)
3373 #define IDockingWindowFrame_FindToolbar(p,a,b,c) (p)->lpVtbl->FindToolbar(p,a,b,c)
3378 #define IDockingWindowFrame_METHODS \
3379 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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,
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,
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;
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(
3453 IDataObject* pDataObject) = 0;
3457 typedef struct IDragSourceHelperVtbl IDragSourceHelperVtbl;
3458 struct IDragSourceHelper {
3459 const IDragSourceHelperVtbl* lpVtbl;
3461 struct IDragSourceHelperVtbl {
3462 ICOM_MSVTABLE_COMPAT_FIELDS
3464 /*** IUnknown methods ***/
3465 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3466 IDragSourceHelper* This,
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,
3486 IDataObject* pDataObject);
3491 /*** IUnknown methods ***/
3492 #define IDragSourceHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3493 #define IDragSourceHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3494 #define IDragSourceHelper_Release(p) (p)->lpVtbl->Release(p)
3495 /*** IDragSourceHelper methods ***/
3496 #define IDragSourceHelper_InitializeFromBitmap(p,a,b) (p)->lpVtbl->InitializeFromBitmap(p,a,b)
3497 #define IDragSourceHelper_InitializeFromWindow(p,a,b,c) (p)->lpVtbl->InitializeFromWindow(p,a,b,c)
3502 #define IDragSourceHelper_METHODS \
3503 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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;
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(
3551 IDataObject* pDataObject,
3553 DWORD dwEffect) = 0;
3555 virtual HRESULT STDMETHODCALLTYPE DragLeave(
3558 virtual HRESULT STDMETHODCALLTYPE DragOver(
3560 DWORD dwEffect) = 0;
3562 virtual HRESULT STDMETHODCALLTYPE Drop(
3563 IDataObject* pDataObject,
3565 DWORD dwEffect) = 0;
3567 virtual HRESULT STDMETHODCALLTYPE Show(
3572 typedef struct IDropTargetHelperVtbl IDropTargetHelperVtbl;
3573 struct IDropTargetHelper {
3574 const IDropTargetHelperVtbl* lpVtbl;
3576 struct IDropTargetHelperVtbl {
3577 ICOM_MSVTABLE_COMPAT_FIELDS
3579 /*** IUnknown methods ***/
3580 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3581 IDropTargetHelper* This,
3585 ULONG (STDMETHODCALLTYPE *AddRef)(
3586 IDropTargetHelper* This);
3588 ULONG (STDMETHODCALLTYPE *Release)(
3589 IDropTargetHelper* This);
3591 /*** IDropTargetHelper methods ***/
3592 HRESULT (STDMETHODCALLTYPE *DragEnter)(
3593 IDropTargetHelper* This,
3595 IDataObject* pDataObject,
3599 HRESULT (STDMETHODCALLTYPE *DragLeave)(
3600 IDropTargetHelper* This);
3602 HRESULT (STDMETHODCALLTYPE *DragOver)(
3603 IDropTargetHelper* This,
3607 HRESULT (STDMETHODCALLTYPE *Drop)(
3608 IDropTargetHelper* This,
3609 IDataObject* pDataObject,
3613 HRESULT (STDMETHODCALLTYPE *Show)(
3614 IDropTargetHelper* This,
3620 /*** IUnknown methods ***/
3621 #define IDropTargetHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3622 #define IDropTargetHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3623 #define IDropTargetHelper_Release(p) (p)->lpVtbl->Release(p)
3624 /*** IDropTargetHelper methods ***/
3625 #define IDropTargetHelper_DragEnter(p,a,b,c,d) (p)->lpVtbl->DragEnter(p,a,b,c,d)
3626 #define IDropTargetHelper_DragLeave(p) (p)->lpVtbl->DragLeave(p)
3627 #define IDropTargetHelper_DragOver(p,a,b) (p)->lpVtbl->DragOver(p,a,b)
3628 #define IDropTargetHelper_Drop(p,a,b,c) (p)->lpVtbl->Drop(p,a,b,c)
3629 #define IDropTargetHelper_Show(p,a) (p)->lpVtbl->Show(p,a)
3634 #define IDropTargetHelper_METHODS \
3635 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
3650 IDataObject* pDataObject,
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,
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,
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,
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;
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"
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};
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 {
3760 LPCSTR lpParameters;
3765 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
3767 typedef struct tagCMInvokeCommandInfoEx {
3772 LPCSTR lpParameters;
3779 LPCWSTR lpParametersW;
3780 LPCWSTR lpDirectoryW;
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(
3802 virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
3803 LPCMINVOKECOMMANDINFO lpici) = 0;
3805 virtual HRESULT STDMETHODCALLTYPE GetCommandString(
3814 typedef struct IContextMenuVtbl IContextMenuVtbl;
3815 struct IContextMenu {
3816 const IContextMenuVtbl* lpVtbl;
3818 struct IContextMenuVtbl {
3819 ICOM_MSVTABLE_COMPAT_FIELDS
3821 /*** IUnknown methods ***/
3822 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3827 ULONG (STDMETHODCALLTYPE *AddRef)(
3828 IContextMenu* This);
3830 ULONG (STDMETHODCALLTYPE *Release)(
3831 IContextMenu* This);
3833 /*** IContextMenu methods ***/
3834 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3842 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3844 LPCMINVOKECOMMANDINFO lpici);
3846 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3857 /*** IUnknown methods ***/
3858 #define IContextMenu_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3859 #define IContextMenu_AddRef(p) (p)->lpVtbl->AddRef(p)
3860 #define IContextMenu_Release(p) (p)->lpVtbl->Release(p)
3861 /*** IContextMenu methods ***/
3862 #define IContextMenu_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3863 #define IContextMenu_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3864 #define IContextMenu_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3869 #define IContextMenu_METHODS \
3870 ICOM_MSVTABLE_COMPAT_FIELDS \
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(
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(
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(
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;
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(
3939 typedef struct IContextMenu2Vtbl IContextMenu2Vtbl;
3940 struct IContextMenu2 {
3941 const IContextMenu2Vtbl* lpVtbl;
3943 struct IContextMenu2Vtbl {
3944 ICOM_MSVTABLE_COMPAT_FIELDS
3946 /*** IUnknown methods ***/
3947 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3948 IContextMenu2* This,
3952 ULONG (STDMETHODCALLTYPE *AddRef)(
3953 IContextMenu2* This);
3955 ULONG (STDMETHODCALLTYPE *Release)(
3956 IContextMenu2* This);
3958 /*** IContextMenu methods ***/
3959 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3960 IContextMenu2* This,
3967 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3968 IContextMenu2* This,
3969 LPCMINVOKECOMMANDINFO lpici);
3971 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3972 IContextMenu2* This,
3979 /*** IContextMenu2 methods ***/
3980 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
3981 IContextMenu2* This,
3989 /*** IUnknown methods ***/
3990 #define IContextMenu2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3991 #define IContextMenu2_AddRef(p) (p)->lpVtbl->AddRef(p)
3992 #define IContextMenu2_Release(p) (p)->lpVtbl->Release(p)
3993 /*** IContextMenu methods ***/
3994 #define IContextMenu2_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3995 #define IContextMenu2_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3996 #define IContextMenu2_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3997 /*** IContextMenu2 methods ***/
3998 #define IContextMenu2_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
4003 #define IContextMenu2_METHODS \
4004 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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;
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(
4050 LRESULT* plResult) = 0;
4054 typedef struct IContextMenu3Vtbl IContextMenu3Vtbl;
4055 struct IContextMenu3 {
4056 const IContextMenu3Vtbl* lpVtbl;
4058 struct IContextMenu3Vtbl {
4059 ICOM_MSVTABLE_COMPAT_FIELDS
4061 /*** IUnknown methods ***/
4062 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4063 IContextMenu3* This,
4067 ULONG (STDMETHODCALLTYPE *AddRef)(
4068 IContextMenu3* This);
4070 ULONG (STDMETHODCALLTYPE *Release)(
4071 IContextMenu3* This);
4073 /*** IContextMenu methods ***/
4074 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
4075 IContextMenu3* This,
4082 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
4083 IContextMenu3* This,
4084 LPCMINVOKECOMMANDINFO lpici);
4086 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
4087 IContextMenu3* This,
4094 /*** IContextMenu2 methods ***/
4095 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
4096 IContextMenu3* This,
4101 /*** IContextMenu3 methods ***/
4102 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
4103 IContextMenu3* This,
4112 /*** IUnknown methods ***/
4113 #define IContextMenu3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4114 #define IContextMenu3_AddRef(p) (p)->lpVtbl->AddRef(p)
4115 #define IContextMenu3_Release(p) (p)->lpVtbl->Release(p)
4116 /*** IContextMenu methods ***/
4117 #define IContextMenu3_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
4118 #define IContextMenu3_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
4119 #define IContextMenu3_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
4120 /*** IContextMenu2 methods ***/
4121 #define IContextMenu3_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
4122 /*** IContextMenu3 methods ***/
4123 #define IContextMenu3_HandleMenuMsg2(p,a,b,c,d) (p)->lpVtbl->HandleMenuMsg2(p,a,b,c,d)
4128 #define IContextMenu3_METHODS \
4129 ICOM_MSVTABLE_COMPAT_FIELDS \
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,
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;
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;
4178 typedef struct IShellExecuteHookAVtbl IShellExecuteHookAVtbl;
4179 struct IShellExecuteHookA {
4180 const IShellExecuteHookAVtbl* lpVtbl;
4182 struct IShellExecuteHookAVtbl {
4183 ICOM_MSVTABLE_COMPAT_FIELDS
4185 /*** IUnknown methods ***/
4186 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4187 IShellExecuteHookA* This,
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);
4205 /*** IUnknown methods ***/
4206 #define IShellExecuteHookA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4207 #define IShellExecuteHookA_AddRef(p) (p)->lpVtbl->AddRef(p)
4208 #define IShellExecuteHookA_Release(p) (p)->lpVtbl->Release(p)
4209 /*** IShellExecuteHookA methods ***/
4210 #define IShellExecuteHookA_Execute(p,a) (p)->lpVtbl->Execute(p,a)
4215 #define IShellExecuteHookA_METHODS \
4216 ICOM_MSVTABLE_COMPAT_FIELDS \
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;
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;
4256 typedef struct IShellExecuteHookWVtbl IShellExecuteHookWVtbl;
4257 struct IShellExecuteHookW {
4258 const IShellExecuteHookWVtbl* lpVtbl;
4260 struct IShellExecuteHookWVtbl {
4261 ICOM_MSVTABLE_COMPAT_FIELDS
4263 /*** IUnknown methods ***/
4264 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4265 IShellExecuteHookW* This,
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);
4283 /*** IUnknown methods ***/
4284 #define IShellExecuteHookW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4285 #define IShellExecuteHookW_AddRef(p) (p)->lpVtbl->AddRef(p)
4286 #define IShellExecuteHookW_Release(p) (p)->lpVtbl->Release(p)
4287 /*** IShellExecuteHookW methods ***/
4288 #define IShellExecuteHookW_Execute(p,a) (p)->lpVtbl->Execute(p,a)
4293 #define IShellExecuteHookW_METHODS \
4294 ICOM_MSVTABLE_COMPAT_FIELDS \
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__ */
4316 #endif /* __WIDL_SHOBJIDL_H */