Sync with trunk (r48545)
[reactos.git] / include / psdk / htiframe.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
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 }