xref: /reactos/sdk/include/psdk/urlhist.idl (revision 8a978a17)
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