diff --git a/reactos/include/wine/exdisp.h b/reactos/include/wine/exdisp.h index 1c0341f7cd8..302bf5a0c4f 100644 --- a/reactos/include/wine/exdisp.h +++ b/reactos/include/wine/exdisp.h @@ -24,13 +24,11 @@ typedef enum BrowserNavConstants { navHyperlink = 0x40, navEnforceRestricted = 0x80 } BrowserNavConstants; - typedef enum RefreshConstants { REFRESH_NORMAL = 0, REFRESH_IFEXPIRED = 1, REFRESH_COMPLETELY = 3 } RefreshConstants; - /***************************************************************************** * IWebBrowser interface */ @@ -127,6 +125,8 @@ struct IWebBrowser { const IWebBrowserVtbl* lpVtbl; }; struct IWebBrowserVtbl { + BEGIN_INTERFACE + /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IWebBrowser* This, @@ -268,8 +268,10 @@ struct IWebBrowserVtbl { IWebBrowser* This, VARIANT_BOOL* pBool); + END_INTERFACE }; +#ifdef COBJMACROS /*** IUnknown methods ***/ #define IWebBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IWebBrowser_AddRef(p) (p)->lpVtbl->AddRef(p) @@ -305,45 +307,9 @@ struct IWebBrowserVtbl { #define IWebBrowser_get_LocationName(p,a) (p)->lpVtbl->get_LocationName(p,a) #define IWebBrowser_get_LocationURL(p,a) (p)->lpVtbl->get_LocationURL(p,a) #define IWebBrowser_get_Busy(p,a) (p)->lpVtbl->get_Busy(p,a) - #endif -#define IWebBrowser_METHODS \ - /*** IUnknown methods ***/ \ - STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ - STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ - STDMETHOD_(ULONG,Release)(THIS) PURE; \ - /*** IDispatch methods ***/ \ - STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ UINT* pctinfo) PURE; \ - STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) PURE; \ - STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) PURE; \ - STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE; \ - /*** IWebBrowser methods ***/ \ - STDMETHOD_(HRESULT,GoBack)(THIS) PURE; \ - STDMETHOD_(HRESULT,GoForward)(THIS) PURE; \ - STDMETHOD_(HRESULT,GoHome)(THIS) PURE; \ - STDMETHOD_(HRESULT,GoSearch)(THIS) PURE; \ - STDMETHOD_(HRESULT,Navigate)(THIS_ BSTR URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers) PURE; \ - STDMETHOD_(HRESULT,Refresh)(THIS) PURE; \ - STDMETHOD_(HRESULT,Refresh2)(THIS_ VARIANT* Level) PURE; \ - STDMETHOD_(HRESULT,Stop)(THIS) PURE; \ - STDMETHOD_(HRESULT,get_Application)(THIS_ IDispatch** ppDisp) PURE; \ - STDMETHOD_(HRESULT,get_Parent)(THIS_ IDispatch** ppDisp) PURE; \ - STDMETHOD_(HRESULT,get_Container)(THIS_ IDispatch** ppDisp) PURE; \ - STDMETHOD_(HRESULT,get_Document)(THIS_ IDispatch** ppDisp) PURE; \ - STDMETHOD_(HRESULT,get_TopLevelContainer)(THIS_ VARIANT_BOOL* pBool) PURE; \ - STDMETHOD_(HRESULT,get_Type)(THIS_ BSTR* Type) PURE; \ - STDMETHOD_(HRESULT,get_Left)(THIS_ long* pl) PURE; \ - STDMETHOD_(HRESULT,put_Left)(THIS_ long Left) PURE; \ - STDMETHOD_(HRESULT,get_Top)(THIS_ long* pl) PURE; \ - STDMETHOD_(HRESULT,put_Top)(THIS_ long Top) PURE; \ - STDMETHOD_(HRESULT,get_Width)(THIS_ long* pl) PURE; \ - STDMETHOD_(HRESULT,put_Width)(THIS_ long Width) PURE; \ - STDMETHOD_(HRESULT,get_Height)(THIS_ long* pl) PURE; \ - STDMETHOD_(HRESULT,put_Height)(THIS_ long Height) PURE; \ - STDMETHOD_(HRESULT,get_LocationName)(THIS_ BSTR* LocationName) PURE; \ - STDMETHOD_(HRESULT,get_LocationURL)(THIS_ BSTR* LocationURL) PURE; \ - STDMETHOD_(HRESULT,get_Busy)(THIS_ VARIANT_BOOL* pBool) PURE; +#endif HRESULT CALLBACK IWebBrowser_GoBack_Proxy( IWebBrowser* This); @@ -631,6 +597,8 @@ struct IWebBrowserApp { const IWebBrowserAppVtbl* lpVtbl; }; struct IWebBrowserAppVtbl { + BEGIN_INTERFACE + /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IWebBrowserApp* This, @@ -855,8 +823,10 @@ struct IWebBrowserAppVtbl { IWebBrowserApp* This, VARIANT_BOOL bFullScreen); + END_INTERFACE }; +#ifdef COBJMACROS /*** IUnknown methods ***/ #define IWebBrowserApp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IWebBrowserApp_AddRef(p) (p)->lpVtbl->AddRef(p) @@ -913,66 +883,9 @@ struct IWebBrowserAppVtbl { #define IWebBrowserApp_put_MenuBar(p,a) (p)->lpVtbl->put_MenuBar(p,a) #define IWebBrowserApp_get_FullScreen(p,a) (p)->lpVtbl->get_FullScreen(p,a) #define IWebBrowserApp_put_FullScreen(p,a) (p)->lpVtbl->put_FullScreen(p,a) - #endif -#define IWebBrowserApp_METHODS \ - /*** IUnknown methods ***/ \ - STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ - STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ - STDMETHOD_(ULONG,Release)(THIS) PURE; \ - /*** IDispatch methods ***/ \ - STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ UINT* pctinfo) PURE; \ - STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) PURE; \ - STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) PURE; \ - STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE; \ - /*** IWebBrowser methods ***/ \ - STDMETHOD_(HRESULT,GoBack)(THIS) PURE; \ - STDMETHOD_(HRESULT,GoForward)(THIS) PURE; \ - STDMETHOD_(HRESULT,GoHome)(THIS) PURE; \ - STDMETHOD_(HRESULT,GoSearch)(THIS) PURE; \ - STDMETHOD_(HRESULT,Navigate)(THIS_ BSTR URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers) PURE; \ - STDMETHOD_(HRESULT,Refresh)(THIS) PURE; \ - STDMETHOD_(HRESULT,Refresh2)(THIS_ VARIANT* Level) PURE; \ - STDMETHOD_(HRESULT,Stop)(THIS) PURE; \ - STDMETHOD_(HRESULT,get_Application)(THIS_ IDispatch** ppDisp) PURE; \ - STDMETHOD_(HRESULT,get_Parent)(THIS_ IDispatch** ppDisp) PURE; \ - STDMETHOD_(HRESULT,get_Container)(THIS_ IDispatch** ppDisp) PURE; \ - STDMETHOD_(HRESULT,get_Document)(THIS_ IDispatch** ppDisp) PURE; \ - STDMETHOD_(HRESULT,get_TopLevelContainer)(THIS_ VARIANT_BOOL* pBool) PURE; \ - STDMETHOD_(HRESULT,get_Type)(THIS_ BSTR* Type) PURE; \ - STDMETHOD_(HRESULT,get_Left)(THIS_ long* pl) PURE; \ - STDMETHOD_(HRESULT,put_Left)(THIS_ long Left) PURE; \ - STDMETHOD_(HRESULT,get_Top)(THIS_ long* pl) PURE; \ - STDMETHOD_(HRESULT,put_Top)(THIS_ long Top) PURE; \ - STDMETHOD_(HRESULT,get_Width)(THIS_ long* pl) PURE; \ - STDMETHOD_(HRESULT,put_Width)(THIS_ long Width) PURE; \ - STDMETHOD_(HRESULT,get_Height)(THIS_ long* pl) PURE; \ - STDMETHOD_(HRESULT,put_Height)(THIS_ long Height) PURE; \ - STDMETHOD_(HRESULT,get_LocationName)(THIS_ BSTR* LocationName) PURE; \ - STDMETHOD_(HRESULT,get_LocationURL)(THIS_ BSTR* LocationURL) PURE; \ - STDMETHOD_(HRESULT,get_Busy)(THIS_ VARIANT_BOOL* pBool) PURE; \ - /*** IWebBrowserApp methods ***/ \ - STDMETHOD_(HRESULT,Quit)(THIS) PURE; \ - STDMETHOD_(HRESULT,ClientToWindow)(THIS_ int* pcx, int* pcy) PURE; \ - STDMETHOD_(HRESULT,PutProperty)(THIS_ BSTR szProperty, VARIANT vtValue) PURE; \ - STDMETHOD_(HRESULT,GetProperty)(THIS_ BSTR szProperty, VARIANT* pvtValue) PURE; \ - STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR* Name) PURE; \ - STDMETHOD_(HRESULT,get_HWND)(THIS_ long* pHWND) PURE; \ - STDMETHOD_(HRESULT,get_FullName)(THIS_ BSTR* FullName) PURE; \ - STDMETHOD_(HRESULT,get_Path)(THIS_ BSTR* Path) PURE; \ - STDMETHOD_(HRESULT,get_Visible)(THIS_ VARIANT_BOOL* pBool) PURE; \ - STDMETHOD_(HRESULT,put_Visible)(THIS_ VARIANT_BOOL Value) PURE; \ - STDMETHOD_(HRESULT,get_StatusBar)(THIS_ VARIANT_BOOL* pBool) PURE; \ - STDMETHOD_(HRESULT,put_StatusBar)(THIS_ VARIANT_BOOL Value) PURE; \ - STDMETHOD_(HRESULT,get_StatusText)(THIS_ BSTR* StatusText) PURE; \ - STDMETHOD_(HRESULT,put_StatusText)(THIS_ BSTR StatusText) PURE; \ - STDMETHOD_(HRESULT,get_ToolBar)(THIS_ int* Value) PURE; \ - STDMETHOD_(HRESULT,put_ToolBar)(THIS_ int Value) PURE; \ - STDMETHOD_(HRESULT,get_MenuBar)(THIS_ VARIANT_BOOL* Value) PURE; \ - STDMETHOD_(HRESULT,put_MenuBar)(THIS_ VARIANT_BOOL Value) PURE; \ - STDMETHOD_(HRESULT,get_FullScreen)(THIS_ VARIANT_BOOL* pbFullScreen) PURE; \ - STDMETHOD_(HRESULT,put_FullScreen)(THIS_ VARIANT_BOOL bFullScreen) PURE; +#endif HRESULT CALLBACK IWebBrowserApp_Quit_Proxy( IWebBrowserApp* This); @@ -1139,7 +1052,1169 @@ void __RPC_STUB IWebBrowserApp_put_FullScreen_Stub( #endif /* __IWebBrowserApp_INTERFACE_DEFINED__ */ -DEFINE_GUID(CLSID_WebBrowser, 0x8856f961, 0x340a, 0x11d0, 0xa9, 0x6b, 0x00, 0xc0, 0x4f, 0xd7, 0x05, 0xa2); +#ifndef __IWebBrowser2_FWD_DEFINED__ +#define __IWebBrowser2_FWD_DEFINED__ +typedef struct IWebBrowser2 IWebBrowser2; +#endif + +/***************************************************************************** + * IWebBrowser2 interface + */ +#ifndef __IWebBrowser2_INTERFACE_DEFINED__ +#define __IWebBrowser2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWebBrowser2, 0xd30c1661, 0xcdaf, 0x11d0, 0x8a,0x3e, 0x00,0xc0,0x4f,0xc9,0xe2,0x6e); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IWebBrowser2 : public IWebBrowserApp +{ + virtual HRESULT STDMETHODCALLTYPE Navigate2( + VARIANT* URL, + VARIANT* Flags, + VARIANT* TargetFrameName, + VARIANT* PostData, + VARIANT* Headers) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryStatusWB( + OLECMDID cmdID, + OLECMDF* pcmdf) = 0; + + virtual HRESULT STDMETHODCALLTYPE ExecWB( + OLECMDID cmdID, + OLECMDEXECOPT cmdexecopt, + VARIANT* pvaIn, + VARIANT* pvaOut) = 0; + + virtual HRESULT STDMETHODCALLTYPE ShowBrowserBar( + VARIANT* pvaClsid, + VARIANT* pvarShow, + VARIANT* pvarSize) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_ReadyState( + READYSTATE* plReadyState) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_Offline( + VARIANT_BOOL* pbOffline) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_Offline( + VARIANT_BOOL bOffline) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_Silent( + VARIANT_BOOL* pbSilent) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_Silent( + VARIANT_BOOL bSilent) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_RegisterAsBrowser( + VARIANT_BOOL* pbRegister) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_RegisterAsBrowser( + VARIANT_BOOL bRegister) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_RegisterAsDropTarget( + VARIANT_BOOL* pbRegister) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_RegisterAsDropTarget( + VARIANT_BOOL bRegister) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_TheaterMode( + VARIANT_BOOL* pbRegister) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_TheaterMode( + VARIANT_BOOL bRegister) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_AddressBar( + VARIANT_BOOL* Value) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_AddressBar( + VARIANT_BOOL Value) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_Resizable( + VARIANT_BOOL* Value) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_Resizable( + VARIANT_BOOL Value) = 0; + +}; +#else +typedef struct IWebBrowser2Vtbl IWebBrowser2Vtbl; +struct IWebBrowser2 { + const IWebBrowser2Vtbl* lpVtbl; +}; +struct IWebBrowser2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWebBrowser2* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWebBrowser2* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWebBrowser2* This); + + /*** IDispatch methods ***/ + HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)( + IWebBrowser2* This, + UINT* pctinfo); + + HRESULT (STDMETHODCALLTYPE *GetTypeInfo)( + IWebBrowser2* This, + UINT iTInfo, + LCID lcid, + ITypeInfo** ppTInfo); + + HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)( + IWebBrowser2* This, + REFIID riid, + LPOLESTR* rgszNames, + UINT cNames, + LCID lcid, + DISPID* rgDispId); + + HRESULT (STDMETHODCALLTYPE *Invoke)( + IWebBrowser2* This, + DISPID dispIdMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr); + + /*** IWebBrowser methods ***/ + HRESULT (STDMETHODCALLTYPE *GoBack)( + IWebBrowser2* This); + + HRESULT (STDMETHODCALLTYPE *GoForward)( + IWebBrowser2* This); + + HRESULT (STDMETHODCALLTYPE *GoHome)( + IWebBrowser2* This); + + HRESULT (STDMETHODCALLTYPE *GoSearch)( + IWebBrowser2* This); + + HRESULT (STDMETHODCALLTYPE *Navigate)( + IWebBrowser2* This, + BSTR URL, + VARIANT* Flags, + VARIANT* TargetFrameName, + VARIANT* PostData, + VARIANT* Headers); + + HRESULT (STDMETHODCALLTYPE *Refresh)( + IWebBrowser2* This); + + HRESULT (STDMETHODCALLTYPE *Refresh2)( + IWebBrowser2* This, + VARIANT* Level); + + HRESULT (STDMETHODCALLTYPE *Stop)( + IWebBrowser2* This); + + HRESULT (STDMETHODCALLTYPE *get_Application)( + IWebBrowser2* This, + IDispatch** ppDisp); + + HRESULT (STDMETHODCALLTYPE *get_Parent)( + IWebBrowser2* This, + IDispatch** ppDisp); + + HRESULT (STDMETHODCALLTYPE *get_Container)( + IWebBrowser2* This, + IDispatch** ppDisp); + + HRESULT (STDMETHODCALLTYPE *get_Document)( + IWebBrowser2* This, + IDispatch** ppDisp); + + HRESULT (STDMETHODCALLTYPE *get_TopLevelContainer)( + IWebBrowser2* This, + VARIANT_BOOL* pBool); + + HRESULT (STDMETHODCALLTYPE *get_Type)( + IWebBrowser2* This, + BSTR* Type); + + HRESULT (STDMETHODCALLTYPE *get_Left)( + IWebBrowser2* This, + long* pl); + + HRESULT (STDMETHODCALLTYPE *put_Left)( + IWebBrowser2* This, + long Left); + + HRESULT (STDMETHODCALLTYPE *get_Top)( + IWebBrowser2* This, + long* pl); + + HRESULT (STDMETHODCALLTYPE *put_Top)( + IWebBrowser2* This, + long Top); + + HRESULT (STDMETHODCALLTYPE *get_Width)( + IWebBrowser2* This, + long* pl); + + HRESULT (STDMETHODCALLTYPE *put_Width)( + IWebBrowser2* This, + long Width); + + HRESULT (STDMETHODCALLTYPE *get_Height)( + IWebBrowser2* This, + long* pl); + + HRESULT (STDMETHODCALLTYPE *put_Height)( + IWebBrowser2* This, + long Height); + + HRESULT (STDMETHODCALLTYPE *get_LocationName)( + IWebBrowser2* This, + BSTR* LocationName); + + HRESULT (STDMETHODCALLTYPE *get_LocationURL)( + IWebBrowser2* This, + BSTR* LocationURL); + + HRESULT (STDMETHODCALLTYPE *get_Busy)( + IWebBrowser2* This, + VARIANT_BOOL* pBool); + + /*** IWebBrowserApp methods ***/ + HRESULT (STDMETHODCALLTYPE *Quit)( + IWebBrowser2* This); + + HRESULT (STDMETHODCALLTYPE *ClientToWindow)( + IWebBrowser2* This, + int* pcx, + int* pcy); + + HRESULT (STDMETHODCALLTYPE *PutProperty)( + IWebBrowser2* This, + BSTR szProperty, + VARIANT vtValue); + + HRESULT (STDMETHODCALLTYPE *GetProperty)( + IWebBrowser2* This, + BSTR szProperty, + VARIANT* pvtValue); + + HRESULT (STDMETHODCALLTYPE *get_Name)( + IWebBrowser2* This, + BSTR* Name); + + HRESULT (STDMETHODCALLTYPE *get_HWND)( + IWebBrowser2* This, + long* pHWND); + + HRESULT (STDMETHODCALLTYPE *get_FullName)( + IWebBrowser2* This, + BSTR* FullName); + + HRESULT (STDMETHODCALLTYPE *get_Path)( + IWebBrowser2* This, + BSTR* Path); + + HRESULT (STDMETHODCALLTYPE *get_Visible)( + IWebBrowser2* This, + VARIANT_BOOL* pBool); + + HRESULT (STDMETHODCALLTYPE *put_Visible)( + IWebBrowser2* This, + VARIANT_BOOL Value); + + HRESULT (STDMETHODCALLTYPE *get_StatusBar)( + IWebBrowser2* This, + VARIANT_BOOL* pBool); + + HRESULT (STDMETHODCALLTYPE *put_StatusBar)( + IWebBrowser2* This, + VARIANT_BOOL Value); + + HRESULT (STDMETHODCALLTYPE *get_StatusText)( + IWebBrowser2* This, + BSTR* StatusText); + + HRESULT (STDMETHODCALLTYPE *put_StatusText)( + IWebBrowser2* This, + BSTR StatusText); + + HRESULT (STDMETHODCALLTYPE *get_ToolBar)( + IWebBrowser2* This, + int* Value); + + HRESULT (STDMETHODCALLTYPE *put_ToolBar)( + IWebBrowser2* This, + int Value); + + HRESULT (STDMETHODCALLTYPE *get_MenuBar)( + IWebBrowser2* This, + VARIANT_BOOL* Value); + + HRESULT (STDMETHODCALLTYPE *put_MenuBar)( + IWebBrowser2* This, + VARIANT_BOOL Value); + + HRESULT (STDMETHODCALLTYPE *get_FullScreen)( + IWebBrowser2* This, + VARIANT_BOOL* pbFullScreen); + + HRESULT (STDMETHODCALLTYPE *put_FullScreen)( + IWebBrowser2* This, + VARIANT_BOOL bFullScreen); + + /*** IWebBrowser2 methods ***/ + HRESULT (STDMETHODCALLTYPE *Navigate2)( + IWebBrowser2* This, + VARIANT* URL, + VARIANT* Flags, + VARIANT* TargetFrameName, + VARIANT* PostData, + VARIANT* Headers); + + HRESULT (STDMETHODCALLTYPE *QueryStatusWB)( + IWebBrowser2* This, + OLECMDID cmdID, + OLECMDF* pcmdf); + + HRESULT (STDMETHODCALLTYPE *ExecWB)( + IWebBrowser2* This, + OLECMDID cmdID, + OLECMDEXECOPT cmdexecopt, + VARIANT* pvaIn, + VARIANT* pvaOut); + + HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)( + IWebBrowser2* This, + VARIANT* pvaClsid, + VARIANT* pvarShow, + VARIANT* pvarSize); + + HRESULT (STDMETHODCALLTYPE *get_ReadyState)( + IWebBrowser2* This, + READYSTATE* plReadyState); + + HRESULT (STDMETHODCALLTYPE *get_Offline)( + IWebBrowser2* This, + VARIANT_BOOL* pbOffline); + + HRESULT (STDMETHODCALLTYPE *put_Offline)( + IWebBrowser2* This, + VARIANT_BOOL bOffline); + + HRESULT (STDMETHODCALLTYPE *get_Silent)( + IWebBrowser2* This, + VARIANT_BOOL* pbSilent); + + HRESULT (STDMETHODCALLTYPE *put_Silent)( + IWebBrowser2* This, + VARIANT_BOOL bSilent); + + HRESULT (STDMETHODCALLTYPE *get_RegisterAsBrowser)( + IWebBrowser2* This, + VARIANT_BOOL* pbRegister); + + HRESULT (STDMETHODCALLTYPE *put_RegisterAsBrowser)( + IWebBrowser2* This, + VARIANT_BOOL bRegister); + + HRESULT (STDMETHODCALLTYPE *get_RegisterAsDropTarget)( + IWebBrowser2* This, + VARIANT_BOOL* pbRegister); + + HRESULT (STDMETHODCALLTYPE *put_RegisterAsDropTarget)( + IWebBrowser2* This, + VARIANT_BOOL bRegister); + + HRESULT (STDMETHODCALLTYPE *get_TheaterMode)( + IWebBrowser2* This, + VARIANT_BOOL* pbRegister); + + HRESULT (STDMETHODCALLTYPE *put_TheaterMode)( + IWebBrowser2* This, + VARIANT_BOOL bRegister); + + HRESULT (STDMETHODCALLTYPE *get_AddressBar)( + IWebBrowser2* This, + VARIANT_BOOL* Value); + + HRESULT (STDMETHODCALLTYPE *put_AddressBar)( + IWebBrowser2* This, + VARIANT_BOOL Value); + + HRESULT (STDMETHODCALLTYPE *get_Resizable)( + IWebBrowser2* This, + VARIANT_BOOL* Value); + + HRESULT (STDMETHODCALLTYPE *put_Resizable)( + IWebBrowser2* This, + VARIANT_BOOL Value); + + END_INTERFACE +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IWebBrowser2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IWebBrowser2_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IWebBrowser2_Release(p) (p)->lpVtbl->Release(p) +/*** IDispatch methods ***/ +#define IWebBrowser2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) +#define IWebBrowser2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) +#define IWebBrowser2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) +#define IWebBrowser2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) +/*** IWebBrowser methods ***/ +#define IWebBrowser2_GoBack(p) (p)->lpVtbl->GoBack(p) +#define IWebBrowser2_GoForward(p) (p)->lpVtbl->GoForward(p) +#define IWebBrowser2_GoHome(p) (p)->lpVtbl->GoHome(p) +#define IWebBrowser2_GoSearch(p) (p)->lpVtbl->GoSearch(p) +#define IWebBrowser2_Navigate(p,a,b,c,d,e) (p)->lpVtbl->Navigate(p,a,b,c,d,e) +#define IWebBrowser2_Refresh(p) (p)->lpVtbl->Refresh(p) +#define IWebBrowser2_Refresh2(p,a) (p)->lpVtbl->Refresh2(p,a) +#define IWebBrowser2_Stop(p) (p)->lpVtbl->Stop(p) +#define IWebBrowser2_get_Application(p,a) (p)->lpVtbl->get_Application(p,a) +#define IWebBrowser2_get_Parent(p,a) (p)->lpVtbl->get_Parent(p,a) +#define IWebBrowser2_get_Container(p,a) (p)->lpVtbl->get_Container(p,a) +#define IWebBrowser2_get_Document(p,a) (p)->lpVtbl->get_Document(p,a) +#define IWebBrowser2_get_TopLevelContainer(p,a) (p)->lpVtbl->get_TopLevelContainer(p,a) +#define IWebBrowser2_get_Type(p,a) (p)->lpVtbl->get_Type(p,a) +#define IWebBrowser2_get_Left(p,a) (p)->lpVtbl->get_Left(p,a) +#define IWebBrowser2_put_Left(p,a) (p)->lpVtbl->put_Left(p,a) +#define IWebBrowser2_get_Top(p,a) (p)->lpVtbl->get_Top(p,a) +#define IWebBrowser2_put_Top(p,a) (p)->lpVtbl->put_Top(p,a) +#define IWebBrowser2_get_Width(p,a) (p)->lpVtbl->get_Width(p,a) +#define IWebBrowser2_put_Width(p,a) (p)->lpVtbl->put_Width(p,a) +#define IWebBrowser2_get_Height(p,a) (p)->lpVtbl->get_Height(p,a) +#define IWebBrowser2_put_Height(p,a) (p)->lpVtbl->put_Height(p,a) +#define IWebBrowser2_get_LocationName(p,a) (p)->lpVtbl->get_LocationName(p,a) +#define IWebBrowser2_get_LocationURL(p,a) (p)->lpVtbl->get_LocationURL(p,a) +#define IWebBrowser2_get_Busy(p,a) (p)->lpVtbl->get_Busy(p,a) +/*** IWebBrowserApp methods ***/ +#define IWebBrowser2_Quit(p) (p)->lpVtbl->Quit(p) +#define IWebBrowser2_ClientToWindow(p,a,b) (p)->lpVtbl->ClientToWindow(p,a,b) +#define IWebBrowser2_PutProperty(p,a,b) (p)->lpVtbl->PutProperty(p,a,b) +#define IWebBrowser2_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b) +#define IWebBrowser2_get_Name(p,a) (p)->lpVtbl->get_Name(p,a) +#define IWebBrowser2_get_HWND(p,a) (p)->lpVtbl->get_HWND(p,a) +#define IWebBrowser2_get_FullName(p,a) (p)->lpVtbl->get_FullName(p,a) +#define IWebBrowser2_get_Path(p,a) (p)->lpVtbl->get_Path(p,a) +#define IWebBrowser2_get_Visible(p,a) (p)->lpVtbl->get_Visible(p,a) +#define IWebBrowser2_put_Visible(p,a) (p)->lpVtbl->put_Visible(p,a) +#define IWebBrowser2_get_StatusBar(p,a) (p)->lpVtbl->get_StatusBar(p,a) +#define IWebBrowser2_put_StatusBar(p,a) (p)->lpVtbl->put_StatusBar(p,a) +#define IWebBrowser2_get_StatusText(p,a) (p)->lpVtbl->get_StatusText(p,a) +#define IWebBrowser2_put_StatusText(p,a) (p)->lpVtbl->put_StatusText(p,a) +#define IWebBrowser2_get_ToolBar(p,a) (p)->lpVtbl->get_ToolBar(p,a) +#define IWebBrowser2_put_ToolBar(p,a) (p)->lpVtbl->put_ToolBar(p,a) +#define IWebBrowser2_get_MenuBar(p,a) (p)->lpVtbl->get_MenuBar(p,a) +#define IWebBrowser2_put_MenuBar(p,a) (p)->lpVtbl->put_MenuBar(p,a) +#define IWebBrowser2_get_FullScreen(p,a) (p)->lpVtbl->get_FullScreen(p,a) +#define IWebBrowser2_put_FullScreen(p,a) (p)->lpVtbl->put_FullScreen(p,a) +/*** IWebBrowser2 methods ***/ +#define IWebBrowser2_Navigate2(p,a,b,c,d,e) (p)->lpVtbl->Navigate2(p,a,b,c,d,e) +#define IWebBrowser2_QueryStatusWB(p,a,b) (p)->lpVtbl->QueryStatusWB(p,a,b) +#define IWebBrowser2_ExecWB(p,a,b,c,d) (p)->lpVtbl->ExecWB(p,a,b,c,d) +#define IWebBrowser2_ShowBrowserBar(p,a,b,c) (p)->lpVtbl->ShowBrowserBar(p,a,b,c) +#define IWebBrowser2_get_ReadyState(p,a) (p)->lpVtbl->get_ReadyState(p,a) +#define IWebBrowser2_get_Offline(p,a) (p)->lpVtbl->get_Offline(p,a) +#define IWebBrowser2_put_Offline(p,a) (p)->lpVtbl->put_Offline(p,a) +#define IWebBrowser2_get_Silent(p,a) (p)->lpVtbl->get_Silent(p,a) +#define IWebBrowser2_put_Silent(p,a) (p)->lpVtbl->put_Silent(p,a) +#define IWebBrowser2_get_RegisterAsBrowser(p,a) (p)->lpVtbl->get_RegisterAsBrowser(p,a) +#define IWebBrowser2_put_RegisterAsBrowser(p,a) (p)->lpVtbl->put_RegisterAsBrowser(p,a) +#define IWebBrowser2_get_RegisterAsDropTarget(p,a) (p)->lpVtbl->get_RegisterAsDropTarget(p,a) +#define IWebBrowser2_put_RegisterAsDropTarget(p,a) (p)->lpVtbl->put_RegisterAsDropTarget(p,a) +#define IWebBrowser2_get_TheaterMode(p,a) (p)->lpVtbl->get_TheaterMode(p,a) +#define IWebBrowser2_put_TheaterMode(p,a) (p)->lpVtbl->put_TheaterMode(p,a) +#define IWebBrowser2_get_AddressBar(p,a) (p)->lpVtbl->get_AddressBar(p,a) +#define IWebBrowser2_put_AddressBar(p,a) (p)->lpVtbl->put_AddressBar(p,a) +#define IWebBrowser2_get_Resizable(p,a) (p)->lpVtbl->get_Resizable(p,a) +#define IWebBrowser2_put_Resizable(p,a) (p)->lpVtbl->put_Resizable(p,a) +#endif + +#endif + +HRESULT CALLBACK IWebBrowser2_Navigate2_Proxy( + IWebBrowser2* This, + VARIANT* URL, + VARIANT* Flags, + VARIANT* TargetFrameName, + VARIANT* PostData, + VARIANT* Headers); +void __RPC_STUB IWebBrowser2_Navigate2_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_QueryStatusWB_Proxy( + IWebBrowser2* This, + OLECMDID cmdID, + OLECMDF* pcmdf); +void __RPC_STUB IWebBrowser2_QueryStatusWB_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_ExecWB_Proxy( + IWebBrowser2* This, + OLECMDID cmdID, + OLECMDEXECOPT cmdexecopt, + VARIANT* pvaIn, + VARIANT* pvaOut); +void __RPC_STUB IWebBrowser2_ExecWB_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_ShowBrowserBar_Proxy( + IWebBrowser2* This, + VARIANT* pvaClsid, + VARIANT* pvarShow, + VARIANT* pvarSize); +void __RPC_STUB IWebBrowser2_ShowBrowserBar_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_get_ReadyState_Proxy( + IWebBrowser2* This, + READYSTATE* plReadyState); +void __RPC_STUB IWebBrowser2_get_ReadyState_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_get_Offline_Proxy( + IWebBrowser2* This, + VARIANT_BOOL* pbOffline); +void __RPC_STUB IWebBrowser2_get_Offline_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_put_Offline_Proxy( + IWebBrowser2* This, + VARIANT_BOOL bOffline); +void __RPC_STUB IWebBrowser2_put_Offline_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_get_Silent_Proxy( + IWebBrowser2* This, + VARIANT_BOOL* pbSilent); +void __RPC_STUB IWebBrowser2_get_Silent_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_put_Silent_Proxy( + IWebBrowser2* This, + VARIANT_BOOL bSilent); +void __RPC_STUB IWebBrowser2_put_Silent_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_get_RegisterAsBrowser_Proxy( + IWebBrowser2* This, + VARIANT_BOOL* pbRegister); +void __RPC_STUB IWebBrowser2_get_RegisterAsBrowser_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_put_RegisterAsBrowser_Proxy( + IWebBrowser2* This, + VARIANT_BOOL bRegister); +void __RPC_STUB IWebBrowser2_put_RegisterAsBrowser_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_get_RegisterAsDropTarget_Proxy( + IWebBrowser2* This, + VARIANT_BOOL* pbRegister); +void __RPC_STUB IWebBrowser2_get_RegisterAsDropTarget_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_put_RegisterAsDropTarget_Proxy( + IWebBrowser2* This, + VARIANT_BOOL bRegister); +void __RPC_STUB IWebBrowser2_put_RegisterAsDropTarget_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_get_TheaterMode_Proxy( + IWebBrowser2* This, + VARIANT_BOOL* pbRegister); +void __RPC_STUB IWebBrowser2_get_TheaterMode_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_put_TheaterMode_Proxy( + IWebBrowser2* This, + VARIANT_BOOL bRegister); +void __RPC_STUB IWebBrowser2_put_TheaterMode_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_get_AddressBar_Proxy( + IWebBrowser2* This, + VARIANT_BOOL* Value); +void __RPC_STUB IWebBrowser2_get_AddressBar_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_put_AddressBar_Proxy( + IWebBrowser2* This, + VARIANT_BOOL Value); +void __RPC_STUB IWebBrowser2_put_AddressBar_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_get_Resizable_Proxy( + IWebBrowser2* This, + VARIANT_BOOL* Value); +void __RPC_STUB IWebBrowser2_get_Resizable_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWebBrowser2_put_Resizable_Proxy( + IWebBrowser2* This, + VARIANT_BOOL Value); +void __RPC_STUB IWebBrowser2_put_Resizable_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IWebBrowser2_INTERFACE_DEFINED__ */ + +#ifndef __DWebBrowserEvents_FWD_DEFINED__ +#define __DWebBrowserEvents_FWD_DEFINED__ +typedef struct DWebBrowserEvents DWebBrowserEvents; +#endif + +/***************************************************************************** + * DWebBrowserEvents dispinterface + */ +#ifndef __DWebBrowserEvents_DISPINTERFACE_DEFINED__ +#define __DWebBrowserEvents_DISPINTERFACE_DEFINED__ + +DEFINE_GUID(DIID_DWebBrowserEvents, 0xeab22ac2, 0x30c1, 0x11cf, 0xa7,0xeb, 0x00,0x00,0xc0,0x5b,0xae,0x0b); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct DWebBrowserEvents : public IDispatch +{ +}; +#else +typedef struct DWebBrowserEventsVtbl DWebBrowserEventsVtbl; +struct DWebBrowserEvents { + const DWebBrowserEventsVtbl* lpVtbl; +}; +struct DWebBrowserEventsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + DWebBrowserEvents* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + DWebBrowserEvents* This); + + ULONG (STDMETHODCALLTYPE *Release)( + DWebBrowserEvents* This); + + /*** IDispatch methods ***/ + HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)( + DWebBrowserEvents* This, + UINT* pctinfo); + + HRESULT (STDMETHODCALLTYPE *GetTypeInfo)( + DWebBrowserEvents* This, + UINT iTInfo, + LCID lcid, + ITypeInfo** ppTInfo); + + HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)( + DWebBrowserEvents* This, + REFIID riid, + LPOLESTR* rgszNames, + UINT cNames, + LCID lcid, + DISPID* rgDispId); + + HRESULT (STDMETHODCALLTYPE *Invoke)( + DWebBrowserEvents* This, + DISPID dispIdMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr); + + END_INTERFACE +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define DWebBrowserEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define DWebBrowserEvents_AddRef(p) (p)->lpVtbl->AddRef(p) +#define DWebBrowserEvents_Release(p) (p)->lpVtbl->Release(p) +/*** IDispatch methods ***/ +#define DWebBrowserEvents_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) +#define DWebBrowserEvents_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) +#define DWebBrowserEvents_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) +#define DWebBrowserEvents_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) +#endif + +#endif + +#endif /* __DWebBrowserEvents_DISPINTERFACE_DEFINED__ */ + +#ifndef __DWebBrowserEvents2_FWD_DEFINED__ +#define __DWebBrowserEvents2_FWD_DEFINED__ +typedef struct DWebBrowserEvents2 DWebBrowserEvents2; +#endif + +/***************************************************************************** + * DWebBrowserEvents2 dispinterface + */ +#ifndef __DWebBrowserEvents2_DISPINTERFACE_DEFINED__ +#define __DWebBrowserEvents2_DISPINTERFACE_DEFINED__ + +DEFINE_GUID(DIID_DWebBrowserEvents2, 0x34a715a0, 0x6587, 0x11d0, 0x92,0x4a, 0x00,0x20,0xaf,0xc7,0xac,0x4d); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct DWebBrowserEvents2 : public IDispatch +{ +}; +#else +typedef struct DWebBrowserEvents2Vtbl DWebBrowserEvents2Vtbl; +struct DWebBrowserEvents2 { + const DWebBrowserEvents2Vtbl* lpVtbl; +}; +struct DWebBrowserEvents2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + DWebBrowserEvents2* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + DWebBrowserEvents2* This); + + ULONG (STDMETHODCALLTYPE *Release)( + DWebBrowserEvents2* This); + + /*** IDispatch methods ***/ + HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)( + DWebBrowserEvents2* This, + UINT* pctinfo); + + HRESULT (STDMETHODCALLTYPE *GetTypeInfo)( + DWebBrowserEvents2* This, + UINT iTInfo, + LCID lcid, + ITypeInfo** ppTInfo); + + HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)( + DWebBrowserEvents2* This, + REFIID riid, + LPOLESTR* rgszNames, + UINT cNames, + LCID lcid, + DISPID* rgDispId); + + HRESULT (STDMETHODCALLTYPE *Invoke)( + DWebBrowserEvents2* This, + DISPID dispIdMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr); + + END_INTERFACE +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define DWebBrowserEvents2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define DWebBrowserEvents2_AddRef(p) (p)->lpVtbl->AddRef(p) +#define DWebBrowserEvents2_Release(p) (p)->lpVtbl->Release(p) +/*** IDispatch methods ***/ +#define DWebBrowserEvents2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) +#define DWebBrowserEvents2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) +#define DWebBrowserEvents2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) +#define DWebBrowserEvents2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) +#endif + +#endif + +#endif /* __DWebBrowserEvents2_DISPINTERFACE_DEFINED__ */ + +/***************************************************************************** + * WebBrowser coclass + */ + +DEFINE_GUID(CLSID_WebBrowser, 0x8856f961, 0x340a, 0x11d0, 0xa9,0x6b, 0x00,0xc0,0x4f,0xd7,0x05,0xa2); + +#ifndef __IShellWindows_FWD_DEFINED__ +#define __IShellWindows_FWD_DEFINED__ +typedef struct IShellWindows IShellWindows; +#endif + +/***************************************************************************** + * IShellWindows interface + */ +#ifndef __IShellWindows_INTERFACE_DEFINED__ +#define __IShellWindows_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IShellWindows, 0x85cb6900, 0x4d95, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IShellWindows : public IDispatch +{ + virtual HRESULT STDMETHODCALLTYPE get_Count( + long* Count) = 0; + + virtual HRESULT STDMETHODCALLTYPE Item( + VARIANT index, + IDispatch** Folder) = 0; + + virtual HRESULT STDMETHODCALLTYPE _NewEnum( + IUnknown** ppunk) = 0; + + virtual HRESULT STDMETHODCALLTYPE Register( + IDispatch* pid, + long hWnd, + int swClass, + long* plCookie) = 0; + + virtual HRESULT STDMETHODCALLTYPE RegisterPending( + long lThread, + VARIANT* pvarloc, + VARIANT* varlocRoot, + int swClass, + long* plCookie) = 0; + + virtual HRESULT STDMETHODCALLTYPE Revoke( + long Cookie) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnNavigate( + long Cookie, + VARIANT* pvarLoc) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnActivated( + long Cookie, + VARIANT fActive) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindWindowSW( + VARIANT* pvarLoc, + VARIANT* pvarLocRoot, + int swClass, + long* phwnd, + int swfwOptions, + IDispatch** ppdispOut) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnCreated( + long lCookie, + IUnknown* punk) = 0; + + virtual HRESULT STDMETHODCALLTYPE ProcessAttachDetach( + VARIANT_BOOL fAttach) = 0; + +}; +#else +typedef struct IShellWindowsVtbl IShellWindowsVtbl; +struct IShellWindows { + const IShellWindowsVtbl* lpVtbl; +}; +struct IShellWindowsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IShellWindows* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IShellWindows* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IShellWindows* This); + + /*** IDispatch methods ***/ + HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)( + IShellWindows* This, + UINT* pctinfo); + + HRESULT (STDMETHODCALLTYPE *GetTypeInfo)( + IShellWindows* This, + UINT iTInfo, + LCID lcid, + ITypeInfo** ppTInfo); + + HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)( + IShellWindows* This, + REFIID riid, + LPOLESTR* rgszNames, + UINT cNames, + LCID lcid, + DISPID* rgDispId); + + HRESULT (STDMETHODCALLTYPE *Invoke)( + IShellWindows* This, + DISPID dispIdMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr); + + /*** IShellWindows methods ***/ + HRESULT (STDMETHODCALLTYPE *get_Count)( + IShellWindows* This, + long* Count); + + HRESULT (STDMETHODCALLTYPE *Item)( + IShellWindows* This, + VARIANT index, + IDispatch** Folder); + + HRESULT (STDMETHODCALLTYPE *_NewEnum)( + IShellWindows* This, + IUnknown** ppunk); + + HRESULT (STDMETHODCALLTYPE *Register)( + IShellWindows* This, + IDispatch* pid, + long hWnd, + int swClass, + long* plCookie); + + HRESULT (STDMETHODCALLTYPE *RegisterPending)( + IShellWindows* This, + long lThread, + VARIANT* pvarloc, + VARIANT* varlocRoot, + int swClass, + long* plCookie); + + HRESULT (STDMETHODCALLTYPE *Revoke)( + IShellWindows* This, + long Cookie); + + HRESULT (STDMETHODCALLTYPE *OnNavigate)( + IShellWindows* This, + long Cookie, + VARIANT* pvarLoc); + + HRESULT (STDMETHODCALLTYPE *OnActivated)( + IShellWindows* This, + long Cookie, + VARIANT fActive); + + HRESULT (STDMETHODCALLTYPE *FindWindowSW)( + IShellWindows* This, + VARIANT* pvarLoc, + VARIANT* pvarLocRoot, + int swClass, + long* phwnd, + int swfwOptions, + IDispatch** ppdispOut); + + HRESULT (STDMETHODCALLTYPE *OnCreated)( + IShellWindows* This, + long lCookie, + IUnknown* punk); + + HRESULT (STDMETHODCALLTYPE *ProcessAttachDetach)( + IShellWindows* This, + VARIANT_BOOL fAttach); + + END_INTERFACE +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IShellWindows_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IShellWindows_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IShellWindows_Release(p) (p)->lpVtbl->Release(p) +/*** IDispatch methods ***/ +#define IShellWindows_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) +#define IShellWindows_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) +#define IShellWindows_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) +#define IShellWindows_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) +/*** IShellWindows methods ***/ +#define IShellWindows_get_Count(p,a) (p)->lpVtbl->get_Count(p,a) +#define IShellWindows_Item(p,a,b) (p)->lpVtbl->Item(p,a,b) +#define IShellWindows__NewEnum(p,a) (p)->lpVtbl->_NewEnum(p,a) +#define IShellWindows_Register(p,a,b,c,d) (p)->lpVtbl->Register(p,a,b,c,d) +#define IShellWindows_RegisterPending(p,a,b,c,d,e) (p)->lpVtbl->RegisterPending(p,a,b,c,d,e) +#define IShellWindows_Revoke(p,a) (p)->lpVtbl->Revoke(p,a) +#define IShellWindows_OnNavigate(p,a,b) (p)->lpVtbl->OnNavigate(p,a,b) +#define IShellWindows_OnActivated(p,a,b) (p)->lpVtbl->OnActivated(p,a,b) +#define IShellWindows_FindWindowSW(p,a,b,c,d,e,f) (p)->lpVtbl->FindWindowSW(p,a,b,c,d,e,f) +#define IShellWindows_OnCreated(p,a,b) (p)->lpVtbl->OnCreated(p,a,b) +#define IShellWindows_ProcessAttachDetach(p,a) (p)->lpVtbl->ProcessAttachDetach(p,a) +#endif + +#endif + +HRESULT CALLBACK IShellWindows_get_Count_Proxy( + IShellWindows* This, + long* Count); +void __RPC_STUB IShellWindows_get_Count_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellWindows_Item_Proxy( + IShellWindows* This, + VARIANT index, + IDispatch** Folder); +void __RPC_STUB IShellWindows_Item_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellWindows__NewEnum_Proxy( + IShellWindows* This, + IUnknown** ppunk); +void __RPC_STUB IShellWindows__NewEnum_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellWindows_Register_Proxy( + IShellWindows* This, + IDispatch* pid, + long hWnd, + int swClass, + long* plCookie); +void __RPC_STUB IShellWindows_Register_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellWindows_RegisterPending_Proxy( + IShellWindows* This, + long lThread, + VARIANT* pvarloc, + VARIANT* varlocRoot, + int swClass, + long* plCookie); +void __RPC_STUB IShellWindows_RegisterPending_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellWindows_Revoke_Proxy( + IShellWindows* This, + long Cookie); +void __RPC_STUB IShellWindows_Revoke_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellWindows_OnNavigate_Proxy( + IShellWindows* This, + long Cookie, + VARIANT* pvarLoc); +void __RPC_STUB IShellWindows_OnNavigate_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellWindows_OnActivated_Proxy( + IShellWindows* This, + long Cookie, + VARIANT fActive); +void __RPC_STUB IShellWindows_OnActivated_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellWindows_FindWindowSW_Proxy( + IShellWindows* This, + VARIANT* pvarLoc, + VARIANT* pvarLocRoot, + int swClass, + long* phwnd, + int swfwOptions, + IDispatch** ppdispOut); +void __RPC_STUB IShellWindows_FindWindowSW_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellWindows_OnCreated_Proxy( + IShellWindows* This, + long lCookie, + IUnknown* punk); +void __RPC_STUB IShellWindows_OnCreated_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellWindows_ProcessAttachDetach_Proxy( + IShellWindows* This, + VARIANT_BOOL fAttach); +void __RPC_STUB IShellWindows_ProcessAttachDetach_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IShellWindows_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * ShellWindows coclass + */ + +DEFINE_GUID(CLSID_ShellWindows, 0x9ba05972, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39); + +#ifndef __DShellWindowsEvents_FWD_DEFINED__ +#define __DShellWindowsEvents_FWD_DEFINED__ +typedef struct DShellWindowsEvents DShellWindowsEvents; +#endif + +/* Begin additional prototypes for all interfaces */ + +unsigned long __RPC_USER VARIANT_UserSize (unsigned long *, unsigned long, VARIANT *); +unsigned char * __RPC_USER VARIANT_UserMarshal (unsigned long *, unsigned char *, VARIANT *); +unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT *); +void __RPC_USER VARIANT_UserFree (unsigned long *, VARIANT *); +unsigned long __RPC_USER BSTR_UserSize (unsigned long *, unsigned long, BSTR *); +unsigned char * __RPC_USER BSTR_UserMarshal (unsigned long *, unsigned char *, BSTR *); +unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *); +void __RPC_USER BSTR_UserFree (unsigned long *, BSTR *); + +/* End additional prototypes */ + #ifdef __cplusplus } #endif diff --git a/reactos/include/wine/winnt.h b/reactos/include/wine/winnt.h index 7af97629496..f64a2a666e2 100644 --- a/reactos/include/wine/winnt.h +++ b/reactos/include/wine/winnt.h @@ -23,6 +23,7 @@ #include_next #include +#include /* non standard; keep the number high enough (but < 0xff) */ #define LANG_ESPERANTO 0x8f diff --git a/reactos/lib/shdocvw/Bg.rc b/reactos/lib/shdocvw/Bg.rc new file mode 100644 index 00000000000..d169173d647 --- /dev/null +++ b/reactos/lib/shdocvw/Bg.rc @@ -0,0 +1,36 @@ +/* + * Copyright 2005 Milko Krachounov + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT + +100 DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 62 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Изтегляне на Mozilla Active X контрола" +FONT 8, "MS Shell Dlg" +{ + CONTROL "Progress1",1000,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", 104, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Cancel", IDCANCEL, 85, 44, 50, 15, WS_GROUP | WS_TABSTOP +} + +STRINGTABLE +BEGIN + 1001 "Приложението се опитва да извика ActiveX обект,\n" \ + "но Mozilla Active X контролата не е инсталирана." \ + "Желаете ли да я изтеглите и инсталирате?" +END diff --git a/reactos/lib/shdocvw/Fi.rc b/reactos/lib/shdocvw/Fi.rc new file mode 100644 index 00000000000..f82614218ac --- /dev/null +++ b/reactos/lib/shdocvw/Fi.rc @@ -0,0 +1,36 @@ +/* + * Copyright 2005 Kimmo Myllyvirta + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT + +100 DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 62 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Ladataan Mozilla Active X -komponenttia" +FONT 8, "MS Shell Dlg" +{ + CONTROL "Progress1",1000,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", 104, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Peruuta", IDCANCEL, 85, 44, 50, 15, WS_GROUP | WS_TABSTOP +} + +STRINGTABLE +BEGIN + 1001 "Tдmд sovellus vaatii ActiveX selainkomponentin,\n" \ + "mutta Mozilla Active X -komponenttia ei ole vielд asennettu." \ + "Haluatko ladata ja asentaa sen?" +END diff --git a/reactos/lib/shdocvw/No.rc b/reactos/lib/shdocvw/No.rc new file mode 100644 index 00000000000..bbd76cb06ad --- /dev/null +++ b/reactos/lib/shdocvw/No.rc @@ -0,0 +1,36 @@ +/* + * Copyright 2005 Alexander N. Sшrnes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL + +100 DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 62 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Last ned Mozilla Active X-kontrolleren" +FONT 8, "MS Shell Dlg" +{ + CONTROL "Progress1",1000,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", 104, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Avbryt", IDCANCEL, 85, 44, 50, 15, WS_GROUP | WS_TABSTOP +} + +STRINGTABLE +BEGIN + 1001 "Dette programmet ber om et Active X-nettleserobjekt,\n" \ + "men Mozilla Active X-kontrolleren er ikke installert." \ + "Vil du laste den ned og installere den?" +END diff --git a/reactos/lib/shdocvw/Ru.rc b/reactos/lib/shdocvw/Ru.rc index 2129f86916e..99b364c111a 100644 --- a/reactos/lib/shdocvw/Ru.rc +++ b/reactos/lib/shdocvw/Ru.rc @@ -1,37 +1,37 @@ -/* - * Copyright 2005 Mikhail Y. Zvyozdochkin - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT - -100 DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 62 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Загрузка элемента управления Mozilla Active X" -FONT 8, "MS Shell Dlg" -{ - CONTROL "Progress1",1000,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", 104, 10, 30, 200, 10, SS_CENTER - PUSHBUTTON "Отмена", IDCANCEL, 85, 44, 50, 15, WS_GROUP | WS_TABSTOP -} - -STRINGTABLE -BEGIN - 1001 "Приложение запрашивает ActiveX-объект обозревателя,\n" \ - "однако элемент управления Mozilla ActiveX неустановлен." \ - "Хотите загрузить и установить его?" -END - +/* + * Copyright 2005 Mikhail Y. Zvyozdochkin + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +100 DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 62 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Загрузка элемента управления Mozilla Active X" +FONT 8, "MS Shell Dlg" +{ + CONTROL "Progress1",1000,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", 104, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Отмена", IDCANCEL, 85, 44, 50, 15, WS_GROUP | WS_TABSTOP +} + +STRINGTABLE +BEGIN + 1001 "Приложение запрашивает ActiveX-объект обозревателя,\n" \ + "однако элемент управления Mozilla ActiveX неустановлен." \ + "Хотите загрузить и установить его?" +END + diff --git a/reactos/lib/shdocvw/Sv.rc b/reactos/lib/shdocvw/Sv.rc index a50096fb13f..8763c6367a6 100644 --- a/reactos/lib/shdocvw/Sv.rc +++ b/reactos/lib/shdocvw/Sv.rc @@ -1,35 +1,35 @@ -/* - * Copyright 2005 Anders Bergh - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT - -100 DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 62 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Laddar ner Mozilla ActiveX-komponent" -FONT 8, "MS Shell Dlg" -{ - CONTROL "Progress1",1000,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", 104, 10, 30, 200, 10, SS_CENTER - PUSHBUTTON "Avbryt", IDCANCEL, 85, 44, 50, 15, WS_GROUP | WS_TABSTOP -} - -STRINGTABLE -BEGIN - 1001 "Programmet krдver en ActiveX-komponent som inte дr tillgдnglig.\n" - "Vill du ladda ner och installera Mozillas ActiveX-komponent?" -END +/* + * Copyright 2005 Anders Bergh + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT + +100 DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 62 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Laddar ner Mozilla ActiveX-komponent" +FONT 8, "MS Shell Dlg" +{ + CONTROL "Progress1",1000,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", 104, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Avbryt", IDCANCEL, 85, 44, 50, 15, WS_GROUP | WS_TABSTOP +} + +STRINGTABLE +BEGIN + 1001 "Programmet krдver en ActiveX-komponent som inte дr tillgдnglig.\n" + "Vill du ladda ner och installera Mozillas ActiveX-komponent?" +END diff --git a/reactos/lib/shdocvw/classinfo.c b/reactos/lib/shdocvw/classinfo.c index 9a15dae40c1..d6290afab2e 100644 --- a/reactos/lib/shdocvw/classinfo.c +++ b/reactos/lib/shdocvw/classinfo.c @@ -1,5 +1,5 @@ /* - * Implementation of IProvideClassInfo interfaces for IE Web Browser control + * Implementation of IProvideClassInfo interfaces for WebBrowser control * * Copyright 2001 John R. Sheets (for CodeWeavers) * @@ -29,96 +29,35 @@ WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); /********************************************************************** - * Implement the IProvideClassInfo interface - * - * FIXME: Should we just pass in the IProvideClassInfo2 methods rather - * reimplementing them here? + * Implement the IProvideClassInfo2 interface */ -static HRESULT WINAPI WBPCI_QueryInterface(LPPROVIDECLASSINFO iface, - REFIID riid, LPVOID *ppobj) +#define CLASSINFO_THIS(iface) DEFINE_THIS(WebBrowser, ProvideClassInfo, iface) + +static HRESULT WINAPI ProvideClassInfo_QueryInterface(IProvideClassInfo2 *iface, + REFIID riid, LPVOID *ppobj) { - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); - - if (ppobj == NULL) return E_POINTER; - - return E_NOINTERFACE; + WebBrowser *This = CLASSINFO_THIS(iface); + return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); } -static ULONG WINAPI WBPCI_AddRef(LPPROVIDECLASSINFO iface) +static ULONG WINAPI ProvideClassInfo_AddRef(IProvideClassInfo2 *iface) { - SHDOCVW_LockModule(); - - return 2; /* non-heap based object */ + WebBrowser *This = CLASSINFO_THIS(iface); + return IWebBrowser_AddRef(WEBBROWSER(This)); } -static ULONG WINAPI WBPCI_Release(LPPROVIDECLASSINFO iface) +static ULONG WINAPI ProvideClassInfo_Release(IProvideClassInfo2 *iface) { - SHDOCVW_UnlockModule(); - - return 1; /* non-heap based object */ + WebBrowser *This = CLASSINFO_THIS(iface); + return IWebBrowser_Release(WEBBROWSER(This)); } -/* Return an ITypeInfo interface to retrieve type library info about - * this control. - */ -static HRESULT WINAPI WBPCI_GetClassInfo(LPPROVIDECLASSINFO iface, LPTYPEINFO *ppTI) +static HRESULT WINAPI ProvideClassInfo_GetClassInfo(IProvideClassInfo2 *iface, LPTYPEINFO *ppTI) { - FIXME("stub: LPTYPEINFO = %p\n", *ppTI); - return S_OK; -} - -/********************************************************************** - * IProvideClassInfo virtual function table for IE Web Browser component - */ - -static const IProvideClassInfoVtbl WBPCI_Vtbl = -{ - WBPCI_QueryInterface, - WBPCI_AddRef, - WBPCI_Release, - WBPCI_GetClassInfo -}; - -IProvideClassInfoImpl SHDOCVW_ProvideClassInfo = { &WBPCI_Vtbl}; - - -/********************************************************************** - * Implement the IProvideClassInfo2 interface (inherits from - * IProvideClassInfo). - */ - -static HRESULT WINAPI WBPCI2_QueryInterface(LPPROVIDECLASSINFO2 iface, - REFIID riid, LPVOID *ppobj) -{ - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); - - if (ppobj == NULL) return E_POINTER; - - return E_NOINTERFACE; -} - -static ULONG WINAPI WBPCI2_AddRef(LPPROVIDECLASSINFO2 iface) -{ - SHDOCVW_LockModule(); - - return 2; /* non-heap based object */ -} - -static ULONG WINAPI WBPCI2_Release(LPPROVIDECLASSINFO2 iface) -{ - SHDOCVW_UnlockModule(); - - return 1; /* non-heap based object */ -} - -/* Return an ITypeInfo interface to retrieve type library info about - * this control. - */ -static HRESULT WINAPI WBPCI2_GetClassInfo(LPPROVIDECLASSINFO2 iface, LPTYPEINFO *ppTI) -{ - FIXME("stub: LPTYPEINFO = %p\n", *ppTI); - return S_OK; + WebBrowser *This = CLASSINFO_THIS(iface); + FIXME("(%p)->(%p)\n", This, ppTI); + return E_NOTIMPL; } /* Get the IID for generic default event callbacks. This IID will @@ -126,10 +65,12 @@ static HRESULT WINAPI WBPCI2_GetClassInfo(LPPROVIDECLASSINFO2 iface, LPTYPEINFO * an event sink (callback implementation in the OLE control site) * to this control. */ -static HRESULT WINAPI WBPCI2_GetGUID(LPPROVIDECLASSINFO2 iface, - DWORD dwGuidKind, GUID *pGUID) +static HRESULT WINAPI ProvideClassInfo_GetGUID(IProvideClassInfo2 *iface, + DWORD dwGuidKind, GUID *pGUID) { - FIXME("stub: dwGuidKind = %ld, pGUID = %s\n", dwGuidKind, debugstr_guid(pGUID)); + WebBrowser *This = CLASSINFO_THIS(iface); + + FIXME("(%p)->(%ld %p)\n", This, dwGuidKind, pGUID); if (dwGuidKind != GUIDKIND_DEFAULT_SOURCE_DISP_IID) { @@ -150,17 +91,18 @@ static HRESULT WINAPI WBPCI2_GetGUID(LPPROVIDECLASSINFO2 iface, return S_OK; } -/********************************************************************** - * IProvideClassInfo virtual function table for IE Web Browser component - */ +#undef CLASSINFO_THIS -static const IProvideClassInfo2Vtbl WBPCI2_Vtbl = +static const IProvideClassInfo2Vtbl ProvideClassInfoVtbl = { - WBPCI2_QueryInterface, - WBPCI2_AddRef, - WBPCI2_Release, - WBPCI2_GetClassInfo, - WBPCI2_GetGUID + ProvideClassInfo_QueryInterface, + ProvideClassInfo_AddRef, + ProvideClassInfo_Release, + ProvideClassInfo_GetClassInfo, + ProvideClassInfo_GetGUID }; -IProvideClassInfo2Impl SHDOCVW_ProvideClassInfo2 = { &WBPCI2_Vtbl}; +void WebBrowser_ClassInfo_Init(WebBrowser *This) +{ + This->lpProvideClassInfoVtbl = &ProvideClassInfoVtbl; +} diff --git a/reactos/lib/shdocvw/events.c b/reactos/lib/shdocvw/events.c index 7dd26561cb8..2fb6dc2e107 100644 --- a/reactos/lib/shdocvw/events.c +++ b/reactos/lib/shdocvw/events.c @@ -1,5 +1,5 @@ /* - * Implementation of event-related interfaces for IE Web Browser control: + * Implementation of event-related interfaces for WebBrowser control: * * - IConnectionPointContainer * - IConnectionPoint @@ -36,46 +36,41 @@ static const GUID IID_INotifyDBEvents = * Implement the IConnectionPointContainer interface */ -static HRESULT WINAPI WBCPC_QueryInterface(LPCONNECTIONPOINTCONTAINER iface, - REFIID riid, LPVOID *ppobj) -{ - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); +#define CONPTCONT_THIS(iface) DEFINE_THIS(WebBrowser, ConnectionPointContainer, iface) - if (ppobj == NULL) return E_POINTER; - - return E_NOINTERFACE; +static HRESULT WINAPI ConnectionPointContainer_QueryInterface(IConnectionPointContainer *iface, + REFIID riid, LPVOID *ppobj) +{ + WebBrowser *This = CONPTCONT_THIS(iface); + return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); } -static ULONG WINAPI WBCPC_AddRef(LPCONNECTIONPOINTCONTAINER iface) +static ULONG WINAPI ConnectionPointContainer_AddRef(IConnectionPointContainer *iface) { - SHDOCVW_LockModule(); - - return 2; /* non-heap based object */ + WebBrowser *This = CONPTCONT_THIS(iface); + return IWebBrowser_AddRef(WEBBROWSER(This)); } -static ULONG WINAPI WBCPC_Release(LPCONNECTIONPOINTCONTAINER iface) +static ULONG WINAPI ConnectionPointContainer_Release(IConnectionPointContainer *iface) { - SHDOCVW_UnlockModule(); - - return 1; /* non-heap based object */ + WebBrowser *This = CONPTCONT_THIS(iface); + return IWebBrowser_Release(WEBBROWSER(This)); } -/* Get a list of connection points inside this container. */ -static HRESULT WINAPI WBCPC_EnumConnectionPoints(LPCONNECTIONPOINTCONTAINER iface, - LPENUMCONNECTIONPOINTS *ppEnum) +static HRESULT WINAPI ConnectionPointContainer_EnumConnectionPoints(IConnectionPointContainer *iface, + LPENUMCONNECTIONPOINTS *ppEnum) { - FIXME("stub: IEnumConnectionPoints = %p\n", *ppEnum); - return S_OK; + WebBrowser *This = CONPTCONT_THIS(iface); + FIXME("(%p)->(%p)\n", This, ppEnum); + return E_NOTIMPL; } -/* Retrieve the connection point in this container associated with the - * riid interface. When events occur in the control, the control can - * call backwards into its embedding site, through these interfaces. - */ -static HRESULT WINAPI WBCPC_FindConnectionPoint(LPCONNECTIONPOINTCONTAINER iface, - REFIID riid, LPCONNECTIONPOINT *ppCP) +static HRESULT WINAPI ConnectionPointContainer_FindConnectionPoint(IConnectionPointContainer *iface, + REFIID riid, LPCONNECTIONPOINT *ppCP) { - TRACE(": IID = %s, IConnectionPoint = %p\n", debugstr_guid(riid), *ppCP); + WebBrowser *This = CONPTCONT_THIS(iface); + + FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppCP); /* For now, return the same IConnectionPoint object for both * event interface requests. @@ -98,21 +93,17 @@ static HRESULT WINAPI WBCPC_FindConnectionPoint(LPCONNECTIONPOINTCONTAINER iface return E_FAIL; } -/********************************************************************** - * IConnectionPointContainer virtual function table for IE Web Browser component - */ +#undef CONPTCONT_THIS -static const IConnectionPointContainerVtbl WBCPC_Vtbl = +static const IConnectionPointContainerVtbl ConnectionPointContainerVtbl = { - WBCPC_QueryInterface, - WBCPC_AddRef, - WBCPC_Release, - WBCPC_EnumConnectionPoints, - WBCPC_FindConnectionPoint + ConnectionPointContainer_QueryInterface, + ConnectionPointContainer_AddRef, + ConnectionPointContainer_Release, + ConnectionPointContainer_EnumConnectionPoints, + ConnectionPointContainer_FindConnectionPoint }; -IConnectionPointContainerImpl SHDOCVW_ConnectionPointContainer = {&WBCPC_Vtbl}; - /********************************************************************** * Implement the IConnectionPoint interface @@ -207,3 +198,8 @@ static const IConnectionPointVtbl WBCP_Vtbl = }; static IConnectionPointImpl SHDOCVW_ConnectionPoint = {&WBCP_Vtbl}; + +void WebBrowser_Events_Init(WebBrowser *This) +{ + This->lpConnectionPointContainerVtbl = &ConnectionPointContainerVtbl; +} diff --git a/reactos/lib/shdocvw/factory.c b/reactos/lib/shdocvw/factory.c index 44f48ff13a1..7770b4d551f 100644 --- a/reactos/lib/shdocvw/factory.c +++ b/reactos/lib/shdocvw/factory.c @@ -25,7 +25,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); /********************************************************************** - * Implement the IWebBrowser class factory + * Implement the WebBrowser class factory * * (Based on implementation in ddraw/main.c) */ @@ -36,10 +36,19 @@ WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); static HRESULT WINAPI WBCF_QueryInterface(LPCLASSFACTORY iface, REFIID riid, LPVOID *ppobj) { - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); - - if (ppobj == NULL) return E_POINTER; - + TRACE("(%s %p)\n", debugstr_guid(riid), ppobj); + + if (!ppobj) + return E_POINTER; + + if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IClassFactory, riid)) { + *ppobj = iface; + return S_OK; + } + + WARN("Not supported interface %s\n", debugstr_guid(riid)); + + *ppobj = NULL; return E_NOINTERFACE; } @@ -69,25 +78,7 @@ static ULONG WINAPI WBCF_Release(LPCLASSFACTORY iface) static HRESULT WINAPI WBCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) { - IClassFactoryImpl *This = (IClassFactoryImpl *)iface; - - /* Don't support aggregation (yet?) */ - if (pOuter) - { - TRACE ("Failed attempt to aggregate IWebBrowser\n"); - return CLASS_E_NOAGGREGATION; - } - - TRACE("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj); - - if ((IsEqualGUID (&IID_IOleObject, riid))) - { - TRACE ("Instantiating IOleObject component\n"); - *ppobj = (LPVOID)&SHDOCVW_OleObject; - - return S_OK; - } - return CLASS_E_CLASSNOTAVAILABLE; + return WebBrowser_Create(pOuter, riid, ppobj); } /************************************************************************ @@ -98,9 +89,9 @@ static HRESULT WINAPI WBCF_LockServer(LPCLASSFACTORY iface, BOOL dolock) TRACE("(%d)\n", dolock); if (dolock) - SHDOCVW_LockModule(); + SHDOCVW_LockModule(); else - SHDOCVW_UnlockModule(); + SHDOCVW_UnlockModule(); return S_OK; } diff --git a/reactos/lib/shdocvw/misc.c b/reactos/lib/shdocvw/misc.c index 1a4e23c44d1..2be62702549 100644 --- a/reactos/lib/shdocvw/misc.c +++ b/reactos/lib/shdocvw/misc.c @@ -1,5 +1,5 @@ /* - * Implementation of miscellaneous interfaces for IE Web Browser control: + * Implementation of miscellaneous interfaces for WebBrowser control: * * - IQuickActivate * @@ -29,66 +29,65 @@ WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); * Implement the IQuickActivate interface */ -static HRESULT WINAPI WBQA_QueryInterface(LPQUICKACTIVATE iface, - REFIID riid, LPVOID *ppobj) -{ - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); +#define QUICKACT_THIS(iface) DEFINE_THIS(WebBrowser, QuickActivate, iface) - if (ppobj == NULL) return E_POINTER; - - return E_NOINTERFACE; +static HRESULT WINAPI QuickActivate_QueryInterface(IQuickActivate *iface, + REFIID riid, LPVOID *ppobj) +{ + WebBrowser *This = QUICKACT_THIS(iface); + return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); } -static ULONG WINAPI WBQA_AddRef(LPQUICKACTIVATE iface) +static ULONG WINAPI QuickActivate_AddRef(IQuickActivate *iface) { - SHDOCVW_LockModule(); - - return 2; /* non-heap based object */ + WebBrowser *This = QUICKACT_THIS(iface); + return IWebBrowser_AddRef(WEBBROWSER(This)); } -static ULONG WINAPI WBQA_Release(LPQUICKACTIVATE iface) +static ULONG WINAPI QuickActivate_Release(IQuickActivate *iface) { - SHDOCVW_UnlockModule(); - - return 1; /* non-heap based object */ + WebBrowser *This = QUICKACT_THIS(iface); + return IWebBrowser_Release(WEBBROWSER(This)); } -/* Alternative interface for quicker, easier activation of a control. */ -static HRESULT WINAPI WBQA_QuickActivate(LPQUICKACTIVATE iface, - QACONTAINER *pQaContainer, - QACONTROL *pQaControl) +static HRESULT WINAPI QuickActivate_QuickActivate(IQuickActivate *iface, + QACONTAINER *pQaContainer, QACONTROL *pQaControl) { - FIXME("stub: QACONTAINER = %p, QACONTROL = %p\n", pQaContainer, pQaControl); - return S_OK; + WebBrowser *This = QUICKACT_THIS(iface); + FIXME("(%p)->(%p %p)\n", This, pQaContainer, pQaControl); + return E_NOTIMPL; } -static HRESULT WINAPI WBQA_SetContentExtent(LPQUICKACTIVATE iface, LPSIZEL pSizel) +static HRESULT WINAPI QuickActivate_SetContentExtent(IQuickActivate *iface, LPSIZEL pSizel) { - FIXME("stub: LPSIZEL = %p\n", pSizel); - return E_NOINTERFACE; + WebBrowser *This = QUICKACT_THIS(iface); + FIXME("(%p)->(%p)\n", This, pSizel); + return E_NOTIMPL; } -static HRESULT WINAPI WBQA_GetContentExtent(LPQUICKACTIVATE iface, LPSIZEL pSizel) +static HRESULT WINAPI QuickActivate_GetContentExtent(IQuickActivate *iface, LPSIZEL pSizel) { - FIXME("stub: LPSIZEL = %p\n", pSizel); - return E_NOINTERFACE; + WebBrowser *This = QUICKACT_THIS(iface); + FIXME("(%p)->(%p)\n", This, pSizel); + return E_NOTIMPL; } -/********************************************************************** - * IQuickActivate virtual function table for IE Web Browser component - */ +#undef QUICKACT_THIS -static const IQuickActivateVtbl WBQA_Vtbl = +static const IQuickActivateVtbl QuickActivateVtbl = { - WBQA_QueryInterface, - WBQA_AddRef, - WBQA_Release, - WBQA_QuickActivate, - WBQA_SetContentExtent, - WBQA_GetContentExtent + QuickActivate_QueryInterface, + QuickActivate_AddRef, + QuickActivate_Release, + QuickActivate_QuickActivate, + QuickActivate_SetContentExtent, + QuickActivate_GetContentExtent }; -IQuickActivateImpl SHDOCVW_QuickActivate = {&WBQA_Vtbl}; +void WebBrowser_Misc_Init(WebBrowser *This) +{ + This->lpQuickActivateVtbl = &QuickActivateVtbl; +} /********************************************************************** * OpenURL (SHDOCVW.@) diff --git a/reactos/lib/shdocvw/oleobject.c b/reactos/lib/shdocvw/oleobject.c index 824b7cad24c..90804a7948a 100644 --- a/reactos/lib/shdocvw/oleobject.c +++ b/reactos/lib/shdocvw/oleobject.c @@ -1,11 +1,12 @@ /* - * Implementation of IOleObject interfaces for IE Web Browser + * Implementation of IOleObject interfaces for WebBrowser control * * - IOleObject * - IOleInPlaceObject * - IOleControl * * Copyright 2001 John R. Sheets (for CodeWeavers) + * Copyright 2005 Jacek Caban * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -22,260 +23,124 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#define COBJMACROS #include #include "wine/debug.h" #include "shdocvw.h" -#include "ole2.h" WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); /********************************************************************** - * IOleControl declaration for SHDOCVW.DLL + * Implement the IOleObject interface for the WebBrowser control */ -typedef struct + +#define OLEOBJ_THIS(iface) DEFINE_THIS(WebBrowser, OleObject, iface) + +static HRESULT WINAPI OleObject_QueryInterface(IOleObject *iface, REFIID riid, void **ppv) { - /* IUnknown fields */ - const IOleControlVtbl *lpVtbl; - DWORD ref; -} IOleControlImpl; + WebBrowser *This = OLEOBJ_THIS(iface); + return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppv); +} -static IOleControlImpl SHDOCVW_OleControl; - -/********************************************************************** - * IOleInPlaceObject declaration for SHDOCVW.DLL - */ -typedef struct +static ULONG WINAPI OleObject_AddRef(IOleObject *iface) { - /* IUnknown fields */ - const IOleInPlaceObjectVtbl *lpVtbl; - DWORD ref; -} IOleInPlaceObjectImpl; + WebBrowser *This = OLEOBJ_THIS(iface); + return IWebBrowser_AddRef(WEBBROWSER(This)); +} -static IOleInPlaceObjectImpl SHDOCVW_OleInPlaceObject; - -/********************************************************************** - * Implement the IOleObject interface for the web browser component - * - * Based on DefaultHandler code in dlls/ole32/defaulthandler.c. - */ - -static ULONG WINAPI WBOOBJ_AddRef(LPOLEOBJECT iface); -static ULONG WINAPI WBOOBJ_Release(LPOLEOBJECT iface); - -/************************************************************************ - * WBOOBJ_QueryInterface (IUnknown) - * - * Interfaces we need to (at least pretend to) retrieve: - * - * a6bc3ac0-dbaa-11ce-9de3-00aa004bb851 IID_IProvideClassInfo2 - * b196b283-bab4-101a-b69c-00aa00341d07 IID_IProvideClassInfo - * cf51ed10-62fe-11cf-bf86-00a0c9034836 IID_IQuickActivate - * 7fd52380-4e07-101b-ae2d-08002b2ec713 IID_IPersistStreamInit - * 0000010a-0000-0000-c000-000000000046 IID_IPersistStorage - * b196b284-bab4-101a-b69c-00aa00341d07 IID_IConnectionPointContainer - */ -static HRESULT WINAPI WBOOBJ_QueryInterface(LPOLEOBJECT iface, - REFIID riid, void** ppobj) +static ULONG WINAPI OleObject_Release(IOleObject *iface) { - IOleObjectImpl *This = (IOleObjectImpl *)iface; + WebBrowser *This = OLEOBJ_THIS(iface); + return IWebBrowser_Release(WEBBROWSER(This)); +} - /* - * Perform a sanity check on the parameters. - */ - if ((This == NULL) || (ppobj == NULL) ) +static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, LPOLECLIENTSITE pClientSite) +{ + WebBrowser *This = OLEOBJ_THIS(iface); + + TRACE("(%p)->(%p)\n", This, pClientSite); + + if(This->client == pClientSite) + return S_OK; + + if(This->client) + IOleClientSite_Release(This->client); + + if(pClientSite) + IOleClientSite_AddRef(pClientSite); + + This->client = pClientSite; + return S_OK; +} + +static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, LPOLECLIENTSITE *ppClientSite) +{ + WebBrowser *This = OLEOBJ_THIS(iface); + + TRACE("(%p)->(%p)\n", This, ppClientSite); + + if(!ppClientSite) return E_INVALIDARG; - if (IsEqualGUID (&IID_IPersistStorage, riid)) - { - TRACE("Returning IID_IPersistStorage interface\n"); - *ppobj = (LPVOID)&SHDOCVW_PersistStorage; - WBOOBJ_AddRef (iface); - return S_OK; - } - else if (IsEqualGUID (&IID_IPersistStreamInit, riid)) - { - TRACE("Returning IID_IPersistStreamInit interface\n"); - *ppobj = (LPVOID)&SHDOCVW_PersistStreamInit; - WBOOBJ_AddRef (iface); - return S_OK; - } - else if (IsEqualGUID (&IID_IProvideClassInfo, riid)) - { - TRACE("Returning IID_IProvideClassInfo interface\n"); - *ppobj = (LPVOID)&SHDOCVW_ProvideClassInfo; - WBOOBJ_AddRef (iface); - return S_OK; - } - else if (IsEqualGUID (&IID_IProvideClassInfo2, riid)) - { - TRACE("Returning IID_IProvideClassInfo2 interface %p\n", - &SHDOCVW_ProvideClassInfo2); - *ppobj = (LPVOID)&SHDOCVW_ProvideClassInfo2; - WBOOBJ_AddRef (iface); - return S_OK; - } - else if (IsEqualGUID (&IID_IQuickActivate, riid)) - { - TRACE("Returning IID_IQuickActivate interface\n"); - *ppobj = (LPVOID)&SHDOCVW_QuickActivate; - WBOOBJ_AddRef (iface); - return S_OK; - } - else if (IsEqualGUID (&IID_IConnectionPointContainer, riid)) - { - TRACE("Returning IID_IConnectionPointContainer interface\n"); - *ppobj = (LPVOID)&SHDOCVW_ConnectionPointContainer; - WBOOBJ_AddRef (iface); - return S_OK; - } - else if (IsEqualGUID (&IID_IOleInPlaceObject, riid)) - { - TRACE("Returning IID_IOleInPlaceObject interface\n"); - *ppobj = (LPVOID)&SHDOCVW_OleInPlaceObject; - WBOOBJ_AddRef (iface); - return S_OK; - } - else if (IsEqualGUID (&IID_IOleControl, riid)) - { - TRACE("Returning IID_IOleControl interface\n"); - *ppobj = (LPVOID)&SHDOCVW_OleControl; - WBOOBJ_AddRef (iface); - return S_OK; - } - else if (IsEqualGUID (&IID_IWebBrowser, riid)) - { - TRACE("Returning IID_IWebBrowser interface\n"); - *ppobj = (LPVOID)&SHDOCVW_WebBrowser; - WBOOBJ_AddRef (iface); - return S_OK; - } - else if (IsEqualGUID (&IID_IDispatch, riid)) - { - TRACE("Returning IID_IDispatch interface\n"); - *ppobj = (LPVOID)&SHDOCVW_WebBrowser; - WBOOBJ_AddRef (iface); - return S_OK; - } + if(This->client) + IOleClientSite_AddRef(This->client); + *ppClientSite = This->client; - TRACE ("Failed to find iid = %s\n", debugstr_guid(riid)); - - return E_NOINTERFACE; -} - -/************************************************************************ - * WBOOBJ_AddRef (IUnknown) - */ -static ULONG WINAPI WBOOBJ_AddRef(LPOLEOBJECT iface) -{ - SHDOCVW_LockModule(); - - return 2; /* non-heap based object */ -} - -/************************************************************************ - * WBOOBJ_Release (IUnknown) - */ -static ULONG WINAPI WBOOBJ_Release(LPOLEOBJECT iface) -{ - SHDOCVW_UnlockModule(); - - return 1; /* non-heap based object */ -} - -/************************************************************************ - * WBOOBJ_SetClientSite (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_SetClientSite(LPOLEOBJECT iface, - LPOLECLIENTSITE pClientSite) -{ - FIXME("stub: (%p, %p)\n", iface, pClientSite); return S_OK; } -/************************************************************************ - * WBOOBJ_GetClientSite (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_GetClientSite(LPOLEOBJECT iface, - LPOLECLIENTSITE* ppClientSite) +static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szContainerApp, + LPCOLESTR szContainerObj) { - FIXME("stub: (%p)\n", *ppClientSite); - return S_OK; + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%s, %s)\n", This, debugstr_w(szContainerApp), debugstr_w(szContainerObj)); + return E_NOTIMPL; } -/************************************************************************ - * WBOOBJ_SetHostNames (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_SetHostNames(LPOLEOBJECT iface, LPCOLESTR szContainerApp, - LPCOLESTR szContainerObj) +static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption) { - FIXME("stub: (%p, %s, %s)\n", iface, debugstr_w(szContainerApp), - debugstr_w(szContainerObj)); - return S_OK; + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%ld)\n", This, dwSaveOption); + return E_NOTIMPL; } -/************************************************************************ - * WBOOBJ_Close (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_Close(LPOLEOBJECT iface, DWORD dwSaveOption) +static HRESULT WINAPI OleObject_SetMoniker(IOleObject *iface, DWORD dwWhichMoniker, IMoniker* pmk) { - FIXME("stub: ()\n"); - return S_OK; + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%ld, %p)\n", This, dwWhichMoniker, pmk); + return E_NOTIMPL; } -/************************************************************************ - * WBOOBJ_SetMoniker (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_SetMoniker(LPOLEOBJECT iface, - DWORD dwWhichMoniker, IMoniker* pmk) +static HRESULT WINAPI OleObject_GetMoniker(IOleObject *iface, DWORD dwAssign, + DWORD dwWhichMoniker, LPMONIKER *ppmk) { - FIXME("stub: (%p, %ld, %p)\n", iface, dwWhichMoniker, pmk); - return S_OK; + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%ld, %ld, %p)\n", This, dwAssign, dwWhichMoniker, ppmk); + return E_NOTIMPL; } -/************************************************************************ - * WBOOBJ_GetMoniker (IOleObject) - * - * Delegate this request to the client site if we have one. - */ -static HRESULT WINAPI WBOOBJ_GetMoniker(LPOLEOBJECT iface, DWORD dwAssign, - DWORD dwWhichMoniker, LPMONIKER *ppmk) +static HRESULT WINAPI OleObject_InitFromData(IOleObject *iface, LPDATAOBJECT pDataObject, + BOOL fCreation, DWORD dwReserved) { - FIXME("stub (%p, %ld, %ld, %p)\n", iface, dwAssign, dwWhichMoniker, ppmk); - return E_FAIL; + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%p, %d, %ld)\n", This, pDataObject, fCreation, dwReserved); + return E_NOTIMPL; } -/************************************************************************ - * WBOOBJ_InitFromData (IOleObject) - * - * This method is meaningless if the server is not running - */ -static HRESULT WINAPI WBOOBJ_InitFromData(LPOLEOBJECT iface, LPDATAOBJECT pDataObject, - BOOL fCreation, DWORD dwReserved) +static HRESULT WINAPI OleObject_GetClipboardData(IOleObject *iface, DWORD dwReserved, + LPDATAOBJECT *ppDataObject) { - FIXME("stub: (%p, %p, %d, %ld)\n", iface, pDataObject, fCreation, dwReserved); - return OLE_E_NOTRUNNING; + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%ld, %p)\n", This, dwReserved, ppDataObject); + return E_NOTIMPL; } -/************************************************************************ - * WBOOBJ_GetClipboardData (IOleObject) - * - * This method is meaningless if the server is not running - */ -static HRESULT WINAPI WBOOBJ_GetClipboardData(LPOLEOBJECT iface, DWORD dwReserved, - LPDATAOBJECT *ppDataObject) +static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, struct tagMSG* lpmsg, + LPOLECLIENTSITE pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) { - FIXME("stub: (%p, %ld, %p)\n", iface, dwReserved, ppDataObject); - return OLE_E_NOTRUNNING; -} - -/************************************************************************ - * WBOOBJ_DoVerb (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_DoVerb(LPOLEOBJECT iface, LONG iVerb, struct tagMSG* lpmsg, - LPOLECLIENTSITE pActiveSite, LONG lindex, - HWND hwndParent, LPCRECT lprcPosRect) -{ - FIXME(": stub iVerb = %ld\n", iVerb); + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%ld %p %p %ld %p %p)\n", This, iVerb, lpmsg, pActiveSite, lindex, hwndParent, + lprcPosRect); switch (iVerb) { case OLEIVERB_INPLACEACTIVATE: @@ -286,126 +151,87 @@ static HRESULT WINAPI WBOOBJ_DoVerb(LPOLEOBJECT iface, LONG iVerb, struct tagMSG break; } - return S_OK; -} - -/************************************************************************ - * WBOOBJ_EnumVerbs (IOleObject) - * - * Delegate to OleRegEnumVerbs. - */ -static HRESULT WINAPI WBOOBJ_EnumVerbs(LPOLEOBJECT iface, - IEnumOLEVERB** ppEnumOleVerb) -{ - TRACE("(%p, %p)\n", iface, ppEnumOleVerb); - - return OleRegEnumVerbs(&CLSID_WebBrowser, ppEnumOleVerb); -} - -/************************************************************************ - * WBOOBJ_EnumVerbs (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_Update(LPOLEOBJECT iface) -{ - FIXME(": Stub\n"); return E_NOTIMPL; } -/************************************************************************ - * WBOOBJ_IsUpToDate (IOleObject) - * - * This method is meaningless if the server is not running - */ -static HRESULT WINAPI WBOOBJ_IsUpToDate(LPOLEOBJECT iface) +static HRESULT WINAPI OleObject_EnumVerbs(IOleObject *iface, IEnumOLEVERB **ppEnumOleVerb) { - FIXME("(%p)\n", iface); - return OLE_E_NOTRUNNING; + WebBrowser *This = OLEOBJ_THIS(iface); + TRACE("(%p)->(%p)\n", This, ppEnumOleVerb); + return OleRegEnumVerbs(&CLSID_WebBrowser, ppEnumOleVerb); } -/************************************************************************ - * WBOOBJ_GetUserClassID (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_GetUserClassID(LPOLEOBJECT iface, CLSID* pClsid) +static HRESULT WINAPI OleObject_Update(IOleObject *iface) { - FIXME("stub: (%p, %p)\n", iface, pClsid); - return S_OK; + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -/************************************************************************ - * WBOOBJ_GetUserType (IOleObject) - * - * Delegate to OleRegGetUserType. - */ -static HRESULT WINAPI WBOOBJ_GetUserType(LPOLEOBJECT iface, DWORD dwFormOfType, - LPOLESTR* pszUserType) +static HRESULT WINAPI OleObject_IsUpToDate(IOleObject *iface) { - TRACE("(%p, %ld, %p)\n", iface, dwFormOfType, pszUserType); + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; +} +static HRESULT WINAPI OleObject_GetUserClassID(IOleObject *iface, CLSID* pClsid) +{ + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%p)\n", This, pClsid); + return E_NOTIMPL; +} + +static HRESULT WINAPI OleObject_GetUserType(IOleObject *iface, DWORD dwFormOfType, + LPOLESTR* pszUserType) +{ + WebBrowser *This = OLEOBJ_THIS(iface); + TRACE("(%p, %ld, %p)\n", This, dwFormOfType, pszUserType); return OleRegGetUserType(&CLSID_WebBrowser, dwFormOfType, pszUserType); } -/************************************************************************ - * WBOOBJ_SetExtent (IOleObject) - * - * This method is meaningless if the server is not running - */ -static HRESULT WINAPI WBOOBJ_SetExtent(LPOLEOBJECT iface, DWORD dwDrawAspect, - SIZEL* psizel) +static HRESULT WINAPI OleObject_SetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel) { - FIXME("stub: (%p, %lx, (%ld x %ld))\n", iface, dwDrawAspect, - psizel->cx, psizel->cy); - return OLE_E_NOTRUNNING; + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%lx %p)\n", This, dwDrawAspect, psizel); + return E_NOTIMPL; } -/************************************************************************ - * WBOOBJ_GetExtent (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_GetExtent(LPOLEOBJECT iface, DWORD dwDrawAspect, - SIZEL* psizel) +static HRESULT WINAPI OleObject_GetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel) { - FIXME("stub: (%p, %lx, %p)\n", iface, dwDrawAspect, psizel); + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%lx, %p)\n", This, dwDrawAspect, psizel); + return E_NOTIMPL; +} + +static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink, + DWORD* pdwConnection) +{ + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%p, %p)\n", This, pAdvSink, pdwConnection); + return E_NOTIMPL; +} + +static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection) +{ + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%ld)\n", This, dwConnection); + return E_NOTIMPL; +} + +static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **ppenumAdvise) +{ + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%p)\n", This, ppenumAdvise); return S_OK; } -/************************************************************************ - * WBOOBJ_Advise (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_Advise(LPOLEOBJECT iface, IAdviseSink* pAdvSink, - DWORD* pdwConnection) -{ - FIXME("stub: (%p, %p, %p)\n", iface, pAdvSink, pdwConnection); - return S_OK; -} - -/************************************************************************ - * WBOOBJ_Unadvise (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_Unadvise(LPOLEOBJECT iface, DWORD dwConnection) -{ - FIXME("stub: (%p, %ld)\n", iface, dwConnection); - return S_OK; -} - -/************************************************************************ - * WBOOBJ_EnumAdvise (IOleObject) - */ -static HRESULT WINAPI WBOOBJ_EnumAdvise(LPOLEOBJECT iface, IEnumSTATDATA** ppenumAdvise) -{ - FIXME("stub: (%p, %p)\n", iface, ppenumAdvise); - return S_OK; -} - -/************************************************************************ - * WBOOBJ_GetMiscStatus (IOleObject) - * - * Delegate to OleRegGetMiscStatus. - */ -static HRESULT WINAPI WBOOBJ_GetMiscStatus(LPOLEOBJECT iface, DWORD dwAspect, - DWORD* pdwStatus) +static HRESULT WINAPI OleObject_GetMiscStatus(IOleObject *iface, DWORD dwAspect, DWORD *pdwStatus) { + WebBrowser *This = OLEOBJ_THIS(iface); HRESULT hres; - TRACE("(%p, %lx, %p)\n", iface, dwAspect, pdwStatus); + TRACE("(%p)->(%lx, %p)\n", This, dwAspect, pdwStatus); hres = OleRegGetMiscStatus(&CLSID_WebBrowser, dwAspect, pdwStatus); @@ -415,83 +241,74 @@ static HRESULT WINAPI WBOOBJ_GetMiscStatus(LPOLEOBJECT iface, DWORD dwAspect, return S_OK; } -/************************************************************************ - * WBOOBJ_SetColorScheme (IOleObject) - * - * This method is meaningless if the server is not running - */ -static HRESULT WINAPI WBOOBJ_SetColorScheme(LPOLEOBJECT iface, - struct tagLOGPALETTE* pLogpal) +static HRESULT WINAPI OleObject_SetColorScheme(IOleObject *iface, LOGPALETTE* pLogpal) { - FIXME("stub: (%p, %p))\n", iface, pLogpal); - return OLE_E_NOTRUNNING; + WebBrowser *This = OLEOBJ_THIS(iface); + FIXME("(%p)->(%p)\n", This, pLogpal); + return E_NOTIMPL; } -/********************************************************************** - * IOleObject virtual function table for IE Web Browser component - */ +#undef OLEOBJ_THIS -static const IOleObjectVtbl WBOOBJ_Vtbl = +static const IOleObjectVtbl OleObjectVtbl = { - WBOOBJ_QueryInterface, - WBOOBJ_AddRef, - WBOOBJ_Release, - WBOOBJ_SetClientSite, - WBOOBJ_GetClientSite, - WBOOBJ_SetHostNames, - WBOOBJ_Close, - WBOOBJ_SetMoniker, - WBOOBJ_GetMoniker, - WBOOBJ_InitFromData, - WBOOBJ_GetClipboardData, - WBOOBJ_DoVerb, - WBOOBJ_EnumVerbs, - WBOOBJ_Update, - WBOOBJ_IsUpToDate, - WBOOBJ_GetUserClassID, - WBOOBJ_GetUserType, - WBOOBJ_SetExtent, - WBOOBJ_GetExtent, - WBOOBJ_Advise, - WBOOBJ_Unadvise, - WBOOBJ_EnumAdvise, - WBOOBJ_GetMiscStatus, - WBOOBJ_SetColorScheme + OleObject_QueryInterface, + OleObject_AddRef, + OleObject_Release, + OleObject_SetClientSite, + OleObject_GetClientSite, + OleObject_SetHostNames, + OleObject_Close, + OleObject_SetMoniker, + OleObject_GetMoniker, + OleObject_InitFromData, + OleObject_GetClipboardData, + OleObject_DoVerb, + OleObject_EnumVerbs, + OleObject_Update, + OleObject_IsUpToDate, + OleObject_GetUserClassID, + OleObject_GetUserType, + OleObject_SetExtent, + OleObject_GetExtent, + OleObject_Advise, + OleObject_Unadvise, + OleObject_EnumAdvise, + OleObject_GetMiscStatus, + OleObject_SetColorScheme }; -IOleObjectImpl SHDOCVW_OleObject = {&WBOOBJ_Vtbl}; - - /********************************************************************** * Implement the IOleInPlaceObject interface */ -static HRESULT WINAPI WBOIPO_QueryInterface(LPOLEINPLACEOBJECT iface, - REFIID riid, LPVOID *ppobj) -{ - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); +#define INPLACEOBJ_THIS(iface) DEFINE_THIS(WebBrowser, OleInPlaceObject, iface) - if (ppobj == NULL) return E_POINTER; - - return E_NOINTERFACE; +static HRESULT WINAPI OleInPlaceObject_QueryInterface(IOleInPlaceObject *iface, + REFIID riid, LPVOID *ppobj) +{ + WebBrowser *This = INPLACEOBJ_THIS(iface); + return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); } -static ULONG WINAPI WBOIPO_AddRef(LPOLEINPLACEOBJECT iface) +static ULONG WINAPI OleInPlaceObject_AddRef(IOleInPlaceObject *iface) { - SHDOCVW_LockModule(); - - return 2; /* non-heap based object */ + WebBrowser *This = INPLACEOBJ_THIS(iface); + return IWebBrowser_AddRef(WEBBROWSER(This)); } -static ULONG WINAPI WBOIPO_Release(LPOLEINPLACEOBJECT iface) +static ULONG WINAPI OleInPlaceObject_Release(IOleInPlaceObject *iface) { - SHDOCVW_UnlockModule(); - - return 1; /* non-heap based object */ + WebBrowser *This = INPLACEOBJ_THIS(iface); + return IWebBrowser_Release(WEBBROWSER(This)); } -static HRESULT WINAPI WBOIPO_GetWindow(LPOLEINPLACEOBJECT iface, HWND* phwnd) +static HRESULT WINAPI OleInPlaceObject_GetWindow(IOleInPlaceObject *iface, HWND* phwnd) { + WebBrowser *This = INPLACEOBJ_THIS(iface); + + FIXME("(%p)->(%p)\n", This, phwnd); + #if 0 /* Create a fake window to fool MFC into believing that we actually * have an implemented browser control. Avoids the assertion. @@ -506,127 +323,132 @@ static HRESULT WINAPI WBOIPO_GetWindow(LPOLEINPLACEOBJECT iface, HWND* phwnd) TRACE ("Returning hwnd = %d\n", hwnd); #endif - FIXME("stub HWND* = %p\n", phwnd); return S_OK; } -static HRESULT WINAPI WBOIPO_ContextSensitiveHelp(LPOLEINPLACEOBJECT iface, - BOOL fEnterMode) +static HRESULT WINAPI OleInPlaceObject_ContextSensitiveHelp(IOleInPlaceObject *iface, + BOOL fEnterMode) { - FIXME("stub fEnterMode = %d\n", fEnterMode); - return S_OK; + WebBrowser *This = INPLACEOBJ_THIS(iface); + FIXME("(%p)->(%x)\n", This, fEnterMode); + return E_NOTIMPL; } -static HRESULT WINAPI WBOIPO_InPlaceDeactivate(LPOLEINPLACEOBJECT iface) +static HRESULT WINAPI OleInPlaceObject_InPlaceDeactivate(IOleInPlaceObject *iface) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = INPLACEOBJ_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -static HRESULT WINAPI WBOIPO_UIDeactivate(LPOLEINPLACEOBJECT iface) +static HRESULT WINAPI OleInPlaceObject_UIDeactivate(IOleInPlaceObject *iface) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = INPLACEOBJ_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -static HRESULT WINAPI WBOIPO_SetObjectRects(LPOLEINPLACEOBJECT iface, - LPCRECT lprcPosRect, LPCRECT lprcClipRect) +static HRESULT WINAPI OleInPlaceObject_SetObjectRects(IOleInPlaceObject *iface, + LPCRECT lprcPosRect, LPCRECT lprcClipRect) { - FIXME("stub PosRect = %p, ClipRect = %p\n", lprcPosRect, lprcClipRect); - return S_OK; + WebBrowser *This = INPLACEOBJ_THIS(iface); + FIXME("(%p)->(%p %p)\n", This, lprcPosRect, lprcClipRect); + return E_NOTIMPL; } -static HRESULT WINAPI WBOIPO_ReactivateAndUndo(LPOLEINPLACEOBJECT iface) +static HRESULT WINAPI OleInPlaceObject_ReactivateAndUndo(IOleInPlaceObject *iface) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = INPLACEOBJ_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -/********************************************************************** - * IOleInPlaceObject virtual function table for IE Web Browser component - */ +#undef INPLACEOBJ_THIS -static const IOleInPlaceObjectVtbl WBOIPO_Vtbl = +static const IOleInPlaceObjectVtbl OleInPlaceObjectVtbl = { - WBOIPO_QueryInterface, - WBOIPO_AddRef, - WBOIPO_Release, - WBOIPO_GetWindow, - WBOIPO_ContextSensitiveHelp, - WBOIPO_InPlaceDeactivate, - WBOIPO_UIDeactivate, - WBOIPO_SetObjectRects, - WBOIPO_ReactivateAndUndo + OleInPlaceObject_QueryInterface, + OleInPlaceObject_AddRef, + OleInPlaceObject_Release, + OleInPlaceObject_GetWindow, + OleInPlaceObject_ContextSensitiveHelp, + OleInPlaceObject_InPlaceDeactivate, + OleInPlaceObject_UIDeactivate, + OleInPlaceObject_SetObjectRects, + OleInPlaceObject_ReactivateAndUndo }; -static IOleInPlaceObjectImpl SHDOCVW_OleInPlaceObject = {&WBOIPO_Vtbl}; - - /********************************************************************** * Implement the IOleControl interface */ -static HRESULT WINAPI WBOC_QueryInterface(LPOLECONTROL iface, - REFIID riid, LPVOID *ppobj) -{ - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); +#define CONTROL_THIS(iface) DEFINE_THIS(WebBrowser, OleControl, iface) - if (ppobj == NULL) return E_POINTER; - - return E_NOINTERFACE; +static HRESULT WINAPI OleControl_QueryInterface(IOleControl *iface, + REFIID riid, LPVOID *ppobj) +{ + WebBrowser *This = CONTROL_THIS(iface); + return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); } -static ULONG WINAPI WBOC_AddRef(LPOLECONTROL iface) +static ULONG WINAPI OleControl_AddRef(IOleControl *iface) { - SHDOCVW_LockModule(); - - return 2; /* non-heap based object */ + WebBrowser *This = CONTROL_THIS(iface); + return IWebBrowser_AddRef(WEBBROWSER(This)); } -static ULONG WINAPI WBOC_Release(LPOLECONTROL iface) +static ULONG WINAPI OleControl_Release(IOleControl *iface) { - SHDOCVW_UnlockModule(); - - return 1; /* non-heap based object */ + WebBrowser *This = CONTROL_THIS(iface); + return IWebBrowser_Release(WEBBROWSER(This)); } -static HRESULT WINAPI WBOC_GetControlInfo(LPOLECONTROL iface, LPCONTROLINFO pCI) +static HRESULT WINAPI OleControl_GetControlInfo(IOleControl *iface, LPCONTROLINFO pCI) { - FIXME("stub: LPCONTROLINFO = %p\n", pCI); - return S_OK; + WebBrowser *This = CONTROL_THIS(iface); + FIXME("(%p)->(%p)\n", This, pCI); + return E_NOTIMPL; } -static HRESULT WINAPI WBOC_OnMnemonic(LPOLECONTROL iface, struct tagMSG *pMsg) +static HRESULT WINAPI OleControl_OnMnemonic(IOleControl *iface, struct tagMSG *pMsg) { - FIXME("stub: MSG* = %p\n", pMsg); - return S_OK; + WebBrowser *This = CONTROL_THIS(iface); + FIXME("(%p)->(%p)\n", This, pMsg); + return E_NOTIMPL; } -static HRESULT WINAPI WBOC_OnAmbientPropertyChange(LPOLECONTROL iface, DISPID dispID) +static HRESULT WINAPI OleControl_OnAmbientPropertyChange(IOleControl *iface, DISPID dispID) { - FIXME("stub: DISPID = %ld\n", dispID); - return S_OK; + WebBrowser *This = CONTROL_THIS(iface); + FIXME("(%p)->(%ld)\n", This, dispID); + return E_NOTIMPL; } -static HRESULT WINAPI WBOC_FreezeEvents(LPOLECONTROL iface, BOOL bFreeze) +static HRESULT WINAPI OleControl_FreezeEvents(IOleControl *iface, BOOL bFreeze) { - FIXME("stub: bFreeze = %d\n", bFreeze); - return S_OK; + WebBrowser *This = CONTROL_THIS(iface); + FIXME("(%p)->(%x)\n", This, bFreeze); + return E_NOTIMPL; } -/********************************************************************** - * IOleControl virtual function table for IE Web Browser component - */ +#undef CONTROL_THIS -static const IOleControlVtbl WBOC_Vtbl = +static const IOleControlVtbl OleControlVtbl = { - WBOC_QueryInterface, - WBOC_AddRef, - WBOC_Release, - WBOC_GetControlInfo, - WBOC_OnMnemonic, - WBOC_OnAmbientPropertyChange, - WBOC_FreezeEvents + OleControl_QueryInterface, + OleControl_AddRef, + OleControl_Release, + OleControl_GetControlInfo, + OleControl_OnMnemonic, + OleControl_OnAmbientPropertyChange, + OleControl_FreezeEvents }; -static IOleControlImpl SHDOCVW_OleControl = {&WBOC_Vtbl}; +void WebBrowser_OleObject_Init(WebBrowser *This) +{ + This->lpOleObjectVtbl = &OleObjectVtbl; + This->lpOleInPlaceObjectVtbl = &OleInPlaceObjectVtbl; + This->lpOleControlVtbl = &OleControlVtbl; + + This->client = NULL; +} diff --git a/reactos/lib/shdocvw/persist.c b/reactos/lib/shdocvw/persist.c index 178efdee964..0b091ee826c 100644 --- a/reactos/lib/shdocvw/persist.c +++ b/reactos/lib/shdocvw/persist.c @@ -1,7 +1,8 @@ /* - * Implementation of IPersist interfaces for IE Web Browser control + * Implementation of IPersist interfaces for WebBrowser control * * Copyright 2001 John R. Sheets (for CodeWeavers) + * Copyright 2005 Jacek Caban * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,6 +19,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#define COBJMACROS #include "wine/debug.h" #include "shdocvw.h" @@ -27,168 +29,169 @@ WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); * Implement the IPersistStorage interface */ -static HRESULT WINAPI WBPS_QueryInterface(LPPERSISTSTORAGE iface, - REFIID riid, LPVOID *ppobj) -{ - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); +#define PERSTORAGE_THIS(ifce) DEFINE_THIS(WebBrowser, PersistStorage, iface) - if (ppobj == NULL) return E_POINTER; - - return E_NOINTERFACE; +static HRESULT WINAPI PersistStorage_QueryInterface(IPersistStorage *iface, + REFIID riid, LPVOID *ppobj) +{ + WebBrowser *This = PERSTORAGE_THIS(iface); + return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); } -static ULONG WINAPI WBPS_AddRef(LPPERSISTSTORAGE iface) +static ULONG WINAPI PersistStorage_AddRef(IPersistStorage *iface) { - SHDOCVW_LockModule(); - - return 2; /* non-heap based object */ + WebBrowser *This = PERSTORAGE_THIS(iface); + return IWebBrowser_AddRef(WEBBROWSER(This)); } -static ULONG WINAPI WBPS_Release(LPPERSISTSTORAGE iface) +static ULONG WINAPI PersistStorage_Release(IPersistStorage *iface) { - SHDOCVW_UnlockModule(); - - return 1; /* non-heap based object */ + WebBrowser *This = PERSTORAGE_THIS(iface); + return IWebBrowser_Release(WEBBROWSER(This)); } -static HRESULT WINAPI WBPS_GetClassID(LPPERSISTSTORAGE iface, CLSID *pClassID) +static HRESULT WINAPI PersistStorage_GetClassID(IPersistStorage *iface, CLSID *pClassID) { - FIXME("stub: CLSID = %s\n", debugstr_guid(pClassID)); - return S_OK; + WebBrowser *This = PERSTORAGE_THIS(iface); + FIXME("(%p)->(%p)\n", This, pClassID); + return E_NOTIMPL; } -static HRESULT WINAPI WBPS_IsDirty(LPPERSISTSTORAGE iface) +static HRESULT WINAPI PersistStorage_IsDirty(IPersistStorage *iface) { - FIXME("stub\n"); - return S_OK; + WebBrowser *This = PERSTORAGE_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -static HRESULT WINAPI WBPS_InitNew(LPPERSISTSTORAGE iface, LPSTORAGE pStg) +static HRESULT WINAPI PersistStorage_InitNew(IPersistStorage *iface, LPSTORAGE pStg) { - FIXME("stub: LPSTORAGE = %p\n", pStg); - return S_OK; + WebBrowser *This = PERSTORAGE_THIS(iface); + FIXME("(%p)->(%p)\n", This, pStg); + return E_NOTIMPL; } -static HRESULT WINAPI WBPS_Load(LPPERSISTSTORAGE iface, LPSTORAGE pStg) +static HRESULT WINAPI PersistStorage_Load(IPersistStorage *iface, LPSTORAGE pStg) { - FIXME("stub: LPSTORAGE = %p\n", pStg); - return S_OK; + WebBrowser *This = PERSTORAGE_THIS(iface); + FIXME("(%p)->(%p)\n", This, pStg); + return E_NOTIMPL; } -static HRESULT WINAPI WBPS_Save(LPPERSISTSTORAGE iface, LPSTORAGE pStg, - BOOL fSameAsLoad) +static HRESULT WINAPI PersistStorage_Save(IPersistStorage *iface, LPSTORAGE pStg, + BOOL fSameAsLoad) { - FIXME("stub: LPSTORAGE = %p, fSameAsLoad = %d\n", pStg, fSameAsLoad); - return S_OK; + WebBrowser *This = PERSTORAGE_THIS(iface); + FIXME("(%p)->(%p %x)\n", This, pStg, fSameAsLoad); + return E_NOTIMPL; } -static HRESULT WINAPI WBPS_SaveCompleted(LPPERSISTSTORAGE iface, LPSTORAGE pStgNew) +static HRESULT WINAPI PersistStorage_SaveCompleted(IPersistStorage *iface, LPSTORAGE pStgNew) { - FIXME("stub: LPSTORAGE = %p\n", pStgNew); - return S_OK; + WebBrowser *This = PERSTORAGE_THIS(iface); + FIXME("(%p)->(%p)\n", This, pStgNew); + return E_NOTIMPL; } -/********************************************************************** - * IPersistStorage virtual function table for IE Web Browser component - */ +#define PERSTORAGE_THIS(ifce) DEFINE_THIS(WebBrowser, PersistStorage, iface) -static const IPersistStorageVtbl WBPS_Vtbl = +static const IPersistStorageVtbl PersistStorageVtbl = { - WBPS_QueryInterface, - WBPS_AddRef, - WBPS_Release, - WBPS_GetClassID, - WBPS_IsDirty, - WBPS_InitNew, - WBPS_Load, - WBPS_Save, - WBPS_SaveCompleted + PersistStorage_QueryInterface, + PersistStorage_AddRef, + PersistStorage_Release, + PersistStorage_GetClassID, + PersistStorage_IsDirty, + PersistStorage_InitNew, + PersistStorage_Load, + PersistStorage_Save, + PersistStorage_SaveCompleted }; -IPersistStorageImpl SHDOCVW_PersistStorage = {&WBPS_Vtbl}; - - /********************************************************************** * Implement the IPersistStreamInit interface */ -static HRESULT WINAPI WBPSI_QueryInterface(LPPERSISTSTREAMINIT iface, - REFIID riid, LPVOID *ppobj) -{ - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); +#define PERSTRINIT_THIS(iface) DEFINE_THIS(WebBrowser, PersistStreamInit, iface) - if (ppobj == NULL) return E_POINTER; - - return E_NOINTERFACE; +static HRESULT WINAPI PersistStreamInit_QueryInterface(IPersistStreamInit *iface, + REFIID riid, LPVOID *ppobj) +{ + WebBrowser *This = PERSTRINIT_THIS(iface); + return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); } -static ULONG WINAPI WBPSI_AddRef(LPPERSISTSTREAMINIT iface) +static ULONG WINAPI PersistStreamInit_AddRef(IPersistStreamInit *iface) { - SHDOCVW_LockModule(); - - return 2; /* non-heap based object */ + WebBrowser *This = PERSTRINIT_THIS(iface); + return IWebBrowser_AddRef(WEBBROWSER(This)); } -static ULONG WINAPI WBPSI_Release(LPPERSISTSTREAMINIT iface) +static ULONG WINAPI PersistStreamInit_Release(IPersistStreamInit *iface) { - SHDOCVW_UnlockModule(); - - return 1; /* non-heap based object */ + WebBrowser *This = PERSTRINIT_THIS(iface); + return IWebBrowser_Release(WEBBROWSER(This)); } -static HRESULT WINAPI WBPSI_GetClassID(LPPERSISTSTREAMINIT iface, CLSID *pClassID) +static HRESULT WINAPI PersistStreamInit_GetClassID(IPersistStreamInit *iface, CLSID *pClassID) { - FIXME("stub: CLSID = %s\n", debugstr_guid(pClassID)); - return S_OK; + WebBrowser *This = PERSTRINIT_THIS(iface); + return IPersistStorage_GetClassID(PERSTORAGE(This), pClassID); } -static HRESULT WINAPI WBPSI_IsDirty(LPPERSISTSTREAMINIT iface) +static HRESULT WINAPI PersistStreamInit_IsDirty(IPersistStreamInit *iface) { - FIXME("stub\n"); - return S_OK; + WebBrowser *This = PERSTRINIT_THIS(iface); + return IPersistStorage_IsDirty(PERSTORAGE(This)); } -static HRESULT WINAPI WBPSI_Load(LPPERSISTSTREAMINIT iface, LPSTREAM pStg) +static HRESULT WINAPI PersistStreamInit_Load(IPersistStreamInit *iface, LPSTREAM pStg) { - FIXME("stub: LPSTORAGE = %p\n", pStg); - return S_OK; + WebBrowser *This = PERSTRINIT_THIS(iface); + FIXME("(%p)->(%p)\n", This, pStg); + return E_NOTIMPL; } -static HRESULT WINAPI WBPSI_Save(LPPERSISTSTREAMINIT iface, LPSTREAM pStg, - BOOL fSameAsLoad) +static HRESULT WINAPI PersistStreamInit_Save(IPersistStreamInit *iface, LPSTREAM pStg, + BOOL fSameAsLoad) { - FIXME("stub: LPSTORAGE = %p, fSameAsLoad = %d\n", pStg, fSameAsLoad); - return S_OK; + WebBrowser *This = PERSTRINIT_THIS(iface); + FIXME("(%p)->(%p %x)\n", This, pStg, fSameAsLoad); + return E_NOTIMPL; } -static HRESULT WINAPI WBPSI_GetSizeMax(LPPERSISTSTREAMINIT iface, - ULARGE_INTEGER *pcbSize) +static HRESULT WINAPI PersistStreamInit_GetSizeMax(IPersistStreamInit *iface, + ULARGE_INTEGER *pcbSize) { - FIXME("stub: ULARGE_INTEGER = %p\n", pcbSize); - return S_OK; + WebBrowser *This = PERSTRINIT_THIS(iface); + FIXME("(%p)->(%p)\n", This, pcbSize); + return E_NOTIMPL; } -static HRESULT WINAPI WBPSI_InitNew(LPPERSISTSTREAMINIT iface) +static HRESULT WINAPI PersistStreamInit_InitNew(IPersistStreamInit *iface) { - FIXME("stub\n"); - return S_OK; + WebBrowser *This = PERSTRINIT_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -/********************************************************************** - * IPersistStreamInit virtual function table for IE Web Browser component - */ +#undef PERSTRINIT_THIS -static const IPersistStreamInitVtbl WBPSI_Vtbl = +static const IPersistStreamInitVtbl PersistStreamInitVtbl = { - WBPSI_QueryInterface, - WBPSI_AddRef, - WBPSI_Release, - WBPSI_GetClassID, - WBPSI_IsDirty, - WBPSI_Load, - WBPSI_Save, - WBPSI_GetSizeMax, - WBPSI_InitNew + PersistStreamInit_QueryInterface, + PersistStreamInit_AddRef, + PersistStreamInit_Release, + PersistStreamInit_GetClassID, + PersistStreamInit_IsDirty, + PersistStreamInit_Load, + PersistStreamInit_Save, + PersistStreamInit_GetSizeMax, + PersistStreamInit_InitNew }; -IPersistStreamInitImpl SHDOCVW_PersistStreamInit = {&WBPSI_Vtbl}; +void WebBrowser_Persist_Init(WebBrowser *This) +{ + This->lpPersistStorageVtbl = &PersistStorageVtbl; + This->lpPersistStreamInitVtbl = &PersistStreamInitVtbl; +} diff --git a/reactos/lib/shdocvw/shdocvw.h b/reactos/lib/shdocvw/shdocvw.h index 8ef238a0d78..19d40fb7aa1 100644 --- a/reactos/lib/shdocvw/shdocvw.h +++ b/reactos/lib/shdocvw/shdocvw.h @@ -22,7 +22,8 @@ #define __WINE_SHDOCVW_H #define COM_NO_WINDOWS_H -/* FIXME: Is there a better way to deal with all these includes? */ +#define COBJMACROS + #include #include "windef.h" @@ -49,107 +50,42 @@ extern IClassFactoryImpl SHDOCVW_ClassFactory; /********************************************************************** - * IOleObject declaration for SHDOCVW.DLL + * WebBrowser declaration for SHDOCVW.DLL */ -typedef struct -{ - /* IUnknown fields */ - const IOleObjectVtbl *lpVtbl; +typedef struct { + const IWebBrowser2Vtbl *lpWebBrowser2Vtbl; + const IOleObjectVtbl *lpOleObjectVtbl; + const IOleInPlaceObjectVtbl *lpOleInPlaceObjectVtbl; + const IOleControlVtbl *lpOleControlVtbl; + const IPersistStorageVtbl *lpPersistStorageVtbl; + const IPersistStreamInitVtbl *lpPersistStreamInitVtbl; + const IProvideClassInfo2Vtbl *lpProvideClassInfoVtbl; + const IQuickActivateVtbl *lpQuickActivateVtbl; + const IConnectionPointContainerVtbl *lpConnectionPointContainerVtbl; + LONG ref; -} IOleObjectImpl; -extern IOleObjectImpl SHDOCVW_OleObject; + IOleClientSite *client; +} WebBrowser; -/********************************************************************** - * IWebBrowser declaration for SHDOCVW.DLL - */ -typedef struct -{ - /* IUnknown fields */ - const IWebBrowserVtbl *lpVtbl; - LONG ref; -} IWebBrowserImpl; +#define WEBBROWSER(x) ((IWebBrowser*) &(x)->lpWebBrowser2Vtbl) +#define WEBBROWSER2(x) ((IWebBrowser2*) &(x)->lpWebBrowser2Vtbl) +#define OLEOBJ(x) ((IOleObject*) &(x)->lpOleObjectVtbl) +#define INPLACEOBJ(x) ((IOleInPlaceObject*) &(x)->lpOleInPlaceObjectVtbl) +#define CONTROL(x) ((IOleControl*) &(x)->lpOleControlVtbl) +#define PERSTORAGE(x) ((IPersistStorage*) &(x)->lpPersistStorageVtbl) +#define PERSTRINIT(x) ((IPersistStreamInit*) &(x)->lpPersistStreamInitVtbl) +#define CLASSINFO(x) ((IProvideClassInfo2*) &(x)->lpProvideClassInfoVtbl) +#define QUICKACT(x) ((IQuickActivate*) &(x)->lpQuickActivateVtbl) +#define CONPTCONT(x) ((IConnectionPointContainer*) &(x)->lpConnectionPointContainerVtbl) -extern IWebBrowserImpl SHDOCVW_WebBrowser; - - -/********************************************************************** - * IProvideClassInfo declaration for SHDOCVW.DLL - */ -typedef struct -{ - /* IUnknown fields */ - const IProvideClassInfoVtbl *lpVtbl; - LONG ref; -} IProvideClassInfoImpl; - -extern IProvideClassInfoImpl SHDOCVW_ProvideClassInfo; - - -/********************************************************************** - * IProvideClassInfo2 declaration for SHDOCVW.DLL - */ -typedef struct -{ - /* IUnknown fields */ - const IProvideClassInfo2Vtbl *lpVtbl; - LONG ref; -} IProvideClassInfo2Impl; - -extern IProvideClassInfo2Impl SHDOCVW_ProvideClassInfo2; - - -/********************************************************************** - * IPersistStorage declaration for SHDOCVW.DLL - */ -typedef struct -{ - /* IUnknown fields */ - const IPersistStorageVtbl *lpVtbl; - LONG ref; -} IPersistStorageImpl; - -extern IPersistStorageImpl SHDOCVW_PersistStorage; - - -/********************************************************************** - * IPersistStreamInit declaration for SHDOCVW.DLL - */ -typedef struct -{ - /* IUnknown fields */ - const IPersistStreamInitVtbl *lpVtbl; - LONG ref; -} IPersistStreamInitImpl; - -extern IPersistStreamInitImpl SHDOCVW_PersistStreamInit; - - -/********************************************************************** - * IQuickActivate declaration for SHDOCVW.DLL - */ -typedef struct -{ - /* IUnknown fields */ - const IQuickActivateVtbl *lpVtbl; - LONG ref; -} IQuickActivateImpl; - -extern IQuickActivateImpl SHDOCVW_QuickActivate; - - -/********************************************************************** - * IConnectionPointContainer declaration for SHDOCVW.DLL - */ -typedef struct -{ - /* IUnknown fields */ - const IConnectionPointContainerVtbl *lpVtbl; - LONG ref; -} IConnectionPointContainerImpl; - -extern IConnectionPointContainerImpl SHDOCVW_ConnectionPointContainer; +void WebBrowser_OleObject_Init(WebBrowser*); +void WebBrowser_Persist_Init(WebBrowser*); +void WebBrowser_ClassInfo_Init(WebBrowser*); +void WebBrowser_Misc_Init(WebBrowser*); +void WebBrowser_Events_Init(WebBrowser*); +HRESULT WebBrowser_Create(IUnknown*,REFIID,void**); /********************************************************************** * IConnectionPoint declaration for SHDOCVW.DLL @@ -161,6 +97,8 @@ typedef struct LONG ref; } IConnectionPointImpl; +#define DEFINE_THIS(cls,ifc,iface) ((cls*)((BYTE*)(iface)-offsetof(cls,lp ## ifc ## Vtbl))) + /********************************************************************** * Dll lifetime tracking declaration for shdocvw.dll */ diff --git a/reactos/lib/shdocvw/shdocvw.rc b/reactos/lib/shdocvw/shdocvw.rc index 033894153bd..58515b99194 100644 --- a/reactos/lib/shdocvw/shdocvw.rc +++ b/reactos/lib/shdocvw/shdocvw.rc @@ -1,34 +1,37 @@ -/* - * Copyright 2004 Mike McCormack for CodeWeavers - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "windef.h" -#include "winuser.h" -#include "winnls.h" -#include "commctrl.h" - -#include "version.rc" - -#include "De.rc" -#include "En.rc" -#include "Es.rc" -#include "Fr.rc" -#include "Nl.rc" -#include "Pl.rc" -#include "Pt.rc" -#include "Ru.rc" -#include "Sv.rc" +/* + * Copyright 2004 Mike McCormack for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "windef.h" +#include "winuser.h" +#include "winnls.h" +#include "commctrl.h" + +#include "version.rc" + +#include "Bg.rc" +#include "De.rc" +#include "En.rc" +#include "Es.rc" +#include "Fi.rc" +#include "Fr.rc" +#include "Nl.rc" +#include "No.rc" +#include "Pl.rc" +#include "Pt.rc" +#include "Ru.rc" +#include "Sv.rc" diff --git a/reactos/lib/shdocvw/version.rc b/reactos/lib/shdocvw/version.rc index bda2e7ec0fa..7f7fcc32c85 100644 --- a/reactos/lib/shdocvw/version.rc +++ b/reactos/lib/shdocvw/version.rc @@ -1,27 +1,27 @@ -/* - * Copyright 2003 Francois Gouget (for CodeWeavers) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#define WINE_OLESELFREGISTER -#define WINE_FILEDESCRIPTION_STR "Wine core dll" -#define WINE_FILENAME_STR "shdocvw.dll" -#define WINE_FILEVERSION 5,50,0,0 -#define WINE_FILEVERSION_STR "5.50.0.0" -#define WINE_PRODUCTVERSION 5,50,0,0 -#define WINE_PRODUCTVERSION_STR "5.50" - -#include "wine/wine_common_ver.rc" +/* + * Copyright 2003 Francois Gouget (for CodeWeavers) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#define WINE_OLESELFREGISTER +#define WINE_FILEDESCRIPTION_STR "Wine core dll" +#define WINE_FILENAME_STR "shdocvw.dll" +#define WINE_FILEVERSION 5,50,0,0 +#define WINE_FILEVERSION_STR "5.50.0.0" +#define WINE_PRODUCTVERSION 5,50,0,0 +#define WINE_PRODUCTVERSION_STR "5.50" + +#include "wine/wine_common_ver.rc" diff --git a/reactos/lib/shdocvw/webbrowser.c b/reactos/lib/shdocvw/webbrowser.c index d750f10359a..5520d745abd 100644 --- a/reactos/lib/shdocvw/webbrowser.c +++ b/reactos/lib/shdocvw/webbrowser.c @@ -1,7 +1,8 @@ /* - * Implementation of IWebBrowser interface for IE Web Browser control + * Implementation of IWebBrowser interface for WebBrowser control * * Copyright 2001 John R. Sheets (for CodeWeavers) + * Copyright 2005 Jacek Caban * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -27,252 +28,696 @@ WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); * Implement the IWebBrowser interface */ -static HRESULT WINAPI WB_QueryInterface(IWebBrowser *iface, REFIID riid, LPVOID *ppobj) -{ - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); +#define WEBBROWSER_THIS(iface) DEFINE_THIS(WebBrowser, WebBrowser2, iface) - if (ppobj == NULL) return E_POINTER; - +static HRESULT WINAPI WebBrowser_QueryInterface(IWebBrowser2 *iface, REFIID riid, LPVOID *ppv) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + + if (ppv == NULL) + return E_POINTER; + *ppv = NULL; + + if(IsEqualGUID(&IID_IUnknown, riid)) { + TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); + *ppv = WEBBROWSER(This); + }else if(IsEqualGUID (&IID_IDispatch, riid)) { + TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); + *ppv = WEBBROWSER(This); + }else if(IsEqualGUID(&IID_IWebBrowser, riid)) { + TRACE("(%p)->(IID_IWebBrowser %p)\n", This, ppv); + *ppv = WEBBROWSER(This); + }else if(IsEqualGUID(&IID_IWebBrowserApp, riid)) { + TRACE("(%p)->(IID_IWebBrowserApp %p)\n", This, ppv); + *ppv = WEBBROWSER(This); + }else if(IsEqualGUID(&IID_IWebBrowser2, riid)) { + TRACE("(%p)->(IID_IWebBrowser2 %p)\n", This, ppv); + *ppv = WEBBROWSER(This); + }else if(IsEqualGUID(&IID_IOleObject, riid)) { + TRACE("(%p)->(IID_IOleObject %p)\n", This, ppv); + *ppv = OLEOBJ(This); + }else if(IsEqualGUID(&IID_IOleWindow, riid)) { + TRACE("(%p)->(IID_IOleWindow %p)\n", This, ppv); + *ppv = INPLACEOBJ(This); + }else if(IsEqualGUID (&IID_IOleInPlaceObject, riid)) { + TRACE("(%p)->(IID_IOleInPlaceObject %p)\n", This, ppv); + *ppv = INPLACEOBJ(This); + }else if(IsEqualGUID(&IID_IOleControl, riid)) { + TRACE("(%p)->(IID_IOleControl %p)\n", This, ppv); + *ppv = CONTROL(This); + }else if(IsEqualGUID(&IID_IPersist, riid)) { + TRACE("(%p)->(IID_IPersist %p)\n", This, ppv); + *ppv = PERSTORAGE(This); + }else if(IsEqualGUID(&IID_IPersistStorage, riid)) { + TRACE("(%p)->(IID_IPersistStorage %p)\n", This, ppv); + *ppv = PERSTORAGE(This); + }else if(IsEqualGUID (&IID_IPersistStreamInit, riid)) { + TRACE("(%p)->(IID_IPersistStreamInit %p)\n", This, ppv); + *ppv = PERSTRINIT(This); + }else if(IsEqualGUID (&IID_IProvideClassInfo, riid)) { + TRACE("(%p)->(IID_IProvideClassInfo %p)\n", This, ppv); + *ppv = CLASSINFO(This); + }else if(IsEqualGUID (&IID_IProvideClassInfo2, riid)) { + TRACE("(%p)->(IID_IProvideClassInfo2 %p)\n", This, ppv); + *ppv = CLASSINFO(This); + }else if(IsEqualGUID (&IID_IQuickActivate, riid)) { + TRACE("(%p)->(IID_IQuickActivate %p)\n", This, ppv); + *ppv = QUICKACT(This); + }else if(IsEqualGUID (&IID_IConnectionPointContainer, riid)) { + TRACE("(%p)->(IID_IConnectionPointContainer %p)\n", This, ppv); + *ppv = CONPTCONT(This); + } + + if(*ppv) { + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + FIXME("(%p)->(%s %p) interface not supported\n", This, debugstr_guid(riid), ppv); return E_NOINTERFACE; } -static ULONG WINAPI WB_AddRef(IWebBrowser *iface) +static ULONG WINAPI WebBrowser_AddRef(IWebBrowser2 *iface) { - SHDOCVW_LockModule(); - - return 2; /* non-heap based object */ + WebBrowser *This = WEBBROWSER_THIS(iface); + LONG ref = InterlockedIncrement(&This->ref); + TRACE("(%p) ref=%ld\n", This, ref); + return ref; } -static ULONG WINAPI WB_Release(IWebBrowser *iface) +static ULONG WINAPI WebBrowser_Release(IWebBrowser2 *iface) { - SHDOCVW_UnlockModule(); + WebBrowser *This = WEBBROWSER_THIS(iface); + LONG ref = InterlockedDecrement(&This->ref); - return 1; /* non-heap based object */ + TRACE("(%p) ref=%ld\n", This, ref); + + if(!ref) { + HeapFree(GetProcessHeap(), 0, This); + SHDOCVW_UnlockModule(); + } + + return ref; } /* IDispatch methods */ -static HRESULT WINAPI WB_GetTypeInfoCount(IWebBrowser *iface, UINT *pctinfo) +static HRESULT WINAPI WebBrowser_GetTypeInfoCount(IWebBrowser2 *iface, UINT *pctinfo) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pctinfo); + return E_NOTIMPL; } -static HRESULT WINAPI WB_GetTypeInfo(IWebBrowser *iface, UINT iTInfo, LCID lcid, +static HRESULT WINAPI WebBrowser_GetTypeInfo(IWebBrowser2 *iface, UINT iTInfo, LCID lcid, LPTYPEINFO *ppTInfo) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%d %ld %p)\n", This, iTInfo, lcid, ppTInfo); + return E_NOTIMPL; } -static HRESULT WINAPI WB_GetIDsOfNames(IWebBrowser *iface, REFIID riid, +static HRESULT WINAPI WebBrowser_GetIDsOfNames(IWebBrowser2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%s %p %d %ld %p)\n", This, debugstr_guid(riid), rgszNames, cNames, + lcid, rgDispId); + return E_NOTIMPL; } -static HRESULT WINAPI WB_Invoke(IWebBrowser *iface, DISPID dispIdMember, +static HRESULT WINAPI WebBrowser_Invoke(IWebBrowser2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr) { - FIXME("stub dispIdMember = %d, IID = %s\n", (int)dispIdMember, debugstr_guid(riid)); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%ld %s %ld %08x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), + lcid, wFlags, pDispParams, pVarResult, pExepInfo, puArgErr); + return E_NOTIMPL; } /* IWebBrowser methods */ -static HRESULT WINAPI WB_GoBack(IWebBrowser *iface) +static HRESULT WINAPI WebBrowser_GoBack(IWebBrowser2 *iface) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -static HRESULT WINAPI WB_GoForward(IWebBrowser *iface) +static HRESULT WINAPI WebBrowser_GoForward(IWebBrowser2 *iface) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -static HRESULT WINAPI WB_GoHome(IWebBrowser *iface) +static HRESULT WINAPI WebBrowser_GoHome(IWebBrowser2 *iface) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -static HRESULT WINAPI WB_GoSearch(IWebBrowser *iface) +static HRESULT WINAPI WebBrowser_GoSearch(IWebBrowser2 *iface) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -static HRESULT WINAPI WB_Navigate(IWebBrowser *iface, BSTR URL, +static HRESULT WINAPI WebBrowser_Navigate(IWebBrowser2 *iface, BSTR URL, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers) { - FIXME("stub: URL = %p (%p, %p, %p, %p)\n", URL, Flags, TargetFrameName, + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%s %p %p %p %p)\n", This, debugstr_w(URL), Flags, TargetFrameName, PostData, Headers); - return S_OK; + return E_NOTIMPL; } -static HRESULT WINAPI WB_Refresh(IWebBrowser *iface) +static HRESULT WINAPI WebBrowser_Refresh(IWebBrowser2 *iface) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -static HRESULT WINAPI WB_Refresh2(IWebBrowser *iface, VARIANT *Level) +static HRESULT WINAPI WebBrowser_Refresh2(IWebBrowser2 *iface, VARIANT *Level) { - FIXME("stub: %p\n", Level); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, Level); + return E_NOTIMPL; } -static HRESULT WINAPI WB_Stop(IWebBrowser *iface) +static HRESULT WINAPI WebBrowser_Stop(IWebBrowser2 *iface) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_Application(IWebBrowser *iface, IDispatch **ppDisp) +static HRESULT WINAPI WebBrowser_get_Application(IWebBrowser2 *iface, IDispatch **ppDisp) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, ppDisp); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_Parent(IWebBrowser *iface, IDispatch **ppDisp) +static HRESULT WINAPI WebBrowser_get_Parent(IWebBrowser2 *iface, IDispatch **ppDisp) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, ppDisp); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_Container(IWebBrowser *iface, IDispatch **ppDisp) +static HRESULT WINAPI WebBrowser_get_Container(IWebBrowser2 *iface, IDispatch **ppDisp) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, ppDisp); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_Document(IWebBrowser *iface, IDispatch **ppDisp) +static HRESULT WINAPI WebBrowser_get_Document(IWebBrowser2 *iface, IDispatch **ppDisp) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, ppDisp); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_TopLevelContainer(IWebBrowser *iface, VARIANT_BOOL *pBool) +static HRESULT WINAPI WebBrowser_get_TopLevelContainer(IWebBrowser2 *iface, VARIANT_BOOL *pBool) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pBool); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_Type(IWebBrowser *iface, BSTR *Type) +static HRESULT WINAPI WebBrowser_get_Type(IWebBrowser2 *iface, BSTR *Type) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, Type); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_Left(IWebBrowser *iface, long *pl) +static HRESULT WINAPI WebBrowser_get_Left(IWebBrowser2 *iface, long *pl) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pl); + return E_NOTIMPL; } -static HRESULT WINAPI WB_put_Left(IWebBrowser *iface, long Left) +static HRESULT WINAPI WebBrowser_put_Left(IWebBrowser2 *iface, long Left) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%ld)\n", This, Left); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_Top(IWebBrowser *iface, long *pl) +static HRESULT WINAPI WebBrowser_get_Top(IWebBrowser2 *iface, long *pl) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pl); + return E_NOTIMPL; } -static HRESULT WINAPI WB_put_Top(IWebBrowser *iface, long Top) +static HRESULT WINAPI WebBrowser_put_Top(IWebBrowser2 *iface, long Top) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%ld)\n", This, Top); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_Width(IWebBrowser *iface, long *pl) +static HRESULT WINAPI WebBrowser_get_Width(IWebBrowser2 *iface, long *pl) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pl); + return E_NOTIMPL; } -static HRESULT WINAPI WB_put_Width(IWebBrowser *iface, long Width) +static HRESULT WINAPI WebBrowser_put_Width(IWebBrowser2 *iface, long Width) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%ld)\n", This, Width); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_Height(IWebBrowser *iface, long *pl) +static HRESULT WINAPI WebBrowser_get_Height(IWebBrowser2 *iface, long *pl) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pl); + return E_NOTIMPL; } -static HRESULT WINAPI WB_put_Height(IWebBrowser *iface, long Height) +static HRESULT WINAPI WebBrowser_put_Height(IWebBrowser2 *iface, long Height) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%ld)\n", This, Height); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_LocationName(IWebBrowser *iface, BSTR *LocationName) +static HRESULT WINAPI WebBrowser_get_LocationName(IWebBrowser2 *iface, BSTR *LocationName) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, LocationName); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_LocationURL(IWebBrowser *iface, BSTR *LocationURL) +static HRESULT WINAPI WebBrowser_get_LocationURL(IWebBrowser2 *iface, BSTR *LocationURL) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, LocationURL); + return E_NOTIMPL; } -static HRESULT WINAPI WB_get_Busy(IWebBrowser *iface, VARIANT_BOOL *pBool) +static HRESULT WINAPI WebBrowser_get_Busy(IWebBrowser2 *iface, VARIANT_BOOL *pBool) { - FIXME("stub \n"); - return S_OK; + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pBool); + return E_NOTIMPL; } -/********************************************************************** - * IWebBrowser virtual function table for IE Web Browser component - */ - -static const IWebBrowserVtbl WB_Vtbl = +static HRESULT WINAPI WebBrowser_Quit(IWebBrowser2 *iface) { - WB_QueryInterface, - WB_AddRef, - WB_Release, - WB_GetTypeInfoCount, - WB_GetTypeInfo, - WB_GetIDsOfNames, - WB_Invoke, - WB_GoBack, - WB_GoForward, - WB_GoHome, - WB_GoSearch, - WB_Navigate, - WB_Refresh, - WB_Refresh2, - WB_Stop, - WB_get_Application, - WB_get_Parent, - WB_get_Container, - WB_get_Document, - WB_get_TopLevelContainer, - WB_get_Type, - WB_get_Left, - WB_put_Left, - WB_get_Top, - WB_put_Top, - WB_get_Width, - WB_put_Width, - WB_get_Height, - WB_put_Height, - WB_get_LocationName, - WB_get_LocationURL, - WB_get_Busy + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_ClientToWindow(IWebBrowser2 *iface, int *pcx, int *pcy) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p %p)\n", This, pcx, pcy); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_PutProperty(IWebBrowser2 *iface, BSTR szProperty, VARIANT vtValue) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%s)\n", This, debugstr_w(szProperty)); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_GetProperty(IWebBrowser2 *iface, BSTR szProperty, VARIANT *pvtValue) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_w(szProperty), pvtValue); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_Name(IWebBrowser2 *iface, BSTR *Name) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, Name); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_HWND(IWebBrowser2 *iface, long *pHWND) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pHWND); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_FullName(IWebBrowser2 *iface, BSTR *FullName) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, FullName); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_Path(IWebBrowser2 *iface, BSTR *Path) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, Path); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_Visible(IWebBrowser2 *iface, VARIANT_BOOL *pBool) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pBool); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_Visible(IWebBrowser2 *iface, VARIANT_BOOL Value) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, Value); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_StatusBar(IWebBrowser2 *iface, VARIANT_BOOL *pBool) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pBool); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_StatusBar(IWebBrowser2 *iface, VARIANT_BOOL Value) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, Value); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_StatusText(IWebBrowser2 *iface, BSTR *StatusText) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, StatusText); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_StatusText(IWebBrowser2 *iface, BSTR StatusText) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%s)\n", This, debugstr_w(StatusText)); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_ToolBar(IWebBrowser2 *iface, int *Value) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, Value); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_ToolBar(IWebBrowser2 *iface, int Value) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%d)\n", This, Value); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_MenuBar(IWebBrowser2 *iface, VARIANT_BOOL *Value) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, Value); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_MenuBar(IWebBrowser2 *iface, VARIANT_BOOL Value) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, Value); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_FullScreen(IWebBrowser2 *iface, VARIANT_BOOL *pbFullScreen) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pbFullScreen); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_FullScreen(IWebBrowser2 *iface, VARIANT_BOOL bFullScreen) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, bFullScreen); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_Navigate2(IWebBrowser2 *iface, VARIANT *URL, VARIANT *Flags, + VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p %p %p %p %p)\n", This, URL, Flags, TargetFrameName, PostData, Headers); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_QueryStatusWB(IWebBrowser2 *iface, OLECMDID cmdID, OLECMDF *pcmdf) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%d %p)\n", This, cmdID, pcmdf); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_ExecWB(IWebBrowser2 *iface, OLECMDID cmdID, + OLECMDEXECOPT cmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%d %d %p %p)\n", This, cmdID, cmdexecopt, pvaIn, pvaOut); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_ShowBrowserBar(IWebBrowser2 *iface, VARIANT *pvaClsid, + VARIANT *pvarShow, VARIANT *pvarSize) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p %p %p)\n", This, pvaClsid, pvarShow, pvarSize); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_ReadyState(IWebBrowser2 *iface, READYSTATE *lpReadyState) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, lpReadyState); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_Offline(IWebBrowser2 *iface, VARIANT_BOOL *pbOffline) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pbOffline); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_Offline(IWebBrowser2 *iface, VARIANT_BOOL bOffline) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, bOffline); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_Silent(IWebBrowser2 *iface, VARIANT_BOOL *pbSilent) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pbSilent); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_Silent(IWebBrowser2 *iface, VARIANT_BOOL bSilent) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, bSilent); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_RegisterAsBrowser(IWebBrowser2 *iface, + VARIANT_BOOL *pbRegister) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pbRegister); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_RegisterAsBrowser(IWebBrowser2 *iface, + VARIANT_BOOL bRegister) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, bRegister); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_RegisterAsDropTarget(IWebBrowser2 *iface, + VARIANT_BOOL *pbRegister) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pbRegister); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_RegisterAsDropTarget(IWebBrowser2 *iface, + VARIANT_BOOL bRegister) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, bRegister); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_TheaterMode(IWebBrowser2 *iface, VARIANT_BOOL *pbRegister) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, pbRegister); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_TheaterMode(IWebBrowser2 *iface, VARIANT_BOOL bRegister) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, bRegister); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_AddressBar(IWebBrowser2 *iface, VARIANT_BOOL *Value) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, Value); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_AddressBar(IWebBrowser2 *iface, VARIANT_BOOL Value) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, Value); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_get_Resizable(IWebBrowser2 *iface, VARIANT_BOOL *Value) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%p)\n", This, Value); + return E_NOTIMPL; +} + +static HRESULT WINAPI WebBrowser_put_Resizable(IWebBrowser2 *iface, VARIANT_BOOL Value) +{ + WebBrowser *This = WEBBROWSER_THIS(iface); + FIXME("(%p)->(%x)\n", This, Value); + return E_NOTIMPL; +} + +#undef WEBBROWSER_THIS + +static const IWebBrowser2Vtbl WebBrowser2Vtbl = +{ + WebBrowser_QueryInterface, + WebBrowser_AddRef, + WebBrowser_Release, + WebBrowser_GetTypeInfoCount, + WebBrowser_GetTypeInfo, + WebBrowser_GetIDsOfNames, + WebBrowser_Invoke, + WebBrowser_GoBack, + WebBrowser_GoForward, + WebBrowser_GoHome, + WebBrowser_GoSearch, + WebBrowser_Navigate, + WebBrowser_Refresh, + WebBrowser_Refresh2, + WebBrowser_Stop, + WebBrowser_get_Application, + WebBrowser_get_Parent, + WebBrowser_get_Container, + WebBrowser_get_Document, + WebBrowser_get_TopLevelContainer, + WebBrowser_get_Type, + WebBrowser_get_Left, + WebBrowser_put_Left, + WebBrowser_get_Top, + WebBrowser_put_Top, + WebBrowser_get_Width, + WebBrowser_put_Width, + WebBrowser_get_Height, + WebBrowser_put_Height, + WebBrowser_get_LocationName, + WebBrowser_get_LocationURL, + WebBrowser_get_Busy, + WebBrowser_Quit, + WebBrowser_ClientToWindow, + WebBrowser_PutProperty, + WebBrowser_GetProperty, + WebBrowser_get_Name, + WebBrowser_get_HWND, + WebBrowser_get_FullName, + WebBrowser_get_Path, + WebBrowser_get_Visible, + WebBrowser_put_Visible, + WebBrowser_get_StatusBar, + WebBrowser_put_StatusBar, + WebBrowser_get_StatusText, + WebBrowser_put_StatusText, + WebBrowser_get_ToolBar, + WebBrowser_put_ToolBar, + WebBrowser_get_MenuBar, + WebBrowser_put_MenuBar, + WebBrowser_get_FullScreen, + WebBrowser_put_FullScreen, + WebBrowser_Navigate2, + WebBrowser_QueryStatusWB, + WebBrowser_ExecWB, + WebBrowser_ShowBrowserBar, + WebBrowser_get_ReadyState, + WebBrowser_get_Offline, + WebBrowser_put_Offline, + WebBrowser_get_Silent, + WebBrowser_put_Silent, + WebBrowser_get_RegisterAsBrowser, + WebBrowser_put_RegisterAsBrowser, + WebBrowser_get_RegisterAsDropTarget, + WebBrowser_put_RegisterAsDropTarget, + WebBrowser_get_TheaterMode, + WebBrowser_put_TheaterMode, + WebBrowser_get_AddressBar, + WebBrowser_put_AddressBar, + WebBrowser_get_Resizable, + WebBrowser_put_Resizable }; -IWebBrowserImpl SHDOCVW_WebBrowser = {&WB_Vtbl}; +HRESULT WebBrowser_Create(IUnknown *pOuter, REFIID riid, void **ppv) +{ + WebBrowser *ret; + HRESULT hres; + + TRACE("(%p %s %p)\n", pOuter, debugstr_guid(riid), ppv); + + ret = HeapAlloc(GetProcessHeap(), 0, sizeof(WebBrowser)); + + ret->lpWebBrowser2Vtbl = &WebBrowser2Vtbl; + ret->ref = 0; + + WebBrowser_OleObject_Init(ret); + WebBrowser_Persist_Init(ret); + WebBrowser_ClassInfo_Init(ret); + WebBrowser_Misc_Init(ret); + WebBrowser_Events_Init(ret); + + hres = IWebBrowser_QueryInterface(WEBBROWSER(ret), riid, ppv); + if(SUCCEEDED(hres)) { + SHDOCVW_LockModule(); + }else { + HeapFree(GetProcessHeap(), 0, ret); + return hres; + } + + return hres; +} diff --git a/reactos/lib/uuid/uuid.c b/reactos/lib/uuid/uuid.c index 54f05586383..634b6b2f927 100644 --- a/reactos/lib/uuid/uuid.c +++ b/reactos/lib/uuid/uuid.c @@ -89,7 +89,3 @@ DEFINE_OLEGUID(IID_StdOle,0x00020430,0,0); DEFINE_GUID(CLSID_StdFont,0x0be35203,0x8f91,0x11ce,0x9d,0xe3,0x00,0xaa,0x00,0x4b,0xb8,0x51); DEFINE_GUID(CLSID_StdPicture,0x0be35204,0x8f91,0x11ce,0x9d,0xe3,0x00,0xaa,0x00,0x4b,0xb8,0x51); - -DEFINE_GUID(IID_IWebBrowser2,0xd30c1661,0xcdaf,0x11d0,0x8a,0x3e,0x0,0xc0,0x4f,0xc9,0xe2,0x6e); -DEFINE_GUID(DIID_DWebBrowserEvents2,0x34a715a0,0x6587,0x11d0,0x92,0x4a,0x0,0x20,0xaf,0xc7,0xac,0x4d); -