// Copyright © 2015, Peter Atashian // Licensed under the MIT License //! Url History Interfaces pub const STATURL_QUERYFLAG_ISCACHED: ::DWORD = 0x00010000; pub const STATURL_QUERYFLAG_NOURL: ::DWORD = 0x00020000; pub const STATURL_QUERYFLAG_NOTITLE: ::DWORD = 0x00040000; pub const STATURL_QUERYFLAG_TOPLEVEL: ::DWORD = 0x00080000; pub const STATURLFLAG_ISCACHED: ::DWORD = 0x00000001; pub const STATURLFLAG_ISTOPLEVEL: ::DWORD = 0x00000002; ENUM!{enum ADDURL_FLAG { ADDURL_FIRST = 0, ADDURL_ADDTOHISTORYANDCACHE = 0, ADDURL_ADDTOCACHE = 1, ADDURL_Max = 2147483647, }} pub type LPENUMSTATURL = *mut IEnumSTATURL; STRUCT!{struct STATURL { cbSize: ::DWORD, pwcsUrl: ::LPWSTR, pwcsTitle: ::LPWSTR, ftLastVisited: ::FILETIME, ftLastUpdated: ::FILETIME, ftExpires: ::FILETIME, dwFlags: ::DWORD, }} pub type LPSTATURL = *mut STATURL; RIDL!{interface IEnumSTATURL(IEnumSTATURLVtbl): IUnknown(IUnknownVtbl) { fn Next(&mut self, celt: ::ULONG, rgelt: LPSTATURL, pceltFetched: *mut ::ULONG) -> ::HRESULT, fn Skip(&mut self, celt: ::ULONG) -> ::HRESULT, fn Reset(&mut self) -> ::HRESULT, fn Clone(&mut self, ppenum: *mut *mut ::IEnumSTATURL) -> ::HRESULT, fn SetFilter(&mut self, poszFilter: ::LPCOLESTR, dwFlags: ::DWORD) -> ::HRESULT }} pub type LPURLHISTORYSTG = *mut IUrlHistoryStg; RIDL!{interface IUrlHistoryStg(IUrlHistoryStgVtbl): IUnknown(IUnknownVtbl) { fn AddUrl(&mut self, pocsUrl: ::LPCOLESTR) -> ::HRESULT, fn DeleteUrl(&mut self, pocsUrl: ::LPCOLESTR, dwFlags: ::DWORD) -> ::HRESULT, fn QueryUrl( &mut self, pocsUrl: ::LPCOLESTR, dwFlags: ::DWORD, lpSTATURL: LPSTATURL ) -> ::HRESULT, fn BindToObject( &mut self, pocsUrl: ::LPCOLESTR, riid: ::REFIID, ppvOut: *mut *mut ::c_void ) -> ::HRESULT, fn EnumUrls(&mut self, ppEnum: *mut *mut ::IEnumSTATURL) -> ::HRESULT }} pub type LPURLHISTORYSTG2 = *mut IUrlHistoryStg2; RIDL!{interface IUrlHistoryStg2(IUrlHistoryStg2Vtbl): IUrlHistoryStg(IUrlHistoryStgVtbl) { fn AddUrlAndNotify( &mut self, pocsUrl: ::LPCOLESTR, pocsTitle: ::LPCOLESTR, dwFlags: ::DWORD, fWriteHistory: ::BOOL, poctNotify: *mut ::IOleCommandTarget, punkISFolder: *mut ::IUnknown ) -> ::HRESULT, fn ClearHistory(&mut self) -> ::HRESULT }} pub type LPURLHISTORYNOTIFY = *mut IUrlHistoryNotify; RIDL!{interface IUrlHistoryNotify(IUrlHistoryNotifyVtbl): IOleCommandTarget(IOleCommandTargetVtbl) {}}