1 // TortoiseSVN - a Windows shell extension for easy version control
3 // Copyright (C) 2009-2010 - TortoiseSVN
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 // declares and defines stuff which is not available in the Vista SDK or
22 // which isn't available in the Win7 SDK but not unless NTDDI_VERSION is
25 #if (NTDDI_VERSION < 0x06010000)
28 * Message filter info values (CHANGEFILTERSTRUCT.ExtStatus)
30 #define MSGFLTINFO_NONE (0)
31 #define MSGFLTINFO_ALREADYALLOWED_FORWND (1)
32 #define MSGFLTINFO_ALREADYDISALLOWED_FORWND (2)
33 #define MSGFLTINFO_ALLOWED_HIGHER (3)
35 typedef struct tagCHANGEFILTERSTRUCT
{
38 } CHANGEFILTERSTRUCT
, *PCHANGEFILTERSTRUCT
;
41 * Message filter action values (action parameter to ChangeWindowMessageFilterEx)
43 #define MSGFLT_RESET (0)
44 #define MSGFLT_ALLOW (1)
45 #define MSGFLT_DISALLOW (2)
49 // Define operator overloads to enable bit operations on enum values that are
50 // used to define flags. Use DEFINE_ENUM_FLAG_OPERATORS(YOUR_TYPE) to enable these
51 // operators on YOUR_TYPE.
53 // Moved here from objbase.w.
55 #define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) \
57 inline ENUMTYPE operator | (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((int)a) | ((int)b)); } \
58 inline ENUMTYPE &operator |= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((int &)a) |= ((int)b)); } \
59 inline ENUMTYPE operator & (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((int)a) & ((int)b)); } \
60 inline ENUMTYPE &operator &= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((int &)a) &= ((int)b)); } \
61 inline ENUMTYPE operator ~ (ENUMTYPE a) { return ENUMTYPE(~((int)a)); } \
62 inline ENUMTYPE operator ^ (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((int)a) ^ ((int)b)); } \
63 inline ENUMTYPE &operator ^= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((int &)a) ^= ((int)b)); } \
66 #define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) // NOP, C allows these operators.
69 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
72 /* File created by MIDL compiler version 7.00.0555 */
73 /* Compiler settings for objectarray.idl:
74 Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
75 protocol : dce , ms_ext, c_ext, robust
76 error checks: allocation ref bounds_check enum stub_data
77 VC __declspec() decoration level:
78 __declspec(uuid()), __declspec(selectany), __declspec(novtable)
79 DECLSPEC_UUID(), MIDL_INTERFACE()
81 /* @@MIDL_FILE_HEADING( ) */
83 #pragma warning( disable: 4049 ) /* more than 64k source lines */
86 /* verify that the <rpcndr.h> version is high enough to compile this file*/
87 #ifndef __REQUIRED_RPCNDR_H_VERSION__
88 #define __REQUIRED_RPCNDR_H_VERSION__ 500
91 /* verify that the <rpcsal.h> version is high enough to compile this file*/
92 #ifndef __REQUIRED_RPCSAL_H_VERSION__
93 #define __REQUIRED_RPCSAL_H_VERSION__ 100
99 #ifndef __RPCNDR_H_VERSION__
100 #error this stub requires an updated version of <rpcndr.h>
101 #endif // __RPCNDR_H_VERSION__
103 #ifndef COM_NO_WINDOWS_H
106 #endif /*COM_NO_WINDOWS_H*/
108 #ifndef __objectarray_h__
109 #define __objectarray_h__
111 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
115 /* Forward Declarations */
117 #ifndef __IObjectArray_FWD_DEFINED__
118 #define __IObjectArray_FWD_DEFINED__
119 typedef interface IObjectArray IObjectArray
;
120 #endif /* __IObjectArray_FWD_DEFINED__ */
123 #ifndef __IObjectCollection_FWD_DEFINED__
124 #define __IObjectCollection_FWD_DEFINED__
125 typedef interface IObjectCollection IObjectCollection
;
126 #endif /* __IObjectCollection_FWD_DEFINED__ */
129 /* header files for imported files */
138 /* interface __MIDL_itf_shobjidl_0000_0093 */
142 typedef IUnknown
*HIMAGELIST
;
145 typedef /* [v1_enum] */
146 enum THUMBBUTTONFLAGS
149 THBF_DISMISSONCLICK
= 0x2,
150 THBF_NOBACKGROUND
= 0x4,
152 THBF_NONINTERACTIVE
= 0x10
155 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS
)
156 typedef /* [v1_enum] */
164 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK
)
165 #include <pshpack8.h>
166 typedef struct THUMBBUTTON
168 THUMBBUTTONMASK dwMask
;
173 THUMBBUTTONFLAGS dwFlags
;
176 typedef struct THUMBBUTTON
*LPTHUMBBUTTON
;
179 #define THBN_CLICKED 0x1800
182 extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0000_0093_v0_0_c_ifspec
;
183 extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0000_0093_v0_0_s_ifspec
;
185 #ifndef __ITaskbarList3_INTERFACE_DEFINED__
186 #define __ITaskbarList3_INTERFACE_DEFINED__
188 /* interface ITaskbarList3 */
191 typedef /* [v1_enum] */
193 { TBPF_NOPROGRESS
= 0,
194 TBPF_INDETERMINATE
= 0x1,
200 DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG
)
202 EXTERN_C
const IID IID_ITaskbarList3
;
204 #if defined(__cplusplus) && !defined(CINTERFACE)
206 MIDL_INTERFACE("ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf")
207 ITaskbarList3
: public ITaskbarList2
210 virtual HRESULT STDMETHODCALLTYPE
SetProgressValue(
211 /* [in] */ __RPC__in HWND hwnd
,
212 /* [in] */ ULONGLONG ullCompleted
,
213 /* [in] */ ULONGLONG ullTotal
) = 0;
215 virtual HRESULT STDMETHODCALLTYPE
SetProgressState(
216 /* [in] */ __RPC__in HWND hwnd
,
217 /* [in] */ TBPFLAG tbpFlags
) = 0;
219 virtual HRESULT STDMETHODCALLTYPE
RegisterTab(
220 /* [in] */ __RPC__in HWND hwndTab
,
221 /* [in] */ __RPC__in HWND hwndMDI
) = 0;
223 virtual HRESULT STDMETHODCALLTYPE
UnregisterTab(
224 /* [in] */ __RPC__in HWND hwndTab
) = 0;
226 virtual HRESULT STDMETHODCALLTYPE
SetTabOrder(
227 /* [in] */ __RPC__in HWND hwndTab
,
228 /* [in] */ __RPC__in HWND hwndInsertBefore
) = 0;
230 virtual HRESULT STDMETHODCALLTYPE
SetTabActive(
231 /* [in] */ __RPC__in HWND hwndTab
,
232 /* [in] */ __RPC__in HWND hwndMDI
,
233 /* [in] */ DWORD dwReserved
) = 0;
235 virtual HRESULT STDMETHODCALLTYPE
ThumbBarAddButtons(
236 /* [in] */ __RPC__in HWND hwnd
,
237 /* [in] */ UINT cButtons
,
238 /* [size_is][in] */ __RPC__in_ecount_full(cButtons
) LPTHUMBBUTTON pButton
) = 0;
240 virtual HRESULT STDMETHODCALLTYPE
ThumbBarUpdateButtons(
241 /* [in] */ __RPC__in HWND hwnd
,
242 /* [in] */ UINT cButtons
,
243 /* [size_is][in] */ __RPC__in_ecount_full(cButtons
) LPTHUMBBUTTON pButton
) = 0;
245 virtual HRESULT STDMETHODCALLTYPE
ThumbBarSetImageList(
246 /* [in] */ __RPC__in HWND hwnd
,
247 /* [in] */ __RPC__in_opt HIMAGELIST himl
) = 0;
249 virtual HRESULT STDMETHODCALLTYPE
SetOverlayIcon(
250 /* [in] */ __RPC__in HWND hwnd
,
251 /* [in] */ __RPC__in HICON hIcon
,
252 /* [string][unique][in] */ __RPC__in_opt_string LPCWSTR pszDescription
) = 0;
254 virtual HRESULT STDMETHODCALLTYPE
SetThumbnailTooltip(
255 /* [in] */ __RPC__in HWND hwnd
,
256 /* [string][unique][in] */ __RPC__in_opt_string LPCWSTR pszTip
) = 0;
258 virtual HRESULT STDMETHODCALLTYPE
SetThumbnailClip(
259 /* [in] */ __RPC__in HWND hwnd
,
260 /* [in] */ __RPC__in RECT
*prcClip
) = 0;
264 #else /* C style interface */
266 typedef struct ITaskbarList3Vtbl
270 HRESULT ( STDMETHODCALLTYPE
*QueryInterface
)(
271 __RPC__in ITaskbarList3
* This
,
272 /* [in] */ __RPC__in REFIID riid
,
273 /* [annotation][iid_is][out] */
274 __RPC__deref_out
void **ppvObject
);
276 ULONG ( STDMETHODCALLTYPE
*AddRef
)(
277 __RPC__in ITaskbarList3
* This
);
279 ULONG ( STDMETHODCALLTYPE
*Release
)(
280 __RPC__in ITaskbarList3
* This
);
282 HRESULT ( STDMETHODCALLTYPE
*HrInit
)(
283 __RPC__in ITaskbarList3
* This
);
285 HRESULT ( STDMETHODCALLTYPE
*AddTab
)(
286 __RPC__in ITaskbarList3
* This
,
287 /* [in] */ __RPC__in HWND hwnd
);
289 HRESULT ( STDMETHODCALLTYPE
*DeleteTab
)(
290 __RPC__in ITaskbarList3
* This
,
291 /* [in] */ __RPC__in HWND hwnd
);
293 HRESULT ( STDMETHODCALLTYPE
*ActivateTab
)(
294 __RPC__in ITaskbarList3
* This
,
295 /* [in] */ __RPC__in HWND hwnd
);
297 HRESULT ( STDMETHODCALLTYPE
*SetActiveAlt
)(
298 __RPC__in ITaskbarList3
* This
,
299 /* [in] */ __RPC__in HWND hwnd
);
301 HRESULT ( STDMETHODCALLTYPE
*MarkFullscreenWindow
)(
302 __RPC__in ITaskbarList3
* This
,
303 /* [in] */ __RPC__in HWND hwnd
,
304 /* [in] */ BOOL fFullscreen
);
306 HRESULT ( STDMETHODCALLTYPE
*SetProgressValue
)(
307 __RPC__in ITaskbarList3
* This
,
308 /* [in] */ __RPC__in HWND hwnd
,
309 /* [in] */ ULONGLONG ullCompleted
,
310 /* [in] */ ULONGLONG ullTotal
);
312 HRESULT ( STDMETHODCALLTYPE
*SetProgressState
)(
313 __RPC__in ITaskbarList3
* This
,
314 /* [in] */ __RPC__in HWND hwnd
,
315 /* [in] */ TBPFLAG tbpFlags
);
317 HRESULT ( STDMETHODCALLTYPE
*RegisterTab
)(
318 __RPC__in ITaskbarList3
* This
,
319 /* [in] */ __RPC__in HWND hwndTab
,
320 /* [in] */ __RPC__in HWND hwndMDI
);
322 HRESULT ( STDMETHODCALLTYPE
*UnregisterTab
)(
323 __RPC__in ITaskbarList3
* This
,
324 /* [in] */ __RPC__in HWND hwndTab
);
326 HRESULT ( STDMETHODCALLTYPE
*SetTabOrder
)(
327 __RPC__in ITaskbarList3
* This
,
328 /* [in] */ __RPC__in HWND hwndTab
,
329 /* [in] */ __RPC__in HWND hwndInsertBefore
);
331 HRESULT ( STDMETHODCALLTYPE
*SetTabActive
)(
332 __RPC__in ITaskbarList3
* This
,
333 /* [in] */ __RPC__in HWND hwndTab
,
334 /* [in] */ __RPC__in HWND hwndMDI
,
335 /* [in] */ DWORD dwReserved
);
337 HRESULT ( STDMETHODCALLTYPE
*ThumbBarAddButtons
)(
338 __RPC__in ITaskbarList3
* This
,
339 /* [in] */ __RPC__in HWND hwnd
,
340 /* [in] */ UINT cButtons
,
341 /* [size_is][in] */ __RPC__in_ecount_full(cButtons
) LPTHUMBBUTTON pButton
);
343 HRESULT ( STDMETHODCALLTYPE
*ThumbBarUpdateButtons
)(
344 __RPC__in ITaskbarList3
* This
,
345 /* [in] */ __RPC__in HWND hwnd
,
346 /* [in] */ UINT cButtons
,
347 /* [size_is][in] */ __RPC__in_ecount_full(cButtons
) LPTHUMBBUTTON pButton
);
349 HRESULT ( STDMETHODCALLTYPE
*ThumbBarSetImageList
)(
350 __RPC__in ITaskbarList3
* This
,
351 /* [in] */ __RPC__in HWND hwnd
,
352 /* [in] */ __RPC__in_opt HIMAGELIST himl
);
354 HRESULT ( STDMETHODCALLTYPE
*SetOverlayIcon
)(
355 __RPC__in ITaskbarList3
* This
,
356 /* [in] */ __RPC__in HWND hwnd
,
357 /* [in] */ __RPC__in HICON hIcon
,
358 /* [string][unique][in] */ __RPC__in_opt_string LPCWSTR pszDescription
);
360 HRESULT ( STDMETHODCALLTYPE
*SetThumbnailTooltip
)(
361 __RPC__in ITaskbarList3
* This
,
362 /* [in] */ __RPC__in HWND hwnd
,
363 /* [string][unique][in] */ __RPC__in_opt_string LPCWSTR pszTip
);
365 HRESULT ( STDMETHODCALLTYPE
*SetThumbnailClip
)(
366 __RPC__in ITaskbarList3
* This
,
367 /* [in] */ __RPC__in HWND hwnd
,
368 /* [in] */ __RPC__in RECT
*prcClip
);
373 interface ITaskbarList3
375 CONST_VTBL
struct ITaskbarList3Vtbl
*lpVtbl
;
383 #define ITaskbarList3_QueryInterface(This,riid,ppvObject) \
384 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
386 #define ITaskbarList3_AddRef(This) \
387 ( (This)->lpVtbl -> AddRef(This) )
389 #define ITaskbarList3_Release(This) \
390 ( (This)->lpVtbl -> Release(This) )
393 #define ITaskbarList3_HrInit(This) \
394 ( (This)->lpVtbl -> HrInit(This) )
396 #define ITaskbarList3_AddTab(This,hwnd) \
397 ( (This)->lpVtbl -> AddTab(This,hwnd) )
399 #define ITaskbarList3_DeleteTab(This,hwnd) \
400 ( (This)->lpVtbl -> DeleteTab(This,hwnd) )
402 #define ITaskbarList3_ActivateTab(This,hwnd) \
403 ( (This)->lpVtbl -> ActivateTab(This,hwnd) )
405 #define ITaskbarList3_SetActiveAlt(This,hwnd) \
406 ( (This)->lpVtbl -> SetActiveAlt(This,hwnd) )
409 #define ITaskbarList3_MarkFullscreenWindow(This,hwnd,fFullscreen) \
410 ( (This)->lpVtbl -> MarkFullscreenWindow(This,hwnd,fFullscreen) )
413 #define ITaskbarList3_SetProgressValue(This,hwnd,ullCompleted,ullTotal) \
414 ( (This)->lpVtbl -> SetProgressValue(This,hwnd,ullCompleted,ullTotal) )
416 #define ITaskbarList3_SetProgressState(This,hwnd,tbpFlags) \
417 ( (This)->lpVtbl -> SetProgressState(This,hwnd,tbpFlags) )
419 #define ITaskbarList3_RegisterTab(This,hwndTab,hwndMDI) \
420 ( (This)->lpVtbl -> RegisterTab(This,hwndTab,hwndMDI) )
422 #define ITaskbarList3_UnregisterTab(This,hwndTab) \
423 ( (This)->lpVtbl -> UnregisterTab(This,hwndTab) )
425 #define ITaskbarList3_SetTabOrder(This,hwndTab,hwndInsertBefore) \
426 ( (This)->lpVtbl -> SetTabOrder(This,hwndTab,hwndInsertBefore) )
428 #define ITaskbarList3_SetTabActive(This,hwndTab,hwndMDI,dwReserved) \
429 ( (This)->lpVtbl -> SetTabActive(This,hwndTab,hwndMDI,dwReserved) )
431 #define ITaskbarList3_ThumbBarAddButtons(This,hwnd,cButtons,pButton) \
432 ( (This)->lpVtbl -> ThumbBarAddButtons(This,hwnd,cButtons,pButton) )
434 #define ITaskbarList3_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) \
435 ( (This)->lpVtbl -> ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) )
437 #define ITaskbarList3_ThumbBarSetImageList(This,hwnd,himl) \
438 ( (This)->lpVtbl -> ThumbBarSetImageList(This,hwnd,himl) )
440 #define ITaskbarList3_SetOverlayIcon(This,hwnd,hIcon,pszDescription) \
441 ( (This)->lpVtbl -> SetOverlayIcon(This,hwnd,hIcon,pszDescription) )
443 #define ITaskbarList3_SetThumbnailTooltip(This,hwnd,pszTip) \
444 ( (This)->lpVtbl -> SetThumbnailTooltip(This,hwnd,pszTip) )
446 #define ITaskbarList3_SetThumbnailClip(This,hwnd,prcClip) \
447 ( (This)->lpVtbl -> SetThumbnailClip(This,hwnd,prcClip) )
449 #endif /* COBJMACROS */
452 #endif /* C style interface */
457 #endif /* __ITaskbarList3_INTERFACE_DEFINED__ */
460 #ifndef __ITaskbarList4_INTERFACE_DEFINED__
461 #define __ITaskbarList4_INTERFACE_DEFINED__
463 /* interface ITaskbarList4 */
466 typedef /* [v1_enum] */
469 STPF_USEAPPTHUMBNAILALWAYS
= 0x1,
470 STPF_USEAPPTHUMBNAILWHENACTIVE
= 0x2,
471 STPF_USEAPPPEEKALWAYS
= 0x4,
472 STPF_USEAPPPEEKWHENACTIVE
= 0x8
475 DEFINE_ENUM_FLAG_OPERATORS(STPFLAG
)
477 EXTERN_C
const IID IID_ITaskbarList4
;
479 #if defined(__cplusplus) && !defined(CINTERFACE)
481 MIDL_INTERFACE("c43dc798-95d1-4bea-9030-bb99e2983a1a")
482 ITaskbarList4
: public ITaskbarList3
485 virtual HRESULT STDMETHODCALLTYPE
SetTabProperties(
486 /* [in] */ __RPC__in HWND hwndTab
,
487 /* [in] */ STPFLAG stpFlags
) = 0;
491 #else /* C style interface */
493 typedef struct ITaskbarList4Vtbl
497 HRESULT ( STDMETHODCALLTYPE
*QueryInterface
)(
498 __RPC__in ITaskbarList4
* This
,
499 /* [in] */ __RPC__in REFIID riid
,
500 /* [annotation][iid_is][out] */
501 __RPC__deref_out
void **ppvObject
);
503 ULONG ( STDMETHODCALLTYPE
*AddRef
)(
504 __RPC__in ITaskbarList4
* This
);
506 ULONG ( STDMETHODCALLTYPE
*Release
)(
507 __RPC__in ITaskbarList4
* This
);
509 HRESULT ( STDMETHODCALLTYPE
*HrInit
)(
510 __RPC__in ITaskbarList4
* This
);
512 HRESULT ( STDMETHODCALLTYPE
*AddTab
)(
513 __RPC__in ITaskbarList4
* This
,
514 /* [in] */ __RPC__in HWND hwnd
);
516 HRESULT ( STDMETHODCALLTYPE
*DeleteTab
)(
517 __RPC__in ITaskbarList4
* This
,
518 /* [in] */ __RPC__in HWND hwnd
);
520 HRESULT ( STDMETHODCALLTYPE
*ActivateTab
)(
521 __RPC__in ITaskbarList4
* This
,
522 /* [in] */ __RPC__in HWND hwnd
);
524 HRESULT ( STDMETHODCALLTYPE
*SetActiveAlt
)(
525 __RPC__in ITaskbarList4
* This
,
526 /* [in] */ __RPC__in HWND hwnd
);
528 HRESULT ( STDMETHODCALLTYPE
*MarkFullscreenWindow
)(
529 __RPC__in ITaskbarList4
* This
,
530 /* [in] */ __RPC__in HWND hwnd
,
531 /* [in] */ BOOL fFullscreen
);
533 HRESULT ( STDMETHODCALLTYPE
*SetProgressValue
)(
534 __RPC__in ITaskbarList4
* This
,
535 /* [in] */ __RPC__in HWND hwnd
,
536 /* [in] */ ULONGLONG ullCompleted
,
537 /* [in] */ ULONGLONG ullTotal
);
539 HRESULT ( STDMETHODCALLTYPE
*SetProgressState
)(
540 __RPC__in ITaskbarList4
* This
,
541 /* [in] */ __RPC__in HWND hwnd
,
542 /* [in] */ TBPFLAG tbpFlags
);
544 HRESULT ( STDMETHODCALLTYPE
*RegisterTab
)(
545 __RPC__in ITaskbarList4
* This
,
546 /* [in] */ __RPC__in HWND hwndTab
,
547 /* [in] */ __RPC__in HWND hwndMDI
);
549 HRESULT ( STDMETHODCALLTYPE
*UnregisterTab
)(
550 __RPC__in ITaskbarList4
* This
,
551 /* [in] */ __RPC__in HWND hwndTab
);
553 HRESULT ( STDMETHODCALLTYPE
*SetTabOrder
)(
554 __RPC__in ITaskbarList4
* This
,
555 /* [in] */ __RPC__in HWND hwndTab
,
556 /* [in] */ __RPC__in HWND hwndInsertBefore
);
558 HRESULT ( STDMETHODCALLTYPE
*SetTabActive
)(
559 __RPC__in ITaskbarList4
* This
,
560 /* [in] */ __RPC__in HWND hwndTab
,
561 /* [in] */ __RPC__in HWND hwndMDI
,
562 /* [in] */ DWORD dwReserved
);
564 HRESULT ( STDMETHODCALLTYPE
*ThumbBarAddButtons
)(
565 __RPC__in ITaskbarList4
* This
,
566 /* [in] */ __RPC__in HWND hwnd
,
567 /* [in] */ UINT cButtons
,
568 /* [size_is][in] */ __RPC__in_ecount_full(cButtons
) LPTHUMBBUTTON pButton
);
570 HRESULT ( STDMETHODCALLTYPE
*ThumbBarUpdateButtons
)(
571 __RPC__in ITaskbarList4
* This
,
572 /* [in] */ __RPC__in HWND hwnd
,
573 /* [in] */ UINT cButtons
,
574 /* [size_is][in] */ __RPC__in_ecount_full(cButtons
) LPTHUMBBUTTON pButton
);
576 HRESULT ( STDMETHODCALLTYPE
*ThumbBarSetImageList
)(
577 __RPC__in ITaskbarList4
* This
,
578 /* [in] */ __RPC__in HWND hwnd
,
579 /* [in] */ __RPC__in_opt HIMAGELIST himl
);
581 HRESULT ( STDMETHODCALLTYPE
*SetOverlayIcon
)(
582 __RPC__in ITaskbarList4
* This
,
583 /* [in] */ __RPC__in HWND hwnd
,
584 /* [in] */ __RPC__in HICON hIcon
,
585 /* [string][unique][in] */ __RPC__in_opt_string LPCWSTR pszDescription
);
587 HRESULT ( STDMETHODCALLTYPE
*SetThumbnailTooltip
)(
588 __RPC__in ITaskbarList4
* This
,
589 /* [in] */ __RPC__in HWND hwnd
,
590 /* [string][unique][in] */ __RPC__in_opt_string LPCWSTR pszTip
);
592 HRESULT ( STDMETHODCALLTYPE
*SetThumbnailClip
)(
593 __RPC__in ITaskbarList4
* This
,
594 /* [in] */ __RPC__in HWND hwnd
,
595 /* [in] */ __RPC__in RECT
*prcClip
);
597 HRESULT ( STDMETHODCALLTYPE
*SetTabProperties
)(
598 __RPC__in ITaskbarList4
* This
,
599 /* [in] */ __RPC__in HWND hwndTab
,
600 /* [in] */ STPFLAG stpFlags
);
605 interface ITaskbarList4
607 CONST_VTBL
struct ITaskbarList4Vtbl
*lpVtbl
;
615 #define ITaskbarList4_QueryInterface(This,riid,ppvObject) \
616 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
618 #define ITaskbarList4_AddRef(This) \
619 ( (This)->lpVtbl -> AddRef(This) )
621 #define ITaskbarList4_Release(This) \
622 ( (This)->lpVtbl -> Release(This) )
625 #define ITaskbarList4_HrInit(This) \
626 ( (This)->lpVtbl -> HrInit(This) )
628 #define ITaskbarList4_AddTab(This,hwnd) \
629 ( (This)->lpVtbl -> AddTab(This,hwnd) )
631 #define ITaskbarList4_DeleteTab(This,hwnd) \
632 ( (This)->lpVtbl -> DeleteTab(This,hwnd) )
634 #define ITaskbarList4_ActivateTab(This,hwnd) \
635 ( (This)->lpVtbl -> ActivateTab(This,hwnd) )
637 #define ITaskbarList4_SetActiveAlt(This,hwnd) \
638 ( (This)->lpVtbl -> SetActiveAlt(This,hwnd) )
641 #define ITaskbarList4_MarkFullscreenWindow(This,hwnd,fFullscreen) \
642 ( (This)->lpVtbl -> MarkFullscreenWindow(This,hwnd,fFullscreen) )
645 #define ITaskbarList4_SetProgressValue(This,hwnd,ullCompleted,ullTotal) \
646 ( (This)->lpVtbl -> SetProgressValue(This,hwnd,ullCompleted,ullTotal) )
648 #define ITaskbarList4_SetProgressState(This,hwnd,tbpFlags) \
649 ( (This)->lpVtbl -> SetProgressState(This,hwnd,tbpFlags) )
651 #define ITaskbarList4_RegisterTab(This,hwndTab,hwndMDI) \
652 ( (This)->lpVtbl -> RegisterTab(This,hwndTab,hwndMDI) )
654 #define ITaskbarList4_UnregisterTab(This,hwndTab) \
655 ( (This)->lpVtbl -> UnregisterTab(This,hwndTab) )
657 #define ITaskbarList4_SetTabOrder(This,hwndTab,hwndInsertBefore) \
658 ( (This)->lpVtbl -> SetTabOrder(This,hwndTab,hwndInsertBefore) )
660 #define ITaskbarList4_SetTabActive(This,hwndTab,hwndMDI,dwReserved) \
661 ( (This)->lpVtbl -> SetTabActive(This,hwndTab,hwndMDI,dwReserved) )
663 #define ITaskbarList4_ThumbBarAddButtons(This,hwnd,cButtons,pButton) \
664 ( (This)->lpVtbl -> ThumbBarAddButtons(This,hwnd,cButtons,pButton) )
666 #define ITaskbarList4_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) \
667 ( (This)->lpVtbl -> ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) )
669 #define ITaskbarList4_ThumbBarSetImageList(This,hwnd,himl) \
670 ( (This)->lpVtbl -> ThumbBarSetImageList(This,hwnd,himl) )
672 #define ITaskbarList4_SetOverlayIcon(This,hwnd,hIcon,pszDescription) \
673 ( (This)->lpVtbl -> SetOverlayIcon(This,hwnd,hIcon,pszDescription) )
675 #define ITaskbarList4_SetThumbnailTooltip(This,hwnd,pszTip) \
676 ( (This)->lpVtbl -> SetThumbnailTooltip(This,hwnd,pszTip) )
678 #define ITaskbarList4_SetThumbnailClip(This,hwnd,prcClip) \
679 ( (This)->lpVtbl -> SetThumbnailClip(This,hwnd,prcClip) )
682 #define ITaskbarList4_SetTabProperties(This,hwndTab,stpFlags) \
683 ( (This)->lpVtbl -> SetTabProperties(This,hwndTab,stpFlags) )
685 #endif /* COBJMACROS */
688 #endif /* C style interface */
693 #endif /* __ITaskbarList4_INTERFACE_DEFINED__ */
696 #ifndef __IObjectArray_INTERFACE_DEFINED__
697 #define __IObjectArray_INTERFACE_DEFINED__
699 /* interface IObjectArray */
700 /* [unique][object][uuid][helpstring] */
703 EXTERN_C
const IID IID_IObjectArray
;
705 #if defined(__cplusplus) && !defined(CINTERFACE)
707 MIDL_INTERFACE("92CA9DCD-5622-4bba-A805-5E9F541BD8C9")
708 IObjectArray
: public IUnknown
711 virtual HRESULT STDMETHODCALLTYPE
GetCount(
712 /* [out] */ __RPC__out UINT
*pcObjects
) = 0;
714 virtual HRESULT STDMETHODCALLTYPE
GetAt(
715 /* [in] */ UINT uiIndex
,
716 /* [in] */ __RPC__in REFIID riid
,
717 /* [iid_is][out] */ __RPC__deref_out_opt
void **ppv
) = 0;
721 #else /* C style interface */
723 typedef struct IObjectArrayVtbl
727 HRESULT ( STDMETHODCALLTYPE
*QueryInterface
)(
728 __RPC__in IObjectArray
* This
,
729 /* [in] */ __RPC__in REFIID riid
,
730 /* [annotation][iid_is][out] */
731 __RPC__deref_out
void **ppvObject
);
733 ULONG ( STDMETHODCALLTYPE
*AddRef
)(
734 __RPC__in IObjectArray
* This
);
736 ULONG ( STDMETHODCALLTYPE
*Release
)(
737 __RPC__in IObjectArray
* This
);
739 HRESULT ( STDMETHODCALLTYPE
*GetCount
)(
740 __RPC__in IObjectArray
* This
,
741 /* [out] */ __RPC__out UINT
*pcObjects
);
743 HRESULT ( STDMETHODCALLTYPE
*GetAt
)(
744 __RPC__in IObjectArray
* This
,
745 /* [in] */ UINT uiIndex
,
746 /* [in] */ __RPC__in REFIID riid
,
747 /* [iid_is][out] */ __RPC__deref_out_opt
void **ppv
);
752 interface IObjectArray
754 CONST_VTBL
struct IObjectArrayVtbl
*lpVtbl
;
762 #define IObjectArray_QueryInterface(This,riid,ppvObject) \
763 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
765 #define IObjectArray_AddRef(This) \
766 ( (This)->lpVtbl -> AddRef(This) )
768 #define IObjectArray_Release(This) \
769 ( (This)->lpVtbl -> Release(This) )
772 #define IObjectArray_GetCount(This,pcObjects) \
773 ( (This)->lpVtbl -> GetCount(This,pcObjects) )
775 #define IObjectArray_GetAt(This,uiIndex,riid,ppv) \
776 ( (This)->lpVtbl -> GetAt(This,uiIndex,riid,ppv) )
778 #endif /* COBJMACROS */
781 #endif /* C style interface */
786 #endif /* __IObjectArray_INTERFACE_DEFINED__ */
789 #ifndef __IObjectCollection_INTERFACE_DEFINED__
790 #define __IObjectCollection_INTERFACE_DEFINED__
792 /* interface IObjectCollection */
793 /* [unique][object][uuid] */
796 EXTERN_C
const IID IID_IObjectCollection
;
798 #if defined(__cplusplus) && !defined(CINTERFACE)
800 MIDL_INTERFACE("5632b1a4-e38a-400a-928a-d4cd63230295")
801 IObjectCollection
: public IObjectArray
804 virtual HRESULT STDMETHODCALLTYPE
AddObject(
805 /* [in] */ __RPC__in_opt IUnknown
*punk
) = 0;
807 virtual HRESULT STDMETHODCALLTYPE
AddFromArray(
808 /* [in] */ __RPC__in_opt IObjectArray
*poaSource
) = 0;
810 virtual HRESULT STDMETHODCALLTYPE
RemoveObjectAt(
811 /* [in] */ UINT uiIndex
) = 0;
813 virtual HRESULT STDMETHODCALLTYPE
Clear( void) = 0;
817 #else /* C style interface */
819 typedef struct IObjectCollectionVtbl
823 HRESULT ( STDMETHODCALLTYPE
*QueryInterface
)(
824 __RPC__in IObjectCollection
* This
,
825 /* [in] */ __RPC__in REFIID riid
,
826 /* [annotation][iid_is][out] */
827 __RPC__deref_out
void **ppvObject
);
829 ULONG ( STDMETHODCALLTYPE
*AddRef
)(
830 __RPC__in IObjectCollection
* This
);
832 ULONG ( STDMETHODCALLTYPE
*Release
)(
833 __RPC__in IObjectCollection
* This
);
835 HRESULT ( STDMETHODCALLTYPE
*GetCount
)(
836 __RPC__in IObjectCollection
* This
,
837 /* [out] */ __RPC__out UINT
*pcObjects
);
839 HRESULT ( STDMETHODCALLTYPE
*GetAt
)(
840 __RPC__in IObjectCollection
* This
,
841 /* [in] */ UINT uiIndex
,
842 /* [in] */ __RPC__in REFIID riid
,
843 /* [iid_is][out] */ __RPC__deref_out_opt
void **ppv
);
845 HRESULT ( STDMETHODCALLTYPE
*AddObject
)(
846 __RPC__in IObjectCollection
* This
,
847 /* [in] */ __RPC__in_opt IUnknown
*punk
);
849 HRESULT ( STDMETHODCALLTYPE
*AddFromArray
)(
850 __RPC__in IObjectCollection
* This
,
851 /* [in] */ __RPC__in_opt IObjectArray
*poaSource
);
853 HRESULT ( STDMETHODCALLTYPE
*RemoveObjectAt
)(
854 __RPC__in IObjectCollection
* This
,
855 /* [in] */ UINT uiIndex
);
857 HRESULT ( STDMETHODCALLTYPE
*Clear
)(
858 __RPC__in IObjectCollection
* This
);
861 } IObjectCollectionVtbl
;
863 interface IObjectCollection
865 CONST_VTBL
struct IObjectCollectionVtbl
*lpVtbl
;
873 #define IObjectCollection_QueryInterface(This,riid,ppvObject) \
874 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
876 #define IObjectCollection_AddRef(This) \
877 ( (This)->lpVtbl -> AddRef(This) )
879 #define IObjectCollection_Release(This) \
880 ( (This)->lpVtbl -> Release(This) )
883 #define IObjectCollection_GetCount(This,pcObjects) \
884 ( (This)->lpVtbl -> GetCount(This,pcObjects) )
886 #define IObjectCollection_GetAt(This,uiIndex,riid,ppv) \
887 ( (This)->lpVtbl -> GetAt(This,uiIndex,riid,ppv) )
890 #define IObjectCollection_AddObject(This,punk) \
891 ( (This)->lpVtbl -> AddObject(This,punk) )
893 #define IObjectCollection_AddFromArray(This,poaSource) \
894 ( (This)->lpVtbl -> AddFromArray(This,poaSource) )
896 #define IObjectCollection_RemoveObjectAt(This,uiIndex) \
897 ( (This)->lpVtbl -> RemoveObjectAt(This,uiIndex) )
899 #define IObjectCollection_Clear(This) \
900 ( (This)->lpVtbl -> Clear(This) )
902 #endif /* COBJMACROS */
905 #endif /* C style interface */
910 #endif /* __IObjectCollection_INTERFACE_DEFINED__ */
913 /* Additional Prototypes for ALL interfaces */
915 /* end of Additional Prototypes */
928 extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0000_0188_v0_0_c_ifspec
;
929 extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0000_0188_v0_0_s_ifspec
;
931 #ifndef __ICustomDestinationList_INTERFACE_DEFINED__
932 #define __ICustomDestinationList_INTERFACE_DEFINED__
934 /* interface ICustomDestinationList */
935 /* [unique][object][uuid] */
937 typedef /* [v1_enum] */
938 enum KNOWNDESTCATEGORY
940 KDC_RECENT
= ( KDC_FREQUENT
+ 1 )
944 EXTERN_C
const IID IID_ICustomDestinationList
;
946 #if defined(__cplusplus) && !defined(CINTERFACE)
948 MIDL_INTERFACE("6332debf-87b5-4670-90c0-5e57b408a49e")
949 ICustomDestinationList
: public IUnknown
952 virtual HRESULT STDMETHODCALLTYPE
SetAppID(
953 /* [string][in] */ __RPC__in_string LPCWSTR pszAppID
) = 0;
955 virtual HRESULT STDMETHODCALLTYPE
BeginList(
956 /* [out] */ __RPC__out UINT
*pcMinSlots
,
957 /* [in] */ __RPC__in REFIID riid
,
958 /* [iid_is][out] */ __RPC__deref_out_opt
void **ppv
) = 0;
960 virtual HRESULT STDMETHODCALLTYPE
AppendCategory(
961 /* [string][in] */ __RPC__in_string LPCWSTR pszCategory
,
962 /* [in] */ __RPC__in_opt IObjectArray
*poa
) = 0;
964 virtual HRESULT STDMETHODCALLTYPE
AppendKnownCategory(
965 /* [in] */ KNOWNDESTCATEGORY category
) = 0;
967 virtual HRESULT STDMETHODCALLTYPE
AddUserTasks(
968 /* [in] */ __RPC__in_opt IObjectArray
*poa
) = 0;
970 virtual HRESULT STDMETHODCALLTYPE
CommitList( void) = 0;
972 virtual HRESULT STDMETHODCALLTYPE
GetRemovedDestinations(
973 /* [in] */ __RPC__in REFIID riid
,
974 /* [iid_is][out] */ __RPC__deref_out_opt
void **ppv
) = 0;
976 virtual HRESULT STDMETHODCALLTYPE
DeleteList(
977 /* [string][unique][in] */ __RPC__in_opt_string LPCWSTR pszAppID
) = 0;
979 virtual HRESULT STDMETHODCALLTYPE
AbortList( void) = 0;
983 #else /* C style interface */
985 typedef struct ICustomDestinationListVtbl
989 HRESULT ( STDMETHODCALLTYPE
*QueryInterface
)(
990 __RPC__in ICustomDestinationList
* This
,
991 /* [in] */ __RPC__in REFIID riid
,
992 /* [annotation][iid_is][out] */
993 __RPC__deref_out
void **ppvObject
);
995 ULONG ( STDMETHODCALLTYPE
*AddRef
)(
996 __RPC__in ICustomDestinationList
* This
);
998 ULONG ( STDMETHODCALLTYPE
*Release
)(
999 __RPC__in ICustomDestinationList
* This
);
1001 HRESULT ( STDMETHODCALLTYPE
*SetAppID
)(
1002 __RPC__in ICustomDestinationList
* This
,
1003 /* [string][in] */ __RPC__in_string LPCWSTR pszAppID
);
1005 HRESULT ( STDMETHODCALLTYPE
*BeginList
)(
1006 __RPC__in ICustomDestinationList
* This
,
1007 /* [out] */ __RPC__out UINT
*pcMinSlots
,
1008 /* [in] */ __RPC__in REFIID riid
,
1009 /* [iid_is][out] */ __RPC__deref_out_opt
void **ppv
);
1011 HRESULT ( STDMETHODCALLTYPE
*AppendCategory
)(
1012 __RPC__in ICustomDestinationList
* This
,
1013 /* [string][in] */ __RPC__in_string LPCWSTR pszCategory
,
1014 /* [in] */ __RPC__in_opt IObjectArray
*poa
);
1016 HRESULT ( STDMETHODCALLTYPE
*AppendKnownCategory
)(
1017 __RPC__in ICustomDestinationList
* This
,
1018 /* [in] */ KNOWNDESTCATEGORY category
);
1020 HRESULT ( STDMETHODCALLTYPE
*AddUserTasks
)(
1021 __RPC__in ICustomDestinationList
* This
,
1022 /* [in] */ __RPC__in_opt IObjectArray
*poa
);
1024 HRESULT ( STDMETHODCALLTYPE
*CommitList
)(
1025 __RPC__in ICustomDestinationList
* This
);
1027 HRESULT ( STDMETHODCALLTYPE
*GetRemovedDestinations
)(
1028 __RPC__in ICustomDestinationList
* This
,
1029 /* [in] */ __RPC__in REFIID riid
,
1030 /* [iid_is][out] */ __RPC__deref_out_opt
void **ppv
);
1032 HRESULT ( STDMETHODCALLTYPE
*DeleteList
)(
1033 __RPC__in ICustomDestinationList
* This
,
1034 /* [string][unique][in] */ __RPC__in_opt_string LPCWSTR pszAppID
);
1036 HRESULT ( STDMETHODCALLTYPE
*AbortList
)(
1037 __RPC__in ICustomDestinationList
* This
);
1040 } ICustomDestinationListVtbl
;
1042 interface ICustomDestinationList
1044 CONST_VTBL
struct ICustomDestinationListVtbl
*lpVtbl
;
1052 #define ICustomDestinationList_QueryInterface(This,riid,ppvObject) \
1053 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1055 #define ICustomDestinationList_AddRef(This) \
1056 ( (This)->lpVtbl -> AddRef(This) )
1058 #define ICustomDestinationList_Release(This) \
1059 ( (This)->lpVtbl -> Release(This) )
1062 #define ICustomDestinationList_SetAppID(This,pszAppID) \
1063 ( (This)->lpVtbl -> SetAppID(This,pszAppID) )
1065 #define ICustomDestinationList_BeginList(This,pcMinSlots,riid,ppv) \
1066 ( (This)->lpVtbl -> BeginList(This,pcMinSlots,riid,ppv) )
1068 #define ICustomDestinationList_AppendCategory(This,pszCategory,poa) \
1069 ( (This)->lpVtbl -> AppendCategory(This,pszCategory,poa) )
1071 #define ICustomDestinationList_AppendKnownCategory(This,category) \
1072 ( (This)->lpVtbl -> AppendKnownCategory(This,category) )
1074 #define ICustomDestinationList_AddUserTasks(This,poa) \
1075 ( (This)->lpVtbl -> AddUserTasks(This,poa) )
1077 #define ICustomDestinationList_CommitList(This) \
1078 ( (This)->lpVtbl -> CommitList(This) )
1080 #define ICustomDestinationList_GetRemovedDestinations(This,riid,ppv) \
1081 ( (This)->lpVtbl -> GetRemovedDestinations(This,riid,ppv) )
1083 #define ICustomDestinationList_DeleteList(This,pszAppID) \
1084 ( (This)->lpVtbl -> DeleteList(This,pszAppID) )
1086 #define ICustomDestinationList_AbortList(This) \
1087 ( (This)->lpVtbl -> AbortList(This) )
1089 #endif /* COBJMACROS */
1092 #endif /* C style interface */
1097 #endif /* __ICustomDestinationList_INTERFACE_DEFINED__ */
1100 #ifndef __IApplicationDestinations_INTERFACE_DEFINED__
1101 #define __IApplicationDestinations_INTERFACE_DEFINED__
1103 /* interface IApplicationDestinations */
1104 /* [unique][object][uuid] */
1107 EXTERN_C
const IID IID_IApplicationDestinations
;
1109 #if defined(__cplusplus) && !defined(CINTERFACE)
1111 MIDL_INTERFACE("12337d35-94c6-48a0-bce7-6a9c69d4d600")
1112 IApplicationDestinations
: public IUnknown
1115 virtual HRESULT STDMETHODCALLTYPE
SetAppID(
1116 /* [in] */ __RPC__in LPCWSTR pszAppID
) = 0;
1118 virtual HRESULT STDMETHODCALLTYPE
RemoveDestination(
1119 /* [in] */ __RPC__in_opt IUnknown
*punk
) = 0;
1121 virtual HRESULT STDMETHODCALLTYPE
RemoveAllDestinations( void) = 0;
1125 #else /* C style interface */
1127 typedef struct IApplicationDestinationsVtbl
1131 HRESULT ( STDMETHODCALLTYPE
*QueryInterface
)(
1132 __RPC__in IApplicationDestinations
* This
,
1133 /* [in] */ __RPC__in REFIID riid
,
1134 /* [annotation][iid_is][out] */
1135 __RPC__deref_out
void **ppvObject
);
1137 ULONG ( STDMETHODCALLTYPE
*AddRef
)(
1138 __RPC__in IApplicationDestinations
* This
);
1140 ULONG ( STDMETHODCALLTYPE
*Release
)(
1141 __RPC__in IApplicationDestinations
* This
);
1143 HRESULT ( STDMETHODCALLTYPE
*SetAppID
)(
1144 __RPC__in IApplicationDestinations
* This
,
1145 /* [in] */ __RPC__in LPCWSTR pszAppID
);
1147 HRESULT ( STDMETHODCALLTYPE
*RemoveDestination
)(
1148 __RPC__in IApplicationDestinations
* This
,
1149 /* [in] */ __RPC__in_opt IUnknown
*punk
);
1151 HRESULT ( STDMETHODCALLTYPE
*RemoveAllDestinations
)(
1152 __RPC__in IApplicationDestinations
* This
);
1155 } IApplicationDestinationsVtbl
;
1157 interface IApplicationDestinations
1159 CONST_VTBL
struct IApplicationDestinationsVtbl
*lpVtbl
;
1167 #define IApplicationDestinations_QueryInterface(This,riid,ppvObject) \
1168 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1170 #define IApplicationDestinations_AddRef(This) \
1171 ( (This)->lpVtbl -> AddRef(This) )
1173 #define IApplicationDestinations_Release(This) \
1174 ( (This)->lpVtbl -> Release(This) )
1177 #define IApplicationDestinations_SetAppID(This,pszAppID) \
1178 ( (This)->lpVtbl -> SetAppID(This,pszAppID) )
1180 #define IApplicationDestinations_RemoveDestination(This,punk) \
1181 ( (This)->lpVtbl -> RemoveDestination(This,punk) )
1183 #define IApplicationDestinations_RemoveAllDestinations(This) \
1184 ( (This)->lpVtbl -> RemoveAllDestinations(This) )
1186 #endif /* COBJMACROS */
1189 #endif /* C style interface */
1191 #endif /* __IApplicationDestinations_INTERFACE_DEFINED__ */
1193 EXTERN_C
const CLSID CLSID_DestinationList
;
1197 class DECLSPEC_UUID("77f10cf0-3db5-4966-b520-b7c54fd35ed6")
1201 EXTERN_C
const CLSID CLSID_ApplicationDestinations
;
1205 class DECLSPEC_UUID("86c14003-4d6b-4ef3-a7b4-0506663b2e68")
1206 ApplicationDestinations
;
1209 EXTERN_C
const CLSID CLSID_EnumerableObjectCollection
;
1213 class DECLSPEC_UUID("2d3468c1-36a7-43b6-ac24-d3f02fd9607a")
1214 EnumerableObjectCollection
;
1217 DEFINE_PROPERTYKEY(PKEY_Title
, 0xF29F85E0, 0x4FF9, 0x1068, 0xAB, 0x91, 0x08, 0x00, 0x2B, 0x27, 0xB3, 0xD9, 2);
1218 DEFINE_PROPERTYKEY(PKEY_AppUserModel_IsDestListSeparator
, 0x9F4C2855, 0x9F79, 0x4B39, 0xA8, 0xD0, 0xE1, 0xD4, 0x2D, 0xE1, 0xD5, 0xF3, 6);
1221 typedef /* [v1_enum] */
1222 enum LIBRARYMANAGEDIALOGOPTIONS
1224 LMD_ALLOWUNINDEXABLENETWORKLOCATIONS
= 0x1
1225 } LIBRARYMANAGEDIALOGOPTIONS
;
1227 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYMANAGEDIALOGOPTIONS
)
1228 SHSTDAPI
SHShowManageLibraryUI(__in IShellItem
*psiLibrary
, __in HWND hwndOwner
, __in_opt LPCWSTR pszTitle
, __in_opt LPCWSTR pszInstruction
, __in LIBRARYMANAGEDIALOGOPTIONS lmdOptions
);
1229 SHSTDAPI
SHResolveLibrary(__in IShellItem
*psiLibrary
);
1231 __inline HRESULT
SHCreateLibrary(__in REFIID riid
, __deref_out
void **ppv
)
1233 return CoCreateInstance(CLSID_ShellLibrary
, NULL
, CLSCTX_INPROC_SERVER
, riid
, ppv
);
1236 __inline HRESULT
SHLoadLibraryFromItem(__in IShellItem
*psiLibrary
, __in DWORD grfMode
, __in REFIID riid
, __deref_out
void **ppv
)
1239 IShellLibrary
*plib
;
1240 HRESULT hr
= CoCreateInstance(CLSID_ShellLibrary
, NULL
, CLSCTX_INPROC_SERVER
, IID_PPV_ARGS(&plib
));
1243 hr
= plib
->LoadLibraryFromItem(psiLibrary
, grfMode
);
1246 hr
= plib
->QueryInterface(riid
, ppv
);
1253 __inline HRESULT
SHLoadLibraryFromKnownFolder(__in REFKNOWNFOLDERID kfidLibrary
, __in DWORD grfMode
, __in REFIID riid
, __deref_out
void **ppv
)
1256 IShellLibrary
*plib
;
1257 HRESULT hr
= CoCreateInstance(CLSID_ShellLibrary
, NULL
, CLSCTX_INPROC_SERVER
, IID_PPV_ARGS(&plib
));
1260 hr
= plib
->LoadLibraryFromKnownFolder(kfidLibrary
, grfMode
);
1263 hr
= plib
->QueryInterface(riid
, ppv
);
1270 __inline HRESULT
SHLoadLibraryFromParsingName(__in PCWSTR pszParsingName
, __in DWORD grfMode
, __in REFIID riid
, __deref_out
void **ppv
)
1273 IShellItem
*psiLibrary
;
1274 HRESULT hr
= SHCreateItemFromParsingName(pszParsingName
, NULL
, IID_PPV_ARGS(&psiLibrary
));
1277 hr
= SHLoadLibraryFromItem(psiLibrary
, grfMode
, riid
, ppv
);
1278 psiLibrary
->Release();
1283 __inline HRESULT
SHAddFolderPathToLibrary(__in IShellLibrary
*plib
, __in PCWSTR pszFolderPath
)
1285 IShellItem
*psiFolder
;
1286 HRESULT hr
= SHCreateItemFromParsingName(pszFolderPath
, NULL
, IID_PPV_ARGS(&psiFolder
));
1289 hr
= plib
->AddFolder(psiFolder
);
1290 psiFolder
->Release();
1295 __inline HRESULT
SHRemoveFolderPathFromLibrary(__in IShellLibrary
*plib
, __in PCWSTR pszFolderPath
)
1297 PIDLIST_ABSOLUTE pidlFolder
= SHSimpleIDListFromPath(pszFolderPath
);
1298 HRESULT hr
= pidlFolder
? S_OK
: E_INVALIDARG
;
1301 IShellItem
*psiFolder
;
1302 hr
= SHCreateItemFromIDList(pidlFolder
, IID_PPV_ARGS(&psiFolder
));
1305 hr
= plib
->RemoveFolder(psiFolder
);
1306 psiFolder
->Release();
1308 CoTaskMemFree(pidlFolder
);
1313 __inline HRESULT
SHResolveFolderPathInLibrary(__in IShellLibrary
*plib
, __in PCWSTR pszFolderPath
, __in DWORD dwTimeout
, __deref_out PWSTR
*ppszResolvedPath
)
1315 *ppszResolvedPath
= NULL
;
1316 PIDLIST_ABSOLUTE pidlFolder
= SHSimpleIDListFromPath(pszFolderPath
);
1317 HRESULT hr
= pidlFolder
? S_OK
: E_INVALIDARG
;
1320 IShellItem
*psiFolder
;
1321 hr
= SHCreateItemFromIDList(pidlFolder
, IID_PPV_ARGS(&psiFolder
));
1324 IShellItem
*psiResolved
;
1325 hr
= plib
->ResolveFolder(psiFolder
, dwTimeout
, IID_PPV_ARGS(&psiResolved
));
1328 hr
= psiResolved
->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING
, ppszResolvedPath
);
1329 psiResolved
->Release();
1331 psiFolder
->Release();
1333 CoTaskMemFree(pidlFolder
);
1338 __inline HRESULT
SHSaveLibraryInFolderPath(__in IShellLibrary
*plib
, __in PCWSTR pszFolderPath
, __in PCWSTR pszLibraryName
, __in LIBRARYSAVEFLAGS lsf
, __deref_opt_out PWSTR
*ppszSavedToPath
)
1340 if (ppszSavedToPath
)
1342 *ppszSavedToPath
= NULL
;
1345 IShellItem
*psiFolder
;
1346 HRESULT hr
= SHCreateItemFromParsingName(pszFolderPath
, NULL
, IID_PPV_ARGS(&psiFolder
));
1349 IShellItem
*psiSavedTo
;
1350 hr
= plib
->Save(psiFolder
, pszLibraryName
, lsf
, &psiSavedTo
);
1353 if (ppszSavedToPath
)
1355 hr
= psiSavedTo
->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING
, ppszSavedToPath
);
1357 psiSavedTo
->Release();
1359 psiFolder
->Release();
1363 #endif /* (NTDDI_VERSION < NTDDI_WIN7) */