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__ */
2750 #endif /* __WIDL_SHOBJIDL_H */