1 /*** Autogenerated by WIDL 0.1 from shobjidl.idl - Do not edit ***/
5 #ifndef __WIDL_SHOBJIDL_H
6 #define __WIDL_SHOBJIDL_H
17 #ifndef __IPersistFolder_FWD_DEFINED__
18 #define __IPersistFolder_FWD_DEFINED__
19 typedef struct IPersistFolder IPersistFolder;
22 typedef IPersistFolder *LPPERSISTFOLDER;
24 /*****************************************************************************
25 * IPersistFolder interface
27 #ifndef __IPersistFolder_INTERFACE_DEFINED__
28 #define __IPersistFolder_INTERFACE_DEFINED__
30 DEFINE_GUID(IID_IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
31 #if defined(__cplusplus) && !defined(CINTERFACE)
32 struct IPersistFolder : public IPersist
34 virtual HRESULT STDMETHODCALLTYPE Initialize(
35 LPCITEMIDLIST pidl) = 0;
39 typedef struct IPersistFolderVtbl IPersistFolderVtbl;
40 struct IPersistFolder {
41 const IPersistFolderVtbl* lpVtbl;
43 struct IPersistFolderVtbl {
46 /*** IUnknown methods ***/
47 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
52 ULONG (STDMETHODCALLTYPE *AddRef)(
53 IPersistFolder* This);
55 ULONG (STDMETHODCALLTYPE *Release)(
56 IPersistFolder* This);
58 /*** IPersist methods ***/
59 HRESULT (STDMETHODCALLTYPE *GetClassID)(
63 /*** IPersistFolder methods ***/
64 HRESULT (STDMETHODCALLTYPE *Initialize)(
72 /*** IUnknown methods ***/
73 #define IPersistFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
74 #define IPersistFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
75 #define IPersistFolder_Release(p) (p)->lpVtbl->Release(p)
76 /*** IPersist methods ***/
77 #define IPersistFolder_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
78 /*** IPersistFolder methods ***/
79 #define IPersistFolder_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
84 #define IPersistFolder_METHODS \
85 /*** IUnknown methods ***/ \
86 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
87 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
88 STDMETHOD_(ULONG,Release)(THIS) PURE; \
89 /*** IPersist methods ***/ \
90 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
91 /*** IPersistFolder methods ***/ \
92 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE;
94 HRESULT CALLBACK IPersistFolder_Initialize_Proxy(
97 void __RPC_STUB IPersistFolder_Initialize_Stub(
98 struct IRpcStubBuffer* This,
99 struct IRpcChannelBuffer* pRpcChannelBuffer,
100 PRPC_MESSAGE pRpcMessage,
101 DWORD* pdwStubPhase);
103 #endif /* __IPersistFolder_INTERFACE_DEFINED__ */
105 #ifndef __IPersistFolder2_FWD_DEFINED__
106 #define __IPersistFolder2_FWD_DEFINED__
107 typedef struct IPersistFolder2 IPersistFolder2;
110 typedef IPersistFolder2 *LPPERSISTFOLDER2;
112 /*****************************************************************************
113 * IPersistFolder2 interface
115 #ifndef __IPersistFolder2_INTERFACE_DEFINED__
116 #define __IPersistFolder2_INTERFACE_DEFINED__
118 DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
119 #if defined(__cplusplus) && !defined(CINTERFACE)
120 struct IPersistFolder2 : public IPersistFolder
122 virtual HRESULT STDMETHODCALLTYPE GetCurFolder(
123 LPITEMIDLIST* ppidl) = 0;
127 typedef struct IPersistFolder2Vtbl IPersistFolder2Vtbl;
128 struct IPersistFolder2 {
129 const IPersistFolder2Vtbl* lpVtbl;
131 struct IPersistFolder2Vtbl {
134 /*** IUnknown methods ***/
135 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
136 IPersistFolder2* This,
140 ULONG (STDMETHODCALLTYPE *AddRef)(
141 IPersistFolder2* This);
143 ULONG (STDMETHODCALLTYPE *Release)(
144 IPersistFolder2* This);
146 /*** IPersist methods ***/
147 HRESULT (STDMETHODCALLTYPE *GetClassID)(
148 IPersistFolder2* This,
151 /*** IPersistFolder methods ***/
152 HRESULT (STDMETHODCALLTYPE *Initialize)(
153 IPersistFolder2* This,
156 /*** IPersistFolder2 methods ***/
157 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
158 IPersistFolder2* This,
159 LPITEMIDLIST* ppidl);
165 /*** IUnknown methods ***/
166 #define IPersistFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
167 #define IPersistFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
168 #define IPersistFolder2_Release(p) (p)->lpVtbl->Release(p)
169 /*** IPersist methods ***/
170 #define IPersistFolder2_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
171 /*** IPersistFolder methods ***/
172 #define IPersistFolder2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
173 /*** IPersistFolder2 methods ***/
174 #define IPersistFolder2_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
179 #define IPersistFolder2_METHODS \
180 /*** IUnknown methods ***/ \
181 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
182 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
183 STDMETHOD_(ULONG,Release)(THIS) PURE; \
184 /*** IPersist methods ***/ \
185 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
186 /*** IPersistFolder methods ***/ \
187 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \
188 /*** IPersistFolder2 methods ***/ \
189 STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE;
191 HRESULT CALLBACK IPersistFolder2_GetCurFolder_Proxy(
192 IPersistFolder2* This,
193 LPITEMIDLIST* ppidl);
194 void __RPC_STUB IPersistFolder2_GetCurFolder_Stub(
195 struct IRpcStubBuffer* This,
196 struct IRpcChannelBuffer* pRpcChannelBuffer,
197 PRPC_MESSAGE pRpcMessage,
198 DWORD* pdwStubPhase);
200 #endif /* __IPersistFolder2_INTERFACE_DEFINED__ */
202 #ifndef __IEnumIDList_FWD_DEFINED__
203 #define __IEnumIDList_FWD_DEFINED__
204 typedef struct IEnumIDList IEnumIDList;
207 typedef IEnumIDList *LPENUMIDLIST;
209 /*****************************************************************************
210 * IEnumIDList interface
212 #ifndef __IEnumIDList_INTERFACE_DEFINED__
213 #define __IEnumIDList_INTERFACE_DEFINED__
215 DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
216 #if defined(__cplusplus) && !defined(CINTERFACE)
217 struct IEnumIDList : public IUnknown
219 virtual HRESULT STDMETHODCALLTYPE Next(
222 ULONG* pceltFetched) = 0;
224 virtual HRESULT STDMETHODCALLTYPE Skip(
227 virtual HRESULT STDMETHODCALLTYPE Reset(
230 virtual HRESULT STDMETHODCALLTYPE Clone(
231 IEnumIDList** ppenum) = 0;
235 typedef struct IEnumIDListVtbl IEnumIDListVtbl;
237 const IEnumIDListVtbl* lpVtbl;
239 struct IEnumIDListVtbl {
242 /*** IUnknown methods ***/
243 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
248 ULONG (STDMETHODCALLTYPE *AddRef)(
251 ULONG (STDMETHODCALLTYPE *Release)(
254 /*** IEnumIDList methods ***/
255 HRESULT (STDMETHODCALLTYPE *Next)(
259 ULONG* pceltFetched);
261 HRESULT (STDMETHODCALLTYPE *Skip)(
265 HRESULT (STDMETHODCALLTYPE *Reset)(
268 HRESULT (STDMETHODCALLTYPE *Clone)(
270 IEnumIDList** ppenum);
276 /*** IUnknown methods ***/
277 #define IEnumIDList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
278 #define IEnumIDList_AddRef(p) (p)->lpVtbl->AddRef(p)
279 #define IEnumIDList_Release(p) (p)->lpVtbl->Release(p)
280 /*** IEnumIDList methods ***/
281 #define IEnumIDList_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
282 #define IEnumIDList_Skip(p,a) (p)->lpVtbl->Skip(p,a)
283 #define IEnumIDList_Reset(p) (p)->lpVtbl->Reset(p)
284 #define IEnumIDList_Clone(p,a) (p)->lpVtbl->Clone(p,a)
289 #define IEnumIDList_METHODS \
290 /*** IUnknown methods ***/ \
291 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
292 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
293 STDMETHOD_(ULONG,Release)(THIS) PURE; \
294 /*** IEnumIDList methods ***/ \
295 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, LPITEMIDLIST* rgelt, ULONG* pceltFetched) PURE; \
296 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
297 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
298 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumIDList** ppenum) PURE;
300 HRESULT CALLBACK IEnumIDList_Next_Proxy(
304 ULONG* pceltFetched);
305 void __RPC_STUB IEnumIDList_Next_Stub(
306 struct IRpcStubBuffer* This,
307 struct IRpcChannelBuffer* pRpcChannelBuffer,
308 PRPC_MESSAGE pRpcMessage,
309 DWORD* pdwStubPhase);
310 HRESULT CALLBACK IEnumIDList_Skip_Proxy(
313 void __RPC_STUB IEnumIDList_Skip_Stub(
314 struct IRpcStubBuffer* This,
315 struct IRpcChannelBuffer* pRpcChannelBuffer,
316 PRPC_MESSAGE pRpcMessage,
317 DWORD* pdwStubPhase);
318 HRESULT CALLBACK IEnumIDList_Reset_Proxy(
320 void __RPC_STUB IEnumIDList_Reset_Stub(
321 struct IRpcStubBuffer* This,
322 struct IRpcChannelBuffer* pRpcChannelBuffer,
323 PRPC_MESSAGE pRpcMessage,
324 DWORD* pdwStubPhase);
325 HRESULT CALLBACK IEnumIDList_Clone_Proxy(
327 IEnumIDList** ppenum);
328 void __RPC_STUB IEnumIDList_Clone_Stub(
329 struct IRpcStubBuffer* This,
330 struct IRpcChannelBuffer* pRpcChannelBuffer,
331 PRPC_MESSAGE pRpcMessage,
332 DWORD* pdwStubPhase);
334 #endif /* __IEnumIDList_INTERFACE_DEFINED__ */
336 #ifndef __IShellFolder_FWD_DEFINED__
337 #define __IShellFolder_FWD_DEFINED__
338 typedef struct IShellFolder IShellFolder;
341 typedef IShellFolder *LPSHELLFOLDER;
343 typedef enum tagSHGDN {
346 SHGDN_FOREDITING = 0x1000,
347 SHGDN_INCLUDE_NONFILESYS = 0x2000,
348 SHGDN_FORADDRESSBAR = 0x4000,
349 SHGDN_FORPARSING = 0x8000
352 typedef DWORD SHGDNF;
355 SHCONTF_FOLDERS = 32,
356 SHCONTF_NONFOLDERS = 64,
357 SHCONTF_INCLUDEHIDDEN = 128,
358 SHCONTF_INIT_ON_FIRST_NEXT = 256,
359 SHCONTF_NETPRINTERSRCH = 512,
360 SHCONTF_SHAREABLE = 1024,
361 SHCONTF_STORAGE = 2048
364 typedef DWORD SHCONTF;
366 #define SFGAO_CANCOPY DROPEFFECT_COPY
367 #define SFGAO_CANMOVE DROPEFFECT_MOVE
368 #define SFGAO_CANLINK DROPEFFECT_LINK
369 #define SFGAO_CANRENAME 0x00000010L
370 #define SFGAO_CANDELETE 0x00000020L
371 #define SFGAO_HASPROPSHEET 0x00000040L
372 #define SFGAO_DROPTARGET 0x00000100L
373 #define SFGAO_CAPABILITYMASK 0x00000177L
374 #define SFGAO_LINK 0x00010000L
375 #define SFGAO_SHARE 0x00020000L
376 #define SFGAO_READONLY 0x00040000L
377 #define SFGAO_GHOSTED 0x00080000L
378 #define SFGAO_HIDDEN 0x00080000L
379 #define SFGAO_DISPLAYATTRMASK 0x000F0000L
380 #define SFGAO_FILESYSANCESTOR 0x10000000L
381 #define SFGAO_FOLDER 0x20000000L
382 #define SFGAO_FILESYSTEM 0x40000000L
383 #define SFGAO_HASSUBFOLDER 0x80000000L
384 #define SFGAO_CONTENTSMASK 0x80000000L
385 #define SFGAO_VALIDATE 0x01000000L
386 #define SFGAO_REMOVABLE 0x02000000L
387 #define SFGAO_COMPRESSED 0x04000000L
388 #define SFGAO_BROWSABLE 0x08000000L
389 #define SFGAO_NONENUMERATED 0x00100000L
390 #define SFGAO_NEWCONTENT 0x00200000L
391 typedef ULONG SFGAOF;
393 /*****************************************************************************
394 * IShellFolder interface
396 #ifndef __IShellFolder_INTERFACE_DEFINED__
397 #define __IShellFolder_INTERFACE_DEFINED__
399 DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
400 #if defined(__cplusplus) && !defined(CINTERFACE)
401 struct IShellFolder : public IUnknown
403 virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
406 LPOLESTR lpszDisplayName,
409 ULONG* pdwAttributes) = 0;
411 virtual HRESULT STDMETHODCALLTYPE EnumObjects(
414 IEnumIDList** ppenumIDList) = 0;
416 virtual HRESULT STDMETHODCALLTYPE BindToObject(
422 virtual HRESULT STDMETHODCALLTYPE BindToStorage(
428 virtual HRESULT STDMETHODCALLTYPE CompareIDs(
431 LPCITEMIDLIST pidl2) = 0;
433 virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
438 virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
440 LPCITEMIDLIST* apidl,
441 SFGAOF* rgfInOut) = 0;
443 virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
446 LPCITEMIDLIST* apidl,
451 virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
456 virtual HRESULT STDMETHODCALLTYPE SetNameOf(
461 LPITEMIDLIST* ppidlOut) = 0;
465 typedef struct IShellFolderVtbl IShellFolderVtbl;
466 struct IShellFolder {
467 const IShellFolderVtbl* lpVtbl;
469 struct IShellFolderVtbl {
472 /*** IUnknown methods ***/
473 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
478 ULONG (STDMETHODCALLTYPE *AddRef)(
481 ULONG (STDMETHODCALLTYPE *Release)(
484 /*** IShellFolder methods ***/
485 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
489 LPOLESTR lpszDisplayName,
492 ULONG* pdwAttributes);
494 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
498 IEnumIDList** ppenumIDList);
500 HRESULT (STDMETHODCALLTYPE *BindToObject)(
507 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
514 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
518 LPCITEMIDLIST pidl2);
520 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
526 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
529 LPCITEMIDLIST* apidl,
532 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
536 LPCITEMIDLIST* apidl,
541 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
547 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
553 LPITEMIDLIST* ppidlOut);
559 /*** IUnknown methods ***/
560 #define IShellFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
561 #define IShellFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
562 #define IShellFolder_Release(p) (p)->lpVtbl->Release(p)
563 /*** IShellFolder methods ***/
564 #define IShellFolder_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
565 #define IShellFolder_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
566 #define IShellFolder_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
567 #define IShellFolder_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
568 #define IShellFolder_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
569 #define IShellFolder_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
570 #define IShellFolder_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
571 #define IShellFolder_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
572 #define IShellFolder_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
573 #define IShellFolder_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
578 #define IShellFolder_METHODS \
579 /*** IUnknown methods ***/ \
580 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
581 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
582 STDMETHOD_(ULONG,Release)(THIS) PURE; \
583 /*** IShellFolder methods ***/ \
584 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \
585 STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \
586 STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \
587 STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \
588 STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \
589 STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \
590 STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \
591 STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \
592 STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \
593 STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE;
595 HRESULT CALLBACK IShellFolder_ParseDisplayName_Proxy(
599 LPOLESTR lpszDisplayName,
602 ULONG* pdwAttributes);
603 void __RPC_STUB IShellFolder_ParseDisplayName_Stub(
604 struct IRpcStubBuffer* This,
605 struct IRpcChannelBuffer* pRpcChannelBuffer,
606 PRPC_MESSAGE pRpcMessage,
607 DWORD* pdwStubPhase);
608 HRESULT CALLBACK IShellFolder_EnumObjects_Proxy(
612 IEnumIDList** ppenumIDList);
613 void __RPC_STUB IShellFolder_EnumObjects_Stub(
614 struct IRpcStubBuffer* This,
615 struct IRpcChannelBuffer* pRpcChannelBuffer,
616 PRPC_MESSAGE pRpcMessage,
617 DWORD* pdwStubPhase);
618 HRESULT CALLBACK IShellFolder_BindToObject_Proxy(
624 void __RPC_STUB IShellFolder_BindToObject_Stub(
625 struct IRpcStubBuffer* This,
626 struct IRpcChannelBuffer* pRpcChannelBuffer,
627 PRPC_MESSAGE pRpcMessage,
628 DWORD* pdwStubPhase);
629 HRESULT CALLBACK IShellFolder_BindToStorage_Proxy(
635 void __RPC_STUB IShellFolder_BindToStorage_Stub(
636 struct IRpcStubBuffer* This,
637 struct IRpcChannelBuffer* pRpcChannelBuffer,
638 PRPC_MESSAGE pRpcMessage,
639 DWORD* pdwStubPhase);
640 HRESULT CALLBACK IShellFolder_CompareIDs_Proxy(
644 LPCITEMIDLIST pidl2);
645 void __RPC_STUB IShellFolder_CompareIDs_Stub(
646 struct IRpcStubBuffer* This,
647 struct IRpcChannelBuffer* pRpcChannelBuffer,
648 PRPC_MESSAGE pRpcMessage,
649 DWORD* pdwStubPhase);
650 HRESULT CALLBACK IShellFolder_CreateViewObject_Proxy(
655 void __RPC_STUB IShellFolder_CreateViewObject_Stub(
656 struct IRpcStubBuffer* This,
657 struct IRpcChannelBuffer* pRpcChannelBuffer,
658 PRPC_MESSAGE pRpcMessage,
659 DWORD* pdwStubPhase);
660 HRESULT CALLBACK IShellFolder_GetAttributesOf_Proxy(
663 LPCITEMIDLIST* apidl,
665 void __RPC_STUB IShellFolder_GetAttributesOf_Stub(
666 struct IRpcStubBuffer* This,
667 struct IRpcChannelBuffer* pRpcChannelBuffer,
668 PRPC_MESSAGE pRpcMessage,
669 DWORD* pdwStubPhase);
670 HRESULT CALLBACK IShellFolder_GetUIObjectOf_Proxy(
674 LPCITEMIDLIST* apidl,
678 void __RPC_STUB IShellFolder_GetUIObjectOf_Stub(
679 struct IRpcStubBuffer* This,
680 struct IRpcChannelBuffer* pRpcChannelBuffer,
681 PRPC_MESSAGE pRpcMessage,
682 DWORD* pdwStubPhase);
683 HRESULT CALLBACK IShellFolder_GetDisplayNameOf_Proxy(
688 void __RPC_STUB IShellFolder_GetDisplayNameOf_Stub(
689 struct IRpcStubBuffer* This,
690 struct IRpcChannelBuffer* pRpcChannelBuffer,
691 PRPC_MESSAGE pRpcMessage,
692 DWORD* pdwStubPhase);
693 HRESULT CALLBACK IShellFolder_SetNameOf_Proxy(
699 LPITEMIDLIST* ppidlOut);
700 void __RPC_STUB IShellFolder_SetNameOf_Stub(
701 struct IRpcStubBuffer* This,
702 struct IRpcChannelBuffer* pRpcChannelBuffer,
703 PRPC_MESSAGE pRpcMessage,
704 DWORD* pdwStubPhase);
706 #endif /* __IShellFolder_INTERFACE_DEFINED__ */
708 #ifndef __IEnumExtraSearch_FWD_DEFINED__
709 #define __IEnumExtraSearch_FWD_DEFINED__
710 typedef struct IEnumExtraSearch IEnumExtraSearch;
713 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
717 WCHAR wszFriendlyName[80];
719 } EXTRASEARCH, *LPEXTRASEARCH;
721 /*****************************************************************************
722 * IEnumExtraSearch interface
724 #ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
725 #define __IEnumExtraSearch_INTERFACE_DEFINED__
727 DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13);
728 #if defined(__cplusplus) && !defined(CINTERFACE)
729 struct IEnumExtraSearch : public IUnknown
731 virtual HRESULT STDMETHODCALLTYPE Next(
734 ULONG* pceltFetched) = 0;
736 virtual HRESULT STDMETHODCALLTYPE Skip(
739 virtual HRESULT STDMETHODCALLTYPE Reset(
742 virtual HRESULT STDMETHODCALLTYPE Clone(
743 IEnumExtraSearch** ppenum) = 0;
747 typedef struct IEnumExtraSearchVtbl IEnumExtraSearchVtbl;
748 struct IEnumExtraSearch {
749 const IEnumExtraSearchVtbl* lpVtbl;
751 struct IEnumExtraSearchVtbl {
754 /*** IUnknown methods ***/
755 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
756 IEnumExtraSearch* This,
760 ULONG (STDMETHODCALLTYPE *AddRef)(
761 IEnumExtraSearch* This);
763 ULONG (STDMETHODCALLTYPE *Release)(
764 IEnumExtraSearch* This);
766 /*** IEnumExtraSearch methods ***/
767 HRESULT (STDMETHODCALLTYPE *Next)(
768 IEnumExtraSearch* This,
771 ULONG* pceltFetched);
773 HRESULT (STDMETHODCALLTYPE *Skip)(
774 IEnumExtraSearch* This,
777 HRESULT (STDMETHODCALLTYPE *Reset)(
778 IEnumExtraSearch* This);
780 HRESULT (STDMETHODCALLTYPE *Clone)(
781 IEnumExtraSearch* This,
782 IEnumExtraSearch** ppenum);
788 /*** IUnknown methods ***/
789 #define IEnumExtraSearch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
790 #define IEnumExtraSearch_AddRef(p) (p)->lpVtbl->AddRef(p)
791 #define IEnumExtraSearch_Release(p) (p)->lpVtbl->Release(p)
792 /*** IEnumExtraSearch methods ***/
793 #define IEnumExtraSearch_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
794 #define IEnumExtraSearch_Skip(p,a) (p)->lpVtbl->Skip(p,a)
795 #define IEnumExtraSearch_Reset(p) (p)->lpVtbl->Reset(p)
796 #define IEnumExtraSearch_Clone(p,a) (p)->lpVtbl->Clone(p,a)
801 #define IEnumExtraSearch_METHODS \
802 /*** IUnknown methods ***/ \
803 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
804 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
805 STDMETHOD_(ULONG,Release)(THIS) PURE; \
806 /*** IEnumExtraSearch methods ***/ \
807 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, EXTRASEARCH* rgelt, ULONG* pceltFetched) PURE; \
808 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
809 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
810 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumExtraSearch** ppenum) PURE;
812 HRESULT CALLBACK IEnumExtraSearch_Next_Proxy(
813 IEnumExtraSearch* This,
816 ULONG* pceltFetched);
817 void __RPC_STUB IEnumExtraSearch_Next_Stub(
818 struct IRpcStubBuffer* This,
819 struct IRpcChannelBuffer* pRpcChannelBuffer,
820 PRPC_MESSAGE pRpcMessage,
821 DWORD* pdwStubPhase);
822 HRESULT CALLBACK IEnumExtraSearch_Skip_Proxy(
823 IEnumExtraSearch* This,
825 void __RPC_STUB IEnumExtraSearch_Skip_Stub(
826 struct IRpcStubBuffer* This,
827 struct IRpcChannelBuffer* pRpcChannelBuffer,
828 PRPC_MESSAGE pRpcMessage,
829 DWORD* pdwStubPhase);
830 HRESULT CALLBACK IEnumExtraSearch_Reset_Proxy(
831 IEnumExtraSearch* This);
832 void __RPC_STUB IEnumExtraSearch_Reset_Stub(
833 struct IRpcStubBuffer* This,
834 struct IRpcChannelBuffer* pRpcChannelBuffer,
835 PRPC_MESSAGE pRpcMessage,
836 DWORD* pdwStubPhase);
837 HRESULT CALLBACK IEnumExtraSearch_Clone_Proxy(
838 IEnumExtraSearch* This,
839 IEnumExtraSearch** ppenum);
840 void __RPC_STUB IEnumExtraSearch_Clone_Stub(
841 struct IRpcStubBuffer* This,
842 struct IRpcChannelBuffer* pRpcChannelBuffer,
843 PRPC_MESSAGE pRpcMessage,
844 DWORD* pdwStubPhase);
846 #endif /* __IEnumExtraSearch_INTERFACE_DEFINED__ */
848 #ifndef __IShellFolder2_FWD_DEFINED__
849 #define __IShellFolder2_FWD_DEFINED__
850 typedef struct IShellFolder2 IShellFolder2;
854 SHCOLSTATE_TYPE_STR = 0x1,
855 SHCOLSTATE_TYPE_INT = 0x2,
856 SHCOLSTATE_TYPE_DATE = 0x3,
857 SHCOLSTATE_TYPEMASK = 0xf,
858 SHCOLSTATE_ONBYDEFAULT = 0x10,
859 SHCOLSTATE_SLOW = 0x20,
860 SHCOLSTATE_EXTENDED = 0x40,
861 SHCOLSTATE_SECONDARYUI = 0x80,
862 SHCOLSTATE_HIDDEN = 0x100,
863 SHCOLSTATE_PREFER_VARCMP = 0x200
866 typedef DWORD SHCOLSTATEF;
871 } SHCOLUMNID, *LPSHCOLUMNID;
873 typedef const SHCOLUMNID *LPCSHCOLUMNID;
875 /*****************************************************************************
876 * IShellFolder2 interface
878 #ifndef __IShellFolder2_INTERFACE_DEFINED__
879 #define __IShellFolder2_INTERFACE_DEFINED__
881 DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1);
882 #if defined(__cplusplus) && !defined(CINTERFACE)
883 struct IShellFolder2 : public IShellFolder
885 virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(
888 virtual HRESULT STDMETHODCALLTYPE EnumSearches(
889 IEnumExtraSearch** ppenum) = 0;
891 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
894 ULONG* pDisplay) = 0;
896 virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
898 SHCOLSTATEF* pcsFlags) = 0;
900 virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
902 const SHCOLUMNID* pscid,
905 virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
908 SHELLDETAILS* psd) = 0;
910 virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
912 SHCOLUMNID* pscid) = 0;
916 typedef struct IShellFolder2Vtbl IShellFolder2Vtbl;
917 struct IShellFolder2 {
918 const IShellFolder2Vtbl* lpVtbl;
920 struct IShellFolder2Vtbl {
923 /*** IUnknown methods ***/
924 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
929 ULONG (STDMETHODCALLTYPE *AddRef)(
930 IShellFolder2* This);
932 ULONG (STDMETHODCALLTYPE *Release)(
933 IShellFolder2* This);
935 /*** IShellFolder methods ***/
936 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
940 LPOLESTR lpszDisplayName,
943 ULONG* pdwAttributes);
945 HRESULT (STDMETHODCALLTYPE *EnumObjects)(
949 IEnumIDList** ppenumIDList);
951 HRESULT (STDMETHODCALLTYPE *BindToObject)(
958 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
965 HRESULT (STDMETHODCALLTYPE *CompareIDs)(
969 LPCITEMIDLIST pidl2);
971 HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
977 HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
980 LPCITEMIDLIST* apidl,
983 HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
987 LPCITEMIDLIST* apidl,
992 HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
998 HRESULT (STDMETHODCALLTYPE *SetNameOf)(
1004 LPITEMIDLIST* ppidlOut);
1006 /*** IShellFolder2 methods ***/
1007 HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
1008 IShellFolder2* This,
1011 HRESULT (STDMETHODCALLTYPE *EnumSearches)(
1012 IShellFolder2* This,
1013 IEnumExtraSearch** ppenum);
1015 HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
1016 IShellFolder2* This,
1021 HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
1022 IShellFolder2* This,
1024 SHCOLSTATEF* pcsFlags);
1026 HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
1027 IShellFolder2* This,
1029 const SHCOLUMNID* pscid,
1032 HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
1033 IShellFolder2* This,
1038 HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
1039 IShellFolder2* This,
1047 /*** IUnknown methods ***/
1048 #define IShellFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1049 #define IShellFolder2_AddRef(p) (p)->lpVtbl->AddRef(p)
1050 #define IShellFolder2_Release(p) (p)->lpVtbl->Release(p)
1051 /*** IShellFolder methods ***/
1052 #define IShellFolder2_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f)
1053 #define IShellFolder2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
1054 #define IShellFolder2_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
1055 #define IShellFolder2_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
1056 #define IShellFolder2_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c)
1057 #define IShellFolder2_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c)
1058 #define IShellFolder2_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c)
1059 #define IShellFolder2_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f)
1060 #define IShellFolder2_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c)
1061 #define IShellFolder2_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e)
1062 /*** IShellFolder2 methods ***/
1063 #define IShellFolder2_GetDefaultSearchGUID(p,a) (p)->lpVtbl->GetDefaultSearchGUID(p,a)
1064 #define IShellFolder2_EnumSearches(p,a) (p)->lpVtbl->EnumSearches(p,a)
1065 #define IShellFolder2_GetDefaultColumn(p,a,b,c) (p)->lpVtbl->GetDefaultColumn(p,a,b,c)
1066 #define IShellFolder2_GetDefaultColumnState(p,a,b) (p)->lpVtbl->GetDefaultColumnState(p,a,b)
1067 #define IShellFolder2_GetDetailsEx(p,a,b,c) (p)->lpVtbl->GetDetailsEx(p,a,b,c)
1068 #define IShellFolder2_GetDetailsOf(p,a,b,c) (p)->lpVtbl->GetDetailsOf(p,a,b,c)
1069 #define IShellFolder2_MapColumnToSCID(p,a,b) (p)->lpVtbl->MapColumnToSCID(p,a,b)
1074 #define IShellFolder2_METHODS \
1075 /*** IUnknown methods ***/ \
1076 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1077 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1078 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1079 /*** IShellFolder methods ***/ \
1080 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \
1081 STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \
1082 STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \
1083 STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \
1084 STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \
1085 STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \
1086 STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \
1087 STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \
1088 STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \
1089 STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE; \
1090 /*** IShellFolder2 methods ***/ \
1091 STDMETHOD_(HRESULT,GetDefaultSearchGUID)(THIS_ GUID* lpguid) PURE; \
1092 STDMETHOD_(HRESULT,EnumSearches)(THIS_ IEnumExtraSearch** ppenum) PURE; \
1093 STDMETHOD_(HRESULT,GetDefaultColumn)(THIS_ DWORD dwReserved, ULONG* pSort, ULONG* pDisplay) PURE; \
1094 STDMETHOD_(HRESULT,GetDefaultColumnState)(THIS_ UINT iColumn, SHCOLSTATEF* pcsFlags) PURE; \
1095 STDMETHOD_(HRESULT,GetDetailsEx)(THIS_ LPCITEMIDLIST pidl, const SHCOLUMNID* pscid, VARIANT* pv) PURE; \
1096 STDMETHOD_(HRESULT,GetDetailsOf)(THIS_ LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS* psd) PURE; \
1097 STDMETHOD_(HRESULT,MapColumnToSCID)(THIS_ UINT iColumn, SHCOLUMNID* pscid) PURE;
1099 HRESULT CALLBACK IShellFolder2_GetDefaultSearchGUID_Proxy(
1100 IShellFolder2* This,
1102 void __RPC_STUB IShellFolder2_GetDefaultSearchGUID_Stub(
1103 struct IRpcStubBuffer* This,
1104 struct IRpcChannelBuffer* pRpcChannelBuffer,
1105 PRPC_MESSAGE pRpcMessage,
1106 DWORD* pdwStubPhase);
1107 HRESULT CALLBACK IShellFolder2_EnumSearches_Proxy(
1108 IShellFolder2* This,
1109 IEnumExtraSearch** ppenum);
1110 void __RPC_STUB IShellFolder2_EnumSearches_Stub(
1111 struct IRpcStubBuffer* This,
1112 struct IRpcChannelBuffer* pRpcChannelBuffer,
1113 PRPC_MESSAGE pRpcMessage,
1114 DWORD* pdwStubPhase);
1115 HRESULT CALLBACK IShellFolder2_GetDefaultColumn_Proxy(
1116 IShellFolder2* This,
1120 void __RPC_STUB IShellFolder2_GetDefaultColumn_Stub(
1121 struct IRpcStubBuffer* This,
1122 struct IRpcChannelBuffer* pRpcChannelBuffer,
1123 PRPC_MESSAGE pRpcMessage,
1124 DWORD* pdwStubPhase);
1125 HRESULT CALLBACK IShellFolder2_GetDefaultColumnState_Proxy(
1126 IShellFolder2* This,
1128 SHCOLSTATEF* pcsFlags);
1129 void __RPC_STUB IShellFolder2_GetDefaultColumnState_Stub(
1130 struct IRpcStubBuffer* This,
1131 struct IRpcChannelBuffer* pRpcChannelBuffer,
1132 PRPC_MESSAGE pRpcMessage,
1133 DWORD* pdwStubPhase);
1134 HRESULT CALLBACK IShellFolder2_GetDetailsEx_Proxy(
1135 IShellFolder2* This,
1137 const SHCOLUMNID* pscid,
1139 void __RPC_STUB IShellFolder2_GetDetailsEx_Stub(
1140 struct IRpcStubBuffer* This,
1141 struct IRpcChannelBuffer* pRpcChannelBuffer,
1142 PRPC_MESSAGE pRpcMessage,
1143 DWORD* pdwStubPhase);
1144 HRESULT CALLBACK IShellFolder2_GetDetailsOf_Proxy(
1145 IShellFolder2* This,
1149 void __RPC_STUB IShellFolder2_GetDetailsOf_Stub(
1150 struct IRpcStubBuffer* This,
1151 struct IRpcChannelBuffer* pRpcChannelBuffer,
1152 PRPC_MESSAGE pRpcMessage,
1153 DWORD* pdwStubPhase);
1154 HRESULT CALLBACK IShellFolder2_MapColumnToSCID_Proxy(
1155 IShellFolder2* This,
1158 void __RPC_STUB IShellFolder2_MapColumnToSCID_Stub(
1159 struct IRpcStubBuffer* This,
1160 struct IRpcChannelBuffer* pRpcChannelBuffer,
1161 PRPC_MESSAGE pRpcMessage,
1162 DWORD* pdwStubPhase);
1164 #endif /* __IShellFolder2_INTERFACE_DEFINED__ */
1166 typedef char *LPVIEWSETTINGS;
1169 FWF_AUTOARRANGE = 0x1,
1170 FWF_ABBREVIATEDNAMES = 0x2,
1171 FWF_SNAPTOGRID = 0x4,
1172 FWF_OWNERDATA = 0x8,
1173 FWF_BESTFITWINDOW = 0x10,
1175 FWF_SINGLESEL = 0x40,
1176 FWF_NOSUBFOLDERS = 0x80,
1177 FWF_TRANSPARENT = 0x100,
1178 FWF_NOCLIENTEDGE = 0x200,
1179 FWF_NOSCROLL = 0x400,
1180 FWF_ALIGNLEFT = 0x800,
1181 FWF_NOICONS = 0x1000,
1182 FWF_SHOWSELALWAYS = 0x2000,
1183 FWF_NOVISIBLE = 0x4000,
1184 FWF_SINGLECLICKACTIVATE = 0x8000,
1185 FWF_NOWEBVIEW = 0x10000,
1186 FWF_HIDEFILENAMES = 0x20000,
1187 FWF_CHECKSELECT = 0x40000
1192 FVM_FIRST = FVM_ICON,
1199 FVM_LAST = FVM_THUMBSTRIP
1205 } FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
1207 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
1209 #ifndef __IShellBrowser_FWD_DEFINED__
1210 #define __IShellBrowser_FWD_DEFINED__
1211 typedef struct IShellBrowser IShellBrowser;
1214 #ifndef __IShellView_FWD_DEFINED__
1215 #define __IShellView_FWD_DEFINED__
1216 typedef struct IShellView IShellView;
1219 typedef IShellView *LPSHELLVIEW;
1221 #define SVSI_DESELECT 0x00000000
1222 #define SVSI_SELECT 0x00000001
1223 #define SVSI_EDIT 0x00000003
1224 #define SVSI_DESELECTOTHERS 0x00000004
1225 #define SVSI_ENSUREVISIBLE 0x00000008
1226 #define SVSI_FOCUSED 0x00000010
1227 #define SVSI_TRANSLATEPT 0x00000020
1228 #define SVSI_SELECTIONMARK 0x00000040
1229 #define SVSI_POSITIONITEM 0x00000080
1230 #define SVSI_CHECK 0x00000100
1231 #define SVSI_NOSTATECHANGE 0x80000000
1235 SVGIO_BACKGROUND = 0x0,
1236 SVGIO_SELECTION = 0x1,
1237 SVGIO_ALLVIEW = 0x2,
1238 SVGIO_CHECKED = 0x3,
1239 SVGIO_TYPE_MASK = 0xf,
1240 SVGIO_FLAG_VIEWORDER = 0x80000000
1244 SVUIA_DEACTIVATE = 0,
1245 SVUIA_ACTIVATE_NOFOCUS = 1,
1246 SVUIA_ACTIVATE_FOCUS = 2,
1247 SVUIA_INPLACEACTIVATE = 3
1251 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
1255 typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
1257 /*****************************************************************************
1258 * IShellView interface
1260 #ifndef __IShellView_INTERFACE_DEFINED__
1261 #define __IShellView_INTERFACE_DEFINED__
1263 DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1264 #if defined(__cplusplus) && !defined(CINTERFACE)
1265 struct IShellView : public IOleWindow
1267 virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
1270 virtual HRESULT STDMETHODCALLTYPE EnableModeless(
1273 virtual HRESULT STDMETHODCALLTYPE UIActivate(
1276 virtual HRESULT STDMETHODCALLTYPE Refresh(
1279 virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
1280 IShellView* psvPrevious,
1281 LPCFOLDERSETTINGS lpfs,
1286 virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
1289 virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
1290 LPFOLDERSETTINGS lpfs) = 0;
1292 virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
1294 LPFNSVADDPROPSHEETPAGE pfn,
1297 virtual HRESULT STDMETHODCALLTYPE SaveViewState(
1300 virtual HRESULT STDMETHODCALLTYPE SelectItem(
1301 LPCITEMIDLIST pidlItem,
1304 virtual HRESULT STDMETHODCALLTYPE GetItemObject(
1311 typedef struct IShellViewVtbl IShellViewVtbl;
1313 const IShellViewVtbl* lpVtbl;
1315 struct IShellViewVtbl {
1318 /*** IUnknown methods ***/
1319 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1324 ULONG (STDMETHODCALLTYPE *AddRef)(
1327 ULONG (STDMETHODCALLTYPE *Release)(
1330 /*** IOleWindow methods ***/
1331 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1335 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1339 /*** IShellView methods ***/
1340 HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
1344 HRESULT (STDMETHODCALLTYPE *EnableModeless)(
1348 HRESULT (STDMETHODCALLTYPE *UIActivate)(
1352 HRESULT (STDMETHODCALLTYPE *Refresh)(
1355 HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
1357 IShellView* psvPrevious,
1358 LPCFOLDERSETTINGS lpfs,
1363 HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
1366 HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
1368 LPFOLDERSETTINGS lpfs);
1370 HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
1373 LPFNSVADDPROPSHEETPAGE pfn,
1376 HRESULT (STDMETHODCALLTYPE *SaveViewState)(
1379 HRESULT (STDMETHODCALLTYPE *SelectItem)(
1381 LPCITEMIDLIST pidlItem,
1384 HRESULT (STDMETHODCALLTYPE *GetItemObject)(
1394 /*** IUnknown methods ***/
1395 #define IShellView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1396 #define IShellView_AddRef(p) (p)->lpVtbl->AddRef(p)
1397 #define IShellView_Release(p) (p)->lpVtbl->Release(p)
1398 /*** IOleWindow methods ***/
1399 #define IShellView_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1400 #define IShellView_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1401 /*** IShellView methods ***/
1402 #define IShellView_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
1403 #define IShellView_EnableModeless(p,a) (p)->lpVtbl->EnableModeless(p,a)
1404 #define IShellView_UIActivate(p,a) (p)->lpVtbl->UIActivate(p,a)
1405 #define IShellView_Refresh(p) (p)->lpVtbl->Refresh(p)
1406 #define IShellView_CreateViewWindow(p,a,b,c,d,e) (p)->lpVtbl->CreateViewWindow(p,a,b,c,d,e)
1407 #define IShellView_DestroyViewWindow(p) (p)->lpVtbl->DestroyViewWindow(p)
1408 #define IShellView_GetCurrentInfo(p,a) (p)->lpVtbl->GetCurrentInfo(p,a)
1409 #define IShellView_AddPropertySheetPages(p,a,b,c) (p)->lpVtbl->AddPropertySheetPages(p,a,b,c)
1410 #define IShellView_SaveViewState(p) (p)->lpVtbl->SaveViewState(p)
1411 #define IShellView_SelectItem(p,a,b) (p)->lpVtbl->SelectItem(p,a,b)
1412 #define IShellView_GetItemObject(p,a,b,c) (p)->lpVtbl->GetItemObject(p,a,b,c)
1417 #define IShellView_METHODS \
1418 /*** IUnknown methods ***/ \
1419 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1420 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1421 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1422 /*** IOleWindow methods ***/ \
1423 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1424 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1425 /*** IShellView methods ***/ \
1426 STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ MSG* pmsg) PURE; \
1427 STDMETHOD_(HRESULT,EnableModeless)(THIS_ BOOL fEnable) PURE; \
1428 STDMETHOD_(HRESULT,UIActivate)(THIS_ UINT uState) PURE; \
1429 STDMETHOD_(HRESULT,Refresh)(THIS) PURE; \
1430 STDMETHOD_(HRESULT,CreateViewWindow)(THIS_ IShellView* psvPrevious, LPCFOLDERSETTINGS lpfs, IShellBrowser* psb, RECT* prcView, HWND* phWnd) PURE; \
1431 STDMETHOD_(HRESULT,DestroyViewWindow)(THIS) PURE; \
1432 STDMETHOD_(HRESULT,GetCurrentInfo)(THIS_ LPFOLDERSETTINGS lpfs) PURE; \
1433 STDMETHOD_(HRESULT,AddPropertySheetPages)(THIS_ DWORD dwReserved, LPFNSVADDPROPSHEETPAGE pfn, LPARAM lparam) PURE; \
1434 STDMETHOD_(HRESULT,SaveViewState)(THIS) PURE; \
1435 STDMETHOD_(HRESULT,SelectItem)(THIS_ LPCITEMIDLIST pidlItem, SVSIF uFlags) PURE; \
1436 STDMETHOD_(HRESULT,GetItemObject)(THIS_ UINT uItem, REFIID riid, void** ppv) PURE;
1438 HRESULT CALLBACK IShellView_TranslateAccelerator_Proxy(
1441 void __RPC_STUB IShellView_TranslateAccelerator_Stub(
1442 struct IRpcStubBuffer* This,
1443 struct IRpcChannelBuffer* pRpcChannelBuffer,
1444 PRPC_MESSAGE pRpcMessage,
1445 DWORD* pdwStubPhase);
1446 HRESULT CALLBACK IShellView_EnableModeless_Proxy(
1449 void __RPC_STUB IShellView_EnableModeless_Stub(
1450 struct IRpcStubBuffer* This,
1451 struct IRpcChannelBuffer* pRpcChannelBuffer,
1452 PRPC_MESSAGE pRpcMessage,
1453 DWORD* pdwStubPhase);
1454 HRESULT CALLBACK IShellView_UIActivate_Proxy(
1457 void __RPC_STUB IShellView_UIActivate_Stub(
1458 struct IRpcStubBuffer* This,
1459 struct IRpcChannelBuffer* pRpcChannelBuffer,
1460 PRPC_MESSAGE pRpcMessage,
1461 DWORD* pdwStubPhase);
1462 HRESULT CALLBACK IShellView_Refresh_Proxy(
1464 void __RPC_STUB IShellView_Refresh_Stub(
1465 struct IRpcStubBuffer* This,
1466 struct IRpcChannelBuffer* pRpcChannelBuffer,
1467 PRPC_MESSAGE pRpcMessage,
1468 DWORD* pdwStubPhase);
1469 HRESULT CALLBACK IShellView_CreateViewWindow_Proxy(
1471 IShellView* psvPrevious,
1472 LPCFOLDERSETTINGS lpfs,
1476 void __RPC_STUB IShellView_CreateViewWindow_Stub(
1477 struct IRpcStubBuffer* This,
1478 struct IRpcChannelBuffer* pRpcChannelBuffer,
1479 PRPC_MESSAGE pRpcMessage,
1480 DWORD* pdwStubPhase);
1481 HRESULT CALLBACK IShellView_DestroyViewWindow_Proxy(
1483 void __RPC_STUB IShellView_DestroyViewWindow_Stub(
1484 struct IRpcStubBuffer* This,
1485 struct IRpcChannelBuffer* pRpcChannelBuffer,
1486 PRPC_MESSAGE pRpcMessage,
1487 DWORD* pdwStubPhase);
1488 HRESULT CALLBACK IShellView_GetCurrentInfo_Proxy(
1490 LPFOLDERSETTINGS lpfs);
1491 void __RPC_STUB IShellView_GetCurrentInfo_Stub(
1492 struct IRpcStubBuffer* This,
1493 struct IRpcChannelBuffer* pRpcChannelBuffer,
1494 PRPC_MESSAGE pRpcMessage,
1495 DWORD* pdwStubPhase);
1496 HRESULT CALLBACK IShellView_SaveViewState_Proxy(
1498 void __RPC_STUB IShellView_SaveViewState_Stub(
1499 struct IRpcStubBuffer* This,
1500 struct IRpcChannelBuffer* pRpcChannelBuffer,
1501 PRPC_MESSAGE pRpcMessage,
1502 DWORD* pdwStubPhase);
1503 HRESULT CALLBACK IShellView_SelectItem_Proxy(
1505 LPCITEMIDLIST pidlItem,
1507 void __RPC_STUB IShellView_SelectItem_Stub(
1508 struct IRpcStubBuffer* This,
1509 struct IRpcChannelBuffer* pRpcChannelBuffer,
1510 PRPC_MESSAGE pRpcMessage,
1511 DWORD* pdwStubPhase);
1512 HRESULT CALLBACK IShellView_GetItemObject_Proxy(
1517 void __RPC_STUB IShellView_GetItemObject_Stub(
1518 struct IRpcStubBuffer* This,
1519 struct IRpcChannelBuffer* pRpcChannelBuffer,
1520 PRPC_MESSAGE pRpcMessage,
1521 DWORD* pdwStubPhase);
1523 #endif /* __IShellView_INTERFACE_DEFINED__ */
1525 typedef IShellBrowser *LPSHELLBROWSER;
1527 #define SBSP_DEFBROWSER 0x00000000
1528 #define SBSP_SAMEBROWSER 0x00000001
1529 #define SBSP_NEWBROWSER 0x00000002
1530 #define SBSP_DEFMODE 0x00000000
1531 #define SBSP_OPENMODE 0x00000010
1532 #define SBSP_EXPLOREMODE 0x00000020
1533 #define SBSP_HELPMODE 0x00000040
1534 #define SBSP_NOTRANSFERHIST 0x00000080
1535 #define SBSP_ABSOLUTE 0x00000000
1536 #define SBSP_RELATIVE 0x00001000
1537 #define SBSP_PARENT 0x00002000
1538 #define SBSP_NAVIGATEBACK 0x00004000
1539 #define SBSP_NAVIGATEFORWARD 0x00008000
1540 #define SBSP_ALLOW_AUTONAVIGATE 0x00010000
1541 #define SBSP_NOAUTOSELECT 0x04000000
1542 #define SBSP_WRITENOHISTORY 0x08000000
1543 #define SBSP_REDIRECT 0x40000000
1544 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
1545 #define FCW_STATUS 0x0001
1546 #define FCW_TOOLBAR 0x0002
1547 #define FCW_TREE 0x0003
1548 #define FCW_INTERNETBAR 0x0006
1549 #define FCW_PROGRESS 0x0008
1550 #define FCT_MERGE 0x0001
1551 #define FCT_CONFIGABLE 0x0002
1552 #define FCT_ADDTOEND 0x0004
1554 typedef LPARAM LPTBBUTTONSB;
1557 #include <commctrl.h>
1558 typedef LPTBBUTTON LPTBBUTTONSB;
1560 /*****************************************************************************
1561 * IShellBrowser interface
1563 #ifndef __IShellBrowser_INTERFACE_DEFINED__
1564 #define __IShellBrowser_INTERFACE_DEFINED__
1566 DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1567 #if defined(__cplusplus) && !defined(CINTERFACE)
1568 struct IShellBrowser : public IOleWindow
1570 virtual HRESULT STDMETHODCALLTYPE InsertMenusSB(
1572 LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
1574 virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
1576 HOLEMENU holemenuReserved,
1577 HWND hwndActiveObject) = 0;
1579 virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB(
1580 HMENU hmenuShared) = 0;
1582 virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB(
1583 LPCOLESTR pszStatusText) = 0;
1585 virtual HRESULT STDMETHODCALLTYPE EnableModelessSB(
1588 virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
1592 virtual HRESULT STDMETHODCALLTYPE BrowseObject(
1596 virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
1598 IStream** ppStrm) = 0;
1600 virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
1604 virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
1611 virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView(
1612 IShellView** ppshv) = 0;
1614 virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive(
1615 IShellView* pshv) = 0;
1617 virtual HRESULT STDMETHODCALLTYPE SetToolbarItems(
1618 LPTBBUTTONSB lpButtons,
1624 typedef struct IShellBrowserVtbl IShellBrowserVtbl;
1625 struct IShellBrowser {
1626 const IShellBrowserVtbl* lpVtbl;
1628 struct IShellBrowserVtbl {
1631 /*** IUnknown methods ***/
1632 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1633 IShellBrowser* This,
1637 ULONG (STDMETHODCALLTYPE *AddRef)(
1638 IShellBrowser* This);
1640 ULONG (STDMETHODCALLTYPE *Release)(
1641 IShellBrowser* This);
1643 /*** IOleWindow methods ***/
1644 HRESULT (STDMETHODCALLTYPE *GetWindow)(
1645 IShellBrowser* This,
1648 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1649 IShellBrowser* This,
1652 /*** IShellBrowser methods ***/
1653 HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
1654 IShellBrowser* This,
1656 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1658 HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
1659 IShellBrowser* This,
1661 HOLEMENU holemenuReserved,
1662 HWND hwndActiveObject);
1664 HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
1665 IShellBrowser* This,
1668 HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
1669 IShellBrowser* This,
1670 LPCOLESTR pszStatusText);
1672 HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
1673 IShellBrowser* This,
1676 HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
1677 IShellBrowser* This,
1681 HRESULT (STDMETHODCALLTYPE *BrowseObject)(
1682 IShellBrowser* This,
1686 HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
1687 IShellBrowser* This,
1691 HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
1692 IShellBrowser* This,
1696 HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
1697 IShellBrowser* This,
1704 HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
1705 IShellBrowser* This,
1706 IShellView** ppshv);
1708 HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
1709 IShellBrowser* This,
1712 HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
1713 IShellBrowser* This,
1714 LPTBBUTTONSB lpButtons,
1722 /*** IUnknown methods ***/
1723 #define IShellBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1724 #define IShellBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
1725 #define IShellBrowser_Release(p) (p)->lpVtbl->Release(p)
1726 /*** IOleWindow methods ***/
1727 #define IShellBrowser_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1728 #define IShellBrowser_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1729 /*** IShellBrowser methods ***/
1730 #define IShellBrowser_InsertMenusSB(p,a,b) (p)->lpVtbl->InsertMenusSB(p,a,b)
1731 #define IShellBrowser_SetMenuSB(p,a,b,c) (p)->lpVtbl->SetMenuSB(p,a,b,c)
1732 #define IShellBrowser_RemoveMenusSB(p,a) (p)->lpVtbl->RemoveMenusSB(p,a)
1733 #define IShellBrowser_SetStatusTextSB(p,a) (p)->lpVtbl->SetStatusTextSB(p,a)
1734 #define IShellBrowser_EnableModelessSB(p,a) (p)->lpVtbl->EnableModelessSB(p,a)
1735 #define IShellBrowser_TranslateAcceleratorSB(p,a,b) (p)->lpVtbl->TranslateAcceleratorSB(p,a,b)
1736 #define IShellBrowser_BrowseObject(p,a,b) (p)->lpVtbl->BrowseObject(p,a,b)
1737 #define IShellBrowser_GetViewStateStream(p,a,b) (p)->lpVtbl->GetViewStateStream(p,a,b)
1738 #define IShellBrowser_GetControlWindow(p,a,b) (p)->lpVtbl->GetControlWindow(p,a,b)
1739 #define IShellBrowser_SendControlMsg(p,a,b,c,d,e) (p)->lpVtbl->SendControlMsg(p,a,b,c,d,e)
1740 #define IShellBrowser_QueryActiveShellView(p,a) (p)->lpVtbl->QueryActiveShellView(p,a)
1741 #define IShellBrowser_OnViewWindowActive(p,a) (p)->lpVtbl->OnViewWindowActive(p,a)
1742 #define IShellBrowser_SetToolbarItems(p,a,b,c) (p)->lpVtbl->SetToolbarItems(p,a,b,c)
1747 #define IShellBrowser_METHODS \
1748 /*** IUnknown methods ***/ \
1749 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1750 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1751 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1752 /*** IOleWindow methods ***/ \
1753 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1754 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1755 /*** IShellBrowser methods ***/ \
1756 STDMETHOD_(HRESULT,InsertMenusSB)(THIS_ HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) PURE; \
1757 STDMETHOD_(HRESULT,SetMenuSB)(THIS_ HMENU hmenuShared, HOLEMENU holemenuReserved, HWND hwndActiveObject) PURE; \
1758 STDMETHOD_(HRESULT,RemoveMenusSB)(THIS_ HMENU hmenuShared) PURE; \
1759 STDMETHOD_(HRESULT,SetStatusTextSB)(THIS_ LPCOLESTR pszStatusText) PURE; \
1760 STDMETHOD_(HRESULT,EnableModelessSB)(THIS_ BOOL fEnable) PURE; \
1761 STDMETHOD_(HRESULT,TranslateAcceleratorSB)(THIS_ MSG* pmsg, WORD wID) PURE; \
1762 STDMETHOD_(HRESULT,BrowseObject)(THIS_ LPCITEMIDLIST pidl, UINT wFlags) PURE; \
1763 STDMETHOD_(HRESULT,GetViewStateStream)(THIS_ DWORD grfMode, IStream** ppStrm) PURE; \
1764 STDMETHOD_(HRESULT,GetControlWindow)(THIS_ UINT id, HWND* phwnd) PURE; \
1765 STDMETHOD_(HRESULT,SendControlMsg)(THIS_ UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* pret) PURE; \
1766 STDMETHOD_(HRESULT,QueryActiveShellView)(THIS_ IShellView** ppshv) PURE; \
1767 STDMETHOD_(HRESULT,OnViewWindowActive)(THIS_ IShellView* pshv) PURE; \
1768 STDMETHOD_(HRESULT,SetToolbarItems)(THIS_ LPTBBUTTONSB lpButtons, UINT nButtons, UINT uFlags) PURE;
1770 HRESULT CALLBACK IShellBrowser_InsertMenusSB_Proxy(
1771 IShellBrowser* This,
1773 LPOLEMENUGROUPWIDTHS lpMenuWidths);
1774 void __RPC_STUB IShellBrowser_InsertMenusSB_Stub(
1775 struct IRpcStubBuffer* This,
1776 struct IRpcChannelBuffer* pRpcChannelBuffer,
1777 PRPC_MESSAGE pRpcMessage,
1778 DWORD* pdwStubPhase);
1779 HRESULT CALLBACK IShellBrowser_SetMenuSB_Proxy(
1780 IShellBrowser* This,
1782 HOLEMENU holemenuReserved,
1783 HWND hwndActiveObject);
1784 void __RPC_STUB IShellBrowser_SetMenuSB_Stub(
1785 struct IRpcStubBuffer* This,
1786 struct IRpcChannelBuffer* pRpcChannelBuffer,
1787 PRPC_MESSAGE pRpcMessage,
1788 DWORD* pdwStubPhase);
1789 HRESULT CALLBACK IShellBrowser_RemoveMenusSB_Proxy(
1790 IShellBrowser* This,
1792 void __RPC_STUB IShellBrowser_RemoveMenusSB_Stub(
1793 struct IRpcStubBuffer* This,
1794 struct IRpcChannelBuffer* pRpcChannelBuffer,
1795 PRPC_MESSAGE pRpcMessage,
1796 DWORD* pdwStubPhase);
1797 HRESULT CALLBACK IShellBrowser_SetStatusTextSB_Proxy(
1798 IShellBrowser* This,
1799 LPCOLESTR pszStatusText);
1800 void __RPC_STUB IShellBrowser_SetStatusTextSB_Stub(
1801 struct IRpcStubBuffer* This,
1802 struct IRpcChannelBuffer* pRpcChannelBuffer,
1803 PRPC_MESSAGE pRpcMessage,
1804 DWORD* pdwStubPhase);
1805 HRESULT CALLBACK IShellBrowser_EnableModelessSB_Proxy(
1806 IShellBrowser* This,
1808 void __RPC_STUB IShellBrowser_EnableModelessSB_Stub(
1809 struct IRpcStubBuffer* This,
1810 struct IRpcChannelBuffer* pRpcChannelBuffer,
1811 PRPC_MESSAGE pRpcMessage,
1812 DWORD* pdwStubPhase);
1813 HRESULT CALLBACK IShellBrowser_TranslateAcceleratorSB_Proxy(
1814 IShellBrowser* This,
1817 void __RPC_STUB IShellBrowser_TranslateAcceleratorSB_Stub(
1818 struct IRpcStubBuffer* This,
1819 struct IRpcChannelBuffer* pRpcChannelBuffer,
1820 PRPC_MESSAGE pRpcMessage,
1821 DWORD* pdwStubPhase);
1822 HRESULT CALLBACK IShellBrowser_BrowseObject_Proxy(
1823 IShellBrowser* This,
1826 void __RPC_STUB IShellBrowser_BrowseObject_Stub(
1827 struct IRpcStubBuffer* This,
1828 struct IRpcChannelBuffer* pRpcChannelBuffer,
1829 PRPC_MESSAGE pRpcMessage,
1830 DWORD* pdwStubPhase);
1831 HRESULT CALLBACK IShellBrowser_GetViewStateStream_Proxy(
1832 IShellBrowser* This,
1835 void __RPC_STUB IShellBrowser_GetViewStateStream_Stub(
1836 struct IRpcStubBuffer* This,
1837 struct IRpcChannelBuffer* pRpcChannelBuffer,
1838 PRPC_MESSAGE pRpcMessage,
1839 DWORD* pdwStubPhase);
1840 HRESULT CALLBACK IShellBrowser_GetControlWindow_Proxy(
1841 IShellBrowser* This,
1844 void __RPC_STUB IShellBrowser_GetControlWindow_Stub(
1845 struct IRpcStubBuffer* This,
1846 struct IRpcChannelBuffer* pRpcChannelBuffer,
1847 PRPC_MESSAGE pRpcMessage,
1848 DWORD* pdwStubPhase);
1849 HRESULT CALLBACK IShellBrowser_QueryActiveShellView_Proxy(
1850 IShellBrowser* This,
1851 IShellView** ppshv);
1852 void __RPC_STUB IShellBrowser_QueryActiveShellView_Stub(
1853 struct IRpcStubBuffer* This,
1854 struct IRpcChannelBuffer* pRpcChannelBuffer,
1855 PRPC_MESSAGE pRpcMessage,
1856 DWORD* pdwStubPhase);
1857 HRESULT CALLBACK IShellBrowser_OnViewWindowActive_Proxy(
1858 IShellBrowser* This,
1860 void __RPC_STUB IShellBrowser_OnViewWindowActive_Stub(
1861 struct IRpcStubBuffer* This,
1862 struct IRpcChannelBuffer* pRpcChannelBuffer,
1863 PRPC_MESSAGE pRpcMessage,
1864 DWORD* pdwStubPhase);
1866 #endif /* __IShellBrowser_INTERFACE_DEFINED__ */
1868 #ifndef __IShellLinkA_FWD_DEFINED__
1869 #define __IShellLinkA_FWD_DEFINED__
1870 typedef struct IShellLinkA IShellLinkA;
1875 SLR_ANY_MATCH = 0x2,
1878 SLR_NOSEARCH = 0x10,
1880 SLR_NOLINKINFO = 0x40,
1881 SLR_INVOKE_MSI = 0x80,
1882 SLR_NO_UI_WITH_MSG_PUMP = 0x101
1886 SLGP_SHORTPATH = 0x1,
1887 SLGP_UNCPRIORITY = 0x2,
1891 /*****************************************************************************
1892 * IShellLinkA interface
1894 #ifndef __IShellLinkA_INTERFACE_DEFINED__
1895 #define __IShellLinkA_INTERFACE_DEFINED__
1897 DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1898 #if defined(__cplusplus) && !defined(CINTERFACE)
1899 struct IShellLinkA : public IUnknown
1901 virtual HRESULT STDMETHODCALLTYPE GetPath(
1904 WIN32_FIND_DATAA* pfd,
1907 virtual HRESULT STDMETHODCALLTYPE GetIDList(
1908 LPITEMIDLIST* ppidl) = 0;
1910 virtual HRESULT STDMETHODCALLTYPE SetIDList(
1911 LPCITEMIDLIST pidl) = 0;
1913 virtual HRESULT STDMETHODCALLTYPE GetDescription(
1917 virtual HRESULT STDMETHODCALLTYPE SetDescription(
1918 LPCSTR pszName) = 0;
1920 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
1924 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
1927 virtual HRESULT STDMETHODCALLTYPE GetArguments(
1931 virtual HRESULT STDMETHODCALLTYPE SetArguments(
1932 LPCSTR pszArgs) = 0;
1934 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
1935 WORD* pwHotkey) = 0;
1937 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
1940 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
1941 int* piShowCmd) = 0;
1943 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
1946 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
1951 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
1955 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
1957 DWORD dwReserved) = 0;
1959 virtual HRESULT STDMETHODCALLTYPE Resolve(
1963 virtual HRESULT STDMETHODCALLTYPE SetPath(
1964 LPCSTR pszFile) = 0;
1968 typedef struct IShellLinkAVtbl IShellLinkAVtbl;
1969 struct IShellLinkA {
1970 const IShellLinkAVtbl* lpVtbl;
1972 struct IShellLinkAVtbl {
1975 /*** IUnknown methods ***/
1976 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1981 ULONG (STDMETHODCALLTYPE *AddRef)(
1984 ULONG (STDMETHODCALLTYPE *Release)(
1987 /*** IShellLinkA methods ***/
1988 HRESULT (STDMETHODCALLTYPE *GetPath)(
1992 WIN32_FIND_DATAA* pfd,
1995 HRESULT (STDMETHODCALLTYPE *GetIDList)(
1997 LPITEMIDLIST* ppidl);
1999 HRESULT (STDMETHODCALLTYPE *SetIDList)(
2001 LPCITEMIDLIST pidl);
2003 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2008 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2012 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2017 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2021 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2026 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2030 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2034 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2038 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2042 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2046 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2052 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2057 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2062 HRESULT (STDMETHODCALLTYPE *Resolve)(
2067 HRESULT (STDMETHODCALLTYPE *SetPath)(
2075 /*** IUnknown methods ***/
2076 #define IShellLinkA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2077 #define IShellLinkA_AddRef(p) (p)->lpVtbl->AddRef(p)
2078 #define IShellLinkA_Release(p) (p)->lpVtbl->Release(p)
2079 /*** IShellLinkA methods ***/
2080 #define IShellLinkA_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2081 #define IShellLinkA_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2082 #define IShellLinkA_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2083 #define IShellLinkA_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2084 #define IShellLinkA_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2085 #define IShellLinkA_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2086 #define IShellLinkA_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2087 #define IShellLinkA_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2088 #define IShellLinkA_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2089 #define IShellLinkA_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2090 #define IShellLinkA_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2091 #define IShellLinkA_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2092 #define IShellLinkA_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2093 #define IShellLinkA_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2094 #define IShellLinkA_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2095 #define IShellLinkA_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2096 #define IShellLinkA_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2097 #define IShellLinkA_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2102 #define IShellLinkA_METHODS \
2103 /*** IUnknown methods ***/ \
2104 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2105 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2106 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2107 /*** IShellLinkA methods ***/ \
2108 STDMETHOD_(HRESULT,GetPath)(THIS_ LPSTR pszFile, int cch, WIN32_FIND_DATAA* pfd, DWORD fFlags) PURE; \
2109 STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2110 STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \
2111 STDMETHOD_(HRESULT,GetDescription)(THIS_ LPSTR pszName, int cch) PURE; \
2112 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCSTR pszName) PURE; \
2113 STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPSTR pszDir, int cch) PURE; \
2114 STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCSTR pszDir) PURE; \
2115 STDMETHOD_(HRESULT,GetArguments)(THIS_ LPSTR pszArgs, int cch) PURE; \
2116 STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCSTR pszArgs) PURE; \
2117 STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \
2118 STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \
2119 STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \
2120 STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \
2121 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPSTR pszIconPath, int cch, int* piIcon) PURE; \
2122 STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCSTR pszIconPath, int iIcon) PURE; \
2123 STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCSTR pszPathRel, DWORD dwReserved) PURE; \
2124 STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \
2125 STDMETHOD_(HRESULT,SetPath)(THIS_ LPCSTR pszFile) PURE;
2127 HRESULT CALLBACK IShellLinkA_GetPath_Proxy(
2131 WIN32_FIND_DATAA* pfd,
2133 void __RPC_STUB IShellLinkA_GetPath_Stub(
2134 struct IRpcStubBuffer* This,
2135 struct IRpcChannelBuffer* pRpcChannelBuffer,
2136 PRPC_MESSAGE pRpcMessage,
2137 DWORD* pdwStubPhase);
2138 HRESULT CALLBACK IShellLinkA_GetIDList_Proxy(
2140 LPITEMIDLIST* ppidl);
2141 void __RPC_STUB IShellLinkA_GetIDList_Stub(
2142 struct IRpcStubBuffer* This,
2143 struct IRpcChannelBuffer* pRpcChannelBuffer,
2144 PRPC_MESSAGE pRpcMessage,
2145 DWORD* pdwStubPhase);
2146 HRESULT CALLBACK IShellLinkA_SetIDList_Proxy(
2148 LPCITEMIDLIST pidl);
2149 void __RPC_STUB IShellLinkA_SetIDList_Stub(
2150 struct IRpcStubBuffer* This,
2151 struct IRpcChannelBuffer* pRpcChannelBuffer,
2152 PRPC_MESSAGE pRpcMessage,
2153 DWORD* pdwStubPhase);
2154 HRESULT CALLBACK IShellLinkA_GetDescription_Proxy(
2158 void __RPC_STUB IShellLinkA_GetDescription_Stub(
2159 struct IRpcStubBuffer* This,
2160 struct IRpcChannelBuffer* pRpcChannelBuffer,
2161 PRPC_MESSAGE pRpcMessage,
2162 DWORD* pdwStubPhase);
2163 HRESULT CALLBACK IShellLinkA_SetDescription_Proxy(
2166 void __RPC_STUB IShellLinkA_SetDescription_Stub(
2167 struct IRpcStubBuffer* This,
2168 struct IRpcChannelBuffer* pRpcChannelBuffer,
2169 PRPC_MESSAGE pRpcMessage,
2170 DWORD* pdwStubPhase);
2171 HRESULT CALLBACK IShellLinkA_GetWorkingDirectory_Proxy(
2175 void __RPC_STUB IShellLinkA_GetWorkingDirectory_Stub(
2176 struct IRpcStubBuffer* This,
2177 struct IRpcChannelBuffer* pRpcChannelBuffer,
2178 PRPC_MESSAGE pRpcMessage,
2179 DWORD* pdwStubPhase);
2180 HRESULT CALLBACK IShellLinkA_SetWorkingDirectory_Proxy(
2183 void __RPC_STUB IShellLinkA_SetWorkingDirectory_Stub(
2184 struct IRpcStubBuffer* This,
2185 struct IRpcChannelBuffer* pRpcChannelBuffer,
2186 PRPC_MESSAGE pRpcMessage,
2187 DWORD* pdwStubPhase);
2188 HRESULT CALLBACK IShellLinkA_GetArguments_Proxy(
2192 void __RPC_STUB IShellLinkA_GetArguments_Stub(
2193 struct IRpcStubBuffer* This,
2194 struct IRpcChannelBuffer* pRpcChannelBuffer,
2195 PRPC_MESSAGE pRpcMessage,
2196 DWORD* pdwStubPhase);
2197 HRESULT CALLBACK IShellLinkA_SetArguments_Proxy(
2200 void __RPC_STUB IShellLinkA_SetArguments_Stub(
2201 struct IRpcStubBuffer* This,
2202 struct IRpcChannelBuffer* pRpcChannelBuffer,
2203 PRPC_MESSAGE pRpcMessage,
2204 DWORD* pdwStubPhase);
2205 HRESULT CALLBACK IShellLinkA_GetHotkey_Proxy(
2208 void __RPC_STUB IShellLinkA_GetHotkey_Stub(
2209 struct IRpcStubBuffer* This,
2210 struct IRpcChannelBuffer* pRpcChannelBuffer,
2211 PRPC_MESSAGE pRpcMessage,
2212 DWORD* pdwStubPhase);
2213 HRESULT CALLBACK IShellLinkA_SetHotkey_Proxy(
2216 void __RPC_STUB IShellLinkA_SetHotkey_Stub(
2217 struct IRpcStubBuffer* This,
2218 struct IRpcChannelBuffer* pRpcChannelBuffer,
2219 PRPC_MESSAGE pRpcMessage,
2220 DWORD* pdwStubPhase);
2221 HRESULT CALLBACK IShellLinkA_GetShowCmd_Proxy(
2224 void __RPC_STUB IShellLinkA_GetShowCmd_Stub(
2225 struct IRpcStubBuffer* This,
2226 struct IRpcChannelBuffer* pRpcChannelBuffer,
2227 PRPC_MESSAGE pRpcMessage,
2228 DWORD* pdwStubPhase);
2229 HRESULT CALLBACK IShellLinkA_SetShowCmd_Proxy(
2232 void __RPC_STUB IShellLinkA_SetShowCmd_Stub(
2233 struct IRpcStubBuffer* This,
2234 struct IRpcChannelBuffer* pRpcChannelBuffer,
2235 PRPC_MESSAGE pRpcMessage,
2236 DWORD* pdwStubPhase);
2237 HRESULT CALLBACK IShellLinkA_GetIconLocation_Proxy(
2242 void __RPC_STUB IShellLinkA_GetIconLocation_Stub(
2243 struct IRpcStubBuffer* This,
2244 struct IRpcChannelBuffer* pRpcChannelBuffer,
2245 PRPC_MESSAGE pRpcMessage,
2246 DWORD* pdwStubPhase);
2247 HRESULT CALLBACK IShellLinkA_SetIconLocation_Proxy(
2251 void __RPC_STUB IShellLinkA_SetIconLocation_Stub(
2252 struct IRpcStubBuffer* This,
2253 struct IRpcChannelBuffer* pRpcChannelBuffer,
2254 PRPC_MESSAGE pRpcMessage,
2255 DWORD* pdwStubPhase);
2256 HRESULT CALLBACK IShellLinkA_SetRelativePath_Proxy(
2260 void __RPC_STUB IShellLinkA_SetRelativePath_Stub(
2261 struct IRpcStubBuffer* This,
2262 struct IRpcChannelBuffer* pRpcChannelBuffer,
2263 PRPC_MESSAGE pRpcMessage,
2264 DWORD* pdwStubPhase);
2265 HRESULT CALLBACK IShellLinkA_Resolve_Proxy(
2269 void __RPC_STUB IShellLinkA_Resolve_Stub(
2270 struct IRpcStubBuffer* This,
2271 struct IRpcChannelBuffer* pRpcChannelBuffer,
2272 PRPC_MESSAGE pRpcMessage,
2273 DWORD* pdwStubPhase);
2274 HRESULT CALLBACK IShellLinkA_SetPath_Proxy(
2277 void __RPC_STUB IShellLinkA_SetPath_Stub(
2278 struct IRpcStubBuffer* This,
2279 struct IRpcChannelBuffer* pRpcChannelBuffer,
2280 PRPC_MESSAGE pRpcMessage,
2281 DWORD* pdwStubPhase);
2283 #endif /* __IShellLinkA_INTERFACE_DEFINED__ */
2285 #ifndef __IShellLinkW_FWD_DEFINED__
2286 #define __IShellLinkW_FWD_DEFINED__
2287 typedef struct IShellLinkW IShellLinkW;
2290 /*****************************************************************************
2291 * IShellLinkW interface
2293 #ifndef __IShellLinkW_INTERFACE_DEFINED__
2294 #define __IShellLinkW_INTERFACE_DEFINED__
2296 DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2297 #if defined(__cplusplus) && !defined(CINTERFACE)
2298 struct IShellLinkW : public IUnknown
2300 virtual HRESULT STDMETHODCALLTYPE GetPath(
2303 WIN32_FIND_DATAW* pfd,
2306 virtual HRESULT STDMETHODCALLTYPE GetIDList(
2307 LPITEMIDLIST* ppidl) = 0;
2309 virtual HRESULT STDMETHODCALLTYPE SetIDList(
2310 LPCITEMIDLIST pidl) = 0;
2312 virtual HRESULT STDMETHODCALLTYPE GetDescription(
2316 virtual HRESULT STDMETHODCALLTYPE SetDescription(
2317 LPCWSTR pszName) = 0;
2319 virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
2323 virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
2324 LPCWSTR pszDir) = 0;
2326 virtual HRESULT STDMETHODCALLTYPE GetArguments(
2330 virtual HRESULT STDMETHODCALLTYPE SetArguments(
2331 LPCWSTR pszArgs) = 0;
2333 virtual HRESULT STDMETHODCALLTYPE GetHotkey(
2334 WORD* pwHotkey) = 0;
2336 virtual HRESULT STDMETHODCALLTYPE SetHotkey(
2339 virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
2340 int* piShowCmd) = 0;
2342 virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
2345 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2350 virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
2351 LPCWSTR pszIconPath,
2354 virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
2356 DWORD dwReserved) = 0;
2358 virtual HRESULT STDMETHODCALLTYPE Resolve(
2362 virtual HRESULT STDMETHODCALLTYPE SetPath(
2363 LPCWSTR pszFile) = 0;
2367 typedef struct IShellLinkWVtbl IShellLinkWVtbl;
2368 struct IShellLinkW {
2369 const IShellLinkWVtbl* lpVtbl;
2371 struct IShellLinkWVtbl {
2374 /*** IUnknown methods ***/
2375 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2380 ULONG (STDMETHODCALLTYPE *AddRef)(
2383 ULONG (STDMETHODCALLTYPE *Release)(
2386 /*** IShellLinkW methods ***/
2387 HRESULT (STDMETHODCALLTYPE *GetPath)(
2391 WIN32_FIND_DATAW* pfd,
2394 HRESULT (STDMETHODCALLTYPE *GetIDList)(
2396 LPITEMIDLIST* ppidl);
2398 HRESULT (STDMETHODCALLTYPE *SetIDList)(
2400 LPCITEMIDLIST pidl);
2402 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2407 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2411 HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
2416 HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
2420 HRESULT (STDMETHODCALLTYPE *GetArguments)(
2425 HRESULT (STDMETHODCALLTYPE *SetArguments)(
2429 HRESULT (STDMETHODCALLTYPE *GetHotkey)(
2433 HRESULT (STDMETHODCALLTYPE *SetHotkey)(
2437 HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
2441 HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
2445 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2451 HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
2453 LPCWSTR pszIconPath,
2456 HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
2461 HRESULT (STDMETHODCALLTYPE *Resolve)(
2466 HRESULT (STDMETHODCALLTYPE *SetPath)(
2474 /*** IUnknown methods ***/
2475 #define IShellLinkW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2476 #define IShellLinkW_AddRef(p) (p)->lpVtbl->AddRef(p)
2477 #define IShellLinkW_Release(p) (p)->lpVtbl->Release(p)
2478 /*** IShellLinkW methods ***/
2479 #define IShellLinkW_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d)
2480 #define IShellLinkW_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a)
2481 #define IShellLinkW_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a)
2482 #define IShellLinkW_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b)
2483 #define IShellLinkW_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a)
2484 #define IShellLinkW_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b)
2485 #define IShellLinkW_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a)
2486 #define IShellLinkW_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b)
2487 #define IShellLinkW_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a)
2488 #define IShellLinkW_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a)
2489 #define IShellLinkW_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a)
2490 #define IShellLinkW_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a)
2491 #define IShellLinkW_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a)
2492 #define IShellLinkW_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c)
2493 #define IShellLinkW_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b)
2494 #define IShellLinkW_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b)
2495 #define IShellLinkW_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b)
2496 #define IShellLinkW_SetPath(p,a) (p)->lpVtbl->SetPath(p,a)
2501 #define IShellLinkW_METHODS \
2502 /*** IUnknown methods ***/ \
2503 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2504 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2505 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2506 /*** IShellLinkW methods ***/ \
2507 STDMETHOD_(HRESULT,GetPath)(THIS_ LPWSTR pszFile, int cch, WIN32_FIND_DATAW* pfd, DWORD fFlags) PURE; \
2508 STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2509 STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \
2510 STDMETHOD_(HRESULT,GetDescription)(THIS_ LPWSTR pszName, int cch) PURE; \
2511 STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCWSTR pszName) PURE; \
2512 STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPWSTR pszDir, int cch) PURE; \
2513 STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCWSTR pszDir) PURE; \
2514 STDMETHOD_(HRESULT,GetArguments)(THIS_ LPWSTR pszArgs, int cch) PURE; \
2515 STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCWSTR pszArgs) PURE; \
2516 STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \
2517 STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \
2518 STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \
2519 STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \
2520 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPWSTR pszIconPath, int cch, int* piIcon) PURE; \
2521 STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCWSTR pszIconPath, int iIcon) PURE; \
2522 STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCWSTR pszPathRel, DWORD dwReserved) PURE; \
2523 STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \
2524 STDMETHOD_(HRESULT,SetPath)(THIS_ LPCWSTR pszFile) PURE;
2526 HRESULT CALLBACK IShellLinkW_GetPath_Proxy(
2530 WIN32_FIND_DATAW* pfd,
2532 void __RPC_STUB IShellLinkW_GetPath_Stub(
2533 struct IRpcStubBuffer* This,
2534 struct IRpcChannelBuffer* pRpcChannelBuffer,
2535 PRPC_MESSAGE pRpcMessage,
2536 DWORD* pdwStubPhase);
2537 HRESULT CALLBACK IShellLinkW_GetIDList_Proxy(
2539 LPITEMIDLIST* ppidl);
2540 void __RPC_STUB IShellLinkW_GetIDList_Stub(
2541 struct IRpcStubBuffer* This,
2542 struct IRpcChannelBuffer* pRpcChannelBuffer,
2543 PRPC_MESSAGE pRpcMessage,
2544 DWORD* pdwStubPhase);
2545 HRESULT CALLBACK IShellLinkW_SetIDList_Proxy(
2547 LPCITEMIDLIST pidl);
2548 void __RPC_STUB IShellLinkW_SetIDList_Stub(
2549 struct IRpcStubBuffer* This,
2550 struct IRpcChannelBuffer* pRpcChannelBuffer,
2551 PRPC_MESSAGE pRpcMessage,
2552 DWORD* pdwStubPhase);
2553 HRESULT CALLBACK IShellLinkW_GetDescription_Proxy(
2557 void __RPC_STUB IShellLinkW_GetDescription_Stub(
2558 struct IRpcStubBuffer* This,
2559 struct IRpcChannelBuffer* pRpcChannelBuffer,
2560 PRPC_MESSAGE pRpcMessage,
2561 DWORD* pdwStubPhase);
2562 HRESULT CALLBACK IShellLinkW_SetDescription_Proxy(
2565 void __RPC_STUB IShellLinkW_SetDescription_Stub(
2566 struct IRpcStubBuffer* This,
2567 struct IRpcChannelBuffer* pRpcChannelBuffer,
2568 PRPC_MESSAGE pRpcMessage,
2569 DWORD* pdwStubPhase);
2570 HRESULT CALLBACK IShellLinkW_GetWorkingDirectory_Proxy(
2574 void __RPC_STUB IShellLinkW_GetWorkingDirectory_Stub(
2575 struct IRpcStubBuffer* This,
2576 struct IRpcChannelBuffer* pRpcChannelBuffer,
2577 PRPC_MESSAGE pRpcMessage,
2578 DWORD* pdwStubPhase);
2579 HRESULT CALLBACK IShellLinkW_SetWorkingDirectory_Proxy(
2582 void __RPC_STUB IShellLinkW_SetWorkingDirectory_Stub(
2583 struct IRpcStubBuffer* This,
2584 struct IRpcChannelBuffer* pRpcChannelBuffer,
2585 PRPC_MESSAGE pRpcMessage,
2586 DWORD* pdwStubPhase);
2587 HRESULT CALLBACK IShellLinkW_GetArguments_Proxy(
2591 void __RPC_STUB IShellLinkW_GetArguments_Stub(
2592 struct IRpcStubBuffer* This,
2593 struct IRpcChannelBuffer* pRpcChannelBuffer,
2594 PRPC_MESSAGE pRpcMessage,
2595 DWORD* pdwStubPhase);
2596 HRESULT CALLBACK IShellLinkW_SetArguments_Proxy(
2599 void __RPC_STUB IShellLinkW_SetArguments_Stub(
2600 struct IRpcStubBuffer* This,
2601 struct IRpcChannelBuffer* pRpcChannelBuffer,
2602 PRPC_MESSAGE pRpcMessage,
2603 DWORD* pdwStubPhase);
2604 HRESULT CALLBACK IShellLinkW_GetHotkey_Proxy(
2607 void __RPC_STUB IShellLinkW_GetHotkey_Stub(
2608 struct IRpcStubBuffer* This,
2609 struct IRpcChannelBuffer* pRpcChannelBuffer,
2610 PRPC_MESSAGE pRpcMessage,
2611 DWORD* pdwStubPhase);
2612 HRESULT CALLBACK IShellLinkW_SetHotkey_Proxy(
2615 void __RPC_STUB IShellLinkW_SetHotkey_Stub(
2616 struct IRpcStubBuffer* This,
2617 struct IRpcChannelBuffer* pRpcChannelBuffer,
2618 PRPC_MESSAGE pRpcMessage,
2619 DWORD* pdwStubPhase);
2620 HRESULT CALLBACK IShellLinkW_GetShowCmd_Proxy(
2623 void __RPC_STUB IShellLinkW_GetShowCmd_Stub(
2624 struct IRpcStubBuffer* This,
2625 struct IRpcChannelBuffer* pRpcChannelBuffer,
2626 PRPC_MESSAGE pRpcMessage,
2627 DWORD* pdwStubPhase);
2628 HRESULT CALLBACK IShellLinkW_SetShowCmd_Proxy(
2631 void __RPC_STUB IShellLinkW_SetShowCmd_Stub(
2632 struct IRpcStubBuffer* This,
2633 struct IRpcChannelBuffer* pRpcChannelBuffer,
2634 PRPC_MESSAGE pRpcMessage,
2635 DWORD* pdwStubPhase);
2636 HRESULT CALLBACK IShellLinkW_GetIconLocation_Proxy(
2641 void __RPC_STUB IShellLinkW_GetIconLocation_Stub(
2642 struct IRpcStubBuffer* This,
2643 struct IRpcChannelBuffer* pRpcChannelBuffer,
2644 PRPC_MESSAGE pRpcMessage,
2645 DWORD* pdwStubPhase);
2646 HRESULT CALLBACK IShellLinkW_SetIconLocation_Proxy(
2648 LPCWSTR pszIconPath,
2650 void __RPC_STUB IShellLinkW_SetIconLocation_Stub(
2651 struct IRpcStubBuffer* This,
2652 struct IRpcChannelBuffer* pRpcChannelBuffer,
2653 PRPC_MESSAGE pRpcMessage,
2654 DWORD* pdwStubPhase);
2655 HRESULT CALLBACK IShellLinkW_SetRelativePath_Proxy(
2659 void __RPC_STUB IShellLinkW_SetRelativePath_Stub(
2660 struct IRpcStubBuffer* This,
2661 struct IRpcChannelBuffer* pRpcChannelBuffer,
2662 PRPC_MESSAGE pRpcMessage,
2663 DWORD* pdwStubPhase);
2664 HRESULT CALLBACK IShellLinkW_Resolve_Proxy(
2668 void __RPC_STUB IShellLinkW_Resolve_Stub(
2669 struct IRpcStubBuffer* This,
2670 struct IRpcChannelBuffer* pRpcChannelBuffer,
2671 PRPC_MESSAGE pRpcMessage,
2672 DWORD* pdwStubPhase);
2673 HRESULT CALLBACK IShellLinkW_SetPath_Proxy(
2676 void __RPC_STUB IShellLinkW_SetPath_Stub(
2677 struct IRpcStubBuffer* This,
2678 struct IRpcChannelBuffer* pRpcChannelBuffer,
2679 PRPC_MESSAGE pRpcMessage,
2680 DWORD* pdwStubPhase);
2682 #endif /* __IShellLinkW_INTERFACE_DEFINED__ */
2684 #define IShellLink WINELIB_NAME_AW(IShellLink)
2685 #ifndef __IShellExtInit_FWD_DEFINED__
2686 #define __IShellExtInit_FWD_DEFINED__
2687 typedef struct IShellExtInit IShellExtInit;
2690 typedef IShellExtInit *LPSHELLEXTINIT;
2692 /*****************************************************************************
2693 * IShellExtInit interface
2695 #ifndef __IShellExtInit_INTERFACE_DEFINED__
2696 #define __IShellExtInit_INTERFACE_DEFINED__
2698 DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2699 #if defined(__cplusplus) && !defined(CINTERFACE)
2700 struct IShellExtInit : public IUnknown
2702 virtual HRESULT STDMETHODCALLTYPE Initialize(
2703 LPCITEMIDLIST pidlFolder,
2704 IDataObject* pdtobj,
2705 HKEY hkeyProgID) = 0;
2709 typedef struct IShellExtInitVtbl IShellExtInitVtbl;
2710 struct IShellExtInit {
2711 const IShellExtInitVtbl* lpVtbl;
2713 struct IShellExtInitVtbl {
2716 /*** IUnknown methods ***/
2717 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2718 IShellExtInit* This,
2722 ULONG (STDMETHODCALLTYPE *AddRef)(
2723 IShellExtInit* This);
2725 ULONG (STDMETHODCALLTYPE *Release)(
2726 IShellExtInit* This);
2728 /*** IShellExtInit methods ***/
2729 HRESULT (STDMETHODCALLTYPE *Initialize)(
2730 IShellExtInit* This,
2731 LPCITEMIDLIST pidlFolder,
2732 IDataObject* pdtobj,
2739 /*** IUnknown methods ***/
2740 #define IShellExtInit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2741 #define IShellExtInit_AddRef(p) (p)->lpVtbl->AddRef(p)
2742 #define IShellExtInit_Release(p) (p)->lpVtbl->Release(p)
2743 /*** IShellExtInit methods ***/
2744 #define IShellExtInit_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
2749 #define IShellExtInit_METHODS \
2750 /*** IUnknown methods ***/ \
2751 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2752 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2753 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2754 /*** IShellExtInit methods ***/ \
2755 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidlFolder, IDataObject* pdtobj, HKEY hkeyProgID) PURE;
2757 HRESULT CALLBACK IShellExtInit_Initialize_Proxy(
2758 IShellExtInit* This,
2759 LPCITEMIDLIST pidlFolder,
2760 IDataObject* pdtobj,
2762 void __RPC_STUB IShellExtInit_Initialize_Stub(
2763 struct IRpcStubBuffer* This,
2764 struct IRpcChannelBuffer* pRpcChannelBuffer,
2765 PRPC_MESSAGE pRpcMessage,
2766 DWORD* pdwStubPhase);
2768 #endif /* __IShellExtInit_INTERFACE_DEFINED__ */
2770 #ifndef __IPersistFolder3_FWD_DEFINED__
2771 #define __IPersistFolder3_FWD_DEFINED__
2772 typedef struct IPersistFolder3 IPersistFolder3;
2776 LPITEMIDLIST pidlTargetFolder;
2777 WCHAR szTargetParsingName[260];
2778 WCHAR szNetworkProvider[260];
2781 } PERSIST_FOLDER_TARGET_INFO;
2783 /*****************************************************************************
2784 * IPersistFolder3 interface
2786 #ifndef __IPersistFolder3_INTERFACE_DEFINED__
2787 #define __IPersistFolder3_INTERFACE_DEFINED__
2789 DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf);
2790 #if defined(__cplusplus) && !defined(CINTERFACE)
2791 struct IPersistFolder3 : public IPersistFolder2
2793 virtual HRESULT STDMETHODCALLTYPE InitializeEx(
2795 LPCITEMIDLIST pidlRoot,
2796 const PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2798 virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
2799 PERSIST_FOLDER_TARGET_INFO* ppfti) = 0;
2803 typedef struct IPersistFolder3Vtbl IPersistFolder3Vtbl;
2804 struct IPersistFolder3 {
2805 const IPersistFolder3Vtbl* lpVtbl;
2807 struct IPersistFolder3Vtbl {
2810 /*** IUnknown methods ***/
2811 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2812 IPersistFolder3* This,
2816 ULONG (STDMETHODCALLTYPE *AddRef)(
2817 IPersistFolder3* This);
2819 ULONG (STDMETHODCALLTYPE *Release)(
2820 IPersistFolder3* This);
2822 /*** IPersist methods ***/
2823 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2824 IPersistFolder3* This,
2827 /*** IPersistFolder methods ***/
2828 HRESULT (STDMETHODCALLTYPE *Initialize)(
2829 IPersistFolder3* This,
2830 LPCITEMIDLIST pidl);
2832 /*** IPersistFolder2 methods ***/
2833 HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
2834 IPersistFolder3* This,
2835 LPITEMIDLIST* ppidl);
2837 /*** IPersistFolder3 methods ***/
2838 HRESULT (STDMETHODCALLTYPE *InitializeEx)(
2839 IPersistFolder3* This,
2841 LPCITEMIDLIST pidlRoot,
2842 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2844 HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
2845 IPersistFolder3* This,
2846 PERSIST_FOLDER_TARGET_INFO* ppfti);
2852 /*** IUnknown methods ***/
2853 #define IPersistFolder3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2854 #define IPersistFolder3_AddRef(p) (p)->lpVtbl->AddRef(p)
2855 #define IPersistFolder3_Release(p) (p)->lpVtbl->Release(p)
2856 /*** IPersist methods ***/
2857 #define IPersistFolder3_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2858 /*** IPersistFolder methods ***/
2859 #define IPersistFolder3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
2860 /*** IPersistFolder2 methods ***/
2861 #define IPersistFolder3_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a)
2862 /*** IPersistFolder3 methods ***/
2863 #define IPersistFolder3_InitializeEx(p,a,b,c) (p)->lpVtbl->InitializeEx(p,a,b,c)
2864 #define IPersistFolder3_GetFolderTargetInfo(p,a) (p)->lpVtbl->GetFolderTargetInfo(p,a)
2869 #define IPersistFolder3_METHODS \
2870 /*** IUnknown methods ***/ \
2871 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2872 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2873 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2874 /*** IPersist methods ***/ \
2875 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2876 /*** IPersistFolder methods ***/ \
2877 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \
2878 /*** IPersistFolder2 methods ***/ \
2879 STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE; \
2880 /*** IPersistFolder3 methods ***/ \
2881 STDMETHOD_(HRESULT,InitializeEx)(THIS_ IBindCtx* pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO* ppfti) PURE; \
2882 STDMETHOD_(HRESULT,GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO* ppfti) PURE;
2884 HRESULT CALLBACK IPersistFolder3_InitializeEx_Proxy(
2885 IPersistFolder3* This,
2887 LPCITEMIDLIST pidlRoot,
2888 const PERSIST_FOLDER_TARGET_INFO* ppfti);
2889 void __RPC_STUB IPersistFolder3_InitializeEx_Stub(
2890 struct IRpcStubBuffer* This,
2891 struct IRpcChannelBuffer* pRpcChannelBuffer,
2892 PRPC_MESSAGE pRpcMessage,
2893 DWORD* pdwStubPhase);
2894 HRESULT CALLBACK IPersistFolder3_GetFolderTargetInfo_Proxy(
2895 IPersistFolder3* This,
2896 PERSIST_FOLDER_TARGET_INFO* ppfti);
2897 void __RPC_STUB IPersistFolder3_GetFolderTargetInfo_Stub(
2898 struct IRpcStubBuffer* This,
2899 struct IRpcChannelBuffer* pRpcChannelBuffer,
2900 PRPC_MESSAGE pRpcMessage,
2901 DWORD* pdwStubPhase);
2903 #endif /* __IPersistFolder3_INTERFACE_DEFINED__ */
2905 #ifndef __IExtractIconA_FWD_DEFINED__
2906 #define __IExtractIconA_FWD_DEFINED__
2907 typedef struct IExtractIconA IExtractIconA;
2910 #define GIL_OPENICON 0x0001
2911 #define GIL_FORSHELL 0x0002
2912 #define GIL_ASYNC 0x0020
2913 #define GIL_DEFAULTICON 0x0040
2914 #define GIL_FORSHORTCUT 0x0080
2915 #define GIL_SIMULATEDOC 0x0001
2916 #define GIL_PERINSTANCE 0x0002
2917 #define GIL_PERCLASS 0x0004
2918 #define GIL_NOTFILENAME 0x0008
2919 #define GIL_DONTCACHE 0x0010
2920 typedef IExtractIconA *LPEXTRACTICONA;
2922 /*****************************************************************************
2923 * IExtractIconA interface
2925 #ifndef __IExtractIconA_INTERFACE_DEFINED__
2926 #define __IExtractIconA_INTERFACE_DEFINED__
2928 DEFINE_GUID(IID_IExtractIconA, 0x000214eb, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2929 #if defined(__cplusplus) && !defined(CINTERFACE)
2930 struct IExtractIconA : public IUnknown
2932 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
2939 virtual HRESULT STDMETHODCALLTYPE Extract(
2944 UINT nIconSize) = 0;
2948 typedef struct IExtractIconAVtbl IExtractIconAVtbl;
2949 struct IExtractIconA {
2950 const IExtractIconAVtbl* lpVtbl;
2952 struct IExtractIconAVtbl {
2955 /*** IUnknown methods ***/
2956 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2957 IExtractIconA* This,
2961 ULONG (STDMETHODCALLTYPE *AddRef)(
2962 IExtractIconA* This);
2964 ULONG (STDMETHODCALLTYPE *Release)(
2965 IExtractIconA* This);
2967 /*** IExtractIconA methods ***/
2968 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
2969 IExtractIconA* This,
2976 HRESULT (STDMETHODCALLTYPE *Extract)(
2977 IExtractIconA* This,
2988 /*** IUnknown methods ***/
2989 #define IExtractIconA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2990 #define IExtractIconA_AddRef(p) (p)->lpVtbl->AddRef(p)
2991 #define IExtractIconA_Release(p) (p)->lpVtbl->Release(p)
2992 /*** IExtractIconA methods ***/
2993 #define IExtractIconA_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
2994 #define IExtractIconA_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
2999 #define IExtractIconA_METHODS \
3000 /*** IUnknown methods ***/ \
3001 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3002 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3003 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3004 /*** IExtractIconA methods ***/ \
3005 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \
3006 STDMETHOD_(HRESULT,Extract)(THIS_ LPCSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE;
3008 HRESULT CALLBACK IExtractIconA_GetIconLocation_Proxy(
3009 IExtractIconA* This,
3015 void __RPC_STUB IExtractIconA_GetIconLocation_Stub(
3016 struct IRpcStubBuffer* This,
3017 struct IRpcChannelBuffer* pRpcChannelBuffer,
3018 PRPC_MESSAGE pRpcMessage,
3019 DWORD* pdwStubPhase);
3020 HRESULT CALLBACK IExtractIconA_Extract_Proxy(
3021 IExtractIconA* This,
3027 void __RPC_STUB IExtractIconA_Extract_Stub(
3028 struct IRpcStubBuffer* This,
3029 struct IRpcChannelBuffer* pRpcChannelBuffer,
3030 PRPC_MESSAGE pRpcMessage,
3031 DWORD* pdwStubPhase);
3033 #endif /* __IExtractIconA_INTERFACE_DEFINED__ */
3035 #ifndef __IExtractIconW_FWD_DEFINED__
3036 #define __IExtractIconW_FWD_DEFINED__
3037 typedef struct IExtractIconW IExtractIconW;
3040 typedef IExtractIconW *LPEXTRACTICONW;
3042 /*****************************************************************************
3043 * IExtractIconW interface
3045 #ifndef __IExtractIconW_INTERFACE_DEFINED__
3046 #define __IExtractIconW_INTERFACE_DEFINED__
3048 DEFINE_GUID(IID_IExtractIconW, 0x000214fa, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3049 #if defined(__cplusplus) && !defined(CINTERFACE)
3050 struct IExtractIconW : public IUnknown
3052 virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
3059 virtual HRESULT STDMETHODCALLTYPE Extract(
3064 UINT nIconSize) = 0;
3068 typedef struct IExtractIconWVtbl IExtractIconWVtbl;
3069 struct IExtractIconW {
3070 const IExtractIconWVtbl* lpVtbl;
3072 struct IExtractIconWVtbl {
3075 /*** IUnknown methods ***/
3076 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3077 IExtractIconW* This,
3081 ULONG (STDMETHODCALLTYPE *AddRef)(
3082 IExtractIconW* This);
3084 ULONG (STDMETHODCALLTYPE *Release)(
3085 IExtractIconW* This);
3087 /*** IExtractIconW methods ***/
3088 HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
3089 IExtractIconW* This,
3096 HRESULT (STDMETHODCALLTYPE *Extract)(
3097 IExtractIconW* This,
3108 /*** IUnknown methods ***/
3109 #define IExtractIconW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3110 #define IExtractIconW_AddRef(p) (p)->lpVtbl->AddRef(p)
3111 #define IExtractIconW_Release(p) (p)->lpVtbl->Release(p)
3112 /*** IExtractIconW methods ***/
3113 #define IExtractIconW_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e)
3114 #define IExtractIconW_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e)
3119 #define IExtractIconW_METHODS \
3120 /*** IUnknown methods ***/ \
3121 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3122 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3123 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3124 /*** IExtractIconW methods ***/ \
3125 STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPWSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \
3126 STDMETHOD_(HRESULT,Extract)(THIS_ LPCWSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE;
3128 HRESULT CALLBACK IExtractIconW_GetIconLocation_Proxy(
3129 IExtractIconW* This,
3135 void __RPC_STUB IExtractIconW_GetIconLocation_Stub(
3136 struct IRpcStubBuffer* This,
3137 struct IRpcChannelBuffer* pRpcChannelBuffer,
3138 PRPC_MESSAGE pRpcMessage,
3139 DWORD* pdwStubPhase);
3140 HRESULT CALLBACK IExtractIconW_Extract_Proxy(
3141 IExtractIconW* This,
3147 void __RPC_STUB IExtractIconW_Extract_Stub(
3148 struct IRpcStubBuffer* This,
3149 struct IRpcChannelBuffer* pRpcChannelBuffer,
3150 PRPC_MESSAGE pRpcMessage,
3151 DWORD* pdwStubPhase);
3153 #endif /* __IExtractIconW_INTERFACE_DEFINED__ */
3155 #define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)
3156 #define IExtractIcon WINELIB_NAME_AW(IExtractIcon)
3157 #ifndef __ICommDlgBrowser_FWD_DEFINED__
3158 #define __ICommDlgBrowser_FWD_DEFINED__
3159 typedef struct ICommDlgBrowser ICommDlgBrowser;
3162 #define CDBOSC_SETFOCUS 0x00000000
3163 #define CDBOSC_KILLFOCUS 0x00000001
3164 #define CDBOSC_SELCHANGE 0x00000002
3165 #define CDBOSC_RENAME 0x00000003
3166 #define CDBOSC_STATECHANGE 0x00000004
3167 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
3169 /*****************************************************************************
3170 * ICommDlgBrowser interface
3172 #ifndef __ICommDlgBrowser_INTERFACE_DEFINED__
3173 #define __ICommDlgBrowser_INTERFACE_DEFINED__
3175 DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3176 #if defined(__cplusplus) && !defined(CINTERFACE)
3177 struct ICommDlgBrowser : public IUnknown
3179 virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand(
3180 IShellView* shv) = 0;
3182 virtual HRESULT STDMETHODCALLTYPE OnStateChange(
3186 virtual HRESULT STDMETHODCALLTYPE IncludeObject(
3188 LPCITEMIDLIST pidl) = 0;
3192 typedef struct ICommDlgBrowserVtbl ICommDlgBrowserVtbl;
3193 struct ICommDlgBrowser {
3194 const ICommDlgBrowserVtbl* lpVtbl;
3196 struct ICommDlgBrowserVtbl {
3199 /*** IUnknown methods ***/
3200 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3201 ICommDlgBrowser* This,
3205 ULONG (STDMETHODCALLTYPE *AddRef)(
3206 ICommDlgBrowser* This);
3208 ULONG (STDMETHODCALLTYPE *Release)(
3209 ICommDlgBrowser* This);
3211 /*** ICommDlgBrowser methods ***/
3212 HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
3213 ICommDlgBrowser* This,
3216 HRESULT (STDMETHODCALLTYPE *OnStateChange)(
3217 ICommDlgBrowser* This,
3221 HRESULT (STDMETHODCALLTYPE *IncludeObject)(
3222 ICommDlgBrowser* This,
3224 LPCITEMIDLIST pidl);
3230 /*** IUnknown methods ***/
3231 #define ICommDlgBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3232 #define ICommDlgBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
3233 #define ICommDlgBrowser_Release(p) (p)->lpVtbl->Release(p)
3234 /*** ICommDlgBrowser methods ***/
3235 #define ICommDlgBrowser_OnDefaultCommand(p,a) (p)->lpVtbl->OnDefaultCommand(p,a)
3236 #define ICommDlgBrowser_OnStateChange(p,a,b) (p)->lpVtbl->OnStateChange(p,a,b)
3237 #define ICommDlgBrowser_IncludeObject(p,a,b) (p)->lpVtbl->IncludeObject(p,a,b)
3242 #define ICommDlgBrowser_METHODS \
3243 /*** IUnknown methods ***/ \
3244 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3245 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3246 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3247 /*** ICommDlgBrowser methods ***/ \
3248 STDMETHOD_(HRESULT,OnDefaultCommand)(THIS_ IShellView* shv) PURE; \
3249 STDMETHOD_(HRESULT,OnStateChange)(THIS_ IShellView* shv, ULONG uChange) PURE; \
3250 STDMETHOD_(HRESULT,IncludeObject)(THIS_ IShellView* shv, LPCITEMIDLIST pidl) PURE;
3252 HRESULT CALLBACK ICommDlgBrowser_OnDefaultCommand_Proxy(
3253 ICommDlgBrowser* This,
3255 void __RPC_STUB ICommDlgBrowser_OnDefaultCommand_Stub(
3256 struct IRpcStubBuffer* This,
3257 struct IRpcChannelBuffer* pRpcChannelBuffer,
3258 PRPC_MESSAGE pRpcMessage,
3259 DWORD* pdwStubPhase);
3260 HRESULT CALLBACK ICommDlgBrowser_OnStateChange_Proxy(
3261 ICommDlgBrowser* This,
3264 void __RPC_STUB ICommDlgBrowser_OnStateChange_Stub(
3265 struct IRpcStubBuffer* This,
3266 struct IRpcChannelBuffer* pRpcChannelBuffer,
3267 PRPC_MESSAGE pRpcMessage,
3268 DWORD* pdwStubPhase);
3269 HRESULT CALLBACK ICommDlgBrowser_IncludeObject_Proxy(
3270 ICommDlgBrowser* This,
3272 LPCITEMIDLIST pidl);
3273 void __RPC_STUB ICommDlgBrowser_IncludeObject_Stub(
3274 struct IRpcStubBuffer* This,
3275 struct IRpcChannelBuffer* pRpcChannelBuffer,
3276 PRPC_MESSAGE pRpcMessage,
3277 DWORD* pdwStubPhase);
3279 #endif /* __ICommDlgBrowser_INTERFACE_DEFINED__ */
3281 #ifndef __IDockingWindowFrame_FWD_DEFINED__
3282 #define __IDockingWindowFrame_FWD_DEFINED__
3283 typedef struct IDockingWindowFrame IDockingWindowFrame;
3286 #define DWFRF_NORMAL 0x0000
3287 #define DWFRF_DELETECONFIGDATA 0x0001
3288 #define DWFAF_HIDDEN 0x0001
3289 /*****************************************************************************
3290 * IDockingWindowFrame interface
3292 #ifndef __IDockingWindowFrame_INTERFACE_DEFINED__
3293 #define __IDockingWindowFrame_INTERFACE_DEFINED__
3295 DEFINE_GUID(IID_IDockingWindowFrame, 0x47d2657a, 0x7b27, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
3296 #if defined(__cplusplus) && !defined(CINTERFACE)
3297 struct IDockingWindowFrame : public IOleWindow
3299 virtual HRESULT STDMETHODCALLTYPE AddToolbar(
3302 DWORD dwAddFlags) = 0;
3304 virtual HRESULT STDMETHODCALLTYPE RemoveToolbar(
3306 DWORD dwRemoveFlags) = 0;
3308 virtual HRESULT STDMETHODCALLTYPE FindToolbar(
3311 LPVOID* ppvObj) = 0;
3315 typedef struct IDockingWindowFrameVtbl IDockingWindowFrameVtbl;
3316 struct IDockingWindowFrame {
3317 const IDockingWindowFrameVtbl* lpVtbl;
3319 struct IDockingWindowFrameVtbl {
3322 /*** IUnknown methods ***/
3323 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3324 IDockingWindowFrame* This,
3328 ULONG (STDMETHODCALLTYPE *AddRef)(
3329 IDockingWindowFrame* This);
3331 ULONG (STDMETHODCALLTYPE *Release)(
3332 IDockingWindowFrame* This);
3334 /*** IOleWindow methods ***/
3335 HRESULT (STDMETHODCALLTYPE *GetWindow)(
3336 IDockingWindowFrame* This,
3339 HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
3340 IDockingWindowFrame* This,
3343 /*** IDockingWindowFrame methods ***/
3344 HRESULT (STDMETHODCALLTYPE *AddToolbar)(
3345 IDockingWindowFrame* This,
3350 HRESULT (STDMETHODCALLTYPE *RemoveToolbar)(
3351 IDockingWindowFrame* This,
3353 DWORD dwRemoveFlags);
3355 HRESULT (STDMETHODCALLTYPE *FindToolbar)(
3356 IDockingWindowFrame* This,
3365 /*** IUnknown methods ***/
3366 #define IDockingWindowFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3367 #define IDockingWindowFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
3368 #define IDockingWindowFrame_Release(p) (p)->lpVtbl->Release(p)
3369 /*** IOleWindow methods ***/
3370 #define IDockingWindowFrame_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
3371 #define IDockingWindowFrame_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
3372 /*** IDockingWindowFrame methods ***/
3373 #define IDockingWindowFrame_AddToolbar(p,a,b,c) (p)->lpVtbl->AddToolbar(p,a,b,c)
3374 #define IDockingWindowFrame_RemoveToolbar(p,a,b) (p)->lpVtbl->RemoveToolbar(p,a,b)
3375 #define IDockingWindowFrame_FindToolbar(p,a,b,c) (p)->lpVtbl->FindToolbar(p,a,b,c)
3380 #define IDockingWindowFrame_METHODS \
3381 /*** IUnknown methods ***/ \
3382 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3383 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3384 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3385 /*** IOleWindow methods ***/ \
3386 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
3387 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
3388 /*** IDockingWindowFrame methods ***/ \
3389 STDMETHOD_(HRESULT,AddToolbar)(THIS_ IUnknown* punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags) PURE; \
3390 STDMETHOD_(HRESULT,RemoveToolbar)(THIS_ IUnknown* punkSrc, DWORD dwRemoveFlags) PURE; \
3391 STDMETHOD_(HRESULT,FindToolbar)(THIS_ LPCWSTR pwszItem, REFIID riid, LPVOID* ppvObj) PURE;
3393 HRESULT CALLBACK IDockingWindowFrame_AddToolbar_Proxy(
3394 IDockingWindowFrame* This,
3398 void __RPC_STUB IDockingWindowFrame_AddToolbar_Stub(
3399 struct IRpcStubBuffer* This,
3400 struct IRpcChannelBuffer* pRpcChannelBuffer,
3401 PRPC_MESSAGE pRpcMessage,
3402 DWORD* pdwStubPhase);
3403 HRESULT CALLBACK IDockingWindowFrame_RemoveToolbar_Proxy(
3404 IDockingWindowFrame* This,
3406 DWORD dwRemoveFlags);
3407 void __RPC_STUB IDockingWindowFrame_RemoveToolbar_Stub(
3408 struct IRpcStubBuffer* This,
3409 struct IRpcChannelBuffer* pRpcChannelBuffer,
3410 PRPC_MESSAGE pRpcMessage,
3411 DWORD* pdwStubPhase);
3412 HRESULT CALLBACK IDockingWindowFrame_FindToolbar_Proxy(
3413 IDockingWindowFrame* This,
3417 void __RPC_STUB IDockingWindowFrame_FindToolbar_Stub(
3418 struct IRpcStubBuffer* This,
3419 struct IRpcChannelBuffer* pRpcChannelBuffer,
3420 PRPC_MESSAGE pRpcMessage,
3421 DWORD* pdwStubPhase);
3423 #endif /* __IDockingWindowFrame_INTERFACE_DEFINED__ */
3425 #ifndef __IDragSourceHelper_FWD_DEFINED__
3426 #define __IDragSourceHelper_FWD_DEFINED__
3427 typedef struct IDragSourceHelper IDragSourceHelper;
3433 HBITMAP hbmpDragImage;
3434 COLORREF crColorKey;
3435 } SHDRAGIMAGE, *LPSHDRAGIMAGE;
3437 /*****************************************************************************
3438 * IDragSourceHelper interface
3440 #ifndef __IDragSourceHelper_INTERFACE_DEFINED__
3441 #define __IDragSourceHelper_INTERFACE_DEFINED__
3443 DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
3444 #if defined(__cplusplus) && !defined(CINTERFACE)
3445 struct IDragSourceHelper : public IUnknown
3447 virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
3448 LPSHDRAGIMAGE pshdi,
3449 IDataObject* pDataObject) = 0;
3451 virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow(
3454 IDataObject* pDataObject) = 0;
3458 typedef struct IDragSourceHelperVtbl IDragSourceHelperVtbl;
3459 struct IDragSourceHelper {
3460 const IDragSourceHelperVtbl* lpVtbl;
3462 struct IDragSourceHelperVtbl {
3465 /*** IUnknown methods ***/
3466 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3467 IDragSourceHelper* This,
3471 ULONG (STDMETHODCALLTYPE *AddRef)(
3472 IDragSourceHelper* This);
3474 ULONG (STDMETHODCALLTYPE *Release)(
3475 IDragSourceHelper* This);
3477 /*** IDragSourceHelper methods ***/
3478 HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
3479 IDragSourceHelper* This,
3480 LPSHDRAGIMAGE pshdi,
3481 IDataObject* pDataObject);
3483 HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
3484 IDragSourceHelper* This,
3487 IDataObject* pDataObject);
3493 /*** IUnknown methods ***/
3494 #define IDragSourceHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3495 #define IDragSourceHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3496 #define IDragSourceHelper_Release(p) (p)->lpVtbl->Release(p)
3497 /*** IDragSourceHelper methods ***/
3498 #define IDragSourceHelper_InitializeFromBitmap(p,a,b) (p)->lpVtbl->InitializeFromBitmap(p,a,b)
3499 #define IDragSourceHelper_InitializeFromWindow(p,a,b,c) (p)->lpVtbl->InitializeFromWindow(p,a,b,c)
3504 #define IDragSourceHelper_METHODS \
3505 /*** IUnknown methods ***/ \
3506 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3507 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3508 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3509 /*** IDragSourceHelper methods ***/ \
3510 STDMETHOD_(HRESULT,InitializeFromBitmap)(THIS_ LPSHDRAGIMAGE pshdi, IDataObject* pDataObject) PURE; \
3511 STDMETHOD_(HRESULT,InitializeFromWindow)(THIS_ HWND hwnd, POINT* ppt, IDataObject* pDataObject) PURE;
3513 HRESULT CALLBACK IDragSourceHelper_InitializeFromBitmap_Proxy(
3514 IDragSourceHelper* This,
3515 LPSHDRAGIMAGE pshdi,
3516 IDataObject* pDataObject);
3517 void __RPC_STUB IDragSourceHelper_InitializeFromBitmap_Stub(
3518 struct IRpcStubBuffer* This,
3519 struct IRpcChannelBuffer* pRpcChannelBuffer,
3520 PRPC_MESSAGE pRpcMessage,
3521 DWORD* pdwStubPhase);
3522 HRESULT CALLBACK IDragSourceHelper_InitializeFromWindow_Proxy(
3523 IDragSourceHelper* This,
3526 IDataObject* pDataObject);
3527 void __RPC_STUB IDragSourceHelper_InitializeFromWindow_Stub(
3528 struct IRpcStubBuffer* This,
3529 struct IRpcChannelBuffer* pRpcChannelBuffer,
3530 PRPC_MESSAGE pRpcMessage,
3531 DWORD* pdwStubPhase);
3533 #endif /* __IDragSourceHelper_INTERFACE_DEFINED__ */
3535 #ifndef __IDropTargetHelper_FWD_DEFINED__
3536 #define __IDropTargetHelper_FWD_DEFINED__
3537 typedef struct IDropTargetHelper IDropTargetHelper;
3540 /*****************************************************************************
3541 * IDropTargetHelper interface
3543 #ifndef __IDropTargetHelper_INTERFACE_DEFINED__
3544 #define __IDropTargetHelper_INTERFACE_DEFINED__
3546 DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
3547 #if defined(__cplusplus) && !defined(CINTERFACE)
3548 struct IDropTargetHelper : public IUnknown
3550 virtual HRESULT STDMETHODCALLTYPE DragEnter(
3552 IDataObject* pDataObject,
3554 DWORD dwEffect) = 0;
3556 virtual HRESULT STDMETHODCALLTYPE DragLeave(
3559 virtual HRESULT STDMETHODCALLTYPE DragOver(
3561 DWORD dwEffect) = 0;
3563 virtual HRESULT STDMETHODCALLTYPE Drop(
3564 IDataObject* pDataObject,
3566 DWORD dwEffect) = 0;
3568 virtual HRESULT STDMETHODCALLTYPE Show(
3573 typedef struct IDropTargetHelperVtbl IDropTargetHelperVtbl;
3574 struct IDropTargetHelper {
3575 const IDropTargetHelperVtbl* lpVtbl;
3577 struct IDropTargetHelperVtbl {
3580 /*** IUnknown methods ***/
3581 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3582 IDropTargetHelper* This,
3586 ULONG (STDMETHODCALLTYPE *AddRef)(
3587 IDropTargetHelper* This);
3589 ULONG (STDMETHODCALLTYPE *Release)(
3590 IDropTargetHelper* This);
3592 /*** IDropTargetHelper methods ***/
3593 HRESULT (STDMETHODCALLTYPE *DragEnter)(
3594 IDropTargetHelper* This,
3596 IDataObject* pDataObject,
3600 HRESULT (STDMETHODCALLTYPE *DragLeave)(
3601 IDropTargetHelper* This);
3603 HRESULT (STDMETHODCALLTYPE *DragOver)(
3604 IDropTargetHelper* This,
3608 HRESULT (STDMETHODCALLTYPE *Drop)(
3609 IDropTargetHelper* This,
3610 IDataObject* pDataObject,
3614 HRESULT (STDMETHODCALLTYPE *Show)(
3615 IDropTargetHelper* This,
3622 /*** IUnknown methods ***/
3623 #define IDropTargetHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3624 #define IDropTargetHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
3625 #define IDropTargetHelper_Release(p) (p)->lpVtbl->Release(p)
3626 /*** IDropTargetHelper methods ***/
3627 #define IDropTargetHelper_DragEnter(p,a,b,c,d) (p)->lpVtbl->DragEnter(p,a,b,c,d)
3628 #define IDropTargetHelper_DragLeave(p) (p)->lpVtbl->DragLeave(p)
3629 #define IDropTargetHelper_DragOver(p,a,b) (p)->lpVtbl->DragOver(p,a,b)
3630 #define IDropTargetHelper_Drop(p,a,b,c) (p)->lpVtbl->Drop(p,a,b,c)
3631 #define IDropTargetHelper_Show(p,a) (p)->lpVtbl->Show(p,a)
3636 #define IDropTargetHelper_METHODS \
3637 /*** IUnknown methods ***/ \
3638 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3639 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3640 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3641 /*** IDropTargetHelper methods ***/ \
3642 STDMETHOD_(HRESULT,DragEnter)(THIS_ HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \
3643 STDMETHOD_(HRESULT,DragLeave)(THIS) PURE; \
3644 STDMETHOD_(HRESULT,DragOver)(THIS_ POINT* ppt, DWORD dwEffect) PURE; \
3645 STDMETHOD_(HRESULT,Drop)(THIS_ IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \
3646 STDMETHOD_(HRESULT,Show)(THIS_ BOOL fShow) PURE;
3648 HRESULT CALLBACK IDropTargetHelper_DragEnter_Proxy(
3649 IDropTargetHelper* This,
3651 IDataObject* pDataObject,
3654 void __RPC_STUB IDropTargetHelper_DragEnter_Stub(
3655 struct IRpcStubBuffer* This,
3656 struct IRpcChannelBuffer* pRpcChannelBuffer,
3657 PRPC_MESSAGE pRpcMessage,
3658 DWORD* pdwStubPhase);
3659 HRESULT CALLBACK IDropTargetHelper_DragLeave_Proxy(
3660 IDropTargetHelper* This);
3661 void __RPC_STUB IDropTargetHelper_DragLeave_Stub(
3662 struct IRpcStubBuffer* This,
3663 struct IRpcChannelBuffer* pRpcChannelBuffer,
3664 PRPC_MESSAGE pRpcMessage,
3665 DWORD* pdwStubPhase);
3666 HRESULT CALLBACK IDropTargetHelper_DragOver_Proxy(
3667 IDropTargetHelper* This,
3670 void __RPC_STUB IDropTargetHelper_DragOver_Stub(
3671 struct IRpcStubBuffer* This,
3672 struct IRpcChannelBuffer* pRpcChannelBuffer,
3673 PRPC_MESSAGE pRpcMessage,
3674 DWORD* pdwStubPhase);
3675 HRESULT CALLBACK IDropTargetHelper_Drop_Proxy(
3676 IDropTargetHelper* This,
3677 IDataObject* pDataObject,
3680 void __RPC_STUB IDropTargetHelper_Drop_Stub(
3681 struct IRpcStubBuffer* This,
3682 struct IRpcChannelBuffer* pRpcChannelBuffer,
3683 PRPC_MESSAGE pRpcMessage,
3684 DWORD* pdwStubPhase);
3685 HRESULT CALLBACK IDropTargetHelper_Show_Proxy(
3686 IDropTargetHelper* This,
3688 void __RPC_STUB IDropTargetHelper_Show_Stub(
3689 struct IRpcStubBuffer* This,
3690 struct IRpcChannelBuffer* pRpcChannelBuffer,
3691 PRPC_MESSAGE pRpcMessage,
3692 DWORD* pdwStubPhase);
3694 #endif /* __IDropTargetHelper_INTERFACE_DEFINED__ */
3696 #ifndef __IContextMenu_FWD_DEFINED__
3697 #define __IContextMenu_FWD_DEFINED__
3698 typedef struct IContextMenu IContextMenu;
3701 #define CMF_NORMAL 0x00000000
3702 #define CMF_DEFAULTONLY 0x00000001
3703 #define CMF_VERBSONLY 0x00000002
3704 #define CMF_EXPLORE 0x00000004
3705 #define CMF_NOVERBS 0x00000008
3706 #define CMF_CANRENAME 0x00000010
3707 #define CMF_NODEFAULT 0x00000020
3708 #define CMF_INCLUDESTATIC 0x00000040
3709 #define CMF_EXTENDEDVERBS 0x00000100
3710 #define CMF_RESERVED 0xffff0000
3711 #define GCS_VERBA 0x00000000
3712 #define GCS_HELPTEXTA 0x00000001
3713 #define GCS_VALIDATEA 0x00000002
3714 #define GCS_VERBW 0x00000004
3715 #define GCS_HELPTEXTW 0x00000005
3716 #define GCS_VALIDATEW 0x00000006
3717 #define GCS_UNICODE 0x00000004
3718 #define GCS_VERB WINELIB_NAME_AW(GCS_VERB)
3719 #define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)
3720 #define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)
3721 #define CMDSTR_NEWFOLDERA "NewFolder"
3722 #define CMDSTR_VIEWLISTA "ViewList"
3723 #define CMDSTR_VIEWDETAILSA "ViewDetails"
3724 #if defined(__GNUC__)
3725 # define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }
3726 # define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }
3727 # define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }
3728 #elif defined(_MSC_VER)
3729 # define CMDSTR_NEWFOLDERW L"NewFolder"
3730 # define CMDSTR_VIEWLISTW L"ViewList"
3731 # define CMDSTR_VIEWDETAILSW L"ViewDetails"
3733 static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};
3734 static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};
3735 static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};
3737 #define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)
3738 #define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)
3739 #define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)
3740 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
3741 #define CMIC_MASK_ICON SEE_MASK_ICON
3742 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
3743 #define CMIC_MASK_UNICODE SEE_MASK_UNICODE
3744 #define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE
3745 #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
3746 #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
3747 #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
3748 #define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK
3749 #define CMIC_MASK_SHIFT_DOWN 0x10000000
3750 #define CMIC_MASK_PTINVOKE 0x20000000
3751 #define CMIC_MASK_CONTROL_DOWN 0x40000000
3752 #define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE
3753 #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS
3754 typedef IContextMenu *LPCONTEXTMENU;
3756 typedef struct tagCMINVOKECOMMANDINFO {
3761 LPCSTR lpParameters;
3766 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
3768 typedef struct tagCMInvokeCommandInfoEx {
3773 LPCSTR lpParameters;
3780 LPCWSTR lpParametersW;
3781 LPCWSTR lpDirectoryW;
3784 } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX;
3786 /*****************************************************************************
3787 * IContextMenu interface
3789 #ifndef __IContextMenu_INTERFACE_DEFINED__
3790 #define __IContextMenu_INTERFACE_DEFINED__
3792 DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3793 #if defined(__cplusplus) && !defined(CINTERFACE)
3794 struct IContextMenu : public IUnknown
3796 virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
3803 virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
3804 LPCMINVOKECOMMANDINFO lpici) = 0;
3806 virtual HRESULT STDMETHODCALLTYPE GetCommandString(
3815 typedef struct IContextMenuVtbl IContextMenuVtbl;
3816 struct IContextMenu {
3817 const IContextMenuVtbl* lpVtbl;
3819 struct IContextMenuVtbl {
3822 /*** IUnknown methods ***/
3823 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3828 ULONG (STDMETHODCALLTYPE *AddRef)(
3829 IContextMenu* This);
3831 ULONG (STDMETHODCALLTYPE *Release)(
3832 IContextMenu* This);
3834 /*** IContextMenu methods ***/
3835 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3843 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3845 LPCMINVOKECOMMANDINFO lpici);
3847 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3859 /*** IUnknown methods ***/
3860 #define IContextMenu_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3861 #define IContextMenu_AddRef(p) (p)->lpVtbl->AddRef(p)
3862 #define IContextMenu_Release(p) (p)->lpVtbl->Release(p)
3863 /*** IContextMenu methods ***/
3864 #define IContextMenu_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3865 #define IContextMenu_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3866 #define IContextMenu_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3871 #define IContextMenu_METHODS \
3872 /*** IUnknown methods ***/ \
3873 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3874 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3875 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3876 /*** IContextMenu methods ***/ \
3877 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
3878 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
3879 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE;
3881 HRESULT CALLBACK IContextMenu_QueryContextMenu_Proxy(
3888 void __RPC_STUB IContextMenu_QueryContextMenu_Stub(
3889 struct IRpcStubBuffer* This,
3890 struct IRpcChannelBuffer* pRpcChannelBuffer,
3891 PRPC_MESSAGE pRpcMessage,
3892 DWORD* pdwStubPhase);
3893 HRESULT CALLBACK IContextMenu_InvokeCommand_Proxy(
3895 LPCMINVOKECOMMANDINFO lpici);
3896 void __RPC_STUB IContextMenu_InvokeCommand_Stub(
3897 struct IRpcStubBuffer* This,
3898 struct IRpcChannelBuffer* pRpcChannelBuffer,
3899 PRPC_MESSAGE pRpcMessage,
3900 DWORD* pdwStubPhase);
3901 HRESULT CALLBACK IContextMenu_GetCommandString_Proxy(
3908 void __RPC_STUB IContextMenu_GetCommandString_Stub(
3909 struct IRpcStubBuffer* This,
3910 struct IRpcChannelBuffer* pRpcChannelBuffer,
3911 PRPC_MESSAGE pRpcMessage,
3912 DWORD* pdwStubPhase);
3914 #endif /* __IContextMenu_INTERFACE_DEFINED__ */
3916 #ifndef __IContextMenu2_FWD_DEFINED__
3917 #define __IContextMenu2_FWD_DEFINED__
3918 typedef struct IContextMenu2 IContextMenu2;
3921 typedef IContextMenu2 *LPCONTEXTMENU2;
3923 /*****************************************************************************
3924 * IContextMenu2 interface
3926 #ifndef __IContextMenu2_INTERFACE_DEFINED__
3927 #define __IContextMenu2_INTERFACE_DEFINED__
3929 DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3930 #if defined(__cplusplus) && !defined(CINTERFACE)
3931 struct IContextMenu2 : public IContextMenu
3933 virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(
3940 typedef struct IContextMenu2Vtbl IContextMenu2Vtbl;
3941 struct IContextMenu2 {
3942 const IContextMenu2Vtbl* lpVtbl;
3944 struct IContextMenu2Vtbl {
3947 /*** IUnknown methods ***/
3948 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3949 IContextMenu2* This,
3953 ULONG (STDMETHODCALLTYPE *AddRef)(
3954 IContextMenu2* This);
3956 ULONG (STDMETHODCALLTYPE *Release)(
3957 IContextMenu2* This);
3959 /*** IContextMenu methods ***/
3960 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
3961 IContextMenu2* This,
3968 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
3969 IContextMenu2* This,
3970 LPCMINVOKECOMMANDINFO lpici);
3972 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
3973 IContextMenu2* This,
3980 /*** IContextMenu2 methods ***/
3981 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
3982 IContextMenu2* This,
3991 /*** IUnknown methods ***/
3992 #define IContextMenu2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3993 #define IContextMenu2_AddRef(p) (p)->lpVtbl->AddRef(p)
3994 #define IContextMenu2_Release(p) (p)->lpVtbl->Release(p)
3995 /*** IContextMenu methods ***/
3996 #define IContextMenu2_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
3997 #define IContextMenu2_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
3998 #define IContextMenu2_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
3999 /*** IContextMenu2 methods ***/
4000 #define IContextMenu2_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
4005 #define IContextMenu2_METHODS \
4006 /*** IUnknown methods ***/ \
4007 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4008 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4009 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4010 /*** IContextMenu methods ***/ \
4011 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
4012 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
4013 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \
4014 /*** IContextMenu2 methods ***/ \
4015 STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE;
4017 HRESULT CALLBACK IContextMenu2_HandleMenuMsg_Proxy(
4018 IContextMenu2* This,
4022 void __RPC_STUB IContextMenu2_HandleMenuMsg_Stub(
4023 struct IRpcStubBuffer* This,
4024 struct IRpcChannelBuffer* pRpcChannelBuffer,
4025 PRPC_MESSAGE pRpcMessage,
4026 DWORD* pdwStubPhase);
4028 #endif /* __IContextMenu2_INTERFACE_DEFINED__ */
4030 #ifndef __IContextMenu3_FWD_DEFINED__
4031 #define __IContextMenu3_FWD_DEFINED__
4032 typedef struct IContextMenu3 IContextMenu3;
4035 typedef IContextMenu3 *LPCONTEXTMENU3;
4037 /*****************************************************************************
4038 * IContextMenu3 interface
4040 #ifndef __IContextMenu3_INTERFACE_DEFINED__
4041 #define __IContextMenu3_INTERFACE_DEFINED__
4043 DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19);
4044 #if defined(__cplusplus) && !defined(CINTERFACE)
4045 struct IContextMenu3 : public IContextMenu2
4047 virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(
4051 LRESULT* plResult) = 0;
4055 typedef struct IContextMenu3Vtbl IContextMenu3Vtbl;
4056 struct IContextMenu3 {
4057 const IContextMenu3Vtbl* lpVtbl;
4059 struct IContextMenu3Vtbl {
4062 /*** IUnknown methods ***/
4063 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4064 IContextMenu3* This,
4068 ULONG (STDMETHODCALLTYPE *AddRef)(
4069 IContextMenu3* This);
4071 ULONG (STDMETHODCALLTYPE *Release)(
4072 IContextMenu3* This);
4074 /*** IContextMenu methods ***/
4075 HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
4076 IContextMenu3* This,
4083 HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
4084 IContextMenu3* This,
4085 LPCMINVOKECOMMANDINFO lpici);
4087 HRESULT (STDMETHODCALLTYPE *GetCommandString)(
4088 IContextMenu3* This,
4095 /*** IContextMenu2 methods ***/
4096 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
4097 IContextMenu3* This,
4102 /*** IContextMenu3 methods ***/
4103 HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
4104 IContextMenu3* This,
4114 /*** IUnknown methods ***/
4115 #define IContextMenu3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4116 #define IContextMenu3_AddRef(p) (p)->lpVtbl->AddRef(p)
4117 #define IContextMenu3_Release(p) (p)->lpVtbl->Release(p)
4118 /*** IContextMenu methods ***/
4119 #define IContextMenu3_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e)
4120 #define IContextMenu3_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a)
4121 #define IContextMenu3_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e)
4122 /*** IContextMenu2 methods ***/
4123 #define IContextMenu3_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c)
4124 /*** IContextMenu3 methods ***/
4125 #define IContextMenu3_HandleMenuMsg2(p,a,b,c,d) (p)->lpVtbl->HandleMenuMsg2(p,a,b,c,d)
4130 #define IContextMenu3_METHODS \
4131 /*** IUnknown methods ***/ \
4132 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4133 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4134 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4135 /*** IContextMenu methods ***/ \
4136 STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \
4137 STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \
4138 STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \
4139 /*** IContextMenu2 methods ***/ \
4140 STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE; \
4141 /*** IContextMenu3 methods ***/ \
4142 STDMETHOD_(HRESULT,HandleMenuMsg2)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* plResult) PURE;
4144 HRESULT CALLBACK IContextMenu3_HandleMenuMsg2_Proxy(
4145 IContextMenu3* This,
4150 void __RPC_STUB IContextMenu3_HandleMenuMsg2_Stub(
4151 struct IRpcStubBuffer* This,
4152 struct IRpcChannelBuffer* pRpcChannelBuffer,
4153 PRPC_MESSAGE pRpcMessage,
4154 DWORD* pdwStubPhase);
4156 #endif /* __IContextMenu3_INTERFACE_DEFINED__ */
4158 #ifndef __IShellExecuteHookA_FWD_DEFINED__
4159 #define __IShellExecuteHookA_FWD_DEFINED__
4160 typedef struct IShellExecuteHookA IShellExecuteHookA;
4163 struct _SHELLEXECUTEINFOA;
4164 /*****************************************************************************
4165 * IShellExecuteHookA interface
4167 #ifndef __IShellExecuteHookA_INTERFACE_DEFINED__
4168 #define __IShellExecuteHookA_INTERFACE_DEFINED__
4170 DEFINE_GUID(IID_IShellExecuteHookA, 0x000214f5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4171 #if defined(__cplusplus) && !defined(CINTERFACE)
4172 struct IShellExecuteHookA : public IUnknown
4174 virtual HRESULT STDMETHODCALLTYPE Execute(
4175 struct _SHELLEXECUTEINFOA* pei) = 0;
4179 typedef struct IShellExecuteHookAVtbl IShellExecuteHookAVtbl;
4180 struct IShellExecuteHookA {
4181 const IShellExecuteHookAVtbl* lpVtbl;
4183 struct IShellExecuteHookAVtbl {
4186 /*** IUnknown methods ***/
4187 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4188 IShellExecuteHookA* This,
4192 ULONG (STDMETHODCALLTYPE *AddRef)(
4193 IShellExecuteHookA* This);
4195 ULONG (STDMETHODCALLTYPE *Release)(
4196 IShellExecuteHookA* This);
4198 /*** IShellExecuteHookA methods ***/
4199 HRESULT (STDMETHODCALLTYPE *Execute)(
4200 IShellExecuteHookA* This,
4201 struct _SHELLEXECUTEINFOA* pei);
4207 /*** IUnknown methods ***/
4208 #define IShellExecuteHookA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4209 #define IShellExecuteHookA_AddRef(p) (p)->lpVtbl->AddRef(p)
4210 #define IShellExecuteHookA_Release(p) (p)->lpVtbl->Release(p)
4211 /*** IShellExecuteHookA methods ***/
4212 #define IShellExecuteHookA_Execute(p,a) (p)->lpVtbl->Execute(p,a)
4217 #define IShellExecuteHookA_METHODS \
4218 /*** IUnknown methods ***/ \
4219 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4220 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4221 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4222 /*** IShellExecuteHookA methods ***/ \
4223 STDMETHOD_(HRESULT,Execute)(THIS_ struct _SHELLEXECUTEINFOA* pei) PURE;
4225 HRESULT CALLBACK IShellExecuteHookA_Execute_Proxy(
4226 IShellExecuteHookA* This,
4227 struct _SHELLEXECUTEINFOA* pei);
4228 void __RPC_STUB IShellExecuteHookA_Execute_Stub(
4229 struct IRpcStubBuffer* This,
4230 struct IRpcChannelBuffer* pRpcChannelBuffer,
4231 PRPC_MESSAGE pRpcMessage,
4232 DWORD* pdwStubPhase);
4234 #endif /* __IShellExecuteHookA_INTERFACE_DEFINED__ */
4236 #ifndef __IShellExecuteHookW_FWD_DEFINED__
4237 #define __IShellExecuteHookW_FWD_DEFINED__
4238 typedef struct IShellExecuteHookW IShellExecuteHookW;
4241 struct _SHELLEXECUTEINFOW;
4242 /*****************************************************************************
4243 * IShellExecuteHookW interface
4245 #ifndef __IShellExecuteHookW_INTERFACE_DEFINED__
4246 #define __IShellExecuteHookW_INTERFACE_DEFINED__
4248 DEFINE_GUID(IID_IShellExecuteHookW, 0x000214fb, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4249 #if defined(__cplusplus) && !defined(CINTERFACE)
4250 struct IShellExecuteHookW : public IUnknown
4252 virtual HRESULT STDMETHODCALLTYPE Execute(
4253 struct _SHELLEXECUTEINFOW* pei) = 0;
4257 typedef struct IShellExecuteHookWVtbl IShellExecuteHookWVtbl;
4258 struct IShellExecuteHookW {
4259 const IShellExecuteHookWVtbl* lpVtbl;
4261 struct IShellExecuteHookWVtbl {
4264 /*** IUnknown methods ***/
4265 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4266 IShellExecuteHookW* This,
4270 ULONG (STDMETHODCALLTYPE *AddRef)(
4271 IShellExecuteHookW* This);
4273 ULONG (STDMETHODCALLTYPE *Release)(
4274 IShellExecuteHookW* This);
4276 /*** IShellExecuteHookW methods ***/
4277 HRESULT (STDMETHODCALLTYPE *Execute)(
4278 IShellExecuteHookW* This,
4279 struct _SHELLEXECUTEINFOW* pei);
4285 /*** IUnknown methods ***/
4286 #define IShellExecuteHookW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4287 #define IShellExecuteHookW_AddRef(p) (p)->lpVtbl->AddRef(p)
4288 #define IShellExecuteHookW_Release(p) (p)->lpVtbl->Release(p)
4289 /*** IShellExecuteHookW methods ***/
4290 #define IShellExecuteHookW_Execute(p,a) (p)->lpVtbl->Execute(p,a)
4295 #define IShellExecuteHookW_METHODS \
4296 /*** IUnknown methods ***/ \
4297 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4298 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4299 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4300 /*** IShellExecuteHookW methods ***/ \
4301 STDMETHOD_(HRESULT,Execute)(THIS_ struct _SHELLEXECUTEINFOW* pei) PURE;
4303 HRESULT CALLBACK IShellExecuteHookW_Execute_Proxy(
4304 IShellExecuteHookW* This,
4305 struct _SHELLEXECUTEINFOW* pei);
4306 void __RPC_STUB IShellExecuteHookW_Execute_Stub(
4307 struct IRpcStubBuffer* This,
4308 struct IRpcChannelBuffer* pRpcChannelBuffer,
4309 PRPC_MESSAGE pRpcMessage,
4310 DWORD* pdwStubPhase);
4312 #endif /* __IShellExecuteHookW_INTERFACE_DEFINED__ */
4317 #endif /* __WIDL_SHOBJIDL_H */