1/* 2 * Copyright 2006 Jacek Caban for CodeWeavers 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19import "objidl.idl"; 20import "oleidl.idl"; 21import "oaidl.idl"; 22import "docobj.idl"; 23import "servprov.idl"; 24 25typedef enum _ADDURL_FLAG 26{ 27 ADDURL_FIRST = 0, 28 ADDURL_ADDTOHISTORYANDCACHE = 0, 29 ADDURL_ADDTOCACHE = 1, 30 ADDURL_Max = 0x7fffffff 31} ADDURL_FLAG; 32 33/***************************************************************************** 34 * IEnumSTATURL interface 35 */ 36[ 37 object, 38 uuid(3c374a42-bae4-11cf-bf7d-00aa006946ee), 39 pointer_default(unique) 40] 41interface IEnumSTATURL : IUnknown 42{ 43 typedef [unique] IEnumSTATURL *LPENUMSTATURL; 44 45 typedef struct _STATURL 46 { 47 DWORD cbSize; 48 LPWSTR pwcsUrl; 49 LPWSTR pwcsTitle; 50 FILETIME ftLastVisited; 51 FILETIME ftLastUpdated; 52 FILETIME ftExpires; 53 DWORD dwFlags; 54 } STATURL, *LPSTATURL; 55 56 HRESULT Next( 57 [in] ULONG celt, 58 [in, out] LPSTATURL rgelt, 59 [in, out] ULONG *pceltFetched); 60 61 HRESULT Skip([in] ULONG celt); 62 HRESULT Reset(); 63 HRESULT Clone([out] IEnumSTATURL **ppenum); 64 65 HRESULT SetFilter( 66 [in] LPCOLESTR poszFilter, 67 [in] DWORD dwFlags); 68} 69 70/***************************************************************************** 71 * IUrlHistoryStg interface 72 */ 73[ 74 object, 75 uuid(3c374a41-bae4-11cf-bf7d-00aa006946ee), 76 pointer_default(unique) 77] 78interface IUrlHistoryStg : IUnknown 79{ 80 typedef [unique] IUrlHistoryStg *LPURLHISTORYSTG; 81 82 HRESULT AddUrl( 83 [in] LPCOLESTR pocsUrl, 84 [in, unique] LPCOLESTR pocsTitle, 85 [in] DWORD dwFlags); 86 87 HRESULT DeleteUrl( 88 [in] LPCOLESTR pocsUrl, 89 [in] DWORD dwFlags); 90 91 HRESULT QueryUrl( 92 [in] LPCOLESTR pocsUrl, 93 [in] DWORD dwFlags, 94 [in, out, unique] LPSTATURL lpSTATURL); 95 96 HRESULT BindToObject( 97 [in] LPCOLESTR pocsUrl, 98 [in] REFIID riid, 99 [out, iid_is(riid)] void **ppvOut); 100 101 HRESULT EnumUrls( 102 [out] IEnumSTATURL **ppEnum); 103} 104 105/***************************************************************************** 106 * IUrlHistoryStg2 interface 107 */ 108[ 109 object, 110 uuid(afa0dc11-c313-11d0-831a-00c04fd5ae38), 111 pointer_default(unique) 112] 113interface IUrlHistoryStg2 : IUrlHistoryStg 114{ 115 typedef [unique] IUrlHistoryStg2 *LPURLHISTORYSTG2; 116 117 HRESULT AddUrlAndNotify( 118 [in] LPCOLESTR pocsUrl, 119 [in,unique] LPCOLESTR pocsTitle, 120 [in] DWORD dwFlags, 121 [in] BOOL fWriteHistory, 122 [in] IOleCommandTarget *poctNotify, 123 [in, unique] IUnknown *punkISFolder); 124 125 HRESULT ClearHistory(); 126} 127 128/***************************************************************************** 129 * IUrlHistoryNotify interface 130 */ 131[ 132 object, 133 uuid(bc40bec1-c493-11d0-831b-00C04fd5ae38), 134 pointer_default(unique) 135] 136interface IUrlHistoryNotify : IOleCommandTarget 137{ 138 typedef [unique] IUrlHistoryNotify *LPURLHISTORYNOTIFY; 139} 140