1 // Copyright © 2015-2017 winapi-rs developers 2 // Licensed under the Apache License, Version 2.0 3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 5 // All files in the project carrying such notice may not be copied, modified, or distributed 6 // except according to those terms. 7 use ctypes::{c_int, c_void}; 8 use shared::guiddef::{REFGUID, REFIID}; 9 use shared::minwindef::{BOOL, ULONG}; 10 use shared::windef::HWND; 11 use um::objidl::IBindCtx; 12 use um::unknwnbase::{IUnknown, IUnknownVtbl}; 13 use um::winnt::{HRESULT, LPWSTR}; 14 DEFINE_GUID!{CLSID_TaskbarList, 15 0x56fdf344, 0xfd6d, 0x11d0, 0x95, 0x8a, 0x00, 0x60, 0x97, 0xc9, 0xa0, 0x90} 16 //4498 17 pub type SFGAOF = ULONG; 18 //9466 19 ENUM!{enum SIGDN { 20 SIGDN_NORMALDISPLAY = 0, 21 SIGDN_PARENTRELATIVEPARSING = 0x80018001, 22 SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000, 23 SIGDN_PARENTRELATIVEEDITING = 0x80031001, 24 SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000, 25 SIGDN_FILESYSPATH = 0x80058000, 26 SIGDN_URL = 0x80068000, 27 SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001, 28 SIGDN_PARENTRELATIVE = 0x80080001, 29 SIGDN_PARENTRELATIVEFORUI = 0x80094001, 30 }} 31 ENUM!{enum SICHINTF { 32 SICHINT_DISPLAY = 0, 33 SICHINT_ALLFIELDS = 0x80000000, 34 SICHINT_CANONICAL = 0x10000000, 35 SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000, 36 }} 37 RIDL!{#[uuid(0x43826d1e, 0xe718, 0x42ee, 0xbc, 0x55, 0xa1, 0xe2, 0x61, 0xc3, 0x7b, 0xfe)] 38 interface IShellItem(IShellItemVtbl): IUnknown(IUnknownVtbl) { 39 fn BindToHandler( 40 pbc: *mut IBindCtx, 41 bhid: REFGUID, 42 riid: REFIID, 43 ppv: *mut *mut c_void, 44 ) -> HRESULT, 45 fn GetParent( 46 ppsi: *mut *mut IShellItem, 47 ) -> HRESULT, 48 fn GetDisplayName( 49 sigdnName: SIGDN, 50 ppszName: *mut LPWSTR, 51 ) -> HRESULT, 52 fn GetAttributes( 53 sfgaoMask: SFGAOF, 54 psfgaoAttribs: *mut SFGAOF, 55 ) -> HRESULT, 56 fn Compare( 57 psi: *mut IShellItem, 58 hint: SICHINTF, 59 piOrder: *mut c_int, 60 ) -> HRESULT, 61 }} 62 //20869 63 RIDL!{#[uuid(0xb4db1657, 0x70d7, 0x485e, 0x8e, 0x3e, 0x6f, 0xcb, 0x5a, 0x5c, 0x18, 0x02)] 64 interface IModalWindow(IModalWindowVtbl): IUnknown(IUnknownVtbl) { 65 fn Show( 66 hwndOwner: HWND, 67 ) -> HRESULT, 68 }} 69 //22307 70 //27457 71 pub type IShellItemFilter = IUnknown; // TODO 72 RIDL!{#[uuid(0x56fdf342, 0xfd6d, 0x11d0, 0x95, 0x8a, 0x00, 0x60, 0x97, 0xc9, 0xa0, 0x90)] 73 interface ITaskbarList(ITaskbarListVtbl): IUnknown(IUnknownVtbl) { 74 fn HrInit() -> HRESULT, 75 fn AddTab( 76 hwnd: HWND, 77 ) -> HRESULT, 78 fn DeleteTab( 79 hwnd: HWND, 80 ) -> HRESULT, 81 fn ActivateTab( 82 hwnd: HWND, 83 ) -> HRESULT, 84 fn SetActiveAlt( 85 hwnd: HWND, 86 ) -> HRESULT, 87 }} 88 RIDL!{#[uuid(0x602d4995, 0xb13a, 0x429b, 0xa6, 0x6e, 0x19, 0x35, 0xe4, 0x4f, 0x43, 0x17)] 89 interface ITaskbarList2(ITaskbarList2Vtbl): ITaskbarList(ITaskbarListVtbl) { 90 fn MarkFullscreenWindow( 91 hwnd: HWND, 92 fFullscreen: BOOL, 93 ) -> HRESULT, 94 }} 95