winuser.h: Define browser and multimedia keys.
[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 import "servprov.idl";
24
25 typedef 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 ]
41 interface 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 ]
78 interface 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 ]
113 interface 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 ]
136 interface IUrlHistoryNotify : IOleCommandTarget
137 {
138     typedef [unique] IUrlHistoryNotify *LPURLHISTORYNOTIFY;
139 }