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