Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
755e2bac
Commit
755e2bac
authored
Sep 06, 2005
by
Jacek Caban
Committed by
Alexandre Julliard
Sep 06, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Make WebBrowser heap based object.
- Improve stubs.
parent
7a843c66
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
55 additions
and
45 deletions
+55
-45
factory.c
dlls/shdocvw/factory.c
+17
-26
oleobject.c
dlls/shdocvw/oleobject.c
+0
-0
shdocvw.h
dlls/shdocvw/shdocvw.h
+38
-19
webbrowser.c
dlls/shdocvw/webbrowser.c
+0
-0
No files found.
dlls/shdocvw/factory.c
View file @
755e2bac
...
...
@@ -25,7 +25,7 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
shdocvw
);
/**********************************************************************
* Implement the
I
WebBrowser 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\t
IID:
\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
;
}
...
...
dlls/shdocvw/oleobject.c
View file @
755e2bac
This diff is collapsed.
Click to expand it.
dlls/shdocvw/shdocvw.h
View file @
755e2bac
...
...
@@ -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 <stdarg.h>
#include "windef.h"
...
...
@@ -49,29 +50,21 @@ extern IClassFactoryImpl SHDOCVW_ClassFactory;
/**********************************************************************
*
IOleObject
declaration for SHDOCVW.DLL
*
WebBrowser
declaration for SHDOCVW.DLL
*/
typedef
struct
{
/* IUnknown fields */
const
IOleObjectVtbl
*
lpVtbl
;
LONG
ref
;
}
IOleObjectImpl
;
extern
IOleObjectImpl
SHDOCVW_OleObject
;
typedef
struct
{
const
IWebBrowserVtbl
*
lpWebBrowserVtbl
;
const
IOleObjectVtbl
*
lpOleObjectVtbl
;
/**********************************************************************
* IWebBrowser declaration for SHDOCVW.DLL
*/
typedef
struct
{
/* IUnknown fields */
const
IWebBrowserVtbl
*
lpVtbl
;
LONG
ref
;
}
IWebBrowserImpl
;
}
WebBrowser
;
#define WEBBROWSER(x) ((IWebBrowser*) &(x)->lpWebBrowserVtbl)
#define OLEOBJ(x) ((IOleObject*) &(x)->lpOleObjectVtbl)
extern
IWebBrowserImpl
SHDOCVW_WebBrowser
;
void
WebBrowser_OleObject_Init
(
WebBrowser
*
)
;
HRESULT
WebBrowser_Create
(
IUnknown
*
,
REFIID
,
void
**
);
/**********************************************************************
* IProvideClassInfo declaration for SHDOCVW.DLL
...
...
@@ -162,6 +155,32 @@ typedef struct
}
IConnectionPointImpl
;
/**********************************************************************
* IOleInPlaceObject declaration for SHDOCVW.DLL
*/
typedef
struct
{
/* IUnknown fields */
const
IOleInPlaceObjectVtbl
*
lpVtbl
;
DWORD
ref
;
}
IOleInPlaceObjectImpl
;
extern
IOleInPlaceObjectImpl
SHDOCVW_OleInPlaceObject
;
/**********************************************************************
* IOleControl declaration for SHDOCVW.DLL
*/
typedef
struct
{
/* IUnknown fields */
const
IOleControlVtbl
*
lpVtbl
;
DWORD
ref
;
}
IOleControlImpl
;
extern
IOleControlImpl
SHDOCVW_OleControl
;
#define DEFINE_THIS(cls,ifc,iface) ((cls*)((BYTE*)(iface)-offsetof(cls,lp ## ifc ## Vtbl)))
/**********************************************************************
* Dll lifetime tracking declaration for shdocvw.dll
*/
extern
LONG
SHDOCVW_refCount
;
...
...
dlls/shdocvw/webbrowser.c
View file @
755e2bac
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment