| /* | 
 |  * Copyright 2006 Jacek Caban for CodeWeavers | 
 |  * | 
 |  * This library is free software; you can redistribute it and/or | 
 |  * modify it under the terms of the GNU Lesser General Public | 
 |  * License as published by the Free Software Foundation; either | 
 |  * version 2.1 of the License, or (at your option) any later version. | 
 |  * | 
 |  * This library is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 |  * Lesser General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU Lesser General Public | 
 |  * License along with this library; if not, write to the Free Software | 
 |  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
 |  */ | 
 |  | 
 | import "objidl.idl"; | 
 | import "oleidl.idl"; | 
 | import "oaidl.idl"; | 
 | import "docobj.idl"; | 
 | import "servprov.idl"; | 
 |  | 
 | typedef enum _ADDURL_FLAG | 
 | { | 
 |     ADDURL_FIRST                = 0, | 
 |     ADDURL_ADDTOHISTORYANDCACHE = 0, | 
 |     ADDURL_ADDTOCACHE           = 1, | 
 |     ADDURL_Max                  = 0x7fffffff | 
 | } ADDURL_FLAG; | 
 |  | 
 | /***************************************************************************** | 
 |  *    IEnumSTATURL interface | 
 |  */ | 
 | [ | 
 |     object, | 
 |     uuid(3c374a42-bae4-11cf-bf7d-00aa006946ee), | 
 |     pointer_default(unique) | 
 | ] | 
 | interface IEnumSTATURL : IUnknown | 
 | { | 
 |     typedef [unique] IEnumSTATURL *LPENUMSTATURL; | 
 | 	 | 
 |     typedef struct _STATURL | 
 |     { | 
 |         DWORD cbSize; | 
 |         LPWSTR pwcsUrl; | 
 |         LPWSTR pwcsTitle; | 
 |         FILETIME ftLastVisited; | 
 |         FILETIME ftLastUpdated; | 
 |         FILETIME ftExpires; | 
 |         DWORD dwFlags; | 
 |     } STATURL, *LPSTATURL; | 
 |  | 
 |     HRESULT Next( | 
 |         [in] ULONG celt, | 
 |         [in, out] LPSTATURL rgelt, | 
 |         [in, out] ULONG *pceltFetched); | 
 |  | 
 |     HRESULT Skip([in] ULONG celt); | 
 |     HRESULT Reset(); | 
 |     HRESULT Clone([out] IEnumSTATURL **ppenum); | 
 |  | 
 |     HRESULT SetFilter( | 
 |         [in] LPCOLESTR poszFilter, | 
 |         [in] DWORD dwFlags); | 
 | } | 
 |  | 
 | /***************************************************************************** | 
 |  *    IUrlHistoryStg interface | 
 |  */ | 
 | [ | 
 |     object, | 
 |     uuid(3c374a41-bae4-11cf-bf7d-00aa006946ee), | 
 |     pointer_default(unique) | 
 | ] | 
 | interface IUrlHistoryStg : IUnknown | 
 | { | 
 |     typedef [unique] IUrlHistoryStg *LPURLHISTORYSTG; | 
 | 	 | 
 |     HRESULT AddUrl( | 
 |         [in] LPCOLESTR pocsUrl, | 
 |         [in, unique] LPCOLESTR pocsTitle, | 
 |         [in] DWORD dwFlags); | 
 |  | 
 |     HRESULT DeleteUrl( | 
 |         [in] LPCOLESTR pocsUrl, | 
 |         [in] DWORD dwFlags); | 
 |  | 
 |     HRESULT QueryUrl( | 
 |         [in] LPCOLESTR pocsUrl, | 
 |         [in] DWORD dwFlags, | 
 |         [in, out, unique] LPSTATURL lpSTATURL); | 
 | 	 | 
 |     HRESULT BindToObject( | 
 |         [in] LPCOLESTR pocsUrl, | 
 |         [in] REFIID riid, | 
 |         [out, iid_is(riid)] void **ppvOut); | 
 |  | 
 |     HRESULT EnumUrls( | 
 |         [out] IEnumSTATURL **ppEnum);	 | 
 | } | 
 |  | 
 | /***************************************************************************** | 
 |  *    IUrlHistoryStg2 interface | 
 |  */ | 
 | [ | 
 |     object, | 
 |     uuid(afa0dc11-c313-11d0-831a-00c04fd5ae38), | 
 |     pointer_default(unique) | 
 | ] | 
 | interface IUrlHistoryStg2 : IUrlHistoryStg | 
 | { | 
 |     typedef [unique] IUrlHistoryStg2 *LPURLHISTORYSTG2; | 
 |  | 
 |     HRESULT AddUrlAndNotify( | 
 |         [in] LPCOLESTR pocsUrl, | 
 |         [in,unique] LPCOLESTR pocsTitle, | 
 |         [in] DWORD dwFlags, | 
 |         [in] BOOL fWriteHistory, | 
 |         [in] IOleCommandTarget *poctNotify, | 
 |         [in, unique] IUnknown *punkISFolder); | 
 |  | 
 |     HRESULT ClearHistory(); | 
 | } | 
 |  | 
 | /***************************************************************************** | 
 |  *    IUrlHistoryNotify interface | 
 |  */ | 
 | [ | 
 |     object, | 
 |     uuid(bc40bec1-c493-11d0-831b-00C04fd5ae38), | 
 |     pointer_default(unique) | 
 | ] | 
 | interface IUrlHistoryNotify : IOleCommandTarget | 
 | { | 
 |     typedef [unique] IUrlHistoryNotify *LPURLHISTORYNOTIFY; | 
 | } |