xref: /reactos/sdk/include/psdk/htiface.idl (revision c2c66aff)
1*c2c66affSColin Finck/*
2*c2c66affSColin Finck * Copyright 2006,2011 Jacek Caban for CodeWeavers
3*c2c66affSColin Finck *
4*c2c66affSColin Finck * This library is free software; you can redistribute it and/or
5*c2c66affSColin Finck * modify it under the terms of the GNU Lesser General Public
6*c2c66affSColin Finck * License as published by the Free Software Foundation; either
7*c2c66affSColin Finck * version 2.1 of the License, or (at your option) any later version.
8*c2c66affSColin Finck *
9*c2c66affSColin Finck * This library is distributed in the hope that it will be useful,
10*c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of
11*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12*c2c66affSColin Finck * Lesser General Public License for more details.
13*c2c66affSColin Finck *
14*c2c66affSColin Finck * You should have received a copy of the GNU Lesser General Public
15*c2c66affSColin Finck * License along with this library; if not, write to the Free Software
16*c2c66affSColin Finck * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17*c2c66affSColin Finck */
18*c2c66affSColin Finck
19*c2c66affSColin Finckimport "objidl.idl";
20*c2c66affSColin Finckimport "oleidl.idl";
21*c2c66affSColin Finckimport "urlmon.idl";
22*c2c66affSColin Finck
23*c2c66affSColin Finckcpp_quote("#include <htiframe.h>")
24*c2c66affSColin Finck
25*c2c66affSColin Finck
26*c2c66affSColin Finck/*****************************************************************************
27*c2c66affSColin Finck *    ITargetFrame interface
28*c2c66affSColin Finck */
29*c2c66affSColin Finck[
30*c2c66affSColin Finck    object,
31*c2c66affSColin Finck    uuid(d5f78c80-5252-11cf-90fa-00aa0042106e),
32*c2c66affSColin Finck    pointer_default(unique)
33*c2c66affSColin Finck]
34*c2c66affSColin Finckinterface ITargetFrame: IUnknown
35*c2c66affSColin Finck{
36*c2c66affSColin Finck    typedef [unique] ITargetFrame *LPTARGETFRAME;
37*c2c66affSColin Finck
38*c2c66affSColin Finck    typedef enum {
39*c2c66affSColin Finck        NAVIGATEFRAME_FL_RECORD                    = 0x01,
40*c2c66affSColin Finck        NAVIGATEFRAME_FL_POST                      = 0x02,
41*c2c66affSColin Finck        NAVIGATEFRAME_FL_NO_DOC_CACHE              = 0x04,
42*c2c66affSColin Finck        NAVIGATEFRAME_FL_NO_IMAGE_CACHE            = 0x08,
43*c2c66affSColin Finck        NAVIGATEFRAME_FL_AUTH_FAIL_CACHE_OK        = 0x10,
44*c2c66affSColin Finck        NAVIGATEFRAME_FL_SENDING_FROM_FORM         = 0x20,
45*c2c66affSColin Finck        NAVIGATEFRAME_FL_REALLY_SENDING_FROM_FORM  = 0x40
46*c2c66affSColin Finck    } NAVIGATEFRAME_FLAGS;
47*c2c66affSColin Finck
48*c2c66affSColin Finck    typedef struct tagNavigateData {
49*c2c66affSColin Finck        ULONG ulTarget;
50*c2c66affSColin Finck        ULONG ulURL;
51*c2c66affSColin Finck        ULONG ulRefURL;
52*c2c66affSColin Finck        ULONG ulPostData;
53*c2c66affSColin Finck        DWORD dwFlags;
54*c2c66affSColin Finck    } NAVIGATEDATA;
55*c2c66affSColin Finck
56*c2c66affSColin Finck    HRESULT SetFrameName([in] LPCWSTR pszFrameName);
57*c2c66affSColin Finck    HRESULT GetFrameName([out] LPWSTR *ppszFrameName);
58*c2c66affSColin Finck    HRESULT GetParentFrame([out] IUnknown **ppunkParent);
59*c2c66affSColin Finck
60*c2c66affSColin Finck    HRESULT FindFrame(
61*c2c66affSColin Finck            [in] LPCWSTR pszTargetName,
62*c2c66affSColin Finck            [in] IUnknown *ppunkContextFrame,
63*c2c66affSColin Finck            [in] DWORD dwFlags,
64*c2c66affSColin Finck            [out] IUnknown **ppunkTargetFrame);
65*c2c66affSColin Finck
66*c2c66affSColin Finck    HRESULT SetFrameSrc([in] LPCWSTR pszFrameSrc);
67*c2c66affSColin Finck    HRESULT GetFrameSrc([out] LPWSTR *ppszFrameSrc);
68*c2c66affSColin Finck    HRESULT GetFramesContainer([out] IOleContainer **ppContainer);
69*c2c66affSColin Finck    HRESULT SetFrameOptions([in] DWORD dwFlags);
70*c2c66affSColin Finck    HRESULT GetFrameOptions([out] DWORD *pdwFlags);
71*c2c66affSColin Finck
72*c2c66affSColin Finck    HRESULT SetFrameMargins(
73*c2c66affSColin Finck            [in] DWORD dwWidth,
74*c2c66affSColin Finck            [in] DWORD dwHeight);
75*c2c66affSColin Finck
76*c2c66affSColin Finck    HRESULT GetFrameMargins(
77*c2c66affSColin Finck            [out] DWORD *pdwWidth,
78*c2c66affSColin Finck            [out] DWORD *pdwHeight);
79*c2c66affSColin Finck
80*c2c66affSColin Finck    HRESULT RemoteNavigate(
81*c2c66affSColin Finck            [in] ULONG cLength,
82*c2c66affSColin Finck            [in, size_is(cLength)] ULONG *pulData);
83*c2c66affSColin Finck
84*c2c66affSColin Finck    HRESULT OnChildFrameActivate([in] IUnknown *pUnkChildFrame);
85*c2c66affSColin Finck    HRESULT OnChildFrameDeactivate([in] IUnknown *pUnkChildFrame);
86*c2c66affSColin Finck}
87*c2c66affSColin Finck
88*c2c66affSColin Finck/*****************************************************************************
89*c2c66affSColin Finck *    ITargetFramePriv interface
90*c2c66affSColin Finck */
91*c2c66affSColin Finck[
92*c2c66affSColin Finck    object,
93*c2c66affSColin Finck    uuid(9216e421-2bf5-11d0-82b4-00a0c90c29c5),
94*c2c66affSColin Finck    pointer_default(unique)
95*c2c66affSColin Finck]
96*c2c66affSColin Finckinterface ITargetFramePriv : IUnknown
97*c2c66affSColin Finck{
98*c2c66affSColin Finck    typedef [unique] ITargetFramePriv *LPTARGETFRAMEPRIV;
99*c2c66affSColin Finck
100*c2c66affSColin Finck    HRESULT FindFrameDownwards(
101*c2c66affSColin Finck            [in] LPCWSTR pszTargetName,
102*c2c66affSColin Finck            [in] DWORD dwFlags,
103*c2c66affSColin Finck            [out] IUnknown **ppunkTargetFrame);
104*c2c66affSColin Finck
105*c2c66affSColin Finck    HRESULT FindFrameInContext(
106*c2c66affSColin Finck            [in] LPCWSTR pszTargetName,
107*c2c66affSColin Finck            [in] IUnknown *punkContextFrame,
108*c2c66affSColin Finck            [in] DWORD dwFlags,
109*c2c66affSColin Finck            [out] IUnknown **ppunkTargetFrame);
110*c2c66affSColin Finck
111*c2c66affSColin Finck    HRESULT OnChildFrameActivate([in] IUnknown *pUnkChildFrame);
112*c2c66affSColin Finck    HRESULT OnChildFrameDeactivate([in] IUnknown *pUnkChildFrame);
113*c2c66affSColin Finck
114*c2c66affSColin Finck    HRESULT NavigateHack(
115*c2c66affSColin Finck            [in] DWORD grfHLNF,
116*c2c66affSColin Finck            [in, unique] LPBC pbc,
117*c2c66affSColin Finck            [in, unique] IBindStatusCallback *pibsc,
118*c2c66affSColin Finck            [in, unique] LPCWSTR pszTargetName,
119*c2c66affSColin Finck            [in] LPCWSTR pszUrl,
120*c2c66affSColin Finck            [in, unique] LPCWSTR pszLocation);
121*c2c66affSColin Finck
122*c2c66affSColin Finck    HRESULT FindBrowserByIndex(
123*c2c66affSColin Finck            [in] DWORD dwID,
124*c2c66affSColin Finck            [out] IUnknown **ppunkBrowser);
125*c2c66affSColin Finck}
126*c2c66affSColin Finck
127*c2c66affSColin Finck/*****************************************************************************
128*c2c66affSColin Finck *    ITargetFramePriv2 interface
129*c2c66affSColin Finck */
130*c2c66affSColin Finck[
131*c2c66affSColin Finck    object,
132*c2c66affSColin Finck    uuid(b2c867e6-69d6-46f2-a611-ded9a4bd7fef),
133*c2c66affSColin Finck    pointer_default(unique)
134*c2c66affSColin Finck]
135*c2c66affSColin Finckinterface ITargetFramePriv2 : ITargetFramePriv
136*c2c66affSColin Finck{
137*c2c66affSColin Finck    typedef [unique] ITargetFramePriv2 *LPTARGETFRAMEPRIV2;
138*c2c66affSColin Finck
139*c2c66affSColin Finck    HRESULT AggregatedNavigation2(
140*c2c66affSColin Finck            [in] DWORD grfHLNF,
141*c2c66affSColin Finck            [in, unique] LPBC pbc,
142*c2c66affSColin Finck            [in, unique] IBindStatusCallback *pibsc,
143*c2c66affSColin Finck            [in, unique] LPCWSTR pszTargetName,
144*c2c66affSColin Finck            [in] IUri *pUri,
145*c2c66affSColin Finck            [in, unique] LPCWSTR pszLocation);
146*c2c66affSColin Finck}
147