include: Use gcc atomic builtins to implement interlocked inlines on non-i386.
[wine] / include / htiframe.idl
1 /*
2  * Copyright 2006,2011 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
22 /*****************************************************************************
23  *    ITargetNotify interface
24  */
25 [
26     object,
27     uuid(863a99a0-21bc-11d0-82b4-00a0c90c29c5),
28     pointer_default(unique)
29 ]
30 interface ITargetNotify : IUnknown
31 {
32     typedef [unique] ITargetNotify *LPTARGETNOTIFY;
33
34     HRESULT OnCreate(
35             [in] IUnknown *pUnkDestination,
36             [in] ULONG cbCookie);
37
38     HRESULT OnReuse([in] IUnknown *pUnkDestination);
39 }
40
41 /*****************************************************************************
42  *    ITargetNotify2 interface
43  */
44 [
45     object,
46     uuid(3050f6b1-98b5-11cf-bb82-00aa00bdce0b),
47     pointer_default(unique)
48 ]
49 interface ITargetNotify2 : ITargetNotify
50 {
51     typedef [unique] ITargetNotify2 *LPTARGETNOTIFY2;
52
53     HRESULT GetOptionString([in,out] BSTR *pbstrOptions);
54 }
55
56 /*****************************************************************************
57  *    ITargetFrame2 interface
58  */
59 [
60     object,
61     uuid(86d52e11-94a8-11d0-82af-00c04fd5ae38),
62     pointer_default(unique)
63 ]
64 interface ITargetFrame2 : IUnknown
65 {
66     typedef [unique] ITargetFrame2 *LPTARGETFRAME2;
67
68     typedef enum {
69         FINDFRAME_NONE               = 0,
70         FINDFRAME_JUSTTESTEXISTENCE  = 1,
71         FINDFRAME_INTERNAL           = 0x80000000
72     } FINDFRAME_FLAGS;
73
74     typedef enum {
75         FRAMEOPTIONS_SCROLL_YES   = 0x00000001,
76         FRAMEOPTIONS_SCROLL_NO    = 0x00000002,
77         FRAMEOPTIONS_SCROLL_AUTO  = 0x00000004,
78         FRAMEOPTIONS_NORESIZE     = 0x00000008,
79         FRAMEOPTIONS_NO3DBORDER   = 0x00000010,
80         FRAMEOPTIONS_DESKTOP      = 0x00000020,
81         FRAMEOPTIONS_BROWSERBAND  = 0x00000040
82     } FRAMEOPTIONS_FLAGS;
83
84     HRESULT SetFrameName([in] LPCWSTR pszFrameName);
85
86     HRESULT GetFrameName([out] LPWSTR *ppszFrameName);
87
88     HRESULT GetParentFrame([out] IUnknown **ppunkParent);
89
90     HRESULT SetFrameSrc([in] LPCWSTR pszFrameSrc);
91
92     HRESULT GetFrameSrc([out] LPWSTR *ppszFrameSrc);
93
94     HRESULT GetFramesContainer([out] IOleContainer **ppContainer);
95
96     HRESULT SetFrameOptions([in] DWORD dwFlags);
97
98     HRESULT GetFrameOptions([out] DWORD *pdwFlags);
99
100     HRESULT SetFrameMargins(
101             [in] DWORD dwWidth,
102             [in] DWORD dwHeight);
103
104     HRESULT GetFrameMargins(
105             [out] DWORD *pdwWidth,
106             [out] DWORD *pdwHeight);
107
108     HRESULT FindFrame(
109             [in,unique] LPCWSTR pszTargetName,
110             [in] DWORD dwFlags,
111             [out] IUnknown **ppunkTargetFrame);
112
113     HRESULT GetTargetAlias(
114             [in,unique] LPCWSTR pszTargetName,
115              [out] LPWSTR *ppszTargetAlias);
116 }
117
118 /*****************************************************************************
119  *    ITargetContainer interface
120  */
121 [
122     object,
123     uuid(7847ec01-2bec-11d0-82b4-00a0c90C29c5),
124     pointer_default(unique)
125 ]
126 interface ITargetContainer : IUnknown
127 {
128     typedef [unique] ITargetContainer *LPTARGETCONTAINER;
129
130     HRESULT GetFrameUrl([out] LPWSTR *ppszFrameSrc);
131
132     HRESULT GetFramesContainer([out] IOleContainer **ppContainer);
133
134 }