Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
7b156524
Commit
7b156524
authored
Aug 30, 2009
by
Jacek Caban
Committed by
Alexandre Julliard
Aug 31, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
shdocvw: Move OnObjectAvailable implementation to dochost.c.
parent
c8e34cf2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
40 deletions
+44
-40
dochost.c
dlls/shdocvw/dochost.c
+42
-2
navigate.c
dlls/shdocvw/navigate.c
+1
-37
shdocvw.h
dlls/shdocvw/shdocvw.h
+1
-1
No files found.
dlls/shdocvw/dochost.c
View file @
7b156524
...
...
@@ -20,6 +20,7 @@
#include "shdocvw.h"
#include "hlink.h"
#include "exdispid.h"
#include "mshtml.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
shdocvw
);
...
...
@@ -73,7 +74,7 @@ static void navigate_complete(DocHost *This)
This
->
busy
=
VARIANT_FALSE
;
}
void
object_available
(
DocHost
*
This
)
static
void
object_available
(
DocHost
*
This
)
{
IHlinkTarget
*
hlink
;
HRESULT
hres
;
...
...
@@ -99,8 +100,47 @@ void object_available(DocHost *This)
}
navigate_complete
(
This
);
}
static
void
object_available_proc
(
DocHost
*
This
,
task_header_t
*
task
)
{
object_available
(
This
);
}
HRESULT
dochost_object_available
(
DocHost
*
This
,
IUnknown
*
doc
)
{
task_header_t
*
task
;
IOleObject
*
oleobj
;
HRESULT
hres
;
IUnknown_AddRef
(
doc
);
This
->
document
=
doc
;
hres
=
IUnknown_QueryInterface
(
doc
,
&
IID_IOleObject
,
(
void
**
)
&
oleobj
);
if
(
SUCCEEDED
(
hres
))
{
CLSID
clsid
;
return
;
hres
=
IOleObject_GetUserClassID
(
oleobj
,
&
clsid
);
if
(
SUCCEEDED
(
hres
))
TRACE
(
"Got clsid %s
\n
"
,
IsEqualGUID
(
&
clsid
,
&
CLSID_HTMLDocument
)
?
"CLSID_HTMLDocument"
:
debugstr_guid
(
&
clsid
));
hres
=
IOleObject_SetClientSite
(
oleobj
,
CLIENTSITE
(
This
));
if
(
FAILED
(
hres
))
FIXME
(
"SetClientSite failed: %08x
\n
"
,
hres
);
IOleObject_Release
(
oleobj
);
}
else
{
FIXME
(
"Could not get IOleObject iface: %08x
\n
"
,
hres
);
}
/* FIXME: Call SetAdvise */
/* FIXME: Call Invoke(DISPID_READYSTATE) */
task
=
heap_alloc
(
sizeof
(
*
task
));
push_dochost_task
(
This
,
task
,
object_available_proc
,
FALSE
);
return
S_OK
;
}
static
LRESULT
resize_document
(
DocHost
*
This
,
LONG
width
,
LONG
height
)
...
...
dlls/shdocvw/navigate.c
View file @
7b156524
...
...
@@ -22,7 +22,6 @@
#include "wine/debug.h"
#include "shdocvw.h"
#include "mshtml.h"
#include "exdispid.h"
#include "shellapi.h"
#include "winreg.h"
...
...
@@ -270,49 +269,14 @@ static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallback *if
return
E_NOTIMPL
;
}
static
void
object_available_proc
(
DocHost
*
This
,
task_header_t
*
task
)
{
object_available
(
This
);
}
static
HRESULT
WINAPI
BindStatusCallback_OnObjectAvailable
(
IBindStatusCallback
*
iface
,
REFIID
riid
,
IUnknown
*
punk
)
{
BindStatusCallback
*
This
=
BINDSC_THIS
(
iface
);
task_header_t
*
task
;
IOleObject
*
oleobj
;
HRESULT
hres
;
TRACE
(
"(%p)->(%s %p)
\n
"
,
This
,
debugstr_guid
(
riid
),
punk
);
IUnknown_AddRef
(
punk
);
This
->
doc_host
->
document
=
punk
;
hres
=
IUnknown_QueryInterface
(
punk
,
&
IID_IOleObject
,
(
void
**
)
&
oleobj
);
if
(
SUCCEEDED
(
hres
))
{
CLSID
clsid
;
hres
=
IOleObject_GetUserClassID
(
oleobj
,
&
clsid
);
if
(
SUCCEEDED
(
hres
))
TRACE
(
"Got clsid %s
\n
"
,
IsEqualGUID
(
&
clsid
,
&
CLSID_HTMLDocument
)
?
"CLSID_HTMLDocument"
:
debugstr_guid
(
&
clsid
));
hres
=
IOleObject_SetClientSite
(
oleobj
,
CLIENTSITE
(
This
->
doc_host
));
if
(
FAILED
(
hres
))
FIXME
(
"SetClientSite failed: %08x
\n
"
,
hres
);
IOleObject_Release
(
oleobj
);
}
else
{
FIXME
(
"Could not get IOleObject iface: %08x
\n
"
,
hres
);
}
/* FIXME: Call SetAdvise */
/* FIXME: Call Invoke(DISPID_READYSTATE) */
task
=
heap_alloc
(
sizeof
(
*
task
));
push_dochost_task
(
This
->
doc_host
,
task
,
object_available_proc
,
FALSE
);
return
S_OK
;
return
dochost_object_available
(
This
->
doc_host
,
punk
);
}
#undef BSC_THIS
...
...
dlls/shdocvw/shdocvw.h
View file @
7b156524
...
...
@@ -213,7 +213,7 @@ HRESULT WebBrowserV2_Create(IUnknown*,REFIID,void**);
void
create_doc_view_hwnd
(
DocHost
*
);
void
deactivate_document
(
DocHost
*
);
void
object_available
(
DocHost
*
);
HRESULT
dochost_object_available
(
DocHost
*
,
IUnknown
*
);
void
call_sink
(
ConnectionPoint
*
,
DISPID
,
DISPPARAMS
*
);
HRESULT
navigate_url
(
DocHost
*
,
LPCWSTR
,
const
VARIANT
*
,
const
VARIANT
*
,
VARIANT
*
,
VARIANT
*
);
HRESULT
go_home
(
DocHost
*
);
...
...
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