[PSDK] Update gdiplus{flat,types}.h. CORE-9924
[reactos.git] / reactos / include / psdk / 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 }