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)(
69 /*** IUnknown methods ***/
70 #define IPersistFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
71 #define IPersistFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
72 #define IPersistFolder_Release(p) (p)->lpVtbl->Release(p)
73 /*** IPersist methods ***/
74 #define IPersistFolder_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
75 /*** IPersistFolder methods ***/
76 #define IPersistFolder_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
80 #define IPersistFolder_METHODS \
81 ICOM_MSVTABLE_COMPAT_FIELDS \
82 /*** IUnknown methods ***/ \
83 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
84 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
85 STDMETHOD_(ULONG,Release)(THIS) PURE; \
86 /*** IPersist methods ***/ \
87 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
88 /*** IPersistFolder methods ***/ \
89 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE;
91 HRESULT CALLBACK IPersistFolder_Initialize_Proxy(
94 void __RPC_STUB IPersistFolder_Initialize_Stub(
95 struct IRpcStubBuffer* This,
96 struct IRpcChannelBuffer* pRpcChannelBuffer,
97 PRPC_MESSAGE pRpcMessage,
100 #endif /* __IPersistFolder_INTERFACE_DEFINED__ */
102 #ifndef __IPersistFolder2_FWD_DEFINED__
103 #define __IPersistFolder2_FWD_DEFINED__
104 typedef struct IPersistFolder2 IPersistFolder2;
107 typedef IPersistFolder2 *LPPERSISTFOLDER2;
109 /*****************************************************************************
110 * IPersistFolder2 interface
112 #ifndef __IPersistFolder2_INTERFACE_DEFINED__
113 #define __IPersistFolder2_INTERFACE_DEFINED__
115 DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
116 #if defined(__cplusplus) && !defined(CINTERFACE)
117 struct IPersistFolder2 : public IPersistFolder
119 virtual HRESULT STDMETHODCALLTYPE GetCurFolder(
120 LPITEMIDLIST* ppidl) = 0;
124 typedef struct IPersistFolder2Vtbl IPersistFolder2Vtbl;
125 struct IPersistFolder2 {
126 const IPersistFolder2Vtbl* lpVtbl;
128 struct IPersistFolder2Vtbl {
129 ICOM_MSVTABLE_COMPAT_FIELDS
131 /*** IUnknown methods ***/
132 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
133 IPersistFolder2* This,
137 ULONG (STDMETHODCALLTYPE *AddRef)(
138 IPersistFolder2* This);
140 ULONG (STDMETHODCALLTYPE *Release)(
141 IPersistFolder2* This);
143 /*** IPersist methods ***/
144 HRESULT (STDMETHODCALLTYPE *GetClassID)(
145 IPersistFolder2* This,
148 /*** IPersistFolder methods ***/
149 HRESULT (STDMETHODCALLTYPE *Initialize)(
150 IPersistFolder2* This,
153 /*** IPersistFolder2 methods ***/
154 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
155 IPersistFolder2* This,
156 LPITEMIDLIST* ppidl);
160 /*** IUnknown methods ***/
161 #define IPersistFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
162 #define IPersistFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
163 #define IPersistFolder2_Release(p) (p)->lpVtbl->Release(p)
164 /*** IPersist methods ***/
165 #define IPersistFolder2_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
166 /*** IPersistFolder methods ***/
167 #define IPersistFolder2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
168 /*** IPersistFolder2 methods ***/
169 #define IPersistFolder2_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
173 #define IPersistFolder2_METHODS \
174 ICOM_MSVTABLE_COMPAT_FIELDS \
175 /*** IUnknown methods ***/ \
176 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
177 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
178 STDMETHOD_(ULONG,Release)(THIS) PURE; \
179 /*** IPersist methods ***/ \
180 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
181 /*** IPersistFolder methods ***/ \
182 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \
183 /*** IPersistFolder2 methods ***/ \
184 STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE;
186 HRESULT CALLBACK IPersistFolder2_GetCurFolder_Proxy(
187 IPersistFolder2* This,
188 LPITEMIDLIST* ppidl);
189 void __RPC_STUB IPersistFolder2_GetCurFolder_Stub(
190 struct IRpcStubBuffer* This,
191 struct IRpcChannelBuffer* pRpcChannelBuffer,
192 PRPC_MESSAGE pRpcMessage,
193 DWORD* pdwStubPhase);
195 #endif /* __IPersistFolder2_INTERFACE_DEFINED__ */
197 #ifndef __IEnumIDList_FWD_DEFINED__
198 #define __IEnumIDList_FWD_DEFINED__
199 typedef struct IEnumIDList IEnumIDList;
202 typedef IEnumIDList *LPENUMIDLIST;
204 /*****************************************************************************
205 * IEnumIDList interface
207 #ifndef __IEnumIDList_INTERFACE_DEFINED__
208 #define __IEnumIDList_INTERFACE_DEFINED__
210 DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
211 #if defined(__cplusplus) && !defined(CINTERFACE)
212 struct IEnumIDList : public IUnknown
214 virtual HRESULT STDMETHODCALLTYPE Next(
217 ULONG* pceltFetched) = 0;
219 virtual HRESULT STDMETHODCALLTYPE Skip(
222 virtual HRESULT STDMETHODCALLTYPE Reset(
225 virtual HRESULT STDMETHODCALLTYPE Clone(
226 IEnumIDList** ppenum) = 0;
230 typedef struct IEnumIDListVtbl IEnumIDListVtbl;
232 const IEnumIDListVtbl* lpVtbl;
234 struct IEnumIDListVtbl {
235 ICOM_MSVTABLE_COMPAT_FIELDS
237 /*** IUnknown methods ***/
238 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
243 ULONG (STDMETHODCALLTYPE *AddRef)(
246 ULONG (STDMETHODCALLTYPE *Release)(
249 /*** IEnumIDList methods ***/
250 HRESULT (STDMETHODCALLTYPE *Next)(
254 ULONG* pceltFetched);
256 HRESULT (STDMETHODCALLTYPE *Skip)(
260 HRESULT (STDMETHODCALLTYPE *Reset)(
263 HRESULT (STDMETHODCALLTYPE *Clone)(
265 IEnumIDList** ppenum);
269 /*** IUnknown methods ***/
270 #define IEnumIDList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
271 #define IEnumIDList_AddRef(p) (p)->lpVtbl->AddRef(p)
272 #define IEnumIDList_Release(p) (p)->lpVtbl->Release(p)
273 /*** IEnumIDList methods ***/
274 #define IEnumIDList_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
275 #define IEnumIDList_Skip(p,a) (p)->lpVtbl->Skip(p,a)
276 #define IEnumIDList_Reset(p) (p)->lpVtbl->Reset(p)
277 #define IEnumIDList_Clone(p,a) (p)->lpVtbl->Clone(p,a)
281 #define IEnumIDList_METHODS \
282 ICOM_MSVTABLE_COMPAT_FIELDS \
283 /*** IUnknown methods ***/ \
284 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
285 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
286 STDMETHOD_(ULONG,Release)(THIS) PURE; \
287 /*** IEnumIDList methods ***/ \
288 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, LPITEMIDLIST* rgelt, ULONG* pceltFetched) PURE; \
289 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
290 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
291 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumIDList** ppenum) PURE;
293 HRESULT CALLBACK IEnumIDList_Next_Proxy(
297 ULONG* pceltFetched);
298 void __RPC_STUB IEnumIDList_Next_Stub(
299 struct IRpcStubBuffer* This,
300 struct IRpcChannelBuffer* pRpcChannelBuffer,
301 PRPC_MESSAGE pRpcMessage,
302 DWORD* pdwStubPhase);
303 HRESULT CALLBACK IEnumIDList_Skip_Proxy(
306 void __RPC_STUB IEnumIDList_Skip_Stub(
307 struct IRpcStubBuffer* This,
308 struct IRpcChannelBuffer* pRpcChannelBuffer,
309 PRPC_MESSAGE pRpcMessage,
310 DWORD* pdwStubPhase);
311 HRESULT CALLBACK IEnumIDList_Reset_Proxy(
313 void __RPC_STUB IEnumIDList_Reset_Stub(
314 struct IRpcStubBuffer* This,
315 struct IRpcChannelBuffer* pRpcChannelBuffer,
316 PRPC_MESSAGE pRpcMessage,
317 DWORD* pdwStubPhase);
318 HRESULT CALLBACK IEnumIDList_Clone_Proxy(
320 IEnumIDList** ppenum);
321 void __RPC_STUB IEnumIDList_Clone_Stub(
322 struct IRpcStubBuffer* This,
323 struct IRpcChannelBuffer* pRpcChannelBuffer,
324 PRPC_MESSAGE pRpcMessage,
325 DWORD* pdwStubPhase);
327 #endif /* __IEnumIDList_INTERFACE_DEFINED__ */
329 #ifndef __IShellFolder_FWD_DEFINED__
330 #define __IShellFolder_FWD_DEFINED__
331 typedef struct IShellFolder IShellFolder;
334 typedef IShellFolder *LPSHELLFOLDER;
336 typedef enum tagSHGDN {
339 SHGDN_FOREDITING = 0x1000,
340 SHGDN_INCLUDE_NONFILESYS = 0x2000,
341 SHGDN_FORADDRESSBAR = 0x4000,
342 SHGDN_FORPARSING = 0x8000
345 typedef DWORD SHGDNF;
348 SHCONTF_FOLDERS = 32,
349 SHCONTF_NONFOLDERS = 64,
350 SHCONTF_INCLUDEHIDDEN = 128,
351 SHCONTF_INIT_ON_FIRST_NEXT = 256,
352 SHCONTF_NETPRINTERSRCH = 512,
353 SHCONTF_SHAREABLE = 1024,
354 SHCONTF_STORAGE = 2048
357 typedef DWORD SHCONTF;
359 #define SFGAO_CANCOPY DROPEFFECT_COPY
360 #define SFGAO_CANMOVE DROPEFFECT_MOVE
361 #define SFGAO_CANLINK DROPEFFECT_LINK
362 #define SFGAO_CANRENAME 0x00000010L
363 #define SFGAO_CANDELETE 0x00000020L
364 #define SFGAO_HASPROPSHEET 0x00000040L
365 #define SFGAO_DROPTARGET 0x00000100L
366 #define SFGAO_CAPABILITYMASK 0x00000177L
367 #define SFGAO_LINK 0x00010000L
368 #define SFGAO_SHARE 0x00020000L
369 #define SFGAO_READONLY 0x00040000L
370 #define SFGAO_GHOSTED 0x00080000L
371 #define SFGAO_HIDDEN 0x00080000L
372 #define SFGAO_DISPLAYATTRMASK 0x000F0000L
373 #define SFGAO_FILESYSANCESTOR 0x10000000L
374 #define SFGAO_FOLDER 0x20000000L
375 #define SFGAO_FILESYSTEM 0x40000000L
376 #define SFGAO_HASSUBFOLDER 0x80000000L
377 #define SFGAO_CONTENTSMASK 0x80000000L
378 #define SFGAO_VALIDATE 0x01000000L
379 #define SFGAO_REMOVABLE 0x02000000L
380 #define SFGAO_COMPRESSED 0x04000000L
381 #define SFGAO_BROWSABLE 0x08000000L
382 #define SFGAO_NONENUMERATED 0x00100000L
383 #define SFGAO_NEWCONTENT 0x00200000L
384 typedef ULONG SFGAOF;
386 /*****************************************************************************
387 * IShellFolder interface
389 #ifndef __IShellFolder_INTERFACE_DEFINED__
390 #define __IShellFolder_INTERFACE_DEFINED__
392 DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
393 #if defined(__cplusplus) && !defined(CINTERFACE)
394 struct IShellFolder : public IUnknown
396 virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
399 LPOLESTR lpszDisplayName,
402 ULONG* pdwAttributes) = 0;
404 virtual HRESULT STDMETHODCALLTYPE EnumObjects(
407 IEnumIDList** ppenumIDList) = 0;
409 virtual HRESULT STDMETHODCALLTYPE BindToObject(
415 virtual HRESULT STDMETHODCALLTYPE BindToStorage(
421 virtual HRESULT STDMETHODCALLTYPE CompareIDs(
424 LPCITEMIDLIST pidl2) = 0;
426 virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
431 virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
433 LPCITEMIDLIST* apidl,
434 SFGAOF* rgfInOut) = 0;
436 virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
439 LPCITEMIDLIST* apidl,
444 virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
449 virtual HRESULT STDMETHODCALLTYPE SetNameOf(
454 LPITEMIDLIST* ppidlOut) = 0;
458 typedef struct IShellFolderVtbl IShellFolderVtbl;
459 struct IShellFolder {
460 const IShellFolderVtbl* lpVtbl;
462 struct IShellFolderVtbl {
463 ICOM_MSVTABLE_COMPAT_FIELDS
465 /*** IUnknown methods ***/
466 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
471 ULONG (STDMETHODCALLTYPE *AddRef)(
474 ULONG (STDMETHODCALLTYPE *Release)(
477 /*** IShellFolder methods ***/
478 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
482 LPOLESTR lpszDisplayName,
485 ULONG* pdwAttributes);
487 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
491 IEnumIDList** ppenumIDList);
493 HRESULT (STDMETHODCALLTYPE *BindToObject)(
500 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
507 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
511 LPCITEMIDLIST pidl2);
513 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
519 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
522 LPCITEMIDLIST* apidl,
525 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
529 LPCITEMIDLIST* apidl,
534 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
540 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
546 LPITEMIDLIST* ppidlOut);
550 /*** IUnknown methods ***/
551 #define IShellFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
552 #define IShellFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
553 #define IShellFolder_Release(p) (p)->lpVtbl->Release(p)
554 /*** IShellFolder methods ***/
555 #define IShellFolder_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
556 #define IShellFolder_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
557 #define IShellFolder_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
558 #define IShellFolder_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
559 #define IShellFolder_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
560 #define IShellFolder_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
561 #define IShellFolder_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
562 #define IShellFolder_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
563 #define IShellFolder_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
564 #define IShellFolder_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
568 #define IShellFolder_METHODS \
569 ICOM_MSVTABLE_COMPAT_FIELDS \
570 /*** IUnknown methods ***/ \
571 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
572 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
573 STDMETHOD_(ULONG,Release)(THIS) PURE; \
574 /*** IShellFolder methods ***/ \
575 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \
576 STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \
577 STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \
578 STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \
579 STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \
580 STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \
581 STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \
582 STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \
583 STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \
584 STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE;
586 HRESULT CALLBACK IShellFolder_ParseDisplayName_Proxy(
590 LPOLESTR lpszDisplayName,
593 ULONG* pdwAttributes);
594 void __RPC_STUB IShellFolder_ParseDisplayName_Stub(
595 struct IRpcStubBuffer* This,
596 struct IRpcChannelBuffer* pRpcChannelBuffer,
597 PRPC_MESSAGE pRpcMessage,
598 DWORD* pdwStubPhase);
599 HRESULT CALLBACK IShellFolder_EnumObjects_Proxy(
603 IEnumIDList** ppenumIDList);
604 void __RPC_STUB IShellFolder_EnumObjects_Stub(
605 struct IRpcStubBuffer* This,
606 struct IRpcChannelBuffer* pRpcChannelBuffer,
607 PRPC_MESSAGE pRpcMessage,
608 DWORD* pdwStubPhase);
609 HRESULT CALLBACK IShellFolder_BindToObject_Proxy(
615 void __RPC_STUB IShellFolder_BindToObject_Stub(
616 struct IRpcStubBuffer* This,
617 struct IRpcChannelBuffer* pRpcChannelBuffer,
618 PRPC_MESSAGE pRpcMessage,
619 DWORD* pdwStubPhase);
620 HRESULT CALLBACK IShellFolder_BindToStorage_Proxy(
626 void __RPC_STUB IShellFolder_BindToStorage_Stub(
627 struct IRpcStubBuffer* This,
628 struct IRpcChannelBuffer* pRpcChannelBuffer,
629 PRPC_MESSAGE pRpcMessage,
630 DWORD* pdwStubPhase);
631 HRESULT CALLBACK IShellFolder_CompareIDs_Proxy(
635 LPCITEMIDLIST pidl2);
636 void __RPC_STUB IShellFolder_CompareIDs_Stub(
637 struct IRpcStubBuffer* This,
638 struct IRpcChannelBuffer* pRpcChannelBuffer,
639 PRPC_MESSAGE pRpcMessage,
640 DWORD* pdwStubPhase);
641 HRESULT CALLBACK IShellFolder_CreateViewObject_Proxy(
646 void __RPC_STUB IShellFolder_CreateViewObject_Stub(
647 struct IRpcStubBuffer* This,
648 struct IRpcChannelBuffer* pRpcChannelBuffer,
649 PRPC_MESSAGE pRpcMessage,
650 DWORD* pdwStubPhase);
651 HRESULT CALLBACK IShellFolder_GetAttributesOf_Proxy(
654 LPCITEMIDLIST* apidl,
656 void __RPC_STUB IShellFolder_GetAttributesOf_Stub(
657 struct IRpcStubBuffer* This,
658 struct IRpcChannelBuffer* pRpcChannelBuffer,
659 PRPC_MESSAGE pRpcMessage,
660 DWORD* pdwStubPhase);
661 HRESULT CALLBACK IShellFolder_GetUIObjectOf_Proxy(
665 LPCITEMIDLIST* apidl,
669 void __RPC_STUB IShellFolder_GetUIObjectOf_Stub(
670 struct IRpcStubBuffer* This,
671 struct IRpcChannelBuffer* pRpcChannelBuffer,
672 PRPC_MESSAGE pRpcMessage,
673 DWORD* pdwStubPhase);
674 HRESULT CALLBACK IShellFolder_GetDisplayNameOf_Proxy(
679 void __RPC_STUB IShellFolder_GetDisplayNameOf_Stub(
680 struct IRpcStubBuffer* This,
681 struct IRpcChannelBuffer* pRpcChannelBuffer,
682 PRPC_MESSAGE pRpcMessage,
683 DWORD* pdwStubPhase);
684 HRESULT CALLBACK IShellFolder_SetNameOf_Proxy(
690 LPITEMIDLIST* ppidlOut);
691 void __RPC_STUB IShellFolder_SetNameOf_Stub(
692 struct IRpcStubBuffer* This,
693 struct IRpcChannelBuffer* pRpcChannelBuffer,
694 PRPC_MESSAGE pRpcMessage,
695 DWORD* pdwStubPhase);
697 #endif /* __IShellFolder_INTERFACE_DEFINED__ */
699 #ifndef __IEnumExtraSearch_FWD_DEFINED__
700 #define __IEnumExtraSearch_FWD_DEFINED__
701 typedef struct IEnumExtraSearch IEnumExtraSearch;
704 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
708 WCHAR wszFriendlyName[80];
710 } EXTRASEARCH, *LPEXTRASEARCH;
712 /*****************************************************************************
713 * IEnumExtraSearch interface
715 #ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
716 #define __IEnumExtraSearch_INTERFACE_DEFINED__
718 DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13);
719 #if defined(__cplusplus) && !defined(CINTERFACE)
720 struct IEnumExtraSearch : public IUnknown
722 virtual HRESULT STDMETHODCALLTYPE Next(
725 ULONG* pceltFetched) = 0;
727 virtual HRESULT STDMETHODCALLTYPE Skip(
730 virtual HRESULT STDMETHODCALLTYPE Reset(
733 virtual HRESULT STDMETHODCALLTYPE Clone(
734 IEnumExtraSearch** ppenum) = 0;
738 typedef struct IEnumExtraSearchVtbl IEnumExtraSearchVtbl;
739 struct IEnumExtraSearch {
740 const IEnumExtraSearchVtbl* lpVtbl;
742 struct IEnumExtraSearchVtbl {
743 ICOM_MSVTABLE_COMPAT_FIELDS
745 /*** IUnknown methods ***/
746 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
747 IEnumExtraSearch* This,
751 ULONG (STDMETHODCALLTYPE *AddRef)(
752 IEnumExtraSearch* This);
754 ULONG (STDMETHODCALLTYPE *Release)(
755 IEnumExtraSearch* This);
757 /*** IEnumExtraSearch methods ***/
758 HRESULT (STDMETHODCALLTYPE *Next)(
759 IEnumExtraSearch* This,
762 ULONG* pceltFetched);
764 HRESULT (STDMETHODCALLTYPE *Skip)(
765 IEnumExtraSearch* This,
768 HRESULT (STDMETHODCALLTYPE *Reset)(
769 IEnumExtraSearch* This);
771 HRESULT (STDMETHODCALLTYPE *Clone)(
772 IEnumExtraSearch* This,
773 IEnumExtraSearch** ppenum);
777 /*** IUnknown methods ***/
778 #define IEnumExtraSearch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
779 #define IEnumExtraSearch_AddRef(p) (p)->lpVtbl->AddRef(p)
780 #define IEnumExtraSearch_Release(p) (p)->lpVtbl->Release(p)
781 /*** IEnumExtraSearch methods ***/
782 #define IEnumExtraSearch_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
783 #define IEnumExtraSearch_Skip(p,a) (p)->lpVtbl->Skip(p,a)
784 #define IEnumExtraSearch_Reset(p) (p)->lpVtbl->Reset(p)
785 #define IEnumExtraSearch_Clone(p,a) (p)->lpVtbl->Clone(p,a)
789 #define IEnumExtraSearch_METHODS \
790 ICOM_MSVTABLE_COMPAT_FIELDS \
791 /*** IUnknown methods ***/ \
792 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
793 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
794 STDMETHOD_(ULONG,Release)(THIS) PURE; \
795 /*** IEnumExtraSearch methods ***/ \
796 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, EXTRASEARCH* rgelt, ULONG* pceltFetched) PURE; \
797 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
798 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
799 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumExtraSearch** ppenum) PURE;
801 HRESULT CALLBACK IEnumExtraSearch_Next_Proxy(
802 IEnumExtraSearch* This,
805 ULONG* pceltFetched);
806 void __RPC_STUB IEnumExtraSearch_Next_Stub(
807 struct IRpcStubBuffer* This,
808 struct IRpcChannelBuffer* pRpcChannelBuffer,
809 PRPC_MESSAGE pRpcMessage,
810 DWORD* pdwStubPhase);
811 HRESULT CALLBACK IEnumExtraSearch_Skip_Proxy(
812 IEnumExtraSearch* This,
814 void __RPC_STUB IEnumExtraSearch_Skip_Stub(
815 struct IRpcStubBuffer* This,
816 struct IRpcChannelBuffer* pRpcChannelBuffer,
817 PRPC_MESSAGE pRpcMessage,
818 DWORD* pdwStubPhase);
819 HRESULT CALLBACK IEnumExtraSearch_Reset_Proxy(
820 IEnumExtraSearch* This);
821 void __RPC_STUB IEnumExtraSearch_Reset_Stub(
822 struct IRpcStubBuffer* This,
823 struct IRpcChannelBuffer* pRpcChannelBuffer,
824 PRPC_MESSAGE pRpcMessage,
825 DWORD* pdwStubPhase);
826 HRESULT CALLBACK IEnumExtraSearch_Clone_Proxy(
827 IEnumExtraSearch* This,
828 IEnumExtraSearch** ppenum);
829 void __RPC_STUB IEnumExtraSearch_Clone_Stub(
830 struct IRpcStubBuffer* This,
831 struct IRpcChannelBuffer* pRpcChannelBuffer,
832 PRPC_MESSAGE pRpcMessage,
833 DWORD* pdwStubPhase);
835 #endif /* __IEnumExtraSearch_INTERFACE_DEFINED__ */
837 #ifndef __IShellFolder2_FWD_DEFINED__
838 #define __IShellFolder2_FWD_DEFINED__
839 typedef struct IShellFolder2 IShellFolder2;
843 SHCOLSTATE_TYPE_STR = 0x1,
844 SHCOLSTATE_TYPE_INT = 0x2,
845 SHCOLSTATE_TYPE_DATE = 0x3,
846 SHCOLSTATE_TYPEMASK = 0xf,
847 SHCOLSTATE_ONBYDEFAULT = 0x10,
848 SHCOLSTATE_SLOW = 0x20,
849 SHCOLSTATE_EXTENDED = 0x40,
850 SHCOLSTATE_SECONDARYUI = 0x80,
851 SHCOLSTATE_HIDDEN = 0x100,
852 SHCOLSTATE_PREFER_VARCMP = 0x200
855 typedef DWORD SHCOLSTATEF;
860 } SHCOLUMNID, *LPSHCOLUMNID;
862 typedef const SHCOLUMNID *LPCSHCOLUMNID;
864 /*****************************************************************************
865 * IShellFolder2 interface
867 #ifndef __IShellFolder2_INTERFACE_DEFINED__
868 #define __IShellFolder2_INTERFACE_DEFINED__
870 DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1);
871 #if defined(__cplusplus) && !defined(CINTERFACE)
872 struct IShellFolder2 : public IShellFolder
874 virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(
877 virtual HRESULT STDMETHODCALLTYPE EnumSearches(
878 IEnumExtraSearch** ppenum) = 0;
880 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
883 ULONG* pDisplay) = 0;
885 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
887 SHCOLSTATEF* pcsFlags) = 0;
889 virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
891 const SHCOLUMNID* pscid,
894 virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
897 SHELLDETAILS* psd) = 0;
899 virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
901 SHCOLUMNID* pscid) = 0;
905 typedef struct IShellFolder2Vtbl IShellFolder2Vtbl;
906 struct IShellFolder2 {
907 const IShellFolder2Vtbl* lpVtbl;
909 struct IShellFolder2Vtbl {
910 ICOM_MSVTABLE_COMPAT_FIELDS
912 /*** IUnknown methods ***/
913 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
918 ULONG (STDMETHODCALLTYPE *AddRef)(
919 IShellFolder2* This);
921 ULONG (STDMETHODCALLTYPE *Release)(
922 IShellFolder2* This);
924 /*** IShellFolder methods ***/
925 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
929 LPOLESTR lpszDisplayName,
932 ULONG* pdwAttributes);
934 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
938 IEnumIDList** ppenumIDList);
940 HRESULT (STDMETHODCALLTYPE *BindToObject)(
947 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
954 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
958 LPCITEMIDLIST pidl2);
960 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
966 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
969 LPCITEMIDLIST* apidl,
972 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
976 LPCITEMIDLIST* apidl,
981 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
987 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
993 LPITEMIDLIST* ppidlOut);
995 /*** IShellFolder2 methods ***/
996 HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
1000 HRESULT (STDMETHODCALLTYPE *EnumSearches)(
1001 IShellFolder2* This,
1002 IEnumExtraSearch** ppenum);
1004 HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
1005 IShellFolder2* This,
1010 HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
1011 IShellFolder2* This,
1013 SHCOLSTATEF* pcsFlags);
1015 HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
1016 IShellFolder2* This,
1018 const SHCOLUMNID* pscid,
1021 HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
1022 IShellFolder2* This,
1027 HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
1028 IShellFolder2* This,
1034 /*** IUnknown methods ***/
1035 #define IShellFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1036 #define IShellFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
1037 #define IShellFolder2_Release(p) (p)->lpVtbl->Release(p)
1038 /*** IShellFolder methods ***/
1039 #define IShellFolder2_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
1040 #define IShellFolder2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
1041 #define IShellFolder2_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
1042 #define IShellFolder2_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
1043 #define IShellFolder2_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
1044 #define IShellFolder2_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
1045 #define IShellFolder2_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
1046 #define IShellFolder2_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
1047 #define IShellFolder2_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
1048 #define IShellFolder2_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
1049 /*** IShellFolder2 methods ***/
1050 #define IShellFolder2_GetDefaultSearchGUID(p,a) (p)->lpVtbl->GetDefaultSearchGUID(p,a)
1051 #define IShellFolder2_EnumSearches(p,a) (p)->lpVtbl->EnumSearches(p,a)
1052 #define IShellFolder2_GetDefaultColumn(p,a,b,c) (p)->lpVtbl->GetDefaultColumn(p,a,b,c)
1053 #define IShellFolder2_GetDefaultColumnState(p,a,b) (p)->lpVtbl->GetDefaultColumnState(p,a,b)
1054 #define IShellFolder2_GetDetailsEx(p,a,b,c) (p)->lpVtbl->GetDetailsEx(p,a,b,c)
1055 #define IShellFolder2_GetDetailsOf(p,a,b,c) (p)->lpVtbl->GetDetailsOf(p,a,b,c)
1056 #define IShellFolder2_MapColumnToSCID(p,a,b) (p)->lpVtbl->MapColumnToSCID(p,a,b)
1060 #define IShellFolder2_METHODS \
1061 ICOM_MSVTABLE_COMPAT_FIELDS \
1062 /*** IUnknown methods ***/ \
1063 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1064 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1065 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1066 /*** IShellFolder methods ***/ \
1067 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \
1068 STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \
1069 STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \
1070 STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \
1071 STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \
1072 STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \
1073 STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \
1074 STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \
1075 STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \
1076 STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE; \
1077 /*** IShellFolder2 methods ***/ \
1078 STDMETHOD_(HRESULT,GetDefaultSearchGUID)(THIS_ GUID* lpguid) PURE; \
1079 STDMETHOD_(HRESULT,EnumSearches)(THIS_ IEnumExtraSearch** ppenum) PURE; \
1080 STDMETHOD_(HRESULT,GetDefaultColumn)(THIS_ DWORD dwReserved, ULONG* pSort, ULONG* pDisplay) PURE; \
1081 STDMETHOD_(HRESULT,GetDefaultColumnState)(THIS_ UINT iColumn, SHCOLSTATEF* pcsFlags) PURE; \
1082 STDMETHOD_(HRESULT,GetDetailsEx)(THIS_ LPCITEMIDLIST pidl, const SHCOLUMNID* pscid, VARIANT* pv) PURE; \
1083 STDMETHOD_(HRESULT,GetDetailsOf)(THIS_ LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS* psd) PURE; \
1084 STDMETHOD_(HRESULT,MapColumnToSCID)(THIS_ UINT iColumn, SHCOLUMNID* pscid) PURE;
1086 HRESULT CALLBACK IShellFolder2_GetDefaultSearchGUID_Proxy(
1087 IShellFolder2* This,
1089 void __RPC_STUB IShellFolder2_GetDefaultSearchGUID_Stub(
1090 struct IRpcStubBuffer* This,
1091 struct IRpcChannelBuffer* pRpcChannelBuffer,
1092 PRPC_MESSAGE pRpcMessage,
1093 DWORD* pdwStubPhase);
1094 HRESULT CALLBACK IShellFolder2_EnumSearches_Proxy(
1095 IShellFolder2* This,
1096 IEnumExtraSearch** ppenum);
1097 void __RPC_STUB IShellFolder2_EnumSearches_Stub(
1098 struct IRpcStubBuffer* This,
1099 struct IRpcChannelBuffer* pRpcChannelBuffer,
1100 PRPC_MESSAGE pRpcMessage,
1101 DWORD* pdwStubPhase);
1102 HRESULT CALLBACK IShellFolder2_GetDefaultColumn_Proxy(
1103 IShellFolder2* This,
1107 void __RPC_STUB IShellFolder2_GetDefaultColumn_Stub(
1108 struct IRpcStubBuffer* This,
1109 struct IRpcChannelBuffer* pRpcChannelBuffer,
1110 PRPC_MESSAGE pRpcMessage,
1111 DWORD* pdwStubPhase);
1112 HRESULT CALLBACK IShellFolder2_GetDefaultColumnState_Proxy(
1113 IShellFolder2* This,
1115 SHCOLSTATEF* pcsFlags);
1116 void __RPC_STUB IShellFolder2_GetDefaultColumnState_Stub(
1117 struct IRpcStubBuffer* This,
1118 struct IRpcChannelBuffer* pRpcChannelBuffer,
1119 PRPC_MESSAGE pRpcMessage,
1120 DWORD* pdwStubPhase);
1121 HRESULT CALLBACK IShellFolder2_GetDetailsEx_Proxy(
1122 IShellFolder2* This,
1124 const SHCOLUMNID* pscid,
1126 void __RPC_STUB IShellFolder2_GetDetailsEx_Stub(
1127 struct IRpcStubBuffer* This,
1128 struct IRpcChannelBuffer* pRpcChannelBuffer,
1129 PRPC_MESSAGE pRpcMessage,
1130 DWORD* pdwStubPhase);
1131 HRESULT CALLBACK IShellFolder2_GetDetailsOf_Proxy(
1132 IShellFolder2* This,
1136 void __RPC_STUB IShellFolder2_GetDetailsOf_Stub(
1137 struct IRpcStubBuffer* This,
1138 struct IRpcChannelBuffer* pRpcChannelBuffer,
1139 PRPC_MESSAGE pRpcMessage,
1140 DWORD* pdwStubPhase);
1141 HRESULT CALLBACK IShellFolder2_MapColumnToSCID_Proxy(
1142 IShellFolder2* This,
1145 void __RPC_STUB IShellFolder2_MapColumnToSCID_Stub(
1146 struct IRpcStubBuffer* This,
1147 struct IRpcChannelBuffer* pRpcChannelBuffer,
1148 PRPC_MESSAGE pRpcMessage,
1149 DWORD* pdwStubPhase);
1151 #endif /* __IShellFolder2_INTERFACE_DEFINED__ */
1153 typedef char *LPVIEWSETTINGS;
1156 FWF_AUTOARRANGE = 0x1,
1157 FWF_ABBREVIATEDNAMES = 0x2,
1158 FWF_SNAPTOGRID = 0x4,
1159 FWF_OWNERDATA = 0x8,
1160 FWF_BESTFITWINDOW = 0x10,
1162 FWF_SINGLESEL = 0x40,
1163 FWF_NOSUBFOLDERS = 0x80,
1164 FWF_TRANSPARENT = 0x100,
1165 FWF_NOCLIENTEDGE = 0x200,
1166 FWF_NOSCROLL = 0x400,
1167 FWF_ALIGNLEFT = 0x800,
1168 FWF_NOICONS = 0x1000,
1169 FWF_SHOWSELALWAYS = 0x2000,
1170 FWF_NOVISIBLE = 0x4000,
1171 FWF_SINGLECLICKACTIVATE = 0x8000,
1172 FWF_NOWEBVIEW = 0x10000,
1173 FWF_HIDEFILENAMES = 0x20000,
1174 FWF_CHECKSELECT = 0x40000
1179 FVM_FIRST = FVM_ICON,
1186 FVM_LAST = FVM_THUMBSTRIP
1192 } FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
1194 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
1196 #ifndef __IShellBrowser_FWD_DEFINED__
1197 #define __IShellBrowser_FWD_DEFINED__
1198 typedef struct IShellBrowser IShellBrowser;
1201 #ifndef __IShellView_FWD_DEFINED__
1202 #define __IShellView_FWD_DEFINED__
1203 typedef struct IShellView IShellView;
1206 typedef IShellView *LPSHELLVIEW;
1208 #define SVSI_DESELECT 0x00000000
1209 #define SVSI_SELECT 0x00000001
1210 #define SVSI_EDIT 0x00000003
1211 #define SVSI_DESELECTOTHERS 0x00000004
1212 #define SVSI_ENSUREVISIBLE 0x00000008
1213 #define SVSI_FOCUSED 0x00000010
1214 #define SVSI_TRANSLATEPT 0x00000020
1215 #define SVSI_SELECTIONMARK 0x00000040
1216 #define SVSI_POSITIONITEM 0x00000080
1217 #define SVSI_CHECK 0x00000100
1218 #define SVSI_NOSTATECHANGE 0x80000000
1222 SVGIO_BACKGROUND = 0x0,
1223 SVGIO_SELECTION = 0x1,
1224 SVGIO_ALLVIEW = 0x2,
1225 SVGIO_CHECKED = 0x3,
1226 SVGIO_TYPE_MASK = 0xf,
1227 SVGIO_FLAG_VIEWORDER = 0x80000000
1231 SVUIA_DEACTIVATE = 0,
1232 SVUIA_ACTIVATE_NOFOCUS = 1,
1233 SVUIA_ACTIVATE_FOCUS = 2,
1234 SVUIA_INPLACEACTIVATE = 3
1238 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
1242 typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
1244 /*****************************************************************************
1245 * IShellView interface
1247 #ifndef __IShellView_INTERFACE_DEFINED__
1248 #define __IShellView_INTERFACE_DEFINED__
1250 DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1251 #if defined(__cplusplus) && !defined(CINTERFACE)
1252 struct IShellView : public IOleWindow
1254 virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
1257 virtual HRESULT STDMETHODCALLTYPE EnableModeless(
1260 virtual HRESULT STDMETHODCALLTYPE UIActivate(
1263 virtual HRESULT STDMETHODCALLTYPE Refresh(
1266 virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
1267 IShellView* psvPrevious,
1268 LPCFOLDERSETTINGS lpfs,
1273 virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
1276 virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
1277 LPFOLDERSETTINGS lpfs) = 0;
1279 virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
1281 LPFNSVADDPROPSHEETPAGE pfn,
1284 virtual HRESULT STDMETHODCALLTYPE SaveViewState(
1287 virtual HRESULT STDMETHODCALLTYPE SelectItem(
1288 LPCITEMIDLIST pidlItem,
1291 virtual HRESULT STDMETHODCALLTYPE GetItemObject(
1298 typedef struct IShellViewVtbl IShellViewVtbl;
1300 const IShellViewVtbl* lpVtbl;
1302 struct IShellViewVtbl {
1303 ICOM_MSVTABLE_COMPAT_FIELDS
1305 /*** IUnknown methods ***/
1306 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1311 ULONG (STDMETHODCALLTYPE *AddRef)(
1314 ULONG (STDMETHODCALLTYPE *Release)(
1317 /*** IOleWindow methods ***/
1318 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1322 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1326 /*** IShellView methods ***/
1327 HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
1331 HRESULT (STDMETHODCALLTYPE *EnableModeless)(
1335 HRESULT (STDMETHODCALLTYPE *UIActivate)(
1339 HRESULT (STDMETHODCALLTYPE *Refresh)(
1342 HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
1344 IShellView* psvPrevious,
1345 LPCFOLDERSETTINGS lpfs,
1350 HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
1353 HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
1355 LPFOLDERSETTINGS lpfs);
1357 HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
1360 LPFNSVADDPROPSHEETPAGE pfn,
1363 HRESULT (STDMETHODCALLTYPE *SaveViewState)(
1366 HRESULT (STDMETHODCALLTYPE *SelectItem)(
1368 LPCITEMIDLIST pidlItem,
1371 HRESULT (STDMETHODCALLTYPE *GetItemObject)(
1379 /*** IUnknown methods ***/
1380 #define IShellView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1381 #define IShellView_AddRef(p) (p)->lpVtbl->AddRef(p)
1382 #define IShellView_Release(p) (p)->lpVtbl->Release(p)
1383 /*** IOleWindow methods ***/
1384 #define IShellView_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1385 #define IShellView_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1386 /*** IShellView methods ***/
1387 #define IShellView_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
1388 #define IShellView_EnableModeless(p,a) (p)->lpVtbl->EnableModeless(p,a)
1389 #define IShellView_UIActivate(p,a) (p)->lpVtbl->UIActivate(p,a)
1390 #define IShellView_Refresh(p) (p)->lpVtbl->Refresh(p)
1391 #define IShellView_CreateViewWindow(p,a,b,c,d,e) (p)->lpVtbl->CreateViewWindow(p,a,b,c,d,e)
1392 #define IShellView_DestroyViewWindow(p) (p)->lpVtbl->DestroyViewWindow(p)
1393 #define IShellView_GetCurrentInfo(p,a) (p)->lpVtbl->GetCurrentInfo(p,a)
1394 #define IShellView_AddPropertySheetPages(p,a,b,c) (p)->lpVtbl->AddPropertySheetPages(p,a,b,c)
1395 #define IShellView_SaveViewState(p) (p)->lpVtbl->SaveViewState(p)
1396 #define IShellView_SelectItem(p,a,b) (p)->lpVtbl->SelectItem(p,a,b)
1397 #define IShellView_GetItemObject(p,a,b,c) (p)->lpVtbl->GetItemObject(p,a,b,c)
1401 #define IShellView_METHODS \
1402 ICOM_MSVTABLE_COMPAT_FIELDS \
1403 /*** IUnknown methods ***/ \
1404 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1405 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1406 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1407 /*** IOleWindow methods ***/ \
1408 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1409 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1410 /*** IShellView methods ***/ \
1411 STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ MSG* pmsg) PURE; \
1412 STDMETHOD_(HRESULT,EnableModeless)(THIS_ BOOL fEnable) PURE; \
1413 STDMETHOD_(HRESULT,UIActivate)(THIS_ UINT uState) PURE; \
1414 STDMETHOD_(HRESULT,Refresh)(THIS) PURE; \
1415 STDMETHOD_(HRESULT,CreateViewWindow)(THIS_ IShellView* psvPrevious, LPCFOLDERSETTINGS lpfs, IShellBrowser* psb, RECT* prcView, HWND* phWnd) PURE; \
1416 STDMETHOD_(HRESULT,DestroyViewWindow)(THIS) PURE; \
1417 STDMETHOD_(HRESULT,GetCurrentInfo)(THIS_ LPFOLDERSETTINGS lpfs) PURE; \
1418 STDMETHOD_(HRESULT,AddPropertySheetPages)(THIS_ DWORD dwReserved, LPFNSVADDPROPSHEETPAGE pfn, LPARAM lparam) PURE; \
1419 STDMETHOD_(HRESULT,SaveViewState)(THIS) PURE; \
1420 STDMETHOD_(HRESULT,SelectItem)(THIS_ LPCITEMIDLIST pidlItem, SVSIF uFlags) PURE; \
1421 STDMETHOD_(HRESULT,GetItemObject)(THIS_ UINT uItem, REFIID riid, void** ppv) PURE;
1423 HRESULT CALLBACK IShellView_TranslateAccelerator_Proxy(
1426 void __RPC_STUB IShellView_TranslateAccelerator_Stub(
1427 struct IRpcStubBuffer* This,
1428 struct IRpcChannelBuffer* pRpcChannelBuffer,
1429 PRPC_MESSAGE pRpcMessage,
1430 DWORD* pdwStubPhase);
1431 HRESULT CALLBACK IShellView_EnableModeless_Proxy(
1434 void __RPC_STUB IShellView_EnableModeless_Stub(
1435 struct IRpcStubBuffer* This,
1436 struct IRpcChannelBuffer* pRpcChannelBuffer,
1437 PRPC_MESSAGE pRpcMessage,
1438 DWORD* pdwStubPhase);
1439 HRESULT CALLBACK IShellView_UIActivate_Proxy(
1442 void __RPC_STUB IShellView_UIActivate_Stub(
1443 struct IRpcStubBuffer* This,
1444 struct IRpcChannelBuffer* pRpcChannelBuffer,
1445 PRPC_MESSAGE pRpcMessage,
1446 DWORD* pdwStubPhase);
1447 HRESULT CALLBACK IShellView_Refresh_Proxy(
1449 void __RPC_STUB IShellView_Refresh_Stub(
1450 struct IRpcStubBuffer* This,
1451 struct IRpcChannelBuffer* pRpcChannelBuffer,
1452 PRPC_MESSAGE pRpcMessage,
1453 DWORD* pdwStubPhase);
1454 HRESULT CALLBACK IShellView_CreateViewWindow_Proxy(
1456 IShellView* psvPrevious,
1457 LPCFOLDERSETTINGS lpfs,
1461 void __RPC_STUB IShellView_CreateViewWindow_Stub(
1462 struct IRpcStubBuffer* This,
1463 struct IRpcChannelBuffer* pRpcChannelBuffer,
1464 PRPC_MESSAGE pRpcMessage,
1465 DWORD* pdwStubPhase);
1466 HRESULT CALLBACK IShellView_DestroyViewWindow_Proxy(
1468 void __RPC_STUB IShellView_DestroyViewWindow_Stub(
1469 struct IRpcStubBuffer* This,
1470 struct IRpcChannelBuffer* pRpcChannelBuffer,
1471 PRPC_MESSAGE pRpcMessage,
1472 DWORD* pdwStubPhase);
1473 HRESULT CALLBACK IShellView_GetCurrentInfo_Proxy(
1475 LPFOLDERSETTINGS lpfs);
1476 void __RPC_STUB IShellView_GetCurrentInfo_Stub(
1477 struct IRpcStubBuffer* This,
1478 struct IRpcChannelBuffer* pRpcChannelBuffer,
1479 PRPC_MESSAGE pRpcMessage,
1480 DWORD* pdwStubPhase);
1481 HRESULT CALLBACK IShellView_SaveViewState_Proxy(
1483 void __RPC_STUB IShellView_SaveViewState_Stub(
1484 struct IRpcStubBuffer* This,
1485 struct IRpcChannelBuffer* pRpcChannelBuffer,
1486 PRPC_MESSAGE pRpcMessage,
1487 DWORD* pdwStubPhase);
1488 HRESULT CALLBACK IShellView_SelectItem_Proxy(
1490 LPCITEMIDLIST pidlItem,
1492 void __RPC_STUB IShellView_SelectItem_Stub(
1493 struct IRpcStubBuffer* This,
1494 struct IRpcChannelBuffer* pRpcChannelBuffer,
1495 PRPC_MESSAGE pRpcMessage,
1496 DWORD* pdwStubPhase);
1497 HRESULT CALLBACK IShellView_GetItemObject_Proxy(
1502 void __RPC_STUB IShellView_GetItemObject_Stub(
1503 struct IRpcStubBuffer* This,
1504 struct IRpcChannelBuffer* pRpcChannelBuffer,
1505 PRPC_MESSAGE pRpcMessage,
1506 DWORD* pdwStubPhase);
1508 #endif /* __IShellView_INTERFACE_DEFINED__ */
1510 typedef IShellBrowser *LPSHELLBROWSER;
1512 #define SBSP_DEFBROWSER 0x00000000
1513 #define SBSP_SAMEBROWSER 0x00000001
1514 #define SBSP_NEWBROWSER 0x00000002
1515 #define SBSP_DEFMODE 0x00000000
1516 #define SBSP_OPENMODE 0x00000010
1517 #define SBSP_EXPLOREMODE 0x00000020
1518 #define SBSP_HELPMODE 0x00000040
1519 #define SBSP_NOTRANSFERHIST 0x00000080
1520 #define SBSP_ABSOLUTE 0x00000000
1521 #define SBSP_RELATIVE 0x00001000
1522 #define SBSP_PARENT 0x00002000
1523 #define SBSP_NAVIGATEBACK 0x00004000
1524 #define SBSP_NAVIGATEFORWARD 0x00008000
1525 #define SBSP_ALLOW_AUTONAVIGATE 0x00010000
1526 #define SBSP_NOAUTOSELECT 0x04000000
1527 #define SBSP_WRITENOHISTORY 0x08000000
1528 #define SBSP_REDIRECT 0x40000000
1529 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
1530 #define FCW_STATUS 0x0001
1531 #define FCW_TOOLBAR 0x0002
1532 #define FCW_TREE 0x0003
1533 #define FCW_INTERNETBAR 0x0006
1534 #define FCW_PROGRESS 0x0008
1535 #define FCT_MERGE 0x0001
1536 #define FCT_CONFIGABLE 0x0002
1537 #define FCT_ADDTOEND 0x0004
1539 typedef LPARAM LPTBBUTTONSB;
1542 #include <commctrl.h>
1543 typedef LPTBBUTTON LPTBBUTTONSB;
1545 /*****************************************************************************
1546 * IShellBrowser interface
1548 #ifndef __IShellBrowser_INTERFACE_DEFINED__
1549 #define __IShellBrowser_INTERFACE_DEFINED__
1551 DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1552 #if defined(__cplusplus) && !defined(CINTERFACE)
1553 struct IShellBrowser : public IOleWindow
1555 virtual HRESULT STDMETHODCALLTYPE InsertMenusSB(
1557 LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
1559 virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
1561 HOLEMENU holemenuReserved,
1562 HWND hwndActiveObject) = 0;
1564 virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB(
1565 HMENU hmenuShared) = 0;
1567 virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB(
1568 LPCOLESTR pszStatusText) = 0;
1570 virtual HRESULT STDMETHODCALLTYPE EnableModelessSB(
1573 virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
1577 virtual HRESULT STDMETHODCALLTYPE BrowseObject(
1581 virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
1583 IStream** ppStrm) = 0;
1585 virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
1589 virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
1596 virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView(
1597 IShellView** ppshv) = 0;
1599 virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive(
1600 IShellView* pshv) = 0;
1602 virtual HRESULT STDMETHODCALLTYPE SetToolbarItems(
1603 LPTBBUTTONSB lpButtons,
1609 typedef struct IShellBrowserVtbl IShellBrowserVtbl;
1610 struct IShellBrowser {
1611 const IShellBrowserVtbl* lpVtbl;
1613 struct IShellBrowserVtbl {
1614 ICOM_MSVTABLE_COMPAT_FIELDS
1616 /*** IUnknown methods ***/
1617 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1618 IShellBrowser* This,
1622 ULONG (STDMETHODCALLTYPE *AddRef)(
1623 IShellBrowser* This);
1625 ULONG (STDMETHODCALLTYPE *Release)(
1626 IShellBrowser* This);
1628 /*** IOleWindow methods ***/
1629 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1630 IShellBrowser* This,
1633 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1634 IShellBrowser* This,
1637 /*** IShellBrowser methods ***/
1638 HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
1639 IShellBrowser* This,
1641 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1643 HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
1644 IShellBrowser* This,
1646 HOLEMENU holemenuReserved,
1647 HWND hwndActiveObject);
1649 HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
1650 IShellBrowser* This,
1653 HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
1654 IShellBrowser* This,
1655 LPCOLESTR pszStatusText);
1657 HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
1658 IShellBrowser* This,
1661 HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
1662 IShellBrowser* This,
1666 HRESULT (STDMETHODCALLTYPE *BrowseObject)(
1667 IShellBrowser* This,
1671 HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
1672 IShellBrowser* This,
1676 HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
1677 IShellBrowser* This,
1681 HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
1682 IShellBrowser* This,
1689 HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
1690 IShellBrowser* This,
1691 IShellView** ppshv);
1693 HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
1694 IShellBrowser* This,
1697 HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
1698 IShellBrowser* This,
1699 LPTBBUTTONSB lpButtons,
1705 /*** IUnknown methods ***/
1706 #define IShellBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1707 #define IShellBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
1708 #define IShellBrowser_Release(p) (p)->lpVtbl->Release(p)
1709 /*** IOleWindow methods ***/
1710 #define IShellBrowser_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1711 #define IShellBrowser_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1712 /*** IShellBrowser methods ***/
1713 #define IShellBrowser_InsertMenusSB(p,a,b) (p)->lpVtbl->InsertMenusSB(p,a,b)
1714 #define IShellBrowser_SetMenuSB(p,a,b,c) (p)->lpVtbl->SetMenuSB(p,a,b,c)
1715 #define IShellBrowser_RemoveMenusSB(p,a) (p)->lpVtbl->RemoveMenusSB(p,a)
1716 #define IShellBrowser_SetStatusTextSB(p,a) (p)->lpVtbl->SetStatusTextSB(p,a)
1717 #define IShellBrowser_EnableModelessSB(p,a) (p)->lpVtbl->EnableModelessSB(p,a)
1718 #define IShellBrowser_TranslateAcceleratorSB(p,a,b) (p)->lpVtbl->TranslateAcceleratorSB(p,a,b)
1719 #define IShellBrowser_BrowseObject(p,a,b) (p)->lpVtbl->BrowseObject(p,a,b)
1720 #define IShellBrowser_GetViewStateStream(p,a,b) (p)->lpVtbl->GetViewStateStream(p,a,b)
1721 #define IShellBrowser_GetControlWindow(p,a,b) (p)->lpVtbl->GetControlWindow(p,a,b)
1722 #define IShellBrowser_SendControlMsg(p,a,b,c,d,e) (p)->lpVtbl->SendControlMsg(p,a,b,c,d,e)
1723 #define IShellBrowser_QueryActiveShellView(p,a) (p)->lpVtbl->QueryActiveShellView(p,a)
1724 #define IShellBrowser_OnViewWindowActive(p,a) (p)->lpVtbl->OnViewWindowActive(p,a)
1725 #define IShellBrowser_SetToolbarItems(p,a,b,c) (p)->lpVtbl->SetToolbarItems(p,a,b,c)
1729 #define IShellBrowser_METHODS \
1730 ICOM_MSVTABLE_COMPAT_FIELDS \
1731 /*** IUnknown methods ***/ \
1732 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1733 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1734 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1735 /*** IOleWindow methods ***/ \
1736 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1737 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1738 /*** IShellBrowser methods ***/ \
1739 STDMETHOD_(HRESULT,InsertMenusSB)(THIS_ HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) PURE; \
1740 STDMETHOD_(HRESULT,SetMenuSB)(THIS_ HMENU hmenuShared, HOLEMENU holemenuReserved, HWND hwndActiveObject) PURE; \
1741 STDMETHOD_(HRESULT,RemoveMenusSB)(THIS_ HMENU hmenuShared) PURE; \
1742 STDMETHOD_(HRESULT,SetStatusTextSB)(THIS_ LPCOLESTR pszStatusText) PURE; \
1743 STDMETHOD_(HRESULT,EnableModelessSB)(THIS_ BOOL fEnable) PURE; \
1744 STDMETHOD_(HRESULT,TranslateAcceleratorSB)(THIS_ MSG* pmsg, WORD wID) PURE; \
1745 STDMETHOD_(HRESULT,BrowseObject)(THIS_ LPCITEMIDLIST pidl, UINT wFlags) PURE; \
1746 STDMETHOD_(HRESULT,GetViewStateStream)(THIS_ DWORD grfMode, IStream** ppStrm) PURE; \
1747 STDMETHOD_(HRESULT,GetControlWindow)(THIS_ UINT id, HWND* phwnd) PURE; \
1748 STDMETHOD_(HRESULT,SendControlMsg)(THIS_ UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* pret) PURE; \
1749 STDMETHOD_(HRESULT,QueryActiveShellView)(THIS_ IShellView** ppshv) PURE; \
1750 STDMETHOD_(HRESULT,OnViewWindowActive)(THIS_ IShellView* pshv) PURE; \
1751 STDMETHOD_(HRESULT,SetToolbarItems)(THIS_ LPTBBUTTONSB lpButtons, UINT nButtons, UINT uFlags) PURE;
1753 HRESULT CALLBACK IShellBrowser_InsertMenusSB_Proxy(
1754 IShellBrowser* This,
1756 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1757 void __RPC_STUB IShellBrowser_InsertMenusSB_Stub(
1758 struct IRpcStubBuffer* This,
1759 struct IRpcChannelBuffer* pRpcChannelBuffer,
1760 PRPC_MESSAGE pRpcMessage,
1761 DWORD* pdwStubPhase);
1762 HRESULT CALLBACK IShellBrowser_SetMenuSB_Proxy(
1763 IShellBrowser* This,
1765 HOLEMENU holemenuReserved,
1766 HWND hwndActiveObject);
1767 void __RPC_STUB IShellBrowser_SetMenuSB_Stub(
1768 struct IRpcStubBuffer* This,
1769 struct IRpcChannelBuffer* pRpcChannelBuffer,
1770 PRPC_MESSAGE pRpcMessage,
1771 DWORD* pdwStubPhase);
1772 HRESULT CALLBACK IShellBrowser_RemoveMenusSB_Proxy(
1773 IShellBrowser* This,
1775 void __RPC_STUB IShellBrowser_RemoveMenusSB_Stub(
1776 struct IRpcStubBuffer* This,
1777 struct IRpcChannelBuffer* pRpcChannelBuffer,
1778 PRPC_MESSAGE pRpcMessage,
1779 DWORD* pdwStubPhase);
1780 HRESULT CALLBACK IShellBrowser_SetStatusTextSB_Proxy(
1781 IShellBrowser* This,
1782 LPCOLESTR pszStatusText);
1783 void __RPC_STUB IShellBrowser_SetStatusTextSB_Stub(
1784 struct IRpcStubBuffer* This,
1785 struct IRpcChannelBuffer* pRpcChannelBuffer,
1786 PRPC_MESSAGE pRpcMessage,
1787 DWORD* pdwStubPhase);
1788 HRESULT CALLBACK IShellBrowser_EnableModelessSB_Proxy(
1789 IShellBrowser* This,
1791 void __RPC_STUB IShellBrowser_EnableModelessSB_Stub(
1792 struct IRpcStubBuffer* This,
1793 struct IRpcChannelBuffer* pRpcChannelBuffer,
1794 PRPC_MESSAGE pRpcMessage,
1795 DWORD* pdwStubPhase);
1796 HRESULT CALLBACK IShellBrowser_TranslateAcceleratorSB_Proxy(
1797 IShellBrowser* This,
1800 void __RPC_STUB IShellBrowser_TranslateAcceleratorSB_Stub(
1801 struct IRpcStubBuffer* This,
1802 struct IRpcChannelBuffer* pRpcChannelBuffer,
1803 PRPC_MESSAGE pRpcMessage,
1804 DWORD* pdwStubPhase);
1805 HRESULT CALLBACK IShellBrowser_BrowseObject_Proxy(
1806 IShellBrowser* This,
1809 void __RPC_STUB IShellBrowser_BrowseObject_Stub(
1810 struct IRpcStubBuffer* This,
1811 struct IRpcChannelBuffer* pRpcChannelBuffer,
1812 PRPC_MESSAGE pRpcMessage,
1813 DWORD* pdwStubPhase);
1814 HRESULT CALLBACK IShellBrowser_GetViewStateStream_Proxy(
1815 IShellBrowser* This,
1818 void __RPC_STUB IShellBrowser_GetViewStateStream_Stub(
1819 struct IRpcStubBuffer* This,
1820 struct IRpcChannelBuffer* pRpcChannelBuffer,
1821 PRPC_MESSAGE pRpcMessage,
1822 DWORD* pdwStubPhase);
1823 HRESULT CALLBACK IShellBrowser_GetControlWindow_Proxy(
1824 IShellBrowser* This,
1827 void __RPC_STUB IShellBrowser_GetControlWindow_Stub(
1828 struct IRpcStubBuffer* This,
1829 struct IRpcChannelBuffer* pRpcChannelBuffer,
1830 PRPC_MESSAGE pRpcMessage,
1831 DWORD* pdwStubPhase);
1832 HRESULT CALLBACK IShellBrowser_QueryActiveShellView_Proxy(
1833 IShellBrowser* This,
1834 IShellView** ppshv);
1835 void __RPC_STUB IShellBrowser_QueryActiveShellView_Stub(
1836 struct IRpcStubBuffer* This,
1837 struct IRpcChannelBuffer* pRpcChannelBuffer,
1838 PRPC_MESSAGE pRpcMessage,
1839 DWORD* pdwStubPhase);
1840 HRESULT CALLBACK IShellBrowser_OnViewWindowActive_Proxy(
1841 IShellBrowser* This,
1843 void __RPC_STUB IShellBrowser_OnViewWindowActive_Stub(
1844 struct IRpcStubBuffer* This,
1845 struct IRpcChannelBuffer* pRpcChannelBuffer,
1846 PRPC_MESSAGE pRpcMessage,
1847 DWORD* pdwStubPhase);
1849 #endif /* __IShellBrowser_INTERFACE_DEFINED__ */
1851 #ifndef __IShellLinkA_FWD_DEFINED__
1852 #define __IShellLinkA_FWD_DEFINED__
1853 typedef struct IShellLinkA IShellLinkA;
1858 SLR_ANY_MATCH = 0x2,
1861 SLR_NOSEARCH = 0x10,
1863 SLR_NOLINKINFO = 0x40,
1864 SLR_INVOKE_MSI = 0x80,
1865 SLR_NO_UI_WITH_MSG_PUMP = 0x101
1869 SLGP_SHORTPATH = 0x1,
1870 SLGP_UNCPRIORITY = 0x2,
1874 /*****************************************************************************
1875 * IShellLinkA interface
1877 #ifndef __IShellLinkA_INTERFACE_DEFINED__
1878 #define __IShellLinkA_INTERFACE_DEFINED__
1880 DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1881 #if defined(__cplusplus) && !defined(CINTERFACE)
1882 struct IShellLinkA : public IUnknown
1884 virtual HRESULT STDMETHODCALLTYPE GetPath(
1887 WIN32_FIND_DATAA* pfd,
1890 virtual HRESULT STDMETHODCALLTYPE GetIDList(
1891 LPITEMIDLIST* ppidl) = 0;
1893 virtual HRESULT STDMETHODCALLTYPE SetIDList(
1894 LPCITEMIDLIST pidl) = 0;
1896 virtual HRESULT STDMETHODCALLTYPE GetDescription(
1900 virtual HRESULT STDMETHODCALLTYPE SetDescription(
1901 LPCSTR pszName) = 0;
1903 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
1907 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
1910 virtual HRESULT STDMETHODCALLTYPE GetArguments(
1914 virtual HRESULT STDMETHODCALLTYPE SetArguments(
1915 LPCSTR pszArgs) = 0;
1917 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
1918 WORD* pwHotkey) = 0;
1920 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
1923 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
1924 int* piShowCmd) = 0;
1926 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
1929 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
1934 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
1938 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
1940 DWORD dwReserved) = 0;
1942 virtual HRESULT STDMETHODCALLTYPE Resolve(
1946 virtual HRESULT STDMETHODCALLTYPE SetPath(
1947 LPCSTR pszFile) = 0;
1951 typedef struct IShellLinkAVtbl IShellLinkAVtbl;
1952 struct IShellLinkA {
1953 const IShellLinkAVtbl* lpVtbl;
1955 struct IShellLinkAVtbl {
1956 ICOM_MSVTABLE_COMPAT_FIELDS
1958 /*** IUnknown methods ***/
1959 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1964 ULONG (STDMETHODCALLTYPE *AddRef)(
1967 ULONG (STDMETHODCALLTYPE *Release)(
1970 /*** IShellLinkA methods ***/
1971 HRESULT (STDMETHODCALLTYPE *GetPath)(
1975 WIN32_FIND_DATAA* pfd,
1978 HRESULT (STDMETHODCALLTYPE *GetIDList)(
1980 LPITEMIDLIST* ppidl);
1982 HRESULT (STDMETHODCALLTYPE *SetIDList)(
1984 LPCITEMIDLIST pidl);
1986 HRESULT (STDMETHODCALLTYPE *GetDescription)(
1991 HRESULT (STDMETHODCALLTYPE *SetDescription)(
1995 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2000 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2004 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2009 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2013 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2017 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2021 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2025 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2029 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2035 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2040 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2045 HRESULT (STDMETHODCALLTYPE *Resolve)(
2050 HRESULT (STDMETHODCALLTYPE *SetPath)(
2056 /*** IUnknown methods ***/
2057 #define IShellLinkA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2058 #define IShellLinkA_AddRef(p) (p)->lpVtbl->AddRef(p)
2059 #define IShellLinkA_Release(p) (p)->lpVtbl->Release(p)
2060 /*** IShellLinkA methods ***/
2061 #define IShellLinkA_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2062 #define IShellLinkA_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2063 #define IShellLinkA_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2064 #define IShellLinkA_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2065 #define IShellLinkA_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2066 #define IShellLinkA_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2067 #define IShellLinkA_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2068 #define IShellLinkA_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2069 #define IShellLinkA_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2070 #define IShellLinkA_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2071 #define IShellLinkA_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2072 #define IShellLinkA_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2073 #define IShellLinkA_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2074 #define IShellLinkA_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2075 #define IShellLinkA_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2076 #define IShellLinkA_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2077 #define IShellLinkA_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2078 #define IShellLinkA_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2082 #define IShellLinkA_METHODS \
2083 ICOM_MSVTABLE_COMPAT_FIELDS \
2084 /*** IUnknown methods ***/ \
2085 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2086 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2087 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2088 /*** IShellLinkA methods ***/ \
2089 STDMETHOD_(HRESULT,GetPath)(THIS_ LPSTR pszFile, int cch, WIN32_FIND_DATAA* pfd, DWORD fFlags) PURE; \
2090 STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2091 STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \
2092 STDMETHOD_(HRESULT,GetDescription)(THIS_ LPSTR pszName, int cch) PURE; \
2093 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCSTR pszName) PURE; \
2094 STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPSTR pszDir, int cch) PURE; \
2095 STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCSTR pszDir) PURE; \
2096 STDMETHOD_(HRESULT,GetArguments)(THIS_ LPSTR pszArgs, int cch) PURE; \
2097 STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCSTR pszArgs) PURE; \
2098 STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \
2099 STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \
2100 STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \
2101 STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \
2102 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPSTR pszIconPath, int cch, int* piIcon) PURE; \
2103 STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCSTR pszIconPath, int iIcon) PURE; \
2104 STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCSTR pszPathRel, DWORD dwReserved) PURE; \
2105 STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \
2106 STDMETHOD_(HRESULT,SetPath)(THIS_ LPCSTR pszFile) PURE;
2108 HRESULT CALLBACK IShellLinkA_GetPath_Proxy(
2112 WIN32_FIND_DATAA* pfd,
2114 void __RPC_STUB IShellLinkA_GetPath_Stub(
2115 struct IRpcStubBuffer* This,
2116 struct IRpcChannelBuffer* pRpcChannelBuffer,
2117 PRPC_MESSAGE pRpcMessage,
2118 DWORD* pdwStubPhase);
2119 HRESULT CALLBACK IShellLinkA_GetIDList_Proxy(
2121 LPITEMIDLIST* ppidl);
2122 void __RPC_STUB IShellLinkA_GetIDList_Stub(
2123 struct IRpcStubBuffer* This,
2124 struct IRpcChannelBuffer* pRpcChannelBuffer,
2125 PRPC_MESSAGE pRpcMessage,
2126 DWORD* pdwStubPhase);
2127 HRESULT CALLBACK IShellLinkA_SetIDList_Proxy(
2129 LPCITEMIDLIST pidl);
2130 void __RPC_STUB IShellLinkA_SetIDList_Stub(
2131 struct IRpcStubBuffer* This,
2132 struct IRpcChannelBuffer* pRpcChannelBuffer,
2133 PRPC_MESSAGE pRpcMessage,
2134 DWORD* pdwStubPhase);
2135 HRESULT CALLBACK IShellLinkA_GetDescription_Proxy(
2139 void __RPC_STUB IShellLinkA_GetDescription_Stub(
2140 struct IRpcStubBuffer* This,
2141 struct IRpcChannelBuffer* pRpcChannelBuffer,
2142 PRPC_MESSAGE pRpcMessage,
2143 DWORD* pdwStubPhase);
2144 HRESULT CALLBACK IShellLinkA_SetDescription_Proxy(
2147 void __RPC_STUB IShellLinkA_SetDescription_Stub(
2148 struct IRpcStubBuffer* This,
2149 struct IRpcChannelBuffer* pRpcChannelBuffer,
2150 PRPC_MESSAGE pRpcMessage,
2151 DWORD* pdwStubPhase);
2152 HRESULT CALLBACK IShellLinkA_GetWorkingDirectory_Proxy(
2156 void __RPC_STUB IShellLinkA_GetWorkingDirectory_Stub(
2157 struct IRpcStubBuffer* This,
2158 struct IRpcChannelBuffer* pRpcChannelBuffer,
2159 PRPC_MESSAGE pRpcMessage,
2160 DWORD* pdwStubPhase);
2161 HRESULT CALLBACK IShellLinkA_SetWorkingDirectory_Proxy(
2164 void __RPC_STUB IShellLinkA_SetWorkingDirectory_Stub(
2165 struct IRpcStubBuffer* This,
2166 struct IRpcChannelBuffer* pRpcChannelBuffer,
2167 PRPC_MESSAGE pRpcMessage,
2168 DWORD* pdwStubPhase);
2169 HRESULT CALLBACK IShellLinkA_GetArguments_Proxy(
2173 void __RPC_STUB IShellLinkA_GetArguments_Stub(
2174 struct IRpcStubBuffer* This,
2175 struct IRpcChannelBuffer* pRpcChannelBuffer,
2176 PRPC_MESSAGE pRpcMessage,
2177 DWORD* pdwStubPhase);
2178 HRESULT CALLBACK IShellLinkA_SetArguments_Proxy(
2181 void __RPC_STUB IShellLinkA_SetArguments_Stub(
2182 struct IRpcStubBuffer* This,
2183 struct IRpcChannelBuffer* pRpcChannelBuffer,
2184 PRPC_MESSAGE pRpcMessage,
2185 DWORD* pdwStubPhase);
2186 HRESULT CALLBACK IShellLinkA_GetHotkey_Proxy(
2189 void __RPC_STUB IShellLinkA_GetHotkey_Stub(
2190 struct IRpcStubBuffer* This,
2191 struct IRpcChannelBuffer* pRpcChannelBuffer,
2192 PRPC_MESSAGE pRpcMessage,
2193 DWORD* pdwStubPhase);
2194 HRESULT CALLBACK IShellLinkA_SetHotkey_Proxy(
2197 void __RPC_STUB IShellLinkA_SetHotkey_Stub(
2198 struct IRpcStubBuffer* This,
2199 struct IRpcChannelBuffer* pRpcChannelBuffer,
2200 PRPC_MESSAGE pRpcMessage,
2201 DWORD* pdwStubPhase);
2202 HRESULT CALLBACK IShellLinkA_GetShowCmd_Proxy(
2205 void __RPC_STUB IShellLinkA_GetShowCmd_Stub(
2206 struct IRpcStubBuffer* This,
2207 struct IRpcChannelBuffer* pRpcChannelBuffer,
2208 PRPC_MESSAGE pRpcMessage,
2209 DWORD* pdwStubPhase);
2210 HRESULT CALLBACK IShellLinkA_SetShowCmd_Proxy(
2213 void __RPC_STUB IShellLinkA_SetShowCmd_Stub(
2214 struct IRpcStubBuffer* This,
2215 struct IRpcChannelBuffer* pRpcChannelBuffer,
2216 PRPC_MESSAGE pRpcMessage,
2217 DWORD* pdwStubPhase);
2218 HRESULT CALLBACK IShellLinkA_GetIconLocation_Proxy(
2223 void __RPC_STUB IShellLinkA_GetIconLocation_Stub(
2224 struct IRpcStubBuffer* This,
2225 struct IRpcChannelBuffer* pRpcChannelBuffer,
2226 PRPC_MESSAGE pRpcMessage,
2227 DWORD* pdwStubPhase);
2228 HRESULT CALLBACK IShellLinkA_SetIconLocation_Proxy(
2232 void __RPC_STUB IShellLinkA_SetIconLocation_Stub(
2233 struct IRpcStubBuffer* This,
2234 struct IRpcChannelBuffer* pRpcChannelBuffer,
2235 PRPC_MESSAGE pRpcMessage,
2236 DWORD* pdwStubPhase);
2237 HRESULT CALLBACK IShellLinkA_SetRelativePath_Proxy(
2241 void __RPC_STUB IShellLinkA_SetRelativePath_Stub(
2242 struct IRpcStubBuffer* This,
2243 struct IRpcChannelBuffer* pRpcChannelBuffer,
2244 PRPC_MESSAGE pRpcMessage,
2245 DWORD* pdwStubPhase);
2246 HRESULT CALLBACK IShellLinkA_Resolve_Proxy(
2250 void __RPC_STUB IShellLinkA_Resolve_Stub(
2251 struct IRpcStubBuffer* This,
2252 struct IRpcChannelBuffer* pRpcChannelBuffer,
2253 PRPC_MESSAGE pRpcMessage,
2254 DWORD* pdwStubPhase);
2255 HRESULT CALLBACK IShellLinkA_SetPath_Proxy(
2258 void __RPC_STUB IShellLinkA_SetPath_Stub(
2259 struct IRpcStubBuffer* This,
2260 struct IRpcChannelBuffer* pRpcChannelBuffer,
2261 PRPC_MESSAGE pRpcMessage,
2262 DWORD* pdwStubPhase);
2264 #endif /* __IShellLinkA_INTERFACE_DEFINED__ */
2266 #ifndef __IShellLinkW_FWD_DEFINED__
2267 #define __IShellLinkW_FWD_DEFINED__
2268 typedef struct IShellLinkW IShellLinkW;
2271 /*****************************************************************************
2272 * IShellLinkW interface
2274 #ifndef __IShellLinkW_INTERFACE_DEFINED__
2275 #define __IShellLinkW_INTERFACE_DEFINED__
2277 DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2278 #if defined(__cplusplus) && !defined(CINTERFACE)
2279 struct IShellLinkW : public IUnknown
2281 virtual HRESULT STDMETHODCALLTYPE GetPath(
2284 WIN32_FIND_DATAW* pfd,
2287 virtual HRESULT STDMETHODCALLTYPE GetIDList(
2288 LPITEMIDLIST* ppidl) = 0;
2290 virtual HRESULT STDMETHODCALLTYPE SetIDList(
2291 LPCITEMIDLIST pidl) = 0;
2293 virtual HRESULT STDMETHODCALLTYPE GetDescription(
2297 virtual HRESULT STDMETHODCALLTYPE SetDescription(
2298 LPCWSTR pszName) = 0;
2300 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
2304 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
2305 LPCWSTR pszDir) = 0;
2307 virtual HRESULT STDMETHODCALLTYPE GetArguments(
2311 virtual HRESULT STDMETHODCALLTYPE SetArguments(
2312 LPCWSTR pszArgs) = 0;
2314 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
2315 WORD* pwHotkey) = 0;
2317 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
2320 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
2321 int* piShowCmd) = 0;
2323 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
2326 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2331 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
2332 LPCWSTR pszIconPath,
2335 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
2337 DWORD dwReserved) = 0;
2339 virtual HRESULT STDMETHODCALLTYPE Resolve(
2343 virtual HRESULT STDMETHODCALLTYPE SetPath(
2344 LPCWSTR pszFile) = 0;
2348 typedef struct IShellLinkWVtbl IShellLinkWVtbl;
2349 struct IShellLinkW {
2350 const IShellLinkWVtbl* lpVtbl;
2352 struct IShellLinkWVtbl {
2353 ICOM_MSVTABLE_COMPAT_FIELDS
2355 /*** IUnknown methods ***/
2356 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2361 ULONG (STDMETHODCALLTYPE *AddRef)(
2364 ULONG (STDMETHODCALLTYPE *Release)(
2367 /*** IShellLinkW methods ***/
2368 HRESULT (STDMETHODCALLTYPE *GetPath)(
2372 WIN32_FIND_DATAW* pfd,
2375 HRESULT (STDMETHODCALLTYPE *GetIDList)(
2377 LPITEMIDLIST* ppidl);
2379 HRESULT (STDMETHODCALLTYPE *SetIDList)(
2381 LPCITEMIDLIST pidl);
2383 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2388 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2392 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2397 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2401 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2406 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2410 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2414 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2418 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2422 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2426 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2432 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2434 LPCWSTR pszIconPath,
2437 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2442 HRESULT (STDMETHODCALLTYPE *Resolve)(
2447 HRESULT (STDMETHODCALLTYPE *SetPath)(
2453 /*** IUnknown methods ***/
2454 #define IShellLinkW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2455 #define IShellLinkW_AddRef(p) (p)->lpVtbl->AddRef(p)
2456 #define IShellLinkW_Release(p) (p)->lpVtbl->Release(p)
2457 /*** IShellLinkW methods ***/
2458 #define IShellLinkW_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2459 #define IShellLinkW_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2460 #define IShellLinkW_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2461 #define IShellLinkW_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2462 #define IShellLinkW_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2463 #define IShellLinkW_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2464 #define IShellLinkW_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2465 #define IShellLinkW_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2466 #define IShellLinkW_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2467 #define IShellLinkW_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2468 #define IShellLinkW_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2469 #define IShellLinkW_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2470 #define IShellLinkW_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2471 #define IShellLinkW_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2472 #define IShellLinkW_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2473 #define IShellLinkW_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2474 #define IShellLinkW_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2475 #define IShellLinkW_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2479 #define IShellLinkW_METHODS \
2480 ICOM_MSVTABLE_COMPAT_FIELDS \
2481 /*** IUnknown methods ***/ \
2482 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2483 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2484 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2485 /*** IShellLinkW methods ***/ \
2486 STDMETHOD_(HRESULT,GetPath)(THIS_ LPWSTR pszFile, int cch, WIN32_FIND_DATAW* pfd, DWORD fFlags) PURE; \
2487 STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2488 STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \
2489 STDMETHOD_(HRESULT,GetDescription)(THIS_ LPWSTR pszName, int cch) PURE; \
2490 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCWSTR pszName) PURE; \
2491 STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPWSTR pszDir, int cch) PURE; \
2492 STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCWSTR pszDir) PURE; \
2493 STDMETHOD_(HRESULT,GetArguments)(THIS_ LPWSTR pszArgs, int cch) PURE; \
2494 STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCWSTR pszArgs) PURE; \
2495 STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \
2496 STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \
2497 STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \
2498 STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \
2499 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPWSTR pszIconPath, int cch, int* piIcon) PURE; \
2500 STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCWSTR pszIconPath, int iIcon) PURE; \
2501 STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCWSTR pszPathRel, DWORD dwReserved) PURE; \
2502 STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \
2503 STDMETHOD_(HRESULT,SetPath)(THIS_ LPCWSTR pszFile) PURE;
2505 HRESULT CALLBACK IShellLinkW_GetPath_Proxy(
2509 WIN32_FIND_DATAW* pfd,
2511 void __RPC_STUB IShellLinkW_GetPath_Stub(
2512 struct IRpcStubBuffer* This,
2513 struct IRpcChannelBuffer* pRpcChannelBuffer,
2514 PRPC_MESSAGE pRpcMessage,
2515 DWORD* pdwStubPhase);
2516 HRESULT CALLBACK IShellLinkW_GetIDList_Proxy(
2518 LPITEMIDLIST* ppidl);
2519 void __RPC_STUB IShellLinkW_GetIDList_Stub(
2520 struct IRpcStubBuffer* This,
2521 struct IRpcChannelBuffer* pRpcChannelBuffer,
2522 PRPC_MESSAGE pRpcMessage,
2523 DWORD* pdwStubPhase);
2524 HRESULT CALLBACK IShellLinkW_SetIDList_Proxy(
2526 LPCITEMIDLIST pidl);
2527 void __RPC_STUB IShellLinkW_SetIDList_Stub(
2528 struct IRpcStubBuffer* This,
2529 struct IRpcChannelBuffer* pRpcChannelBuffer,
2530 PRPC_MESSAGE pRpcMessage,
2531 DWORD* pdwStubPhase);
2532 HRESULT CALLBACK IShellLinkW_GetDescription_Proxy(
2536 void __RPC_STUB IShellLinkW_GetDescription_Stub(
2537 struct IRpcStubBuffer* This,
2538 struct IRpcChannelBuffer* pRpcChannelBuffer,
2539 PRPC_MESSAGE pRpcMessage,
2540 DWORD* pdwStubPhase);
2541 HRESULT CALLBACK IShellLinkW_SetDescription_Proxy(
2544 void __RPC_STUB IShellLinkW_SetDescription_Stub(
2545 struct IRpcStubBuffer* This,
2546 struct IRpcChannelBuffer* pRpcChannelBuffer,
2547 PRPC_MESSAGE pRpcMessage,
2548 DWORD* pdwStubPhase);
2549 HRESULT CALLBACK IShellLinkW_GetWorkingDirectory_Proxy(
2553 void __RPC_STUB IShellLinkW_GetWorkingDirectory_Stub(
2554 struct IRpcStubBuffer* This,
2555 struct IRpcChannelBuffer* pRpcChannelBuffer,
2556 PRPC_MESSAGE pRpcMessage,
2557 DWORD* pdwStubPhase);
2558 HRESULT CALLBACK IShellLinkW_SetWorkingDirectory_Proxy(
2561 void __RPC_STUB IShellLinkW_SetWorkingDirectory_Stub(
2562 struct IRpcStubBuffer* This,
2563 struct IRpcChannelBuffer* pRpcChannelBuffer,
2564 PRPC_MESSAGE pRpcMessage,
2565 DWORD* pdwStubPhase);
2566 HRESULT CALLBACK IShellLinkW_GetArguments_Proxy(
2570 void __RPC_STUB IShellLinkW_GetArguments_Stub(
2571 struct IRpcStubBuffer* This,
2572 struct IRpcChannelBuffer* pRpcChannelBuffer,
2573 PRPC_MESSAGE pRpcMessage,
2574 DWORD* pdwStubPhase);
2575 HRESULT CALLBACK IShellLinkW_SetArguments_Proxy(
2578 void __RPC_STUB IShellLinkW_SetArguments_Stub(
2579 struct IRpcStubBuffer* This,
2580 struct IRpcChannelBuffer* pRpcChannelBuffer,
2581 PRPC_MESSAGE pRpcMessage,
2582 DWORD* pdwStubPhase);
2583 HRESULT CALLBACK IShellLinkW_GetHotkey_Proxy(
2586 void __RPC_STUB IShellLinkW_GetHotkey_Stub(
2587 struct IRpcStubBuffer* This,
2588 struct IRpcChannelBuffer* pRpcChannelBuffer,
2589 PRPC_MESSAGE pRpcMessage,
2590 DWORD* pdwStubPhase);
2591 HRESULT CALLBACK IShellLinkW_SetHotkey_Proxy(
2594 void __RPC_STUB IShellLinkW_SetHotkey_Stub(
2595 struct IRpcStubBuffer* This,
2596 struct IRpcChannelBuffer* pRpcChannelBuffer,
2597 PRPC_MESSAGE pRpcMessage,
2598 DWORD* pdwStubPhase);
2599 HRESULT CALLBACK IShellLinkW_GetShowCmd_Proxy(
2602 void __RPC_STUB IShellLinkW_GetShowCmd_Stub(
2603 struct IRpcStubBuffer* This,
2604 struct IRpcChannelBuffer* pRpcChannelBuffer,
2605 PRPC_MESSAGE pRpcMessage,
2606 DWORD* pdwStubPhase);
2607 HRESULT CALLBACK IShellLinkW_SetShowCmd_Proxy(
2610 void __RPC_STUB IShellLinkW_SetShowCmd_Stub(
2611 struct IRpcStubBuffer* This,
2612 struct IRpcChannelBuffer* pRpcChannelBuffer,
2613 PRPC_MESSAGE pRpcMessage,
2614 DWORD* pdwStubPhase);
2615 HRESULT CALLBACK IShellLinkW_GetIconLocation_Proxy(
2620 void __RPC_STUB IShellLinkW_GetIconLocation_Stub(
2621 struct IRpcStubBuffer* This,
2622 struct IRpcChannelBuffer* pRpcChannelBuffer,
2623 PRPC_MESSAGE pRpcMessage,
2624 DWORD* pdwStubPhase);
2625 HRESULT CALLBACK IShellLinkW_SetIconLocation_Proxy(
2627 LPCWSTR pszIconPath,
2629 void __RPC_STUB IShellLinkW_SetIconLocation_Stub(
2630 struct IRpcStubBuffer* This,
2631 struct IRpcChannelBuffer* pRpcChannelBuffer,
2632 PRPC_MESSAGE pRpcMessage,
2633 DWORD* pdwStubPhase);
2634 HRESULT CALLBACK IShellLinkW_SetRelativePath_Proxy(
2638 void __RPC_STUB IShellLinkW_SetRelativePath_Stub(
2639 struct IRpcStubBuffer* This,
2640 struct IRpcChannelBuffer* pRpcChannelBuffer,
2641 PRPC_MESSAGE pRpcMessage,
2642 DWORD* pdwStubPhase);
2643 HRESULT CALLBACK IShellLinkW_Resolve_Proxy(
2647 void __RPC_STUB IShellLinkW_Resolve_Stub(
2648 struct IRpcStubBuffer* This,
2649 struct IRpcChannelBuffer* pRpcChannelBuffer,
2650 PRPC_MESSAGE pRpcMessage,
2651 DWORD* pdwStubPhase);
2652 HRESULT CALLBACK IShellLinkW_SetPath_Proxy(
2655 void __RPC_STUB IShellLinkW_SetPath_Stub(
2656 struct IRpcStubBuffer* This,
2657 struct IRpcChannelBuffer* pRpcChannelBuffer,
2658 PRPC_MESSAGE pRpcMessage,
2659 DWORD* pdwStubPhase);
2661 #endif /* __IShellLinkW_INTERFACE_DEFINED__ */
2663 #define IShellLink WINELIB_NAME_AW(IShellLink)
2664 #ifndef __IShellExtInit_FWD_DEFINED__
2665 #define __IShellExtInit_FWD_DEFINED__
2666 typedef struct IShellExtInit IShellExtInit;
2669 typedef IShellExtInit *LPSHELLEXTINIT;
2671 /*****************************************************************************
2672 * IShellExtInit interface
2674 #ifndef __IShellExtInit_INTERFACE_DEFINED__
2675 #define __IShellExtInit_INTERFACE_DEFINED__
2677 DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2678 #if defined(__cplusplus) && !defined(CINTERFACE)
2679 struct IShellExtInit : public IUnknown
2681 virtual HRESULT STDMETHODCALLTYPE Initialize(
2682 LPCITEMIDLIST pidlFolder,
2683 IDataObject* pdtobj,
2684 HKEY hkeyProgID) = 0;
2688 typedef struct IShellExtInitVtbl IShellExtInitVtbl;
2689 struct IShellExtInit {
2690 const IShellExtInitVtbl* lpVtbl;
2692 struct IShellExtInitVtbl {
2693 ICOM_MSVTABLE_COMPAT_FIELDS
2695 /*** IUnknown methods ***/
2696 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2697 IShellExtInit* This,
2701 ULONG (STDMETHODCALLTYPE *AddRef)(
2702 IShellExtInit* This);
2704 ULONG (STDMETHODCALLTYPE *Release)(
2705 IShellExtInit* This);
2707 /*** IShellExtInit methods ***/
2708 HRESULT (STDMETHODCALLTYPE *Initialize)(
2709 IShellExtInit* This,
2710 LPCITEMIDLIST pidlFolder,
2711 IDataObject* pdtobj,
2716 /*** IUnknown methods ***/
2717 #define IShellExtInit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2718 #define IShellExtInit_AddRef(p) (p)->lpVtbl->AddRef(p)
2719 #define IShellExtInit_Release(p) (p)->lpVtbl->Release(p)
2720 /*** IShellExtInit methods ***/
2721 #define IShellExtInit_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
2725 #define IShellExtInit_METHODS \
2726 ICOM_MSVTABLE_COMPAT_FIELDS \
2727 /*** IUnknown methods ***/ \
2728 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2729 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2730 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2731 /*** IShellExtInit methods ***/ \
2732 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidlFolder, IDataObject* pdtobj, HKEY hkeyProgID) PURE;
2734 HRESULT CALLBACK IShellExtInit_Initialize_Proxy(
2735 IShellExtInit* This,
2736 LPCITEMIDLIST pidlFolder,
2737 IDataObject* pdtobj,
2739 void __RPC_STUB IShellExtInit_Initialize_Stub(
2740 struct IRpcStubBuffer* This,
2741 struct IRpcChannelBuffer* pRpcChannelBuffer,
2742 PRPC_MESSAGE pRpcMessage,
2743 DWORD* pdwStubPhase);
2745 #endif /* __IShellExtInit_INTERFACE_DEFINED__ */
2747 #ifndef __IPersistFolder3_FWD_DEFINED__
2748 #define __IPersistFolder3_FWD_DEFINED__
2749 typedef struct IPersistFolder3 IPersistFolder3;
2753 LPITEMIDLIST pidlTargetFolder;
2754 WCHAR szTargetParsingName[260];
2755 WCHAR szNetworkProvider[260];
2758 } PERSIST_FOLDER_TARGET_INFO;
2760 /*****************************************************************************
2761 * IPersistFolder3 interface
2763 #ifndef __IPersistFolder3_INTERFACE_DEFINED__
2764 #define __IPersistFolder3_INTERFACE_DEFINED__
2766 DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf);
2767 #if defined(__cplusplus) && !defined(CINTERFACE)
2768 struct IPersistFolder3 : public IPersistFolder2
2770 virtual HRESULT STDMETHODCALLTYPE InitializeEx(
2772 LPCITEMIDLIST pidlRoot,
2773 const PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2775 virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
2776 PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2780 typedef struct IPersistFolder3Vtbl IPersistFolder3Vtbl;
2781 struct IPersistFolder3 {
2782 const IPersistFolder3Vtbl* lpVtbl;
2784 struct IPersistFolder3Vtbl {
2785 ICOM_MSVTABLE_COMPAT_FIELDS
2787 /*** IUnknown methods ***/
2788 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2789 IPersistFolder3* This,
2793 ULONG (STDMETHODCALLTYPE *AddRef)(
2794 IPersistFolder3* This);
2796 ULONG (STDMETHODCALLTYPE *Release)(
2797 IPersistFolder3* This);
2799 /*** IPersist methods ***/
2800 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2801 IPersistFolder3* This,
2804 /*** IPersistFolder methods ***/
2805 HRESULT (STDMETHODCALLTYPE *Initialize)(
2806 IPersistFolder3* This,
2807 LPCITEMIDLIST pidl);
2809 /*** IPersistFolder2 methods ***/
2810 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
2811 IPersistFolder3* This,
2812 LPITEMIDLIST* ppidl);
2814 /*** IPersistFolder3 methods ***/
2815 HRESULT (STDMETHODCALLTYPE *InitializeEx)(
2816 IPersistFolder3* This,
2818 LPCITEMIDLIST pidlRoot,
2819 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2821 HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
2822 IPersistFolder3* This,
2823 PERSIST_FOLDER_TARGET_INFO* ppfti);
2827 /*** IUnknown methods ***/
2828 #define IPersistFolder3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2829 #define IPersistFolder3_AddRef(p) (p)->lpVtbl->AddRef(p)
2830 #define IPersistFolder3_Release(p) (p)->lpVtbl->Release(p)
2831 /*** IPersist methods ***/
2832 #define IPersistFolder3_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2833 /*** IPersistFolder methods ***/
2834 #define IPersistFolder3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
2835 /*** IPersistFolder2 methods ***/
2836 #define IPersistFolder3_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
2837 /*** IPersistFolder3 methods ***/
2838 #define IPersistFolder3_InitializeEx(p,a,b,c) (p)->lpVtbl->InitializeEx(p,a,b,c)
2839 #define IPersistFolder3_GetFolderTargetInfo(p,a) (p)->lpVtbl->GetFolderTargetInfo(p,a)
2843 #define IPersistFolder3_METHODS \
2844 ICOM_MSVTABLE_COMPAT_FIELDS \
2845 /*** IUnknown methods ***/ \
2846 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2847 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2848 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2849 /*** IPersist methods ***/ \
2850 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2851 /*** IPersistFolder methods ***/ \
2852 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \
2853 /*** IPersistFolder2 methods ***/ \
2854 STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2855 /*** IPersistFolder3 methods ***/ \
2856 STDMETHOD_(HRESULT,InitializeEx)(THIS_ IBindCtx* pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO* ppfti) PURE; \
2857 STDMETHOD_(HRESULT,GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO* ppfti) PURE;
2859 HRESULT CALLBACK IPersistFolder3_InitializeEx_Proxy(
2860 IPersistFolder3* This,
2862 LPCITEMIDLIST pidlRoot,
2863 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2864 void __RPC_STUB IPersistFolder3_InitializeEx_Stub(
2865 struct IRpcStubBuffer* This,
2866 struct IRpcChannelBuffer* pRpcChannelBuffer,
2867 PRPC_MESSAGE pRpcMessage,
2868 DWORD* pdwStubPhase);
2869 HRESULT CALLBACK IPersistFolder3_GetFolderTargetInfo_Proxy(
2870 IPersistFolder3* This,
2871 PERSIST_FOLDER_TARGET_INFO* ppfti);
2872 void __RPC_STUB IPersistFolder3_GetFolderTargetInfo_Stub(
2873 struct IRpcStubBuffer* This,
2874 struct IRpcChannelBuffer* pRpcChannelBuffer,
2875 PRPC_MESSAGE pRpcMessage,
2876 DWORD* pdwStubPhase);
2878 #endif /* __IPersistFolder3_INTERFACE_DEFINED__ */
2880 #ifndef __IExtractIconA_FWD_DEFINED__
2881 #define __IExtractIconA_FWD_DEFINED__
2882 typedef struct IExtractIconA IExtractIconA;
2885 #define GIL_OPENICON 0x0001
2886 #define GIL_FORSHELL 0x0002
2887 #define GIL_ASYNC 0x0020
2888 #define GIL_DEFAULTICON 0x0040
2889 #define GIL_FORSHORTCUT 0x0080
2890 #define GIL_SIMULATEDOC 0x0001
2891 #define GIL_PERINSTANCE 0x0002
2892 #define GIL_PERCLASS 0x0004
2893 #define GIL_NOTFILENAME 0x0008
2894 #define GIL_DONTCACHE 0x0010
2895 typedef IExtractIconA *LPEXTRACTICONA;
2897 /*****************************************************************************
2898 * IExtractIconA interface
2900 #ifndef __IExtractIconA_INTERFACE_DEFINED__
2901 #define __IExtractIconA_INTERFACE_DEFINED__
2903 DEFINE_GUID(IID_IExtractIconA, 0x000214eb, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2904 #if defined(__cplusplus) && !defined(CINTERFACE)
2905 struct IExtractIconA : public IUnknown
2907 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2914 virtual HRESULT STDMETHODCALLTYPE Extract(
2919 UINT nIconSize) = 0;
2923 typedef struct IExtractIconAVtbl IExtractIconAVtbl;
2924 struct IExtractIconA {
2925 const IExtractIconAVtbl* lpVtbl;
2927 struct IExtractIconAVtbl {
2928 ICOM_MSVTABLE_COMPAT_FIELDS
2930 /*** IUnknown methods ***/
2931 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2932 IExtractIconA* This,
2936 ULONG (STDMETHODCALLTYPE *AddRef)(
2937 IExtractIconA* This);
2939 ULONG (STDMETHODCALLTYPE *Release)(
2940 IExtractIconA* This);
2942 /*** IExtractIconA methods ***/
2943 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2944 IExtractIconA* This,
2951 HRESULT (STDMETHODCALLTYPE *Extract)(
2952 IExtractIconA* This,
2961 /*** IUnknown methods ***/
2962 #define IExtractIconA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2963 #define IExtractIconA_AddRef(p) (p)->lpVtbl->AddRef(p)
2964 #define IExtractIconA_Release(p) (p)->lpVtbl->Release(p)
2965 /*** IExtractIconA methods ***/
2966 #define IExtractIconA_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
2967 #define IExtractIconA_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
2971 #define IExtractIconA_METHODS \
2972 ICOM_MSVTABLE_COMPAT_FIELDS \
2973 /*** IUnknown methods ***/ \
2974 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2975 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2976 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2977 /*** IExtractIconA methods ***/ \
2978 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \
2979 STDMETHOD_(HRESULT,Extract)(THIS_ LPCSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE;
2981 HRESULT CALLBACK IExtractIconA_GetIconLocation_Proxy(
2982 IExtractIconA* This,
2988 void __RPC_STUB IExtractIconA_GetIconLocation_Stub(
2989 struct IRpcStubBuffer* This,
2990 struct IRpcChannelBuffer* pRpcChannelBuffer,
2991 PRPC_MESSAGE pRpcMessage,
2992 DWORD* pdwStubPhase);
2993 HRESULT CALLBACK IExtractIconA_Extract_Proxy(
2994 IExtractIconA* This,
3000 void __RPC_STUB IExtractIconA_Extract_Stub(
3001 struct IRpcStubBuffer* This,
3002 struct IRpcChannelBuffer* pRpcChannelBuffer,
3003 PRPC_MESSAGE pRpcMessage,
3004 DWORD* pdwStubPhase);
3006 #endif /* __IExtractIconA_INTERFACE_DEFINED__ */
3008 #ifndef __IExtractIconW_FWD_DEFINED__
3009 #define __IExtractIconW_FWD_DEFINED__
3010 typedef struct IExtractIconW IExtractIconW;
3013 typedef IExtractIconW *LPEXTRACTICONW;
3015 /*****************************************************************************
3016 * IExtractIconW interface
3018 #ifndef __IExtractIconW_INTERFACE_DEFINED__
3019 #define __IExtractIconW_INTERFACE_DEFINED__
3021 DEFINE_GUID(IID_IExtractIconW, 0x000214fa, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3022 #if defined(__cplusplus) && !defined(CINTERFACE)
3023 struct IExtractIconW : public IUnknown
3025 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
3032 virtual HRESULT STDMETHODCALLTYPE Extract(
3037 UINT nIconSize) = 0;
3041 typedef struct IExtractIconWVtbl IExtractIconWVtbl;
3042 struct IExtractIconW {
3043 const IExtractIconWVtbl* lpVtbl;
3045 struct IExtractIconWVtbl {
3046 ICOM_MSVTABLE_COMPAT_FIELDS
3048 /*** IUnknown methods ***/
3049 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3050 IExtractIconW* This,
3054 ULONG (STDMETHODCALLTYPE *AddRef)(
3055 IExtractIconW* This);
3057 ULONG (STDMETHODCALLTYPE *Release)(
3058 IExtractIconW* This);
3060 /*** IExtractIconW methods ***/
3061 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
3062 IExtractIconW* This,
3069 HRESULT (STDMETHODCALLTYPE *Extract)(
3070 IExtractIconW* This,
3079 /*** IUnknown methods ***/
3080 #define IExtractIconW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3081 #define IExtractIconW_AddRef(p) (p)->lpVtbl->AddRef(p)
3082 #define IExtractIconW_Release(p) (p)->lpVtbl->Release(p)
3083 /*** IExtractIconW methods ***/
3084 #define IExtractIconW_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
3085 #define IExtractIconW_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
3089 #define IExtractIconW_METHODS \
3090 ICOM_MSVTABLE_COMPAT_FIELDS \
3091 /*** IUnknown methods ***/ \
3092 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3093 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3094 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3095 /*** IExtractIconW methods ***/ \
3096 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPWSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \
3097 STDMETHOD_(HRESULT,Extract)(THIS_ LPCWSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE;
3099 HRESULT CALLBACK IExtractIconW_GetIconLocation_Proxy(
3100 IExtractIconW* This,
3106 void __RPC_STUB IExtractIconW_GetIconLocation_Stub(
3107 struct IRpcStubBuffer* This,
3108 struct IRpcChannelBuffer* pRpcChannelBuffer,
3109 PRPC_MESSAGE pRpcMessage,
3110 DWORD* pdwStubPhase);
3111 HRESULT CALLBACK IExtractIconW_Extract_Proxy(
3112 IExtractIconW* This,
3118 void __RPC_STUB IExtractIconW_Extract_Stub(
3119 struct IRpcStubBuffer* This,
3120 struct IRpcChannelBuffer* pRpcChannelBuffer,
3121 PRPC_MESSAGE pRpcMessage,
3122 DWORD* pdwStubPhase);
3124 #endif /* __IExtractIconW_INTERFACE_DEFINED__ */
3126 #define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)
3127 #define IExtractIcon WINELIB_NAME_AW(IExtractIcon)
3128 #ifndef __ICommDlgBrowser_FWD_DEFINED__
3129 #define __ICommDlgBrowser_FWD_DEFINED__
3130 typedef struct ICommDlgBrowser ICommDlgBrowser;
3133 #define CDBOSC_SETFOCUS 0x00000000
3134 #define CDBOSC_KILLFOCUS 0x00000001
3135 #define CDBOSC_SELCHANGE 0x00000002
3136 #define CDBOSC_RENAME 0x00000003
3137 #define CDBOSC_STATECHANGE 0x00000004
3138 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
3140 /*****************************************************************************
3141 * ICommDlgBrowser interface
3143 #ifndef __ICommDlgBrowser_INTERFACE_DEFINED__
3144 #define __ICommDlgBrowser_INTERFACE_DEFINED__
3146 DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3147 #if defined(__cplusplus) && !defined(CINTERFACE)
3148 struct ICommDlgBrowser : public IUnknown
3150 virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand(
3151 IShellView* shv) = 0;
3153 virtual HRESULT STDMETHODCALLTYPE OnStateChange(
3157 virtual HRESULT STDMETHODCALLTYPE IncludeObject(
3159 LPCITEMIDLIST pidl) = 0;
3163 typedef struct ICommDlgBrowserVtbl ICommDlgBrowserVtbl;
3164 struct ICommDlgBrowser {
3165 const ICommDlgBrowserVtbl* lpVtbl;
3167 struct ICommDlgBrowserVtbl {
3168 ICOM_MSVTABLE_COMPAT_FIELDS
3170 /*** IUnknown methods ***/
3171 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3172 ICommDlgBrowser* This,
3176 ULONG (STDMETHODCALLTYPE *AddRef)(
3177 ICommDlgBrowser* This);
3179 ULONG (STDMETHODCALLTYPE *Release)(
3180 ICommDlgBrowser* This);
3182 /*** ICommDlgBrowser methods ***/
3183 HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
3184 ICommDlgBrowser* This,
3187 HRESULT (STDMETHODCALLTYPE *OnStateChange)(
3188 ICommDlgBrowser* This,
3192 HRESULT (STDMETHODCALLTYPE *IncludeObject)(
3193 ICommDlgBrowser* This,
3195 LPCITEMIDLIST pidl);
3199 /*** IUnknown methods ***/
3200 #define ICommDlgBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3201 #define ICommDlgBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
3202 #define ICommDlgBrowser_Release(p) (p)->lpVtbl->Release(p)
3203 /*** ICommDlgBrowser methods ***/
3204 #define ICommDlgBrowser_OnDefaultCommand(p,a) (p)->lpVtbl->OnDefaultCommand(p,a)
3205 #define ICommDlgBrowser_OnStateChange(p,a,b) (p)->lpVtbl->OnStateChange(p,a,b)
3206 #define ICommDlgBrowser_IncludeObject(p,a,b) (p)->lpVtbl->IncludeObject(p,a,b)
3210 #define ICommDlgBrowser_METHODS \
3211 ICOM_MSVTABLE_COMPAT_FIELDS \
3212 /*** IUnknown methods ***/ \
3213 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3214 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3215 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3216 /*** ICommDlgBrowser methods ***/ \
3217 STDMETHOD_(HRESULT,OnDefaultCommand)(THIS_ IShellView* shv) PURE; \
3218 STDMETHOD_(HRESULT,OnStateChange)(THIS_ IShellView* shv, ULONG uChange) PURE; \
3219 STDMETHOD_(HRESULT,IncludeObject)(THIS_ IShellView* shv, LPCITEMIDLIST pidl) PURE;
3221 HRESULT CALLBACK ICommDlgBrowser_OnDefaultCommand_Proxy(
3222 ICommDlgBrowser* This,
3224 void __RPC_STUB ICommDlgBrowser_OnDefaultCommand_Stub(
3225 struct IRpcStubBuffer* This,
3226 struct IRpcChannelBuffer* pRpcChannelBuffer,
3227 PRPC_MESSAGE pRpcMessage,
3228 DWORD* pdwStubPhase);
3229 HRESULT CALLBACK ICommDlgBrowser_OnStateChange_Proxy(
3230 ICommDlgBrowser* This,
3233 void __RPC_STUB ICommDlgBrowser_OnStateChange_Stub(
3234 struct IRpcStubBuffer* This,
3235 struct IRpcChannelBuffer* pRpcChannelBuffer,
3236 PRPC_MESSAGE pRpcMessage,
3237 DWORD* pdwStubPhase);
3238 HRESULT CALLBACK ICommDlgBrowser_IncludeObject_Proxy(
3239 ICommDlgBrowser* This,
3241 LPCITEMIDLIST pidl);
3242 void __RPC_STUB ICommDlgBrowser_IncludeObject_Stub(
3243 struct IRpcStubBuffer* This,
3244 struct IRpcChannelBuffer* pRpcChannelBuffer,
3245 PRPC_MESSAGE pRpcMessage,
3246 DWORD* pdwStubPhase);
3248 #endif /* __ICommDlgBrowser_INTERFACE_DEFINED__ */
3250 #ifndef __IDockingWindowFrame_FWD_DEFINED__
3251 #define __IDockingWindowFrame_FWD_DEFINED__
3252 typedef struct IDockingWindowFrame IDockingWindowFrame;
3255 #define DWFRF_NORMAL 0x0000
3256 #define DWFRF_DELETECONFIGDATA 0x0001
3257 #define DWFAF_HIDDEN 0x0001
3258 /*****************************************************************************
3259 * IDockingWindowFrame interface
3261 #ifndef __IDockingWindowFrame_INTERFACE_DEFINED__
3262 #define __IDockingWindowFrame_INTERFACE_DEFINED__
3264 DEFINE_GUID(IID_IDockingWindowFrame, 0x47d2657a, 0x7b27, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
3265 #if defined(__cplusplus) && !defined(CINTERFACE)
3266 struct IDockingWindowFrame : public IOleWindow
3268 virtual HRESULT STDMETHODCALLTYPE AddToolbar(
3271 DWORD dwAddFlags) = 0;
3273 virtual HRESULT STDMETHODCALLTYPE RemoveToolbar(
3275 DWORD dwRemoveFlags) = 0;
3277 virtual HRESULT STDMETHODCALLTYPE FindToolbar(
3280 LPVOID* ppvObj) = 0;
3284 typedef struct IDockingWindowFrameVtbl IDockingWindowFrameVtbl;
3285 struct IDockingWindowFrame {
3286 const IDockingWindowFrameVtbl* lpVtbl;
3288 struct IDockingWindowFrameVtbl {
3289 ICOM_MSVTABLE_COMPAT_FIELDS
3291 /*** IUnknown methods ***/
3292 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3293 IDockingWindowFrame* This,
3297 ULONG (STDMETHODCALLTYPE *AddRef)(
3298 IDockingWindowFrame* This);
3300 ULONG (STDMETHODCALLTYPE *Release)(
3301 IDockingWindowFrame* This);
3303 /*** IOleWindow methods ***/
3304 HRESULT (STDMETHODCALLTYPE *GetWindow)(
3305 IDockingWindowFrame* This,
3308 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
3309 IDockingWindowFrame* This,
3312 /*** IDockingWindowFrame methods ***/
3313 HRESULT (STDMETHODCALLTYPE *AddToolbar)(
3314 IDockingWindowFrame* This,
3319 HRESULT (STDMETHODCALLTYPE *RemoveToolbar)(
3320 IDockingWindowFrame* This,
3322 DWORD dwRemoveFlags);
3324 HRESULT (STDMETHODCALLTYPE *FindToolbar)(
3325 IDockingWindowFrame* This,
3332 /*** IUnknown methods ***/
3333 #define IDockingWindowFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3334 #define IDockingWindowFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
3335 #define IDockingWindowFrame_Release(p) (p)->lpVtbl->Release(p)
3336 /*** IOleWindow methods ***/
3337 #define IDockingWindowFrame_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
3338 #define IDockingWindowFrame_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
3339 /*** IDockingWindowFrame methods ***/
3340 #define IDockingWindowFrame_AddToolbar(p,a,b,c) (p)->lpVtbl->AddToolbar(p,a,b,c)
3341 #define IDockingWindowFrame_RemoveToolbar(p,a,b) (p)->lpVtbl->RemoveToolbar(p,a,b)
3342 #define IDockingWindowFrame_FindToolbar(p,a,b,c) (p)->lpVtbl->FindToolbar(p,a,b,c)
3346 #define IDockingWindowFrame_METHODS \
3347 ICOM_MSVTABLE_COMPAT_FIELDS \
3348 /*** IUnknown methods ***/ \
3349 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3350 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3351 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3352 /*** IOleWindow methods ***/ \
3353 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
3354 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
3355 /*** IDockingWindowFrame methods ***/ \
3356 STDMETHOD_(HRESULT,AddToolbar)(THIS_ IUnknown* punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags) PURE; \
3357 STDMETHOD_(HRESULT,RemoveToolbar)(THIS_ IUnknown* punkSrc, DWORD dwRemoveFlags) PURE; \
3358 STDMETHOD_(HRESULT,FindToolbar)(THIS_ LPCWSTR pwszItem, REFIID riid, LPVOID* ppvObj) PURE;
3360 HRESULT CALLBACK IDockingWindowFrame_AddToolbar_Proxy(
3361 IDockingWindowFrame* This,
3365 void __RPC_STUB IDockingWindowFrame_AddToolbar_Stub(
3366 struct IRpcStubBuffer* This,
3367 struct IRpcChannelBuffer* pRpcChannelBuffer,
3368 PRPC_MESSAGE pRpcMessage,
3369 DWORD* pdwStubPhase);
3370 HRESULT CALLBACK IDockingWindowFrame_RemoveToolbar_Proxy(
3371 IDockingWindowFrame* This,
3373 DWORD dwRemoveFlags);
3374 void __RPC_STUB IDockingWindowFrame_RemoveToolbar_Stub(
3375 struct IRpcStubBuffer* This,
3376 struct IRpcChannelBuffer* pRpcChannelBuffer,
3377 PRPC_MESSAGE pRpcMessage,
3378 DWORD* pdwStubPhase);
3379 HRESULT CALLBACK IDockingWindowFrame_FindToolbar_Proxy(
3380 IDockingWindowFrame* This,
3384 void __RPC_STUB IDockingWindowFrame_FindToolbar_Stub(
3385 struct IRpcStubBuffer* This,
3386 struct IRpcChannelBuffer* pRpcChannelBuffer,
3387 PRPC_MESSAGE pRpcMessage,
3388 DWORD* pdwStubPhase);
3390 #endif /* __IDockingWindowFrame_INTERFACE_DEFINED__ */
3392 #ifndef __IDragSourceHelper_FWD_DEFINED__
3393 #define __IDragSourceHelper_FWD_DEFINED__
3394 typedef struct IDragSourceHelper IDragSourceHelper;
3400 HBITMAP hbmpDragImage;
3401 COLORREF crColorKey;
3402 } SHDRAGIMAGE, *LPSHDRAGIMAGE;
3404 /*****************************************************************************
3405 * IDragSourceHelper interface
3407 #ifndef __IDragSourceHelper_INTERFACE_DEFINED__
3408 #define __IDragSourceHelper_INTERFACE_DEFINED__
3410 DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
3411 #if defined(__cplusplus) && !defined(CINTERFACE)
3412 struct IDragSourceHelper : public IUnknown
3414 virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
3415 LPSHDRAGIMAGE pshdi,
3416 IDataObject* pDataObject) = 0;
3418 virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow(
3421 IDataObject* pDataObject) = 0;
3425 typedef struct IDragSourceHelperVtbl IDragSourceHelperVtbl;
3426 struct IDragSourceHelper {
3427 const IDragSourceHelperVtbl* lpVtbl;
3429 struct IDragSourceHelperVtbl {
3430 ICOM_MSVTABLE_COMPAT_FIELDS
3432 /*** IUnknown methods ***/
3433 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3434 IDragSourceHelper* This,
3438 ULONG (STDMETHODCALLTYPE *AddRef)(
3439 IDragSourceHelper* This);
3441 ULONG (STDMETHODCALLTYPE *Release)(
3442 IDragSourceHelper* This);
3444 /*** IDragSourceHelper methods ***/
3445 HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
3446 IDragSourceHelper* This,
3447 LPSHDRAGIMAGE pshdi,
3448 IDataObject* pDataObject);
3450 HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
3451 IDragSourceHelper* This,
3454 IDataObject* pDataObject);
3458 /*** IUnknown methods ***/
3459 #define IDragSourceHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3460 #define IDragSourceHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3461 #define IDragSourceHelper_Release(p) (p)->lpVtbl->Release(p)
3462 /*** IDragSourceHelper methods ***/
3463 #define IDragSourceHelper_InitializeFromBitmap(p,a,b) (p)->lpVtbl->InitializeFromBitmap(p,a,b)
3464 #define IDragSourceHelper_InitializeFromWindow(p,a,b,c) (p)->lpVtbl->InitializeFromWindow(p,a,b,c)
3468 #define IDragSourceHelper_METHODS \
3469 ICOM_MSVTABLE_COMPAT_FIELDS \
3470 /*** IUnknown methods ***/ \
3471 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3472 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3473 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3474 /*** IDragSourceHelper methods ***/ \
3475 STDMETHOD_(HRESULT,InitializeFromBitmap)(THIS_ LPSHDRAGIMAGE pshdi, IDataObject* pDataObject) PURE; \
3476 STDMETHOD_(HRESULT,InitializeFromWindow)(THIS_ HWND hwnd, POINT* ppt, IDataObject* pDataObject) PURE;
3478 HRESULT CALLBACK IDragSourceHelper_InitializeFromBitmap_Proxy(
3479 IDragSourceHelper* This,
3480 LPSHDRAGIMAGE pshdi,
3481 IDataObject* pDataObject);
3482 void __RPC_STUB IDragSourceHelper_InitializeFromBitmap_Stub(
3483 struct IRpcStubBuffer* This,
3484 struct IRpcChannelBuffer* pRpcChannelBuffer,
3485 PRPC_MESSAGE pRpcMessage,
3486 DWORD* pdwStubPhase);
3487 HRESULT CALLBACK IDragSourceHelper_InitializeFromWindow_Proxy(
3488 IDragSourceHelper* This,
3491 IDataObject* pDataObject);
3492 void __RPC_STUB IDragSourceHelper_InitializeFromWindow_Stub(
3493 struct IRpcStubBuffer* This,
3494 struct IRpcChannelBuffer* pRpcChannelBuffer,
3495 PRPC_MESSAGE pRpcMessage,
3496 DWORD* pdwStubPhase);
3498 #endif /* __IDragSourceHelper_INTERFACE_DEFINED__ */
3500 #ifndef __IDropTargetHelper_FWD_DEFINED__
3501 #define __IDropTargetHelper_FWD_DEFINED__
3502 typedef struct IDropTargetHelper IDropTargetHelper;
3505 /*****************************************************************************
3506 * IDropTargetHelper interface
3508 #ifndef __IDropTargetHelper_INTERFACE_DEFINED__
3509 #define __IDropTargetHelper_INTERFACE_DEFINED__
3511 DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
3512 #if defined(__cplusplus) && !defined(CINTERFACE)
3513 struct IDropTargetHelper : public IUnknown
3515 virtual HRESULT STDMETHODCALLTYPE DragEnter(
3517 IDataObject* pDataObject,
3519 DWORD dwEffect) = 0;
3521 virtual HRESULT STDMETHODCALLTYPE DragLeave(
3524 virtual HRESULT STDMETHODCALLTYPE DragOver(
3526 DWORD dwEffect) = 0;
3528 virtual HRESULT STDMETHODCALLTYPE Drop(
3529 IDataObject* pDataObject,
3531 DWORD dwEffect) = 0;
3533 virtual HRESULT STDMETHODCALLTYPE Show(
3538 typedef struct IDropTargetHelperVtbl IDropTargetHelperVtbl;
3539 struct IDropTargetHelper {
3540 const IDropTargetHelperVtbl* lpVtbl;
3542 struct IDropTargetHelperVtbl {
3543 ICOM_MSVTABLE_COMPAT_FIELDS
3545 /*** IUnknown methods ***/
3546 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3547 IDropTargetHelper* This,
3551 ULONG (STDMETHODCALLTYPE *AddRef)(
3552 IDropTargetHelper* This);
3554 ULONG (STDMETHODCALLTYPE *Release)(
3555 IDropTargetHelper* This);
3557 /*** IDropTargetHelper methods ***/
3558 HRESULT (STDMETHODCALLTYPE *DragEnter)(
3559 IDropTargetHelper* This,
3561 IDataObject* pDataObject,
3565 HRESULT (STDMETHODCALLTYPE *DragLeave)(
3566 IDropTargetHelper* This);
3568 HRESULT (STDMETHODCALLTYPE *DragOver)(
3569 IDropTargetHelper* This,
3573 HRESULT (STDMETHODCALLTYPE *Drop)(
3574 IDropTargetHelper* This,
3575 IDataObject* pDataObject,
3579 HRESULT (STDMETHODCALLTYPE *Show)(
3580 IDropTargetHelper* This,
3585 /*** IUnknown methods ***/
3586 #define IDropTargetHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3587 #define IDropTargetHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3588 #define IDropTargetHelper_Release(p) (p)->lpVtbl->Release(p)
3589 /*** IDropTargetHelper methods ***/
3590 #define IDropTargetHelper_DragEnter(p,a,b,c,d) (p)->lpVtbl->DragEnter(p,a,b,c,d)
3591 #define IDropTargetHelper_DragLeave(p) (p)->lpVtbl->DragLeave(p)
3592 #define IDropTargetHelper_DragOver(p,a,b) (p)->lpVtbl->DragOver(p,a,b)
3593 #define IDropTargetHelper_Drop(p,a,b,c) (p)->lpVtbl->Drop(p,a,b,c)
3594 #define IDropTargetHelper_Show(p,a) (p)->lpVtbl->Show(p,a)
3598 #define IDropTargetHelper_METHODS \
3599 ICOM_MSVTABLE_COMPAT_FIELDS \
3600 /*** IUnknown methods ***/ \
3601 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3602 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3603 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3604 /*** IDropTargetHelper methods ***/ \
3605 STDMETHOD_(HRESULT,DragEnter)(THIS_ HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \
3606 STDMETHOD_(HRESULT,DragLeave)(THIS) PURE; \
3607 STDMETHOD_(HRESULT,DragOver)(THIS_ POINT* ppt, DWORD dwEffect) PURE; \
3608 STDMETHOD_(HRESULT,Drop)(THIS_ IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \
3609 STDMETHOD_(HRESULT,Show)(THIS_ BOOL fShow) PURE;
3611 HRESULT CALLBACK IDropTargetHelper_DragEnter_Proxy(
3612 IDropTargetHelper* This,
3614 IDataObject* pDataObject,
3617 void __RPC_STUB IDropTargetHelper_DragEnter_Stub(
3618 struct IRpcStubBuffer* This,
3619 struct IRpcChannelBuffer* pRpcChannelBuffer,
3620 PRPC_MESSAGE pRpcMessage,
3621 DWORD* pdwStubPhase);
3622 HRESULT CALLBACK IDropTargetHelper_DragLeave_Proxy(
3623 IDropTargetHelper* This);
3624 void __RPC_STUB IDropTargetHelper_DragLeave_Stub(
3625 struct IRpcStubBuffer* This,
3626 struct IRpcChannelBuffer* pRpcChannelBuffer,
3627 PRPC_MESSAGE pRpcMessage,
3628 DWORD* pdwStubPhase);
3629 HRESULT CALLBACK IDropTargetHelper_DragOver_Proxy(
3630 IDropTargetHelper* This,
3633 void __RPC_STUB IDropTargetHelper_DragOver_Stub(
3634 struct IRpcStubBuffer* This,
3635 struct IRpcChannelBuffer* pRpcChannelBuffer,
3636 PRPC_MESSAGE pRpcMessage,
3637 DWORD* pdwStubPhase);
3638 HRESULT CALLBACK IDropTargetHelper_Drop_Proxy(
3639 IDropTargetHelper* This,
3640 IDataObject* pDataObject,
3643 void __RPC_STUB IDropTargetHelper_Drop_Stub(
3644 struct IRpcStubBuffer* This,
3645 struct IRpcChannelBuffer* pRpcChannelBuffer,
3646 PRPC_MESSAGE pRpcMessage,
3647 DWORD* pdwStubPhase);
3648 HRESULT CALLBACK IDropTargetHelper_Show_Proxy(
3649 IDropTargetHelper* This,
3651 void __RPC_STUB IDropTargetHelper_Show_Stub(
3652 struct IRpcStubBuffer* This,
3653 struct IRpcChannelBuffer* pRpcChannelBuffer,
3654 PRPC_MESSAGE pRpcMessage,
3655 DWORD* pdwStubPhase);
3657 #endif /* __IDropTargetHelper_INTERFACE_DEFINED__ */
3659 #ifndef __IContextMenu_FWD_DEFINED__
3660 #define __IContextMenu_FWD_DEFINED__
3661 typedef struct IContextMenu IContextMenu;
3664 #define CMF_NORMAL 0x00000000
3665 #define CMF_DEFAULTONLY 0x00000001
3666 #define CMF_VERBSONLY 0x00000002
3667 #define CMF_EXPLORE 0x00000004
3668 #define CMF_NOVERBS 0x00000008
3669 #define CMF_CANRENAME 0x00000010
3670 #define CMF_NODEFAULT 0x00000020
3671 #define CMF_INCLUDESTATIC 0x00000040
3672 #define CMF_EXTENDEDVERBS 0x00000100
3673 #define CMF_RESERVED 0xffff0000
3674 #define GCS_VERBA 0x00000000
3675 #define GCS_HELPTEXTA 0x00000001
3676 #define GCS_VALIDATEA 0x00000002
3677 #define GCS_VERBW 0x00000004
3678 #define GCS_HELPTEXTW 0x00000005
3679 #define GCS_VALIDATEW 0x00000006
3680 #define GCS_UNICODE 0x00000004
3681 #define GCS_VERB WINELIB_NAME_AW(GCS_VERB)
3682 #define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)
3683 #define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)
3684 #define CMDSTR_NEWFOLDERA "NewFolder"
3685 #define CMDSTR_VIEWLISTA "ViewList"
3686 #define CMDSTR_VIEWDETAILSA "ViewDetails"
3687 #if defined(__GNUC__)
3688 # define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }
3689 # define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }
3690 # define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }
3691 #elif defined(_MSC_VER)
3692 # define CMDSTR_NEWFOLDERW L"NewFolder"
3693 # define CMDSTR_VIEWLISTW L"ViewList"
3694 # define CMDSTR_VIEWDETAILSW L"ViewDetails"
3696 static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};
3697 static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};
3698 static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};
3700 #define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)
3701 #define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)
3702 #define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)
3703 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
3704 #define CMIC_MASK_ICON SEE_MASK_ICON
3705 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
3706 #define CMIC_MASK_UNICODE SEE_MASK_UNICODE
3707 #define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE
3708 #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
3709 #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
3710 #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
3711 #define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK
3712 #define CMIC_MASK_SHIFT_DOWN 0x10000000
3713 #define CMIC_MASK_PTINVOKE 0x20000000
3714 #define CMIC_MASK_CONTROL_DOWN 0x40000000
3715 #define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE
3716 #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS
3717 typedef IContextMenu *LPCONTEXTMENU;
3719 typedef struct tagCMINVOKECOMMANDINFO {
3724 LPCSTR lpParameters;
3729 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
3731 typedef struct tagCMInvokeCommandInfoEx {
3736 LPCSTR lpParameters;
3743 LPCWSTR lpParametersW;
3744 LPCWSTR lpDirectoryW;
3747 } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX;
3749 /*****************************************************************************
3750 * IContextMenu interface
3752 #ifndef __IContextMenu_INTERFACE_DEFINED__
3753 #define __IContextMenu_INTERFACE_DEFINED__
3755 DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3756 #if defined(__cplusplus) && !defined(CINTERFACE)
3757 struct IContextMenu : public IUnknown
3759 virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
3766 virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
3767 LPCMINVOKECOMMANDINFO lpici) = 0;
3769 virtual HRESULT STDMETHODCALLTYPE GetCommandString(
3778 typedef struct IContextMenuVtbl IContextMenuVtbl;
3779 struct IContextMenu {
3780 const IContextMenuVtbl* lpVtbl;
3782 struct IContextMenuVtbl {
3783 ICOM_MSVTABLE_COMPAT_FIELDS
3785 /*** IUnknown methods ***/
3786 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3791 ULONG (STDMETHODCALLTYPE *AddRef)(
3792 IContextMenu* This);
3794 ULONG (STDMETHODCALLTYPE *Release)(
3795 IContextMenu* This);
3797 /*** IContextMenu methods ***/
3798 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3806 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3808 LPCMINVOKECOMMANDINFO lpici);
3810 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3820 /*** IUnknown methods ***/
3821 #define IContextMenu_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3822 #define IContextMenu_AddRef(p) (p)->lpVtbl->AddRef(p)
3823 #define IContextMenu_Release(p) (p)->lpVtbl->Release(p)
3824 /*** IContextMenu methods ***/
3825 #define IContextMenu_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3826 #define IContextMenu_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3827 #define IContextMenu_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3831 #define IContextMenu_METHODS \
3832 ICOM_MSVTABLE_COMPAT_FIELDS \
3833 /*** IUnknown methods ***/ \
3834 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3835 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3836 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3837 /*** IContextMenu methods ***/ \
3838 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
3839 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
3840 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE;
3842 HRESULT CALLBACK IContextMenu_QueryContextMenu_Proxy(
3849 void __RPC_STUB IContextMenu_QueryContextMenu_Stub(
3850 struct IRpcStubBuffer* This,
3851 struct IRpcChannelBuffer* pRpcChannelBuffer,
3852 PRPC_MESSAGE pRpcMessage,
3853 DWORD* pdwStubPhase);
3854 HRESULT CALLBACK IContextMenu_InvokeCommand_Proxy(
3856 LPCMINVOKECOMMANDINFO lpici);
3857 void __RPC_STUB IContextMenu_InvokeCommand_Stub(
3858 struct IRpcStubBuffer* This,
3859 struct IRpcChannelBuffer* pRpcChannelBuffer,
3860 PRPC_MESSAGE pRpcMessage,
3861 DWORD* pdwStubPhase);
3862 HRESULT CALLBACK IContextMenu_GetCommandString_Proxy(
3869 void __RPC_STUB IContextMenu_GetCommandString_Stub(
3870 struct IRpcStubBuffer* This,
3871 struct IRpcChannelBuffer* pRpcChannelBuffer,
3872 PRPC_MESSAGE pRpcMessage,
3873 DWORD* pdwStubPhase);
3875 #endif /* __IContextMenu_INTERFACE_DEFINED__ */
3877 #ifndef __IContextMenu2_FWD_DEFINED__
3878 #define __IContextMenu2_FWD_DEFINED__
3879 typedef struct IContextMenu2 IContextMenu2;
3882 typedef IContextMenu2 *LPCONTEXTMENU2;
3884 /*****************************************************************************
3885 * IContextMenu2 interface
3887 #ifndef __IContextMenu2_INTERFACE_DEFINED__
3888 #define __IContextMenu2_INTERFACE_DEFINED__
3890 DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3891 #if defined(__cplusplus) && !defined(CINTERFACE)
3892 struct IContextMenu2 : public IContextMenu
3894 virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(
3901 typedef struct IContextMenu2Vtbl IContextMenu2Vtbl;
3902 struct IContextMenu2 {
3903 const IContextMenu2Vtbl* lpVtbl;
3905 struct IContextMenu2Vtbl {
3906 ICOM_MSVTABLE_COMPAT_FIELDS
3908 /*** IUnknown methods ***/
3909 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3910 IContextMenu2* This,
3914 ULONG (STDMETHODCALLTYPE *AddRef)(
3915 IContextMenu2* This);
3917 ULONG (STDMETHODCALLTYPE *Release)(
3918 IContextMenu2* This);
3920 /*** IContextMenu methods ***/
3921 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3922 IContextMenu2* This,
3929 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3930 IContextMenu2* This,
3931 LPCMINVOKECOMMANDINFO lpici);
3933 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3934 IContextMenu2* This,
3941 /*** IContextMenu2 methods ***/
3942 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
3943 IContextMenu2* This,
3950 /*** IUnknown methods ***/
3951 #define IContextMenu2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3952 #define IContextMenu2_AddRef(p) (p)->lpVtbl->AddRef(p)
3953 #define IContextMenu2_Release(p) (p)->lpVtbl->Release(p)
3954 /*** IContextMenu methods ***/
3955 #define IContextMenu2_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3956 #define IContextMenu2_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3957 #define IContextMenu2_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3958 /*** IContextMenu2 methods ***/
3959 #define IContextMenu2_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
3963 #define IContextMenu2_METHODS \
3964 ICOM_MSVTABLE_COMPAT_FIELDS \
3965 /*** IUnknown methods ***/ \
3966 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3967 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3968 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3969 /*** IContextMenu methods ***/ \
3970 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
3971 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
3972 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \
3973 /*** IContextMenu2 methods ***/ \
3974 STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE;
3976 HRESULT CALLBACK IContextMenu2_HandleMenuMsg_Proxy(
3977 IContextMenu2* This,
3981 void __RPC_STUB IContextMenu2_HandleMenuMsg_Stub(
3982 struct IRpcStubBuffer* This,
3983 struct IRpcChannelBuffer* pRpcChannelBuffer,
3984 PRPC_MESSAGE pRpcMessage,
3985 DWORD* pdwStubPhase);
3987 #endif /* __IContextMenu2_INTERFACE_DEFINED__ */
3989 #ifndef __IContextMenu3_FWD_DEFINED__
3990 #define __IContextMenu3_FWD_DEFINED__
3991 typedef struct IContextMenu3 IContextMenu3;
3994 typedef IContextMenu3 *LPCONTEXTMENU3;
3996 /*****************************************************************************
3997 * IContextMenu3 interface
3999 #ifndef __IContextMenu3_INTERFACE_DEFINED__
4000 #define __IContextMenu3_INTERFACE_DEFINED__
4002 DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19);
4003 #if defined(__cplusplus) && !defined(CINTERFACE)
4004 struct IContextMenu3 : public IContextMenu2
4006 virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(
4010 LRESULT* plResult) = 0;
4014 typedef struct IContextMenu3Vtbl IContextMenu3Vtbl;
4015 struct IContextMenu3 {
4016 const IContextMenu3Vtbl* lpVtbl;
4018 struct IContextMenu3Vtbl {
4019 ICOM_MSVTABLE_COMPAT_FIELDS
4021 /*** IUnknown methods ***/
4022 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4023 IContextMenu3* This,
4027 ULONG (STDMETHODCALLTYPE *AddRef)(
4028 IContextMenu3* This);
4030 ULONG (STDMETHODCALLTYPE *Release)(
4031 IContextMenu3* This);
4033 /*** IContextMenu methods ***/
4034 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
4035 IContextMenu3* This,
4042 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
4043 IContextMenu3* This,
4044 LPCMINVOKECOMMANDINFO lpici);
4046 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
4047 IContextMenu3* This,
4054 /*** IContextMenu2 methods ***/
4055 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
4056 IContextMenu3* This,
4061 /*** IContextMenu3 methods ***/
4062 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
4063 IContextMenu3* This,
4071 /*** IUnknown methods ***/
4072 #define IContextMenu3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4073 #define IContextMenu3_AddRef(p) (p)->lpVtbl->AddRef(p)
4074 #define IContextMenu3_Release(p) (p)->lpVtbl->Release(p)
4075 /*** IContextMenu methods ***/
4076 #define IContextMenu3_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
4077 #define IContextMenu3_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
4078 #define IContextMenu3_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
4079 /*** IContextMenu2 methods ***/
4080 #define IContextMenu3_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
4081 /*** IContextMenu3 methods ***/
4082 #define IContextMenu3_HandleMenuMsg2(p,a,b,c,d) (p)->lpVtbl->HandleMenuMsg2(p,a,b,c,d)
4086 #define IContextMenu3_METHODS \
4087 ICOM_MSVTABLE_COMPAT_FIELDS \
4088 /*** IUnknown methods ***/ \
4089 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4090 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4091 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4092 /*** IContextMenu methods ***/ \
4093 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
4094 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
4095 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \
4096 /*** IContextMenu2 methods ***/ \
4097 STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE; \
4098 /*** IContextMenu3 methods ***/ \
4099 STDMETHOD_(HRESULT,HandleMenuMsg2)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* plResult) PURE;
4101 HRESULT CALLBACK IContextMenu3_HandleMenuMsg2_Proxy(
4102 IContextMenu3* This,
4107 void __RPC_STUB IContextMenu3_HandleMenuMsg2_Stub(
4108 struct IRpcStubBuffer* This,
4109 struct IRpcChannelBuffer* pRpcChannelBuffer,
4110 PRPC_MESSAGE pRpcMessage,
4111 DWORD* pdwStubPhase);
4113 #endif /* __IContextMenu3_INTERFACE_DEFINED__ */
4115 #ifndef __IShellExecuteHookA_FWD_DEFINED__
4116 #define __IShellExecuteHookA_FWD_DEFINED__
4117 typedef struct IShellExecuteHookA IShellExecuteHookA;
4120 struct _SHELLEXECUTEINFOA;
4121 /*****************************************************************************
4122 * IShellExecuteHookA interface
4124 #ifndef __IShellExecuteHookA_INTERFACE_DEFINED__
4125 #define __IShellExecuteHookA_INTERFACE_DEFINED__
4127 DEFINE_GUID(IID_IShellExecuteHookA, 0x000214f5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4128 #if defined(__cplusplus) && !defined(CINTERFACE)
4129 struct IShellExecuteHookA : public IUnknown
4131 virtual HRESULT STDMETHODCALLTYPE Execute(
4132 struct _SHELLEXECUTEINFOA* pei) = 0;
4136 typedef struct IShellExecuteHookAVtbl IShellExecuteHookAVtbl;
4137 struct IShellExecuteHookA {
4138 const IShellExecuteHookAVtbl* lpVtbl;
4140 struct IShellExecuteHookAVtbl {
4141 ICOM_MSVTABLE_COMPAT_FIELDS
4143 /*** IUnknown methods ***/
4144 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4145 IShellExecuteHookA* This,
4149 ULONG (STDMETHODCALLTYPE *AddRef)(
4150 IShellExecuteHookA* This);
4152 ULONG (STDMETHODCALLTYPE *Release)(
4153 IShellExecuteHookA* This);
4155 /*** IShellExecuteHookA methods ***/
4156 HRESULT (STDMETHODCALLTYPE *Execute)(
4157 IShellExecuteHookA* This,
4158 struct _SHELLEXECUTEINFOA* pei);
4162 /*** IUnknown methods ***/
4163 #define IShellExecuteHookA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4164 #define IShellExecuteHookA_AddRef(p) (p)->lpVtbl->AddRef(p)
4165 #define IShellExecuteHookA_Release(p) (p)->lpVtbl->Release(p)
4166 /*** IShellExecuteHookA methods ***/
4167 #define IShellExecuteHookA_Execute(p,a) (p)->lpVtbl->Execute(p,a)
4171 #define IShellExecuteHookA_METHODS \
4172 ICOM_MSVTABLE_COMPAT_FIELDS \
4173 /*** IUnknown methods ***/ \
4174 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4175 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4176 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4177 /*** IShellExecuteHookA methods ***/ \
4178 STDMETHOD_(HRESULT,Execute)(THIS_ struct _SHELLEXECUTEINFOA* pei) PURE;
4180 HRESULT CALLBACK IShellExecuteHookA_Execute_Proxy(
4181 IShellExecuteHookA* This,
4182 struct _SHELLEXECUTEINFOA* pei);
4183 void __RPC_STUB IShellExecuteHookA_Execute_Stub(
4184 struct IRpcStubBuffer* This,
4185 struct IRpcChannelBuffer* pRpcChannelBuffer,
4186 PRPC_MESSAGE pRpcMessage,
4187 DWORD* pdwStubPhase);
4189 #endif /* __IShellExecuteHookA_INTERFACE_DEFINED__ */
4191 #ifndef __IShellExecuteHookW_FWD_DEFINED__
4192 #define __IShellExecuteHookW_FWD_DEFINED__
4193 typedef struct IShellExecuteHookW IShellExecuteHookW;
4196 struct _SHELLEXECUTEINFOW;
4197 /*****************************************************************************
4198 * IShellExecuteHookW interface
4200 #ifndef __IShellExecuteHookW_INTERFACE_DEFINED__
4201 #define __IShellExecuteHookW_INTERFACE_DEFINED__
4203 DEFINE_GUID(IID_IShellExecuteHookW, 0x000214fb, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4204 #if defined(__cplusplus) && !defined(CINTERFACE)
4205 struct IShellExecuteHookW : public IUnknown
4207 virtual HRESULT STDMETHODCALLTYPE Execute(
4208 struct _SHELLEXECUTEINFOW* pei) = 0;
4212 typedef struct IShellExecuteHookWVtbl IShellExecuteHookWVtbl;
4213 struct IShellExecuteHookW {
4214 const IShellExecuteHookWVtbl* lpVtbl;
4216 struct IShellExecuteHookWVtbl {
4217 ICOM_MSVTABLE_COMPAT_FIELDS
4219 /*** IUnknown methods ***/
4220 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4221 IShellExecuteHookW* This,
4225 ULONG (STDMETHODCALLTYPE *AddRef)(
4226 IShellExecuteHookW* This);
4228 ULONG (STDMETHODCALLTYPE *Release)(
4229 IShellExecuteHookW* This);
4231 /*** IShellExecuteHookW methods ***/
4232 HRESULT (STDMETHODCALLTYPE *Execute)(
4233 IShellExecuteHookW* This,
4234 struct _SHELLEXECUTEINFOW* pei);
4238 /*** IUnknown methods ***/
4239 #define IShellExecuteHookW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4240 #define IShellExecuteHookW_AddRef(p) (p)->lpVtbl->AddRef(p)
4241 #define IShellExecuteHookW_Release(p) (p)->lpVtbl->Release(p)
4242 /*** IShellExecuteHookW methods ***/
4243 #define IShellExecuteHookW_Execute(p,a) (p)->lpVtbl->Execute(p,a)
4247 #define IShellExecuteHookW_METHODS \
4248 ICOM_MSVTABLE_COMPAT_FIELDS \
4249 /*** IUnknown methods ***/ \
4250 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4251 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4252 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4253 /*** IShellExecuteHookW methods ***/ \
4254 STDMETHOD_(HRESULT,Execute)(THIS_ struct _SHELLEXECUTEINFOW* pei) PURE;
4256 HRESULT CALLBACK IShellExecuteHookW_Execute_Proxy(
4257 IShellExecuteHookW* This,
4258 struct _SHELLEXECUTEINFOW* pei);
4259 void __RPC_STUB IShellExecuteHookW_Execute_Stub(
4260 struct IRpcStubBuffer* This,
4261 struct IRpcChannelBuffer* pRpcChannelBuffer,
4262 PRPC_MESSAGE pRpcMessage,
4263 DWORD* pdwStubPhase);
4265 #endif /* __IShellExecuteHookW_INTERFACE_DEFINED__ */
4270 #endif /* __WIDL_SHOBJIDL_H */