include: Don't import servprov.idl from urlhist.idl.
[wine] / include / urlhist.idl
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
19 import "objidl.idl";
20 import "oleidl.idl";
21 import "oaidl.idl";
22 import "docobj.idl";
23
24 typedef enum _ADDURL_FLAG
25 {
26     ADDURL_FIRST                = 0,
27     ADDURL_ADDTOHISTORYANDCACHE = 0,
28     ADDURL_ADDTOCACHE           = 1,
29     ADDURL_Max                  = 0x7fffffff
30 } ADDURL_FLAG;
31
32 /*****************************************************************************
33  *    IEnumSTATURL interface
34  */
35 [
36     object,
37     uuid(3c374a42-bae4-11cf-bf7d-00aa006946ee),
38     pointer_default(unique)
39 ]
40 interface IEnumSTATURL : IUnknown
41 {
42     typedef [unique] IEnumSTATURL *LPENUMSTATURL;
43         
44     typedef struct _STATURL
45     {
46         DWORD cbSize;
47         LPWSTR pwcsUrl;
48         LPWSTR pwcsTitle;
49         FILETIME ftLastVisited;
50         FILETIME ftLastUpdated;
51         FILETIME ftExpires;
52         DWORD dwFlags;
53     } STATURL, *LPSTATURL;
54
55     HRESULT Next(
56         [in] ULONG celt,
57         [in, out] LPSTATURL rgelt,
58         [in, out] ULONG *pceltFetched);
59
60     HRESULT Skip([in] ULONG celt);
61     HRESULT Reset();
62     HRESULT Clone([out] IEnumSTATURL **ppenum);
63
64     HRESULT SetFilter(
65         [in] LPCOLESTR poszFilter,
66         [in] DWORD dwFlags);
67 }
68
69 /*****************************************************************************
70  *    IUrlHistoryStg interface
71  */
72 [
73     object,
74     uuid(3c374a41-bae4-11cf-bf7d-00aa006946ee),
75     pointer_default(unique)
76 ]
77 interface IUrlHistoryStg : IUnknown
78 {
79     typedef [unique] IUrlHistoryStg *LPURLHISTORYSTG;
80         
81     HRESULT AddUrl(
82         [in] LPCOLESTR pocsUrl,
83         [in, unique] LPCOLESTR pocsTitle,
84         [in] DWORD dwFlags);
85
86     HRESULT DeleteUrl(
87         [in] LPCOLESTR pocsUrl,
88         [in] DWORD dwFlags);
89
90     HRESULT QueryUrl(
91         [in] LPCOLESTR pocsUrl,
92         [in] DWORD dwFlags,
93         [in, out, unique] LPSTATURL lpSTATURL);
94         
95     HRESULT BindToObject(
96         [in] LPCOLESTR pocsUrl,
97         [in] REFIID riid,
98         [out, iid_is(riid)] void **ppvOut);
99
100     HRESULT EnumUrls(
101         [out] IEnumSTATURL **ppEnum);   
102 }
103
104 /*****************************************************************************
105  *    IUrlHistoryStg2 interface
106  */
107 [
108     object,
109     uuid(afa0dc11-c313-11d0-831a-00c04fd5ae38),
110     pointer_default(unique)
111 ]
112 interface IUrlHistoryStg2 : IUrlHistoryStg
113 {
114     typedef [unique] IUrlHistoryStg2 *LPURLHISTORYSTG2;
115
116     HRESULT AddUrlAndNotify(
117         [in] LPCOLESTR pocsUrl,
118         [in,unique] LPCOLESTR pocsTitle,
119         [in] DWORD dwFlags,
120         [in] BOOL fWriteHistory,
121         [in] IOleCommandTarget *poctNotify,
122         [in, unique] IUnknown *punkISFolder);
123
124     HRESULT ClearHistory();
125 }
126
127 /*****************************************************************************
128  *    IUrlHistoryNotify interface
129  */
130 [
131     object,
132     uuid(bc40bec1-c493-11d0-831b-00C04fd5ae38),
133     pointer_default(unique)
134 ]
135 interface IUrlHistoryNotify : IOleCommandTarget
136 {
137     typedef [unique] IUrlHistoryNotify *LPURLHISTORYNOTIFY;
138 }