blob: b6fc2db155c5ad4d3d3745d6565ff86578310557 [file] [log] [blame]
// Copyright © 2015, Peter Atashian
// Licensed under the MIT License <LICENSE.md>
//! 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) {}}