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
da4a45cd
Commit
da4a45cd
authored
Oct 17, 2022
by
Gabriel Ivăncescu
Committed by
Alexandre Julliard
Oct 19, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mshtml: Move the OleObj interfaces out of basedoc.
Signed-off-by:
Gabriel Ivăncescu
<
gabrielopcode@gmail.com
>
parent
6c706e02
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1097 additions
and
428 deletions
+1097
-428
editor.c
dlls/mshtml/editor.c
+2
-2
htmldoc.c
dlls/mshtml/htmldoc.c
+44
-24
mshtml_private.h
dlls/mshtml/mshtml_private.h
+18
-10
oleobj.c
dlls/mshtml/oleobj.c
+1025
-383
persist.c
dlls/mshtml/persist.c
+3
-3
pluginhost.c
dlls/mshtml/pluginhost.c
+1
-1
view.c
dlls/mshtml/view.c
+4
-5
No files found.
dlls/mshtml/editor.c
View file @
da4a45cd
...
...
@@ -1266,11 +1266,11 @@ HRESULT setup_edit_mode(HTMLDocumentObj *doc)
if
(
doc
->
hostui
)
IDocHostUIHandler_ShowUI
(
doc
->
hostui
,
DOCHOSTUITYPE_AUTHOR
,
&
doc
->
basedoc
.
IOleInPlaceActiveObject_iface
,
&
doc
->
IOleCommandTarget_iface
,
&
doc
->
IOleInPlaceActiveObject_iface
,
&
doc
->
IOleCommandTarget_iface
,
doc
->
frame
,
doc
->
ip_window
);
if
(
doc
->
ip_window
)
call_set_active_object
(
doc
->
ip_window
,
&
doc
->
basedoc
.
IOleInPlaceActiveObject_iface
);
call_set_active_object
(
doc
->
ip_window
,
&
doc
->
IOleInPlaceActiveObject_iface
);
SetRectEmpty
(
&
rcBorderWidths
);
if
(
doc
->
frame
)
...
...
dlls/mshtml/htmldoc.c
View file @
da4a45cd
...
...
@@ -5613,30 +5613,10 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
*
ppv
=
&
This
->
IDocumentSelector_iface
;
else
if
(
IsEqualGUID
(
&
IID_IDocumentEvent
,
riid
))
*
ppv
=
&
This
->
IDocumentEvent_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleObject
,
riid
))
*
ppv
=
&
This
->
IOleObject_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleDocument
,
riid
))
*
ppv
=
&
This
->
IOleDocument_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleInPlaceActiveObject
,
riid
))
*
ppv
=
&
This
->
IOleInPlaceActiveObject_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleWindow
,
riid
))
*
ppv
=
&
This
->
IOleInPlaceActiveObject_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleInPlaceObject
,
riid
))
*
ppv
=
&
This
->
IOleInPlaceObjectWindowless_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleInPlaceObjectWindowless
,
riid
))
*
ppv
=
&
This
->
IOleInPlaceObjectWindowless_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleControl
,
riid
))
*
ppv
=
&
This
->
IOleControl_iface
;
else
if
(
IsEqualGUID
(
&
DIID_DispHTMLDocument
,
riid
))
*
ppv
=
&
This
->
IHTMLDocument2_iface
;
else
if
(
IsEqualGUID
(
&
IID_ISupportErrorInfo
,
riid
))
*
ppv
=
&
This
->
ISupportErrorInfo_iface
;
else
if
(
IsEqualGUID
(
&
IID_IObjectWithSite
,
riid
))
*
ppv
=
&
This
->
IObjectWithSite_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleContainer
,
riid
))
*
ppv
=
&
This
->
IOleContainer_iface
;
else
if
(
IsEqualGUID
(
&
IID_IObjectSafety
,
riid
))
*
ppv
=
&
This
->
IObjectSafety_iface
;
else
if
(
IsEqualGUID
(
&
IID_IProvideClassInfo
,
riid
))
*
ppv
=
&
This
->
IProvideMultipleClassInfo_iface
;
else
if
(
IsEqualGUID
(
&
IID_IProvideClassInfo2
,
riid
))
...
...
@@ -5706,8 +5686,6 @@ static void init_doc(HTMLDocument *doc, IUnknown *outer, IDispatchEx *dispex)
doc
->
outer_unk
=
outer
;
doc
->
dispex
=
dispex
;
HTMLDocument_OleObj_Init
(
doc
);
}
static
inline
HTMLDocumentNode
*
impl_from_HTMLDOMNode
(
HTMLDOMNode
*
iface
)
...
...
@@ -5742,6 +5720,26 @@ static HRESULT HTMLDocumentNode_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
*
ppv
=
&
This
->
IHlinkTarget_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleCommandTarget
,
riid
))
*
ppv
=
&
This
->
IOleCommandTarget_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleObject
,
riid
))
*
ppv
=
&
This
->
IOleObject_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleDocument
,
riid
))
*
ppv
=
&
This
->
IOleDocument_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleInPlaceActiveObject
,
riid
))
*
ppv
=
&
This
->
IOleInPlaceActiveObject_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleWindow
,
riid
))
*
ppv
=
&
This
->
IOleInPlaceActiveObject_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleInPlaceObject
,
riid
))
*
ppv
=
&
This
->
IOleInPlaceObjectWindowless_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleInPlaceObjectWindowless
,
riid
))
*
ppv
=
&
This
->
IOleInPlaceObjectWindowless_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleControl
,
riid
))
*
ppv
=
&
This
->
IOleControl_iface
;
else
if
(
IsEqualGUID
(
&
IID_IObjectWithSite
,
riid
))
*
ppv
=
&
This
->
IObjectWithSite_iface
;
else
if
(
IsEqualGUID
(
&
IID_IOleContainer
,
riid
))
*
ppv
=
&
This
->
IOleContainer_iface
;
else
if
(
IsEqualGUID
(
&
IID_IObjectSafety
,
riid
))
*
ppv
=
&
This
->
IObjectSafety_iface
;
else
if
(
IsEqualGUID
(
&
IID_IServiceProvider
,
riid
))
*
ppv
=
&
This
->
IServiceProvider_iface
;
else
if
(
IsEqualGUID
(
&
IID_IConnectionPointContainer
,
riid
))
...
...
@@ -6136,6 +6134,7 @@ static HTMLDocumentNode *alloc_doc_node(HTMLDocumentObj *doc_obj, HTMLInnerWindo
HTMLDocumentNode_Persist_Init
(
doc
);
HTMLDocumentNode_Service_Init
(
doc
);
HTMLDocumentNode_OleCmd_Init
(
doc
);
HTMLDocumentNode_OleObj_Init
(
doc
);
HTMLDocumentNode_SecMgr_Init
(
doc
);
list_init
(
&
doc
->
selection_list
);
...
...
@@ -6270,6 +6269,26 @@ static HRESULT WINAPI HTMLDocumentObj_QueryInterface(IUnknown *iface, REFIID rii
*
ppv
=
&
This
->
IHlinkTarget_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IOleCommandTarget
,
riid
))
{
*
ppv
=
&
This
->
IOleCommandTarget_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IOleObject
,
riid
))
{
*
ppv
=
&
This
->
IOleObject_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IOleDocument
,
riid
))
{
*
ppv
=
&
This
->
IOleDocument_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IOleInPlaceActiveObject
,
riid
))
{
*
ppv
=
&
This
->
IOleInPlaceActiveObject_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IOleWindow
,
riid
))
{
*
ppv
=
&
This
->
IOleInPlaceActiveObject_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IOleInPlaceObject
,
riid
))
{
*
ppv
=
&
This
->
IOleInPlaceObjectWindowless_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IOleInPlaceObjectWindowless
,
riid
))
{
*
ppv
=
&
This
->
IOleInPlaceObjectWindowless_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IOleControl
,
riid
))
{
*
ppv
=
&
This
->
IOleControl_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IObjectWithSite
,
riid
))
{
*
ppv
=
&
This
->
IObjectWithSite_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IOleContainer
,
riid
))
{
*
ppv
=
&
This
->
IOleContainer_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IObjectSafety
,
riid
))
{
*
ppv
=
&
This
->
IObjectSafety_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_IServiceProvider
,
riid
))
{
*
ppv
=
&
This
->
IServiceProvider_iface
;
}
else
if
(
IsEqualGUID
(
&
IID_ITargetContainer
,
riid
))
{
...
...
@@ -6318,11 +6337,11 @@ static ULONG WINAPI HTMLDocumentObj_Release(IUnknown *iface)
if
(
This
->
view_sink
)
IAdviseSink_Release
(
This
->
view_sink
);
if
(
This
->
client
)
IOleObject_SetClientSite
(
&
This
->
basedoc
.
IOleObject_iface
,
NULL
);
IOleObject_SetClientSite
(
&
This
->
IOleObject_iface
,
NULL
);
if
(
This
->
hostui
)
ICustomDoc_SetUIHandler
(
&
This
->
ICustomDoc_iface
,
NULL
);
if
(
This
->
in_place_active
)
IOleInPlaceObjectWindowless_InPlaceDeactivate
(
&
This
->
basedoc
.
IOleInPlaceObjectWindowless_iface
);
IOleInPlaceObjectWindowless_InPlaceDeactivate
(
&
This
->
IOleInPlaceObjectWindowless_iface
);
if
(
This
->
ipsite
)
IOleDocumentView_SetInPlaceSite
(
&
This
->
IOleDocumentView_iface
,
NULL
);
if
(
This
->
undomgr
)
...
...
@@ -6501,6 +6520,7 @@ static HRESULT create_document_object(BOOL is_mhtml, IUnknown *outer, REFIID rii
HTMLDocumentObj_Persist_Init
(
doc
);
HTMLDocumentObj_Service_Init
(
doc
);
HTMLDocumentObj_OleCmd_Init
(
doc
);
HTMLDocumentObj_OleObj_Init
(
doc
);
TargetContainer_Init
(
doc
);
doc
->
is_mhtml
=
is_mhtml
;
...
...
dlls/mshtml/mshtml_private.h
View file @
da4a45cd
...
...
@@ -648,16 +648,8 @@ struct HTMLDocument {
IHTMLDocument7
IHTMLDocument7_iface
;
IDocumentSelector
IDocumentSelector_iface
;
IDocumentEvent
IDocumentEvent_iface
;
IOleObject
IOleObject_iface
;
IOleDocument
IOleDocument_iface
;
IOleInPlaceActiveObject
IOleInPlaceActiveObject_iface
;
IOleInPlaceObjectWindowless
IOleInPlaceObjectWindowless_iface
;
IOleControl
IOleControl_iface
;
IDispatchEx
IDispatchEx_iface
;
ISupportErrorInfo
ISupportErrorInfo_iface
;
IObjectWithSite
IObjectWithSite_iface
;
IOleContainer
IOleContainer_iface
;
IObjectSafety
IObjectSafety_iface
;
IProvideMultipleClassInfo
IProvideMultipleClassInfo_iface
;
IMarkupServices
IMarkupServices_iface
;
IMarkupContainer
IMarkupContainer_iface
;
...
...
@@ -702,6 +694,14 @@ struct HTMLDocumentObj {
IPersistHistory
IPersistHistory_iface
;
IHlinkTarget
IHlinkTarget_iface
;
IOleCommandTarget
IOleCommandTarget_iface
;
IOleObject
IOleObject_iface
;
IOleDocument
IOleDocument_iface
;
IOleControl
IOleControl_iface
;
IOleInPlaceActiveObject
IOleInPlaceActiveObject_iface
;
IOleInPlaceObjectWindowless
IOleInPlaceObjectWindowless_iface
;
IObjectWithSite
IObjectWithSite_iface
;
IOleContainer
IOleContainer_iface
;
IObjectSafety
IObjectSafety_iface
;
IServiceProvider
IServiceProvider_iface
;
ITargetContainer
ITargetContainer_iface
;
...
...
@@ -903,6 +903,14 @@ struct HTMLDocumentNode {
IPersistHistory
IPersistHistory_iface
;
IHlinkTarget
IHlinkTarget_iface
;
IOleCommandTarget
IOleCommandTarget_iface
;
IOleObject
IOleObject_iface
;
IOleDocument
IOleDocument_iface
;
IOleControl
IOleControl_iface
;
IOleInPlaceActiveObject
IOleInPlaceActiveObject_iface
;
IOleInPlaceObjectWindowless
IOleInPlaceObjectWindowless_iface
;
IObjectWithSite
IObjectWithSite_iface
;
IOleContainer
IOleContainer_iface
;
IObjectSafety
IObjectSafety_iface
;
IServiceProvider
IServiceProvider_iface
;
IInternetHostSecurityManager
IInternetHostSecurityManager_iface
;
...
...
@@ -970,17 +978,17 @@ void detach_dom_implementation(IHTMLDOMImplementation*) DECLSPEC_HIDDEN;
HRESULT
create_html_storage
(
HTMLInnerWindow
*
,
BOOL
,
IHTMLStorage
**
)
DECLSPEC_HIDDEN
;
void
detach_html_storage
(
IHTMLStorage
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocument_OleObj_Init
(
HTMLDocument
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocument_View_Init
(
HTMLDocumentObj
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocumentObj_Persist_Init
(
HTMLDocumentObj
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocumentObj_Service_Init
(
HTMLDocumentObj
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocumentObj_OleCmd_Init
(
HTMLDocumentObj
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocumentObj_OleObj_Init
(
HTMLDocumentObj
*
)
DECLSPEC_HIDDEN
;
void
TargetContainer_Init
(
HTMLDocumentObj
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocumentNode_Persist_Init
(
HTMLDocumentNode
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocumentNode_Service_Init
(
HTMLDocumentNode
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocumentNode_OleCmd_Init
(
HTMLDocumentNode
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocumentNode_OleObj_Init
(
HTMLDocumentNode
*
)
DECLSPEC_HIDDEN
;
void
HTMLDocumentNode_SecMgr_Init
(
HTMLDocumentNode
*
)
DECLSPEC_HIDDEN
;
HRESULT
HTMLCurrentStyle_Create
(
HTMLElement
*
,
IHTMLCurrentStyle
**
)
DECLSPEC_HIDDEN
;
...
...
dlls/mshtml/oleobj.c
View file @
da4a45cd
...
...
@@ -138,27 +138,216 @@ static const IEnumUnknownVtbl EnumUnknownVtbl = {
* IOleObject implementation
*/
static
inline
HTMLDocument
*
impl
_from_IOleObject
(
IOleObject
*
iface
)
static
inline
HTMLDocument
Node
*
HTMLDocumentNode
_from_IOleObject
(
IOleObject
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
,
IOleObject_iface
);
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
Node
,
IOleObject_iface
);
}
static
HRESULT
WINAPI
OleObject_QueryInterface
(
IOleObject
*
iface
,
REFIID
riid
,
void
**
ppv
)
static
HRESULT
WINAPI
DocNode
OleObject_QueryInterface
(
IOleObject
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
return
htmldoc_query_interface
(
This
,
riid
,
ppv
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleObject
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
OleObject_AddRef
(
IOleObject
*
iface
)
static
ULONG
WINAPI
DocNode
OleObject_AddRef
(
IOleObject
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
return
htmldoc_addref
(
This
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleObject
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
OleObject_Release
(
IOleObject
*
iface
)
static
ULONG
WINAPI
DocNode
OleObject_Release
(
IOleObject
*
iface
)
{
HTMLDocument
*
This
=
impl_from_IOleObject
(
iface
);
return
htmldoc_release
(
This
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
DocNodeOleObject_SetClientSite
(
IOleObject
*
iface
,
IOleClientSite
*
pClientSite
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
IOleObject_SetClientSite
(
&
This
->
basedoc
.
doc_obj
->
IOleObject_iface
,
pClientSite
);
}
static
HRESULT
WINAPI
DocNodeOleObject_GetClientSite
(
IOleObject
*
iface
,
IOleClientSite
**
ppClientSite
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
IOleObject_GetClientSite
(
&
This
->
basedoc
.
doc_obj
->
IOleObject_iface
,
ppClientSite
);
}
static
HRESULT
WINAPI
DocNodeOleObject_SetHostNames
(
IOleObject
*
iface
,
LPCOLESTR
szContainerApp
,
LPCOLESTR
szContainerObj
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%s %s)
\n
"
,
This
,
debugstr_w
(
szContainerApp
),
debugstr_w
(
szContainerObj
));
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleObject_Close
(
IOleObject
*
iface
,
DWORD
dwSaveOption
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
IOleObject_Close
(
&
This
->
basedoc
.
doc_obj
->
IOleObject_iface
,
dwSaveOption
);
}
static
HRESULT
WINAPI
DocNodeOleObject_SetMoniker
(
IOleObject
*
iface
,
DWORD
dwWhichMoniker
,
IMoniker
*
pmk
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p %ld %p)->()
\n
"
,
This
,
dwWhichMoniker
,
pmk
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleObject_GetMoniker
(
IOleObject
*
iface
,
DWORD
dwAssign
,
DWORD
dwWhichMoniker
,
IMoniker
**
ppmk
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%ld %ld %p)
\n
"
,
This
,
dwAssign
,
dwWhichMoniker
,
ppmk
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleObject_InitFromData
(
IOleObject
*
iface
,
IDataObject
*
pDataObject
,
BOOL
fCreation
,
DWORD
dwReserved
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%p %x %ld)
\n
"
,
This
,
pDataObject
,
fCreation
,
dwReserved
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleObject_GetClipboardData
(
IOleObject
*
iface
,
DWORD
dwReserved
,
IDataObject
**
ppDataObject
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%ld %p)
\n
"
,
This
,
dwReserved
,
ppDataObject
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleObject_DoVerb
(
IOleObject
*
iface
,
LONG
iVerb
,
LPMSG
lpmsg
,
IOleClientSite
*
pActiveSite
,
LONG
lindex
,
HWND
hwndParent
,
LPCRECT
lprcPosRect
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
IOleObject_DoVerb
(
&
This
->
basedoc
.
doc_obj
->
IOleObject_iface
,
iVerb
,
lpmsg
,
pActiveSite
,
lindex
,
hwndParent
,
lprcPosRect
);
}
static
HRESULT
WINAPI
DocNodeOleObject_EnumVerbs
(
IOleObject
*
iface
,
IEnumOLEVERB
**
ppEnumOleVerb
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
ppEnumOleVerb
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleObject_Update
(
IOleObject
*
iface
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleObject_IsUpToDate
(
IOleObject
*
iface
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleObject_GetUserClassID
(
IOleObject
*
iface
,
CLSID
*
pClsid
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
IOleObject_GetUserClassID
(
&
This
->
basedoc
.
doc_obj
->
IOleObject_iface
,
pClsid
);
}
static
HRESULT
WINAPI
DocNodeOleObject_GetUserType
(
IOleObject
*
iface
,
DWORD
dwFormOfType
,
LPOLESTR
*
pszUserType
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%ld %p)
\n
"
,
This
,
dwFormOfType
,
pszUserType
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleObject_SetExtent
(
IOleObject
*
iface
,
DWORD
dwDrawAspect
,
SIZEL
*
psizel
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
IOleObject_SetExtent
(
&
This
->
basedoc
.
doc_obj
->
IOleObject_iface
,
dwDrawAspect
,
psizel
);
}
static
HRESULT
WINAPI
DocNodeOleObject_GetExtent
(
IOleObject
*
iface
,
DWORD
dwDrawAspect
,
SIZEL
*
psizel
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
IOleObject_GetExtent
(
&
This
->
basedoc
.
doc_obj
->
IOleObject_iface
,
dwDrawAspect
,
psizel
);
}
static
HRESULT
WINAPI
DocNodeOleObject_Advise
(
IOleObject
*
iface
,
IAdviseSink
*
pAdvSink
,
DWORD
*
pdwConnection
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
IOleObject_Advise
(
&
This
->
basedoc
.
doc_obj
->
IOleObject_iface
,
pAdvSink
,
pdwConnection
);
}
static
HRESULT
WINAPI
DocNodeOleObject_Unadvise
(
IOleObject
*
iface
,
DWORD
dwConnection
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
IOleObject_Unadvise
(
&
This
->
basedoc
.
doc_obj
->
IOleObject_iface
,
dwConnection
);
}
static
HRESULT
WINAPI
DocNodeOleObject_EnumAdvise
(
IOleObject
*
iface
,
IEnumSTATDATA
**
ppenumAdvise
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
return
IOleObject_EnumAdvise
(
&
This
->
basedoc
.
doc_obj
->
IOleObject_iface
,
ppenumAdvise
);
}
static
HRESULT
WINAPI
DocNodeOleObject_GetMiscStatus
(
IOleObject
*
iface
,
DWORD
dwAspect
,
DWORD
*
pdwStatus
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%ld %p)
\n
"
,
This
,
dwAspect
,
pdwStatus
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleObject_SetColorScheme
(
IOleObject
*
iface
,
LOGPALETTE
*
pLogpal
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
pLogpal
);
return
E_NOTIMPL
;
}
static
const
IOleObjectVtbl
DocNodeOleObjectVtbl
=
{
DocNodeOleObject_QueryInterface
,
DocNodeOleObject_AddRef
,
DocNodeOleObject_Release
,
DocNodeOleObject_SetClientSite
,
DocNodeOleObject_GetClientSite
,
DocNodeOleObject_SetHostNames
,
DocNodeOleObject_Close
,
DocNodeOleObject_SetMoniker
,
DocNodeOleObject_GetMoniker
,
DocNodeOleObject_InitFromData
,
DocNodeOleObject_GetClipboardData
,
DocNodeOleObject_DoVerb
,
DocNodeOleObject_EnumVerbs
,
DocNodeOleObject_Update
,
DocNodeOleObject_IsUpToDate
,
DocNodeOleObject_GetUserClassID
,
DocNodeOleObject_GetUserType
,
DocNodeOleObject_SetExtent
,
DocNodeOleObject_GetExtent
,
DocNodeOleObject_Advise
,
DocNodeOleObject_Unadvise
,
DocNodeOleObject_EnumAdvise
,
DocNodeOleObject_GetMiscStatus
,
DocNodeOleObject_SetColorScheme
};
static
inline
HTMLDocumentObj
*
HTMLDocumentObj_from_IOleObject
(
IOleObject
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentObj
,
IOleObject_iface
);
}
static
HRESULT
WINAPI
DocObjOleObject_QueryInterface
(
IOleObject
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleObject
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
DocObjOleObject_AddRef
(
IOleObject
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleObject
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
DocObjOleObject_Release
(
IOleObject
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleObject
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
void
update_hostinfo
(
HTMLDocumentObj
*
This
,
DOCHOSTUIINFO
*
hostinfo
)
...
...
@@ -241,12 +430,12 @@ static void load_settings(HTMLDocumentObj *doc)
set_viewer_zoom
(
doc
->
nscontainer
,
(
float
)
val
/
100000
);
}
static
HRESULT
WINAPI
OleObject_SetClientSite
(
IOleObject
*
iface
,
IOleClientSite
*
pClientSite
)
static
HRESULT
WINAPI
DocObj
OleObject_SetClientSite
(
IOleObject
*
iface
,
IOleClientSite
*
pClientSite
)
{
HTMLDocument
*
This
=
impl_from_IOleObject
(
iface
);
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleObject
(
iface
);
IBrowserService
*
browser_service
;
IOleCommandTarget
*
cmdtrg
=
NULL
;
IOleWindow
*
ole_window
;
IBrowserService
*
browser_service
;
BOOL
hostui_setup
;
VARIANT
silent
;
HWND
hwnd
;
...
...
@@ -254,83 +443,83 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
pClientSite
);
if
(
pClientSite
==
This
->
doc_obj
->
client
)
if
(
pClientSite
==
This
->
client
)
return
S_OK
;
if
(
This
->
doc_obj
->
client
)
{
IOleClientSite_Release
(
This
->
doc_obj
->
client
);
This
->
doc_obj
->
client
=
NULL
;
This
->
doc_obj
->
nscontainer
->
usermode
=
UNKNOWN_USERMODE
;
if
(
This
->
client
)
{
IOleClientSite_Release
(
This
->
client
);
This
->
client
=
NULL
;
This
->
nscontainer
->
usermode
=
UNKNOWN_USERMODE
;
}
if
(
This
->
doc_obj
->
client_cmdtrg
)
{
IOleCommandTarget_Release
(
This
->
doc_obj
->
client_cmdtrg
);
This
->
doc_obj
->
client_cmdtrg
=
NULL
;
if
(
This
->
client_cmdtrg
)
{
IOleCommandTarget_Release
(
This
->
client_cmdtrg
);
This
->
client_cmdtrg
=
NULL
;
}
if
(
This
->
doc_obj
->
hostui
&&
!
This
->
doc_obj
->
custom_hostui
)
{
IDocHostUIHandler_Release
(
This
->
doc_obj
->
hostui
);
This
->
doc_obj
->
hostui
=
NULL
;
if
(
This
->
hostui
&&
!
This
->
custom_hostui
)
{
IDocHostUIHandler_Release
(
This
->
hostui
);
This
->
hostui
=
NULL
;
}
if
(
This
->
doc_obj
->
doc_obj
ect_service
)
{
IDocObjectService_Release
(
This
->
doc_obj
->
doc_obj
ect_service
);
This
->
doc_obj
->
doc_obj
ect_service
=
NULL
;
if
(
This
->
doc_object_service
)
{
IDocObjectService_Release
(
This
->
doc_object_service
);
This
->
doc_object_service
=
NULL
;
}
if
(
This
->
doc_obj
->
webbrowser
)
{
IUnknown_Release
(
This
->
doc_obj
->
webbrowser
);
This
->
doc_obj
->
webbrowser
=
NULL
;
if
(
This
->
webbrowser
)
{
IUnknown_Release
(
This
->
webbrowser
);
This
->
webbrowser
=
NULL
;
}
if
(
This
->
doc_obj
->
browser_service
)
{
IUnknown_Release
(
This
->
doc_obj
->
browser_service
);
This
->
doc_obj
->
browser_service
=
NULL
;
if
(
This
->
browser_service
)
{
IUnknown_Release
(
This
->
browser_service
);
This
->
browser_service
=
NULL
;
}
if
(
This
->
doc_obj
->
travel_log
)
{
ITravelLog_Release
(
This
->
doc_obj
->
travel_log
);
This
->
doc_obj
->
travel_log
=
NULL
;
if
(
This
->
travel_log
)
{
ITravelLog_Release
(
This
->
travel_log
);
This
->
travel_log
=
NULL
;
}
memset
(
&
This
->
doc_obj
->
hostinfo
,
0
,
sizeof
(
DOCHOSTUIINFO
));
memset
(
&
This
->
hostinfo
,
0
,
sizeof
(
DOCHOSTUIINFO
));
if
(
!
pClientSite
)
return
S_OK
;
IOleClientSite_AddRef
(
pClientSite
);
This
->
doc_obj
->
client
=
pClientSite
;
This
->
client
=
pClientSite
;
hostui_setup
=
This
->
doc_obj
->
hostui_setup
;
hostui_setup
=
This
->
hostui_setup
;
if
(
!
This
->
doc_obj
->
hostui
)
{
if
(
!
This
->
hostui
)
{
IDocHostUIHandler
*
uihandler
;
This
->
doc_obj
->
custom_hostui
=
FALSE
;
This
->
custom_hostui
=
FALSE
;
hres
=
IOleClientSite_QueryInterface
(
pClientSite
,
&
IID_IDocHostUIHandler
,
(
void
**
)
&
uihandler
);
if
(
SUCCEEDED
(
hres
))
This
->
doc_obj
->
hostui
=
uihandler
;
This
->
hostui
=
uihandler
;
}
if
(
This
->
doc_obj
->
hostui
)
{
if
(
This
->
hostui
)
{
DOCHOSTUIINFO
hostinfo
;
LPOLESTR
key_path
=
NULL
,
override_key_path
=
NULL
;
IDocHostUIHandler2
*
uihandler2
;
memset
(
&
hostinfo
,
0
,
sizeof
(
DOCHOSTUIINFO
));
hostinfo
.
cbSize
=
sizeof
(
DOCHOSTUIINFO
);
hres
=
IDocHostUIHandler_GetHostInfo
(
This
->
doc_obj
->
hostui
,
&
hostinfo
);
hres
=
IDocHostUIHandler_GetHostInfo
(
This
->
hostui
,
&
hostinfo
);
if
(
SUCCEEDED
(
hres
))
{
TRACE
(
"hostinfo = {%lu %08lx %08lx %s %s}
\n
"
,
hostinfo
.
cbSize
,
hostinfo
.
dwFlags
,
hostinfo
.
dwDoubleClick
,
debugstr_w
(
hostinfo
.
pchHostCss
),
debugstr_w
(
hostinfo
.
pchHostNS
));
update_hostinfo
(
This
->
doc_obj
,
&
hostinfo
);
This
->
doc_obj
->
hostinfo
=
hostinfo
;
update_hostinfo
(
This
,
&
hostinfo
);
This
->
hostinfo
=
hostinfo
;
}
if
(
!
hostui_setup
)
{
hres
=
IDocHostUIHandler_GetOptionKeyPath
(
This
->
doc_obj
->
hostui
,
&
key_path
,
0
);
hres
=
IDocHostUIHandler_GetOptionKeyPath
(
This
->
hostui
,
&
key_path
,
0
);
if
(
hres
==
S_OK
&&
key_path
)
{
if
(
key_path
[
0
])
{
/* FIXME: use key_path */
...
...
@@ -339,7 +528,7 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
CoTaskMemFree
(
key_path
);
}
hres
=
IDocHostUIHandler_QueryInterface
(
This
->
doc_obj
->
hostui
,
&
IID_IDocHostUIHandler2
,
hres
=
IDocHostUIHandler_QueryInterface
(
This
->
hostui
,
&
IID_IDocHostUIHandler2
,
(
void
**
)
&
uihandler2
);
if
(
SUCCEEDED
(
hres
))
{
hres
=
IDocHostUIHandler2_GetOverrideKeyPath
(
uihandler2
,
&
override_key_path
,
0
);
...
...
@@ -353,11 +542,11 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
IDocHostUIHandler2_Release
(
uihandler2
);
}
This
->
doc_obj
->
hostui_setup
=
TRUE
;
This
->
hostui_setup
=
TRUE
;
}
}
load_settings
(
This
->
doc_obj
);
load_settings
(
This
);
/* Native calls here GetWindow. What is it for?
* We don't have anything to do with it here (yet). */
...
...
@@ -372,11 +561,11 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
if
(
SUCCEEDED
(
hres
))
{
ITravelLog
*
travel_log
;
This
->
doc_obj
->
browser_service
=
(
IUnknown
*
)
browser_service
;
This
->
browser_service
=
(
IUnknown
*
)
browser_service
;
hres
=
IBrowserService_GetTravelLog
(
browser_service
,
&
travel_log
);
if
(
SUCCEEDED
(
hres
))
This
->
doc_obj
->
travel_log
=
travel_log
;
This
->
travel_log
=
travel_log
;
}
else
{
browser_service
=
NULL
;
}
...
...
@@ -386,19 +575,19 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
VARIANT
var
;
OLECMD
cmd
=
{
OLECMDID_SETPROGRESSTEXT
,
0
};
This
->
doc_obj
->
client_cmdtrg
=
cmdtrg
;
This
->
client_cmdtrg
=
cmdtrg
;
if
(
!
hostui_setup
)
{
IDocObjectService
*
doc_object_service
;
IWebBrowser2
*
wb
;
set_document_navigation
(
This
->
doc_obj
,
TRUE
);
set_document_navigation
(
This
,
TRUE
);
if
(
browser_service
)
{
hres
=
IBrowserService_QueryInterface
(
browser_service
,
&
IID_IDocObjectService
,
(
void
**
)
&
doc_object_service
);
if
(
SUCCEEDED
(
hres
))
{
This
->
doc_obj
->
doc_obj
ect_service
=
doc_object_service
;
This
->
doc_object_service
=
doc_object_service
;
/*
* Some embedding routines, esp. in regards to use of IDocObjectService, differ if
...
...
@@ -406,12 +595,12 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
*/
hres
=
do_query_service
((
IUnknown
*
)
pClientSite
,
&
IID_IWebBrowserApp
,
&
IID_IWebBrowser2
,
(
void
**
)
&
wb
);
if
(
SUCCEEDED
(
hres
))
This
->
doc_obj
->
webbrowser
=
(
IUnknown
*
)
wb
;
This
->
webbrowser
=
(
IUnknown
*
)
wb
;
}
}
}
call_docview_84
(
This
->
doc_obj
);
call_docview_84
(
This
);
IOleCommandTarget_QueryStatus
(
cmdtrg
,
NULL
,
1
,
&
cmd
,
NULL
);
...
...
@@ -423,13 +612,13 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
OLECMDEXECOPT_DONTPROMPTUSER
,
&
var
,
NULL
);
}
if
(
This
->
doc_obj
->
nscontainer
->
usermode
==
UNKNOWN_USERMODE
)
if
(
This
->
nscontainer
->
usermode
==
UNKNOWN_USERMODE
)
IOleControl_OnAmbientPropertyChange
(
&
This
->
IOleControl_iface
,
DISPID_AMBIENT_USERMODE
);
IOleControl_OnAmbientPropertyChange
(
&
This
->
IOleControl_iface
,
DISPID_AMBIENT_OFFLINEIFNOTCONNECTED
);
hres
=
get_client_disp_property
(
This
->
doc_obj
->
client
,
DISPID_AMBIENT_SILENT
,
&
silent
);
hres
=
get_client_disp_property
(
This
->
client
,
DISPID_AMBIENT_SILENT
,
&
silent
);
if
(
SUCCEEDED
(
hres
))
{
if
(
V_VT
(
&
silent
)
!=
VT_BOOL
)
WARN
(
"silent = %s
\n
"
,
debugstr_variant
(
&
silent
));
...
...
@@ -443,82 +632,82 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
return
S_OK
;
}
static
HRESULT
WINAPI
OleObject_GetClientSite
(
IOleObject
*
iface
,
IOleClientSite
**
ppClientSite
)
static
HRESULT
WINAPI
DocObj
OleObject_GetClientSite
(
IOleObject
*
iface
,
IOleClientSite
**
ppClientSite
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
ppClientSite
);
if
(
!
ppClientSite
)
return
E_INVALIDARG
;
if
(
This
->
doc_obj
->
client
)
IOleClientSite_AddRef
(
This
->
doc_obj
->
client
);
*
ppClientSite
=
This
->
doc_obj
->
client
;
if
(
This
->
client
)
IOleClientSite_AddRef
(
This
->
client
);
*
ppClientSite
=
This
->
client
;
return
S_OK
;
}
static
HRESULT
WINAPI
OleObject_SetHostNames
(
IOleObject
*
iface
,
LPCOLESTR
szContainerApp
,
LPCOLESTR
szContainerObj
)
static
HRESULT
WINAPI
DocObj
OleObject_SetHostNames
(
IOleObject
*
iface
,
LPCOLESTR
szContainerApp
,
LPCOLESTR
szContainerObj
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%s %s)
\n
"
,
This
,
debugstr_w
(
szContainerApp
),
debugstr_w
(
szContainerObj
));
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleObject_Close
(
IOleObject
*
iface
,
DWORD
dwSaveOption
)
static
HRESULT
WINAPI
DocObj
OleObject_Close
(
IOleObject
*
iface
,
DWORD
dwSaveOption
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
TRACE
(
"(%p)->(%08lx)
\n
"
,
This
,
dwSaveOption
);
if
(
dwSaveOption
==
OLECLOSE_PROMPTSAVE
)
FIXME
(
"OLECLOSE_PROMPTSAVE not implemented
\n
"
);
if
(
This
->
doc_obj
->
in_place_active
)
if
(
This
->
in_place_active
)
IOleInPlaceObjectWindowless_InPlaceDeactivate
(
&
This
->
IOleInPlaceObjectWindowless_iface
);
HTMLDocument_LockContainer
(
This
->
doc_obj
,
FALSE
);
HTMLDocument_LockContainer
(
This
,
FALSE
);
if
(
This
->
doc_obj
->
advise_holder
)
IOleAdviseHolder_SendOnClose
(
This
->
doc_obj
->
advise_holder
);
if
(
This
->
advise_holder
)
IOleAdviseHolder_SendOnClose
(
This
->
advise_holder
);
return
S_OK
;
}
static
HRESULT
WINAPI
OleObject_SetMoniker
(
IOleObject
*
iface
,
DWORD
dwWhichMoniker
,
IMoniker
*
pmk
)
static
HRESULT
WINAPI
DocObj
OleObject_SetMoniker
(
IOleObject
*
iface
,
DWORD
dwWhichMoniker
,
IMoniker
*
pmk
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p %ld %p)->()
\n
"
,
This
,
dwWhichMoniker
,
pmk
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleObject_GetMoniker
(
IOleObject
*
iface
,
DWORD
dwAssign
,
DWORD
dwWhichMoniker
,
IMoniker
**
ppmk
)
static
HRESULT
WINAPI
DocObj
OleObject_GetMoniker
(
IOleObject
*
iface
,
DWORD
dwAssign
,
DWORD
dwWhichMoniker
,
IMoniker
**
ppmk
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%ld %ld %p)
\n
"
,
This
,
dwAssign
,
dwWhichMoniker
,
ppmk
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleObject_InitFromData
(
IOleObject
*
iface
,
IDataObject
*
pDataObject
,
BOOL
fCreation
,
static
HRESULT
WINAPI
DocObj
OleObject_InitFromData
(
IOleObject
*
iface
,
IDataObject
*
pDataObject
,
BOOL
fCreation
,
DWORD
dwReserved
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%p %x %ld)
\n
"
,
This
,
pDataObject
,
fCreation
,
dwReserved
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleObject_GetClipboardData
(
IOleObject
*
iface
,
DWORD
dwReserved
,
IDataObject
**
ppDataObject
)
static
HRESULT
WINAPI
DocObj
OleObject_GetClipboardData
(
IOleObject
*
iface
,
DWORD
dwReserved
,
IDataObject
**
ppDataObject
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%ld %p)
\n
"
,
This
,
dwReserved
,
ppDataObject
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleObject_DoVerb
(
IOleObject
*
iface
,
LONG
iVerb
,
LPMSG
lpmsg
,
IOleClientSite
*
pActiveSite
,
static
HRESULT
WINAPI
DocObj
OleObject_DoVerb
(
IOleObject
*
iface
,
LONG
iVerb
,
LPMSG
lpmsg
,
IOleClientSite
*
pActiveSite
,
LONG
lindex
,
HWND
hwndParent
,
LPCRECT
lprcPosRect
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
IOleDocumentSite
*
pDocSite
;
HRESULT
hres
;
...
...
@@ -530,54 +719,54 @@ static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, LPMSG lpms
}
if
(
!
pActiveSite
)
pActiveSite
=
This
->
doc_obj
->
client
;
pActiveSite
=
This
->
client
;
hres
=
IOleClientSite_QueryInterface
(
pActiveSite
,
&
IID_IOleDocumentSite
,
(
void
**
)
&
pDocSite
);
if
(
SUCCEEDED
(
hres
))
{
HTMLDocument_LockContainer
(
This
->
doc_obj
,
TRUE
);
HTMLDocument_LockContainer
(
This
,
TRUE
);
/* FIXME: Create new IOleDocumentView. See CreateView for more info. */
hres
=
IOleDocumentSite_ActivateMe
(
pDocSite
,
&
This
->
doc_obj
->
IOleDocumentView_iface
);
hres
=
IOleDocumentSite_ActivateMe
(
pDocSite
,
&
This
->
IOleDocumentView_iface
);
IOleDocumentSite_Release
(
pDocSite
);
}
else
{
hres
=
IOleDocumentView_UIActivate
(
&
This
->
doc_obj
->
IOleDocumentView_iface
,
TRUE
);
hres
=
IOleDocumentView_UIActivate
(
&
This
->
IOleDocumentView_iface
,
TRUE
);
if
(
SUCCEEDED
(
hres
))
{
if
(
lprcPosRect
)
{
RECT
rect
;
/* We need to pass rect as not const pointer */
rect
=
*
lprcPosRect
;
IOleDocumentView_SetRect
(
&
This
->
doc_obj
->
IOleDocumentView_iface
,
&
rect
);
IOleDocumentView_SetRect
(
&
This
->
IOleDocumentView_iface
,
&
rect
);
}
IOleDocumentView_Show
(
&
This
->
doc_obj
->
IOleDocumentView_iface
,
TRUE
);
IOleDocumentView_Show
(
&
This
->
IOleDocumentView_iface
,
TRUE
);
}
}
return
hres
;
}
static
HRESULT
WINAPI
OleObject_EnumVerbs
(
IOleObject
*
iface
,
IEnumOLEVERB
**
ppEnumOleVerb
)
static
HRESULT
WINAPI
DocObj
OleObject_EnumVerbs
(
IOleObject
*
iface
,
IEnumOLEVERB
**
ppEnumOleVerb
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
ppEnumOleVerb
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleObject_Update
(
IOleObject
*
iface
)
static
HRESULT
WINAPI
DocObj
OleObject_Update
(
IOleObject
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleObject_IsUpToDate
(
IOleObject
*
iface
)
static
HRESULT
WINAPI
DocObj
OleObject_IsUpToDate
(
IOleObject
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleObject_GetUserClassID
(
IOleObject
*
iface
,
CLSID
*
pClsid
)
static
HRESULT
WINAPI
DocObj
OleObject_GetUserClassID
(
IOleObject
*
iface
,
CLSID
*
pClsid
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
pClsid
);
...
...
@@ -588,42 +777,42 @@ static HRESULT WINAPI OleObject_GetUserClassID(IOleObject *iface, CLSID *pClsid)
return
S_OK
;
}
static
HRESULT
WINAPI
OleObject_GetUserType
(
IOleObject
*
iface
,
DWORD
dwFormOfType
,
LPOLESTR
*
pszUserType
)
static
HRESULT
WINAPI
DocObj
OleObject_GetUserType
(
IOleObject
*
iface
,
DWORD
dwFormOfType
,
LPOLESTR
*
pszUserType
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%ld %p)
\n
"
,
This
,
dwFormOfType
,
pszUserType
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleObject_SetExtent
(
IOleObject
*
iface
,
DWORD
dwDrawAspect
,
SIZEL
*
psizel
)
static
HRESULT
WINAPI
DocObj
OleObject_SetExtent
(
IOleObject
*
iface
,
DWORD
dwDrawAspect
,
SIZEL
*
psizel
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
TRACE
(
"(%p)->(%ld %p)
\n
"
,
This
,
dwDrawAspect
,
psizel
);
if
(
dwDrawAspect
!=
DVASPECT_CONTENT
)
return
E_INVALIDARG
;
This
->
doc_obj
->
extent
=
*
psizel
;
This
->
extent
=
*
psizel
;
return
S_OK
;
}
static
HRESULT
WINAPI
OleObject_GetExtent
(
IOleObject
*
iface
,
DWORD
dwDrawAspect
,
SIZEL
*
psizel
)
static
HRESULT
WINAPI
DocObj
OleObject_GetExtent
(
IOleObject
*
iface
,
DWORD
dwDrawAspect
,
SIZEL
*
psizel
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
TRACE
(
"(%p)->(%ld %p)
\n
"
,
This
,
dwDrawAspect
,
psizel
);
if
(
dwDrawAspect
!=
DVASPECT_CONTENT
)
return
E_INVALIDARG
;
*
psizel
=
This
->
doc_obj
->
extent
;
*
psizel
=
This
->
extent
;
return
S_OK
;
}
static
HRESULT
WINAPI
OleObject_Advise
(
IOleObject
*
iface
,
IAdviseSink
*
pAdvSink
,
DWORD
*
pdwConnection
)
static
HRESULT
WINAPI
DocObj
OleObject_Advise
(
IOleObject
*
iface
,
IAdviseSink
*
pAdvSink
,
DWORD
*
pdwConnection
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
TRACE
(
"(%p)->(%p %p)
\n
"
,
This
,
pAdvSink
,
pdwConnection
);
if
(
!
pdwConnection
)
...
...
@@ -634,110 +823,164 @@ static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink,
return
E_INVALIDARG
;
}
if
(
!
This
->
doc_obj
->
advise_holder
)
{
CreateOleAdviseHolder
(
&
This
->
doc_obj
->
advise_holder
);
if
(
!
This
->
doc_obj
->
advise_holder
)
if
(
!
This
->
advise_holder
)
{
CreateOleAdviseHolder
(
&
This
->
advise_holder
);
if
(
!
This
->
advise_holder
)
return
E_OUTOFMEMORY
;
}
return
IOleAdviseHolder_Advise
(
This
->
doc_obj
->
advise_holder
,
pAdvSink
,
pdwConnection
);
return
IOleAdviseHolder_Advise
(
This
->
advise_holder
,
pAdvSink
,
pdwConnection
);
}
static
HRESULT
WINAPI
OleObject_Unadvise
(
IOleObject
*
iface
,
DWORD
dwConnection
)
static
HRESULT
WINAPI
DocObj
OleObject_Unadvise
(
IOleObject
*
iface
,
DWORD
dwConnection
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
TRACE
(
"(%p)->(%ld)
\n
"
,
This
,
dwConnection
);
if
(
!
This
->
doc_obj
->
advise_holder
)
if
(
!
This
->
advise_holder
)
return
OLE_E_NOCONNECTION
;
return
IOleAdviseHolder_Unadvise
(
This
->
doc_obj
->
advise_holder
,
dwConnection
);
return
IOleAdviseHolder_Unadvise
(
This
->
advise_holder
,
dwConnection
);
}
static
HRESULT
WINAPI
OleObject_EnumAdvise
(
IOleObject
*
iface
,
IEnumSTATDATA
**
ppenumAdvise
)
static
HRESULT
WINAPI
DocObj
OleObject_EnumAdvise
(
IOleObject
*
iface
,
IEnumSTATDATA
**
ppenumAdvise
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
if
(
!
This
->
doc_obj
->
advise_holder
)
{
if
(
!
This
->
advise_holder
)
{
*
ppenumAdvise
=
NULL
;
return
S_OK
;
}
return
IOleAdviseHolder_EnumAdvise
(
This
->
doc_obj
->
advise_holder
,
ppenumAdvise
);
return
IOleAdviseHolder_EnumAdvise
(
This
->
advise_holder
,
ppenumAdvise
);
}
static
HRESULT
WINAPI
OleObject_GetMiscStatus
(
IOleObject
*
iface
,
DWORD
dwAspect
,
DWORD
*
pdwStatus
)
static
HRESULT
WINAPI
DocObj
OleObject_GetMiscStatus
(
IOleObject
*
iface
,
DWORD
dwAspect
,
DWORD
*
pdwStatus
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%ld %p)
\n
"
,
This
,
dwAspect
,
pdwStatus
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleObject_SetColorScheme
(
IOleObject
*
iface
,
LOGPALETTE
*
pLogpal
)
static
HRESULT
WINAPI
DocObj
OleObject_SetColorScheme
(
IOleObject
*
iface
,
LOGPALETTE
*
pLogpal
)
{
HTMLDocument
*
This
=
impl
_from_IOleObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleObject
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
pLogpal
);
return
E_NOTIMPL
;
}
static
const
IOleObjectVtbl
OleObjectVtbl
=
{
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
static
const
IOleObjectVtbl
DocObj
OleObjectVtbl
=
{
DocObj
OleObject_QueryInterface
,
DocObj
OleObject_AddRef
,
DocObj
OleObject_Release
,
DocObj
OleObject_SetClientSite
,
DocObj
OleObject_GetClientSite
,
DocObj
OleObject_SetHostNames
,
DocObj
OleObject_Close
,
DocObj
OleObject_SetMoniker
,
DocObj
OleObject_GetMoniker
,
DocObj
OleObject_InitFromData
,
DocObj
OleObject_GetClipboardData
,
DocObj
OleObject_DoVerb
,
DocObj
OleObject_EnumVerbs
,
DocObj
OleObject_Update
,
DocObj
OleObject_IsUpToDate
,
DocObj
OleObject_GetUserClassID
,
DocObj
OleObject_GetUserType
,
DocObj
OleObject_SetExtent
,
DocObj
OleObject_GetExtent
,
DocObj
OleObject_Advise
,
DocObj
OleObject_Unadvise
,
DocObj
OleObject_EnumAdvise
,
DocObj
OleObject_GetMiscStatus
,
DocObj
OleObject_SetColorScheme
};
/**********************************************************
* IOleDocument implementation
*/
static
inline
HTMLDocument
*
impl
_from_IOleDocument
(
IOleDocument
*
iface
)
static
inline
HTMLDocument
Node
*
HTMLDocumentNode
_from_IOleDocument
(
IOleDocument
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
,
IOleDocument_iface
);
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
Node
,
IOleDocument_iface
);
}
static
HRESULT
WINAPI
OleDocument_QueryInterface
(
IOleDocument
*
iface
,
REFIID
riid
,
void
**
ppv
)
static
HRESULT
WINAPI
DocNode
OleDocument_QueryInterface
(
IOleDocument
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocument
*
This
=
impl
_from_IOleDocument
(
iface
);
return
htmldoc_query_interface
(
This
,
riid
,
ppv
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleDocument
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
OleDocument_AddRef
(
IOleDocument
*
iface
)
static
ULONG
WINAPI
DocNode
OleDocument_AddRef
(
IOleDocument
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleDocument
(
iface
);
return
htmldoc_addref
(
This
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleDocument
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
OleDocument_Release
(
IOleDocument
*
iface
)
static
ULONG
WINAPI
DocNode
OleDocument_Release
(
IOleDocument
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleDocument
(
iface
);
return
htmldoc_release
(
This
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleDocument
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
OleDocument_CreateView
(
IOleDocument
*
iface
,
IOleInPlaceSite
*
pIPSite
,
IStream
*
pstm
,
static
HRESULT
WINAPI
DocNode
OleDocument_CreateView
(
IOleDocument
*
iface
,
IOleInPlaceSite
*
pIPSite
,
IStream
*
pstm
,
DWORD
dwReserved
,
IOleDocumentView
**
ppView
)
{
HTMLDocument
*
This
=
impl_from_IOleDocument
(
iface
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleDocument
(
iface
);
return
IOleDocument_CreateView
(
&
This
->
basedoc
.
doc_obj
->
IOleDocument_iface
,
pIPSite
,
pstm
,
dwReserved
,
ppView
);
}
static
HRESULT
WINAPI
DocNodeOleDocument_GetDocMiscStatus
(
IOleDocument
*
iface
,
DWORD
*
pdwStatus
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleDocument
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
pdwStatus
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleDocument_EnumViews
(
IOleDocument
*
iface
,
IEnumOleDocumentViews
**
ppEnum
,
IOleDocumentView
**
ppView
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleDocument
(
iface
);
FIXME
(
"(%p)->(%p %p)
\n
"
,
This
,
ppEnum
,
ppView
);
return
E_NOTIMPL
;
}
static
const
IOleDocumentVtbl
DocNodeOleDocumentVtbl
=
{
DocNodeOleDocument_QueryInterface
,
DocNodeOleDocument_AddRef
,
DocNodeOleDocument_Release
,
DocNodeOleDocument_CreateView
,
DocNodeOleDocument_GetDocMiscStatus
,
DocNodeOleDocument_EnumViews
};
static
inline
HTMLDocumentObj
*
HTMLDocumentObj_from_IOleDocument
(
IOleDocument
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentObj
,
IOleDocument_iface
);
}
static
HRESULT
WINAPI
DocObjOleDocument_QueryInterface
(
IOleDocument
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleDocument
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
DocObjOleDocument_AddRef
(
IOleDocument
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleDocument
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
DocObjOleDocument_Release
(
IOleDocument
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleDocument
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
DocObjOleDocument_CreateView
(
IOleDocument
*
iface
,
IOleInPlaceSite
*
pIPSite
,
IStream
*
pstm
,
DWORD
dwReserved
,
IOleDocumentView
**
ppView
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleDocument
(
iface
);
HRESULT
hres
;
TRACE
(
"(%p)->(%p %p %ld %p)
\n
"
,
This
,
pIPSite
,
pstm
,
dwReserved
,
ppView
);
...
...
@@ -753,7 +996,7 @@ static HRESULT WINAPI OleDocument_CreateView(IOleDocument *iface, IOleInPlaceSit
*/
if
(
pIPSite
)
{
hres
=
IOleDocumentView_SetInPlaceSite
(
&
This
->
doc_obj
->
IOleDocumentView_iface
,
pIPSite
);
hres
=
IOleDocumentView_SetInPlaceSite
(
&
This
->
IOleDocumentView_iface
,
pIPSite
);
if
(
FAILED
(
hres
))
return
hres
;
}
...
...
@@ -761,72 +1004,132 @@ static HRESULT WINAPI OleDocument_CreateView(IOleDocument *iface, IOleInPlaceSit
if
(
pstm
)
FIXME
(
"pstm is not supported
\n
"
);
IOleDocumentView_AddRef
(
&
This
->
doc_obj
->
IOleDocumentView_iface
);
*
ppView
=
&
This
->
doc_obj
->
IOleDocumentView_iface
;
IOleDocumentView_AddRef
(
&
This
->
IOleDocumentView_iface
);
*
ppView
=
&
This
->
IOleDocumentView_iface
;
return
S_OK
;
}
static
HRESULT
WINAPI
OleDocument_GetDocMiscStatus
(
IOleDocument
*
iface
,
DWORD
*
pdwStatus
)
static
HRESULT
WINAPI
DocObj
OleDocument_GetDocMiscStatus
(
IOleDocument
*
iface
,
DWORD
*
pdwStatus
)
{
HTMLDocument
*
This
=
impl
_from_IOleDocument
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleDocument
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
pdwStatus
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleDocument_EnumViews
(
IOleDocument
*
iface
,
IEnumOleDocumentViews
**
ppEnum
,
static
HRESULT
WINAPI
DocObj
OleDocument_EnumViews
(
IOleDocument
*
iface
,
IEnumOleDocumentViews
**
ppEnum
,
IOleDocumentView
**
ppView
)
{
HTMLDocument
*
This
=
impl
_from_IOleDocument
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleDocument
(
iface
);
FIXME
(
"(%p)->(%p %p)
\n
"
,
This
,
ppEnum
,
ppView
);
return
E_NOTIMPL
;
}
static
const
IOleDocumentVtbl
OleDocumentVtbl
=
{
OleDocument_QueryInterface
,
OleDocument_AddRef
,
OleDocument_Release
,
OleDocument_CreateView
,
OleDocument_GetDocMiscStatus
,
OleDocument_EnumViews
static
const
IOleDocumentVtbl
DocObj
OleDocumentVtbl
=
{
DocObj
OleDocument_QueryInterface
,
DocObj
OleDocument_AddRef
,
DocObj
OleDocument_Release
,
DocObj
OleDocument_CreateView
,
DocObj
OleDocument_GetDocMiscStatus
,
DocObj
OleDocument_EnumViews
};
/**********************************************************
* IOleControl implementation
*/
static
inline
HTMLDocument
*
impl_from_IOleControl
(
IOleControl
*
iface
)
static
inline
HTMLDocumentNode
*
HTMLDocumentNode_from_IOleControl
(
IOleControl
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentNode
,
IOleControl_iface
);
}
static
HRESULT
WINAPI
DocNodeOleControl_QueryInterface
(
IOleControl
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleControl
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
DocNodeOleControl_AddRef
(
IOleControl
*
iface
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleControl
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
DocNodeOleControl_Release
(
IOleControl
*
iface
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleControl
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
DocNodeOleControl_GetControlInfo
(
IOleControl
*
iface
,
CONTROLINFO
*
pCI
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleControl
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
pCI
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleControl_OnMnemonic
(
IOleControl
*
iface
,
MSG
*
pMsg
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleControl
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
pMsg
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleControl_OnAmbientPropertyChange
(
IOleControl
*
iface
,
DISPID
dispID
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
,
IOleControl_iface
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleControl
(
iface
);
return
IOleControl_OnAmbientPropertyChange
(
&
This
->
basedoc
.
doc_obj
->
IOleControl_iface
,
dispID
);
}
static
HRESULT
WINAPI
OleControl_QueryInterface
(
IOleControl
*
iface
,
REFIID
riid
,
void
**
ppv
)
static
HRESULT
WINAPI
DocNodeOleControl_FreezeEvents
(
IOleControl
*
iface
,
BOOL
bFreeze
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleControl
(
iface
);
FIXME
(
"(%p)->(%x)
\n
"
,
This
,
bFreeze
);
return
E_NOTIMPL
;
}
static
const
IOleControlVtbl
DocNodeOleControlVtbl
=
{
DocNodeOleControl_QueryInterface
,
DocNodeOleControl_AddRef
,
DocNodeOleControl_Release
,
DocNodeOleControl_GetControlInfo
,
DocNodeOleControl_OnMnemonic
,
DocNodeOleControl_OnAmbientPropertyChange
,
DocNodeOleControl_FreezeEvents
};
static
inline
HTMLDocumentObj
*
HTMLDocumentObj_from_IOleControl
(
IOleControl
*
iface
)
{
HTMLDocument
*
This
=
impl_from_IOleControl
(
iface
);
return
htmldoc_query_interface
(
This
,
riid
,
ppv
);
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentObj
,
IOleControl_iface
);
}
static
ULONG
WINAPI
OleControl_AddRef
(
IOleControl
*
iface
)
static
HRESULT
WINAPI
DocObjOleControl_QueryInterface
(
IOleControl
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocument
*
This
=
impl
_from_IOleControl
(
iface
);
return
htmldoc_
addref
(
This
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleControl
(
iface
);
return
htmldoc_
query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
OleControl_Release
(
IOleControl
*
iface
)
static
ULONG
WINAPI
DocObjOleControl_AddRef
(
IOleControl
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleControl
(
iface
);
return
htmldoc_
release
(
This
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleControl
(
iface
);
return
htmldoc_
addref
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
OleControl_GetControlInfo
(
IOleControl
*
iface
,
CONTROLINFO
*
pCI
)
static
ULONG
WINAPI
DocObjOleControl_Release
(
IOleControl
*
iface
)
{
HTMLDocument
*
This
=
impl_from_IOleControl
(
iface
);
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleControl
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
DocObjOleControl_GetControlInfo
(
IOleControl
*
iface
,
CONTROLINFO
*
pCI
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleControl
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
pCI
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleControl_OnMnemonic
(
IOleControl
*
iface
,
MSG
*
pMsg
)
static
HRESULT
WINAPI
DocObj
OleControl_OnMnemonic
(
IOleControl
*
iface
,
MSG
*
pMsg
)
{
HTMLDocument
*
This
=
impl
_from_IOleControl
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleControl
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
pMsg
);
return
E_NOTIMPL
;
}
...
...
@@ -854,26 +1157,26 @@ HRESULT get_client_disp_property(IOleClientSite *client, DISPID dispid, VARIANT
return
hres
;
}
static
HRESULT
on_change_dlcontrol
(
HTMLDocument
*
This
)
static
HRESULT
on_change_dlcontrol
(
HTMLDocument
Obj
*
This
)
{
VARIANT
res
;
HRESULT
hres
;
hres
=
get_client_disp_property
(
This
->
doc_obj
->
client
,
DISPID_AMBIENT_DLCONTROL
,
&
res
);
hres
=
get_client_disp_property
(
This
->
client
,
DISPID_AMBIENT_DLCONTROL
,
&
res
);
if
(
SUCCEEDED
(
hres
))
FIXME
(
"unsupported dlcontrol %08lx
\n
"
,
V_I4
(
&
res
));
return
S_OK
;
}
static
HRESULT
WINAPI
OleControl_OnAmbientPropertyChange
(
IOleControl
*
iface
,
DISPID
dispID
)
static
HRESULT
WINAPI
DocObj
OleControl_OnAmbientPropertyChange
(
IOleControl
*
iface
,
DISPID
dispID
)
{
HTMLDocument
*
This
=
impl
_from_IOleControl
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleControl
(
iface
);
IOleClientSite
*
client
;
VARIANT
res
;
HRESULT
hres
;
client
=
This
->
doc_obj
->
client
;
client
=
This
->
client
;
if
(
!
client
)
{
TRACE
(
"client = NULL
\n
"
);
return
S_OK
;
...
...
@@ -888,10 +1191,10 @@ static HRESULT WINAPI OleControl_OnAmbientPropertyChange(IOleControl *iface, DIS
if
(
V_VT
(
&
res
)
==
VT_BOOL
)
{
if
(
V_BOOL
(
&
res
))
{
This
->
doc_obj
->
nscontainer
->
usermode
=
BROWSEMODE
;
This
->
nscontainer
->
usermode
=
BROWSEMODE
;
}
else
{
FIXME
(
"edit mode is not supported
\n
"
);
This
->
doc_obj
->
nscontainer
->
usermode
=
EDITMODE
;
This
->
nscontainer
->
usermode
=
EDITMODE
;
}
}
else
{
FIXME
(
"usermode=%s
\n
"
,
debugstr_variant
(
&
res
));
...
...
@@ -953,226 +1256,406 @@ static HRESULT WINAPI OleControl_OnAmbientPropertyChange(IOleControl *iface, DIS
return
E_FAIL
;
}
static
HRESULT
WINAPI
OleControl_FreezeEvents
(
IOleControl
*
iface
,
BOOL
bFreeze
)
static
HRESULT
WINAPI
DocObj
OleControl_FreezeEvents
(
IOleControl
*
iface
,
BOOL
bFreeze
)
{
HTMLDocument
*
This
=
impl
_from_IOleControl
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleControl
(
iface
);
FIXME
(
"(%p)->(%x)
\n
"
,
This
,
bFreeze
);
return
E_NOTIMPL
;
}
static
const
IOleControlVtbl
OleControlVtbl
=
{
OleControl_QueryInterface
,
OleControl_AddRef
,
OleControl_Release
,
OleControl_GetControlInfo
,
OleControl_OnMnemonic
,
OleControl_OnAmbientPropertyChange
,
OleControl_FreezeEvents
static
const
IOleControlVtbl
DocObj
OleControlVtbl
=
{
DocObj
OleControl_QueryInterface
,
DocObj
OleControl_AddRef
,
DocObj
OleControl_Release
,
DocObj
OleControl_GetControlInfo
,
DocObj
OleControl_OnMnemonic
,
DocObj
OleControl_OnAmbientPropertyChange
,
DocObj
OleControl_FreezeEvents
};
/**********************************************************
* IOleInPlaceActiveObject implementation
*/
static
inline
HTMLDocument
*
impl_from_IOleInPlaceActiveObject
(
IOleInPlaceActiveObject
*
iface
)
static
inline
HTMLDocumentNode
*
HTMLDocumentNode_from_IOleInPlaceActiveObject
(
IOleInPlaceActiveObject
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentNode
,
IOleInPlaceActiveObject_iface
);
}
static
HRESULT
WINAPI
DocNodeOleInPlaceActiveObject_QueryInterface
(
IOleInPlaceActiveObject
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceActiveObject
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
DocNodeOleInPlaceActiveObject_AddRef
(
IOleInPlaceActiveObject
*
iface
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceActiveObject
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
DocNodeOleInPlaceActiveObject_Release
(
IOleInPlaceActiveObject
*
iface
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceActiveObject
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
DocNodeOleInPlaceActiveObject_GetWindow
(
IOleInPlaceActiveObject
*
iface
,
HWND
*
phwnd
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
,
IOleInPlaceActiveObject_iface
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceActiveObject
(
iface
);
return
IOleInPlaceActiveObject_GetWindow
(
&
This
->
basedoc
.
doc_obj
->
IOleInPlaceActiveObject_iface
,
phwnd
);
}
static
HRESULT
WINAPI
OleInPlaceActiveObject_QueryInterface
(
IOleInPlaceActiveObject
*
iface
,
REFIID
riid
,
void
**
ppv
)
static
HRESULT
WINAPI
DocNodeOleInPlaceActiveObject_ContextSensitiveHelp
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fEnterMode
)
{
HTMLDocument
*
This
=
impl_from_IOleInPlaceActiveObject
(
iface
);
return
htmldoc_query_interface
(
This
,
riid
,
ppv
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceActiveObject
(
iface
);
FIXME
(
"(%p)->(%x)
\n
"
,
This
,
fEnterMode
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleInPlaceActiveObject_TranslateAccelerator
(
IOleInPlaceActiveObject
*
iface
,
LPMSG
lpmsg
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceActiveObject
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
lpmsg
);
return
E_NOTIMPL
;
}
static
ULONG
WINAPI
OleInPlaceActiveObject_AddRef
(
IOleInPlaceActiveObject
*
iface
)
static
HRESULT
WINAPI
DocNodeOleInPlaceActiveObject_OnFrameWindowActivate
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fActivate
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceActiveObject
(
iface
);
return
htmldoc_addref
(
This
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleInPlaceActiveObject
(
iface
);
return
IOleInPlaceActiveObject_OnFrameWindowActivate
(
&
This
->
basedoc
.
doc_obj
->
IOleInPlaceActiveObject_iface
,
fActivate
);
}
static
ULONG
WINAPI
OleInPlaceActiveObject_Release
(
IOleInPlaceActiveObject
*
ifac
e
)
static
HRESULT
WINAPI
DocNodeOleInPlaceActiveObject_OnDocWindowActivate
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fActivat
e
)
{
HTMLDocument
*
This
=
impl_from_IOleInPlaceActiveObject
(
iface
);
return
htmldoc_release
(
This
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceActiveObject
(
iface
);
FIXME
(
"(%p)->(%x)
\n
"
,
This
,
fActivate
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleInPlaceActiveObject_GetWindow
(
IOleInPlaceActiveObject
*
iface
,
HWND
*
phwnd
)
static
HRESULT
WINAPI
DocNodeOleInPlaceActiveObject_ResizeBorder
(
IOleInPlaceActiveObject
*
iface
,
LPCRECT
prcBorder
,
IOleInPlaceUIWindow
*
pUIWindow
,
BOOL
fFrameWindow
)
{
HTMLDocument
*
This
=
impl_from_IOleInPlaceActiveObject
(
iface
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceActiveObject
(
iface
);
FIXME
(
"(%p)->(%p %p %x)
\n
"
,
This
,
prcBorder
,
pUIWindow
,
fFrameWindow
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleInPlaceActiveObject_EnableModeless
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fEnable
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceActiveObject
(
iface
);
FIXME
(
"(%p)->(%x)
\n
"
,
This
,
fEnable
);
return
E_NOTIMPL
;
}
static
const
IOleInPlaceActiveObjectVtbl
DocNodeOleInPlaceActiveObjectVtbl
=
{
DocNodeOleInPlaceActiveObject_QueryInterface
,
DocNodeOleInPlaceActiveObject_AddRef
,
DocNodeOleInPlaceActiveObject_Release
,
DocNodeOleInPlaceActiveObject_GetWindow
,
DocNodeOleInPlaceActiveObject_ContextSensitiveHelp
,
DocNodeOleInPlaceActiveObject_TranslateAccelerator
,
DocNodeOleInPlaceActiveObject_OnFrameWindowActivate
,
DocNodeOleInPlaceActiveObject_OnDocWindowActivate
,
DocNodeOleInPlaceActiveObject_ResizeBorder
,
DocNodeOleInPlaceActiveObject_EnableModeless
};
static
inline
HTMLDocumentObj
*
HTMLDocumentObj_from_IOleInPlaceActiveObject
(
IOleInPlaceActiveObject
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentObj
,
IOleInPlaceActiveObject_iface
);
}
static
HRESULT
WINAPI
DocObjOleInPlaceActiveObject_QueryInterface
(
IOleInPlaceActiveObject
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleInPlaceActiveObject
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
DocObjOleInPlaceActiveObject_AddRef
(
IOleInPlaceActiveObject
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleInPlaceActiveObject
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
DocObjOleInPlaceActiveObject_Release
(
IOleInPlaceActiveObject
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleInPlaceActiveObject
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
DocObjOleInPlaceActiveObject_GetWindow
(
IOleInPlaceActiveObject
*
iface
,
HWND
*
phwnd
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleInPlaceActiveObject
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
phwnd
);
if
(
!
phwnd
)
return
E_INVALIDARG
;
if
(
!
This
->
doc_obj
->
in_place_active
)
{
if
(
!
This
->
in_place_active
)
{
*
phwnd
=
NULL
;
return
E_FAIL
;
}
*
phwnd
=
This
->
doc_obj
->
hwnd
;
*
phwnd
=
This
->
hwnd
;
return
S_OK
;
}
static
HRESULT
WINAPI
OleInPlaceActiveObject_ContextSensitiveHelp
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fEnterMode
)
static
HRESULT
WINAPI
DocObj
OleInPlaceActiveObject_ContextSensitiveHelp
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fEnterMode
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceActiveObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceActiveObject
(
iface
);
FIXME
(
"(%p)->(%x)
\n
"
,
This
,
fEnterMode
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleInPlaceActiveObject_TranslateAccelerator
(
IOleInPlaceActiveObject
*
iface
,
LPMSG
lpmsg
)
static
HRESULT
WINAPI
DocObj
OleInPlaceActiveObject_TranslateAccelerator
(
IOleInPlaceActiveObject
*
iface
,
LPMSG
lpmsg
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceActiveObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceActiveObject
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
lpmsg
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleInPlaceActiveObject_OnFrameWindowActivate
(
IOleInPlaceActiveObject
*
iface
,
static
HRESULT
WINAPI
DocObj
OleInPlaceActiveObject_OnFrameWindowActivate
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fActivate
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceActiveObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceActiveObject
(
iface
);
TRACE
(
"(%p)->(%x)
\n
"
,
This
,
fActivate
);
if
(
This
->
doc_obj
->
hostui
)
IDocHostUIHandler_OnFrameWindowActivate
(
This
->
doc_obj
->
hostui
,
fActivate
);
if
(
This
->
hostui
)
IDocHostUIHandler_OnFrameWindowActivate
(
This
->
hostui
,
fActivate
);
return
S_OK
;
}
static
HRESULT
WINAPI
OleInPlaceActiveObject_OnDocWindowActivate
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fActivate
)
static
HRESULT
WINAPI
DocObj
OleInPlaceActiveObject_OnDocWindowActivate
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fActivate
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceActiveObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceActiveObject
(
iface
);
FIXME
(
"(%p)->(%x)
\n
"
,
This
,
fActivate
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleInPlaceActiveObject_ResizeBorder
(
IOleInPlaceActiveObject
*
iface
,
LPCRECT
prcBorder
,
static
HRESULT
WINAPI
DocObj
OleInPlaceActiveObject_ResizeBorder
(
IOleInPlaceActiveObject
*
iface
,
LPCRECT
prcBorder
,
IOleInPlaceUIWindow
*
pUIWindow
,
BOOL
fFrameWindow
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceActiveObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceActiveObject
(
iface
);
FIXME
(
"(%p)->(%p %p %x)
\n
"
,
This
,
prcBorder
,
pUIWindow
,
fFrameWindow
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleInPlaceActiveObject_EnableModeless
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fEnable
)
static
HRESULT
WINAPI
DocObj
OleInPlaceActiveObject_EnableModeless
(
IOleInPlaceActiveObject
*
iface
,
BOOL
fEnable
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceActiveObject
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceActiveObject
(
iface
);
FIXME
(
"(%p)->(%x)
\n
"
,
This
,
fEnable
);
return
E_NOTIMPL
;
}
static
const
IOleInPlaceActiveObjectVtbl
OleInPlaceActiveObjectVtbl
=
{
OleInPlaceActiveObject_QueryInterface
,
OleInPlaceActiveObject_AddRef
,
OleInPlaceActiveObject_Release
,
OleInPlaceActiveObject_GetWindow
,
OleInPlaceActiveObject_ContextSensitiveHelp
,
OleInPlaceActiveObject_TranslateAccelerator
,
OleInPlaceActiveObject_OnFrameWindowActivate
,
OleInPlaceActiveObject_OnDocWindowActivate
,
OleInPlaceActiveObject_ResizeBorder
,
OleInPlaceActiveObject_EnableModeless
static
const
IOleInPlaceActiveObjectVtbl
DocObj
OleInPlaceActiveObjectVtbl
=
{
DocObj
OleInPlaceActiveObject_QueryInterface
,
DocObj
OleInPlaceActiveObject_AddRef
,
DocObj
OleInPlaceActiveObject_Release
,
DocObj
OleInPlaceActiveObject_GetWindow
,
DocObj
OleInPlaceActiveObject_ContextSensitiveHelp
,
DocObj
OleInPlaceActiveObject_TranslateAccelerator
,
DocObj
OleInPlaceActiveObject_OnFrameWindowActivate
,
DocObj
OleInPlaceActiveObject_OnDocWindowActivate
,
DocObj
OleInPlaceActiveObject_ResizeBorder
,
DocObj
OleInPlaceActiveObject_EnableModeless
};
/**********************************************************
* IOleInPlaceObjectWindowless implementation
*/
static
inline
HTMLDocument
*
impl
_from_IOleInPlaceObjectWindowless
(
IOleInPlaceObjectWindowless
*
iface
)
static
inline
HTMLDocument
Node
*
HTMLDocumentNode
_from_IOleInPlaceObjectWindowless
(
IOleInPlaceObjectWindowless
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
,
IOleInPlaceObjectWindowless_iface
);
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
Node
,
IOleInPlaceObjectWindowless_iface
);
}
static
HRESULT
WINAPI
OleInPlaceObjectWindowless_QueryInterface
(
IOleInPlaceObjectWindowless
*
iface
,
static
HRESULT
WINAPI
DocNode
OleInPlaceObjectWindowless_QueryInterface
(
IOleInPlaceObjectWindowless
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceObjectWindowless
(
iface
);
return
htmldoc_query_interface
(
This
,
riid
,
ppv
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleInPlaceObjectWindowless
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
OleInPlaceObjectWindowless_AddRef
(
IOleInPlaceObjectWindowless
*
iface
)
static
ULONG
WINAPI
DocNode
OleInPlaceObjectWindowless_AddRef
(
IOleInPlaceObjectWindowless
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceObjectWindowless
(
iface
);
return
htmldoc_addref
(
This
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleInPlaceObjectWindowless
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
OleInPlaceObjectWindowless_Release
(
IOleInPlaceObjectWindowless
*
iface
)
static
ULONG
WINAPI
DocNode
OleInPlaceObjectWindowless_Release
(
IOleInPlaceObjectWindowless
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceObjectWindowless
(
iface
);
return
htmldoc_release
(
This
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleInPlaceObjectWindowless
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
OleInPlaceObjectWindowless_GetWindow
(
IOleInPlaceObjectWindowless
*
iface
,
static
HRESULT
WINAPI
DocNode
OleInPlaceObjectWindowless_GetWindow
(
IOleInPlaceObjectWindowless
*
iface
,
HWND
*
phwnd
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceObjectWindowless
(
iface
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleInPlaceObjectWindowless
(
iface
);
return
IOleInPlaceActiveObject_GetWindow
(
&
This
->
IOleInPlaceActiveObject_iface
,
phwnd
);
}
static
HRESULT
WINAPI
OleInPlaceObjectWindowless_ContextSensitiveHelp
(
IOleInPlaceObjectWindowless
*
iface
,
static
HRESULT
WINAPI
DocNode
OleInPlaceObjectWindowless_ContextSensitiveHelp
(
IOleInPlaceObjectWindowless
*
iface
,
BOOL
fEnterMode
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceObjectWindowless
(
iface
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleInPlaceObjectWindowless
(
iface
);
return
IOleInPlaceActiveObject_ContextSensitiveHelp
(
&
This
->
IOleInPlaceActiveObject_iface
,
fEnterMode
);
}
static
HRESULT
WINAPI
OleInPlaceObjectWindowless_InPlaceDeactivate
(
IOleInPlaceObjectWindowless
*
iface
)
static
HRESULT
WINAPI
DocNodeOleInPlaceObjectWindowless_InPlaceDeactivate
(
IOleInPlaceObjectWindowless
*
iface
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceObjectWindowless
(
iface
);
return
IOleInPlaceObjectWindowless_InPlaceDeactivate
(
&
This
->
basedoc
.
doc_obj
->
IOleInPlaceObjectWindowless_iface
);
}
static
HRESULT
WINAPI
DocNodeOleInPlaceObjectWindowless_UIDeactivate
(
IOleInPlaceObjectWindowless
*
iface
)
{
HTMLDocument
*
This
=
impl_from_IOleInPlaceObjectWindowless
(
iface
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceObjectWindowless
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleInPlaceObjectWindowless_SetObjectRects
(
IOleInPlaceObjectWindowless
*
iface
,
const
RECT
*
pos
,
const
RECT
*
clip
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceObjectWindowless
(
iface
);
return
IOleInPlaceObjectWindowless_SetObjectRects
(
&
This
->
basedoc
.
doc_obj
->
IOleInPlaceObjectWindowless_iface
,
pos
,
clip
);
}
static
HRESULT
WINAPI
DocNodeOleInPlaceObjectWindowless_ReactivateAndUndo
(
IOleInPlaceObjectWindowless
*
iface
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceObjectWindowless
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleInPlaceObjectWindowless_OnWindowMessage
(
IOleInPlaceObjectWindowless
*
iface
,
UINT
msg
,
WPARAM
wParam
,
LPARAM
lParam
,
LRESULT
*
lpResult
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceObjectWindowless
(
iface
);
FIXME
(
"(%p)->(%u %Iu %Iu %p)
\n
"
,
This
,
msg
,
wParam
,
lParam
,
lpResult
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocNodeOleInPlaceObjectWindowless_GetDropTarget
(
IOleInPlaceObjectWindowless
*
iface
,
IDropTarget
**
ppDropTarget
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleInPlaceObjectWindowless
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
ppDropTarget
);
return
E_NOTIMPL
;
}
static
const
IOleInPlaceObjectWindowlessVtbl
DocNodeOleInPlaceObjectWindowlessVtbl
=
{
DocNodeOleInPlaceObjectWindowless_QueryInterface
,
DocNodeOleInPlaceObjectWindowless_AddRef
,
DocNodeOleInPlaceObjectWindowless_Release
,
DocNodeOleInPlaceObjectWindowless_GetWindow
,
DocNodeOleInPlaceObjectWindowless_ContextSensitiveHelp
,
DocNodeOleInPlaceObjectWindowless_InPlaceDeactivate
,
DocNodeOleInPlaceObjectWindowless_UIDeactivate
,
DocNodeOleInPlaceObjectWindowless_SetObjectRects
,
DocNodeOleInPlaceObjectWindowless_ReactivateAndUndo
,
DocNodeOleInPlaceObjectWindowless_OnWindowMessage
,
DocNodeOleInPlaceObjectWindowless_GetDropTarget
};
static
inline
HTMLDocumentObj
*
HTMLDocumentObj_from_IOleInPlaceObjectWindowless
(
IOleInPlaceObjectWindowless
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentObj
,
IOleInPlaceObjectWindowless_iface
);
}
static
HRESULT
WINAPI
DocObjOleInPlaceObjectWindowless_QueryInterface
(
IOleInPlaceObjectWindowless
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleInPlaceObjectWindowless
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
DocObjOleInPlaceObjectWindowless_AddRef
(
IOleInPlaceObjectWindowless
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleInPlaceObjectWindowless
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
DocObjOleInPlaceObjectWindowless_Release
(
IOleInPlaceObjectWindowless
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleInPlaceObjectWindowless
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
DocObjOleInPlaceObjectWindowless_GetWindow
(
IOleInPlaceObjectWindowless
*
iface
,
HWND
*
phwnd
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleInPlaceObjectWindowless
(
iface
);
return
IOleInPlaceActiveObject_GetWindow
(
&
This
->
IOleInPlaceActiveObject_iface
,
phwnd
);
}
static
HRESULT
WINAPI
DocObjOleInPlaceObjectWindowless_ContextSensitiveHelp
(
IOleInPlaceObjectWindowless
*
iface
,
BOOL
fEnterMode
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleInPlaceObjectWindowless
(
iface
);
return
IOleInPlaceActiveObject_ContextSensitiveHelp
(
&
This
->
IOleInPlaceActiveObject_iface
,
fEnterMode
);
}
static
HRESULT
WINAPI
DocObjOleInPlaceObjectWindowless_InPlaceDeactivate
(
IOleInPlaceObjectWindowless
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleInPlaceObjectWindowless
(
iface
);
TRACE
(
"(%p)
\n
"
,
This
);
if
(
This
->
doc_obj
->
ui_active
)
IOleDocumentView_UIActivate
(
&
This
->
doc_obj
->
IOleDocumentView_iface
,
FALSE
);
This
->
doc_obj
->
window_active
=
FALSE
;
if
(
This
->
ui_active
)
IOleDocumentView_UIActivate
(
&
This
->
IOleDocumentView_iface
,
FALSE
);
This
->
window_active
=
FALSE
;
if
(
!
This
->
doc_obj
->
in_place_active
)
if
(
!
This
->
in_place_active
)
return
S_OK
;
if
(
This
->
doc_obj
->
frame
)
{
IOleInPlaceFrame_Release
(
This
->
doc_obj
->
frame
);
This
->
doc_obj
->
frame
=
NULL
;
if
(
This
->
frame
)
{
IOleInPlaceFrame_Release
(
This
->
frame
);
This
->
frame
=
NULL
;
}
if
(
This
->
doc_obj
->
hwnd
)
{
ShowWindow
(
This
->
doc_obj
->
hwnd
,
SW_HIDE
);
SetWindowPos
(
This
->
doc_obj
->
hwnd
,
HWND_TOPMOST
,
0
,
0
,
0
,
0
,
SWP_NOSIZE
|
SWP_NOMOVE
|
SWP_NOACTIVATE
);
if
(
This
->
hwnd
)
{
ShowWindow
(
This
->
hwnd
,
SW_HIDE
);
SetWindowPos
(
This
->
hwnd
,
HWND_TOPMOST
,
0
,
0
,
0
,
0
,
SWP_NOSIZE
|
SWP_NOMOVE
|
SWP_NOACTIVATE
);
}
This
->
doc_obj
->
focus
=
FALSE
;
notif_focus
(
This
->
doc_obj
);
This
->
focus
=
FALSE
;
notif_focus
(
This
);
This
->
doc_obj
->
in_place_active
=
FALSE
;
if
(
This
->
doc_obj
->
ipsite
)
{
This
->
in_place_active
=
FALSE
;
if
(
This
->
ipsite
)
{
IOleInPlaceSiteEx
*
ipsiteex
;
HRESULT
hres
;
hres
=
IOleInPlaceSite_QueryInterface
(
This
->
doc_obj
->
ipsite
,
&
IID_IOleInPlaceSiteEx
,
(
void
**
)
&
ipsiteex
);
hres
=
IOleInPlaceSite_QueryInterface
(
This
->
ipsite
,
&
IID_IOleInPlaceSiteEx
,
(
void
**
)
&
ipsiteex
);
if
(
SUCCEEDED
(
hres
))
{
IOleInPlaceSiteEx_OnInPlaceDeactivateEx
(
ipsiteex
,
TRUE
);
IOleInPlaceSiteEx_Release
(
ipsiteex
);
}
else
{
IOleInPlaceSite_OnInPlaceDeactivate
(
This
->
doc_obj
->
ipsite
);
IOleInPlaceSite_OnInPlaceDeactivate
(
This
->
ipsite
);
}
}
return
S_OK
;
}
static
HRESULT
WINAPI
OleInPlaceObjectWindowless_UIDeactivate
(
IOleInPlaceObjectWindowless
*
iface
)
static
HRESULT
WINAPI
DocObj
OleInPlaceObjectWindowless_UIDeactivate
(
IOleInPlaceObjectWindowless
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceObjectWindowless
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceObjectWindowless
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleInPlaceObjectWindowless_SetObjectRects
(
IOleInPlaceObjectWindowless
*
iface
,
static
HRESULT
WINAPI
DocObj
OleInPlaceObjectWindowless_SetObjectRects
(
IOleInPlaceObjectWindowless
*
iface
,
const
RECT
*
pos
,
const
RECT
*
clip
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceObjectWindowless
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceObjectWindowless
(
iface
);
RECT
r
;
TRACE
(
"(%p)->(%s %s)
\n
"
,
This
,
wine_dbgstr_rect
(
pos
),
wine_dbgstr_rect
(
clip
));
...
...
@@ -1181,133 +1664,231 @@ static HRESULT WINAPI OleInPlaceObjectWindowless_SetObjectRects(IOleInPlaceObjec
FIXME
(
"Ignoring clip rect %s
\n
"
,
wine_dbgstr_rect
(
clip
));
r
=
*
pos
;
return
IOleDocumentView_SetRect
(
&
This
->
doc_obj
->
IOleDocumentView_iface
,
&
r
);
return
IOleDocumentView_SetRect
(
&
This
->
IOleDocumentView_iface
,
&
r
);
}
static
HRESULT
WINAPI
OleInPlaceObjectWindowless_ReactivateAndUndo
(
IOleInPlaceObjectWindowless
*
iface
)
static
HRESULT
WINAPI
DocObj
OleInPlaceObjectWindowless_ReactivateAndUndo
(
IOleInPlaceObjectWindowless
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceObjectWindowless
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceObjectWindowless
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleInPlaceObjectWindowless_OnWindowMessage
(
IOleInPlaceObjectWindowless
*
iface
,
static
HRESULT
WINAPI
DocObj
OleInPlaceObjectWindowless_OnWindowMessage
(
IOleInPlaceObjectWindowless
*
iface
,
UINT
msg
,
WPARAM
wParam
,
LPARAM
lParam
,
LRESULT
*
lpResult
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceObjectWindowless
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceObjectWindowless
(
iface
);
FIXME
(
"(%p)->(%u %Iu %Iu %p)
\n
"
,
This
,
msg
,
wParam
,
lParam
,
lpResult
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleInPlaceObjectWindowless_GetDropTarget
(
IOleInPlaceObjectWindowless
*
iface
,
static
HRESULT
WINAPI
DocObj
OleInPlaceObjectWindowless_GetDropTarget
(
IOleInPlaceObjectWindowless
*
iface
,
IDropTarget
**
ppDropTarget
)
{
HTMLDocument
*
This
=
impl
_from_IOleInPlaceObjectWindowless
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleInPlaceObjectWindowless
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
ppDropTarget
);
return
E_NOTIMPL
;
}
static
const
IOleInPlaceObjectWindowlessVtbl
OleInPlaceObjectWindowlessVtbl
=
{
OleInPlaceObjectWindowless_QueryInterface
,
OleInPlaceObjectWindowless_AddRef
,
OleInPlaceObjectWindowless_Release
,
OleInPlaceObjectWindowless_GetWindow
,
OleInPlaceObjectWindowless_ContextSensitiveHelp
,
OleInPlaceObjectWindowless_InPlaceDeactivate
,
OleInPlaceObjectWindowless_UIDeactivate
,
OleInPlaceObjectWindowless_SetObjectRects
,
OleInPlaceObjectWindowless_ReactivateAndUndo
,
OleInPlaceObjectWindowless_OnWindowMessage
,
OleInPlaceObjectWindowless_GetDropTarget
static
const
IOleInPlaceObjectWindowlessVtbl
DocObj
OleInPlaceObjectWindowlessVtbl
=
{
DocObj
OleInPlaceObjectWindowless_QueryInterface
,
DocObj
OleInPlaceObjectWindowless_AddRef
,
DocObj
OleInPlaceObjectWindowless_Release
,
DocObj
OleInPlaceObjectWindowless_GetWindow
,
DocObj
OleInPlaceObjectWindowless_ContextSensitiveHelp
,
DocObj
OleInPlaceObjectWindowless_InPlaceDeactivate
,
DocObj
OleInPlaceObjectWindowless_UIDeactivate
,
DocObj
OleInPlaceObjectWindowless_SetObjectRects
,
DocObj
OleInPlaceObjectWindowless_ReactivateAndUndo
,
DocObj
OleInPlaceObjectWindowless_OnWindowMessage
,
DocObj
OleInPlaceObjectWindowless_GetDropTarget
};
/**********************************************************
* IObjectWithSite implementation
*/
static
inline
HTMLDocument
*
impl
_from_IObjectWithSite
(
IObjectWithSite
*
iface
)
static
inline
HTMLDocument
Node
*
HTMLDocumentNode
_from_IObjectWithSite
(
IObjectWithSite
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
,
IObjectWithSite_iface
);
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
Node
,
IObjectWithSite_iface
);
}
static
HRESULT
WINAPI
ObjectWithSite_QueryInterface
(
IObjectWithSite
*
iface
,
REFIID
riid
,
void
**
ppv
)
static
HRESULT
WINAPI
DocNode
ObjectWithSite_QueryInterface
(
IObjectWithSite
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocument
*
This
=
impl
_from_IObjectWithSite
(
iface
);
return
htmldoc_query_interface
(
This
,
riid
,
ppv
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IObjectWithSite
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
ObjectWithSite_AddRef
(
IObjectWithSite
*
iface
)
static
ULONG
WINAPI
DocNode
ObjectWithSite_AddRef
(
IObjectWithSite
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IObjectWithSite
(
iface
);
return
htmldoc_addref
(
This
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IObjectWithSite
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
ObjectWithSite_Release
(
IObjectWithSite
*
iface
)
static
ULONG
WINAPI
DocNode
ObjectWithSite_Release
(
IObjectWithSite
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IObjectWithSite
(
iface
);
return
htmldoc_release
(
This
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IObjectWithSite
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
ObjectWithSite_SetSite
(
IObjectWithSite
*
iface
,
IUnknown
*
pUnkSite
)
static
HRESULT
WINAPI
DocNode
ObjectWithSite_SetSite
(
IObjectWithSite
*
iface
,
IUnknown
*
pUnkSite
)
{
HTMLDocument
*
This
=
impl
_from_IObjectWithSite
(
iface
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IObjectWithSite
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
pUnkSite
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
ObjectWithSite_GetSite
(
IObjectWithSite
*
iface
,
REFIID
riid
,
PVOID
*
ppvSite
)
static
HRESULT
WINAPI
DocNode
ObjectWithSite_GetSite
(
IObjectWithSite
*
iface
,
REFIID
riid
,
PVOID
*
ppvSite
)
{
HTMLDocument
*
This
=
impl
_from_IObjectWithSite
(
iface
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IObjectWithSite
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
ppvSite
);
return
E_NOTIMPL
;
}
static
const
IObjectWithSiteVtbl
ObjectWithSiteVtbl
=
{
ObjectWithSite_QueryInterface
,
ObjectWithSite_AddRef
,
ObjectWithSite_Release
,
ObjectWithSite_SetSite
,
ObjectWithSite_GetSite
static
const
IObjectWithSiteVtbl
DocNodeObjectWithSiteVtbl
=
{
DocNodeObjectWithSite_QueryInterface
,
DocNodeObjectWithSite_AddRef
,
DocNodeObjectWithSite_Release
,
DocNodeObjectWithSite_SetSite
,
DocNodeObjectWithSite_GetSite
};
static
inline
HTMLDocumentObj
*
HTMLDocumentObj_from_IObjectWithSite
(
IObjectWithSite
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentObj
,
IObjectWithSite_iface
);
}
static
HRESULT
WINAPI
DocObjObjectWithSite_QueryInterface
(
IObjectWithSite
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IObjectWithSite
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
DocObjObjectWithSite_AddRef
(
IObjectWithSite
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IObjectWithSite
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
DocObjObjectWithSite_Release
(
IObjectWithSite
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IObjectWithSite
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
DocObjObjectWithSite_SetSite
(
IObjectWithSite
*
iface
,
IUnknown
*
pUnkSite
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IObjectWithSite
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
pUnkSite
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocObjObjectWithSite_GetSite
(
IObjectWithSite
*
iface
,
REFIID
riid
,
PVOID
*
ppvSite
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IObjectWithSite
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
ppvSite
);
return
E_NOTIMPL
;
}
static
const
IObjectWithSiteVtbl
DocObjObjectWithSiteVtbl
=
{
DocObjObjectWithSite_QueryInterface
,
DocObjObjectWithSite_AddRef
,
DocObjObjectWithSite_Release
,
DocObjObjectWithSite_SetSite
,
DocObjObjectWithSite_GetSite
};
/**********************************************************
* IOleContainer implementation
*/
static
inline
HTMLDocument
*
impl
_from_IOleContainer
(
IOleContainer
*
iface
)
static
inline
HTMLDocument
Node
*
HTMLDocumentNode
_from_IOleContainer
(
IOleContainer
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
,
IOleContainer_iface
);
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
Node
,
IOleContainer_iface
);
}
static
HRESULT
WINAPI
OleContainer_QueryInterface
(
IOleContainer
*
iface
,
REFIID
riid
,
void
**
ppv
)
static
HRESULT
WINAPI
DocNode
OleContainer_QueryInterface
(
IOleContainer
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocument
*
This
=
impl
_from_IOleContainer
(
iface
);
return
htmldoc_query_interface
(
This
,
riid
,
ppv
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleContainer
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
OleContainer_AddRef
(
IOleContainer
*
iface
)
static
ULONG
WINAPI
DocNode
OleContainer_AddRef
(
IOleContainer
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleContainer
(
iface
);
return
htmldoc_addref
(
This
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleContainer
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
OleContainer_Release
(
IOleContainer
*
iface
)
static
ULONG
WINAPI
DocNode
OleContainer_Release
(
IOleContainer
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IOleContainer
(
iface
);
return
htmldoc_release
(
This
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleContainer
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
OleContainer_ParseDisplayName
(
IOleContainer
*
iface
,
IBindCtx
*
pbc
,
LPOLESTR
pszDisplayName
,
static
HRESULT
WINAPI
DocNode
OleContainer_ParseDisplayName
(
IOleContainer
*
iface
,
IBindCtx
*
pbc
,
LPOLESTR
pszDisplayName
,
ULONG
*
pchEaten
,
IMoniker
**
ppmkOut
)
{
HTMLDocument
*
This
=
impl
_from_IOleContainer
(
iface
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IOleContainer
(
iface
);
FIXME
(
"(%p)->(%p %s %p %p)
\n
"
,
This
,
pbc
,
debugstr_w
(
pszDisplayName
),
pchEaten
,
ppmkOut
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
OleContainer_EnumObjects
(
IOleContainer
*
iface
,
DWORD
grfFlags
,
IEnumUnknown
**
ppenum
)
static
HRESULT
WINAPI
DocNode
OleContainer_EnumObjects
(
IOleContainer
*
iface
,
DWORD
grfFlags
,
IEnumUnknown
**
ppenum
)
{
HTMLDocument
*
This
=
impl_from_IOleContainer
(
iface
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleContainer
(
iface
);
return
IOleContainer_EnumObjects
(
&
This
->
basedoc
.
doc_obj
->
IOleContainer_iface
,
grfFlags
,
ppenum
);
}
static
HRESULT
WINAPI
DocNodeOleContainer_LockContainer
(
IOleContainer
*
iface
,
BOOL
fLock
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IOleContainer
(
iface
);
FIXME
(
"(%p)->(%x)
\n
"
,
This
,
fLock
);
return
E_NOTIMPL
;
}
static
const
IOleContainerVtbl
DocNodeOleContainerVtbl
=
{
DocNodeOleContainer_QueryInterface
,
DocNodeOleContainer_AddRef
,
DocNodeOleContainer_Release
,
DocNodeOleContainer_ParseDisplayName
,
DocNodeOleContainer_EnumObjects
,
DocNodeOleContainer_LockContainer
};
static
inline
HTMLDocumentObj
*
HTMLDocumentObj_from_IOleContainer
(
IOleContainer
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentObj
,
IOleContainer_iface
);
}
static
HRESULT
WINAPI
DocObjOleContainer_QueryInterface
(
IOleContainer
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleContainer
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
DocObjOleContainer_AddRef
(
IOleContainer
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleContainer
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
DocObjOleContainer_Release
(
IOleContainer
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleContainer
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
DocObjOleContainer_ParseDisplayName
(
IOleContainer
*
iface
,
IBindCtx
*
pbc
,
LPOLESTR
pszDisplayName
,
ULONG
*
pchEaten
,
IMoniker
**
ppmkOut
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleContainer
(
iface
);
FIXME
(
"(%p)->(%p %s %p %p)
\n
"
,
This
,
pbc
,
debugstr_w
(
pszDisplayName
),
pchEaten
,
ppmkOut
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
DocObjOleContainer_EnumObjects
(
IOleContainer
*
iface
,
DWORD
grfFlags
,
IEnumUnknown
**
ppenum
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IOleContainer
(
iface
);
EnumUnknown
*
ret
;
TRACE
(
"(%p)->(%lx %p)
\n
"
,
This
,
grfFlags
,
ppenum
);
...
...
@@ -1323,20 +1904,20 @@ static HRESULT WINAPI OleContainer_EnumObjects(IOleContainer *iface, DWORD grfFl
return
S_OK
;
}
static
HRESULT
WINAPI
OleContainer_LockContainer
(
IOleContainer
*
iface
,
BOOL
fLock
)
static
HRESULT
WINAPI
DocObj
OleContainer_LockContainer
(
IOleContainer
*
iface
,
BOOL
fLock
)
{
HTMLDocument
*
This
=
impl
_from_IOleContainer
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IOleContainer
(
iface
);
FIXME
(
"(%p)->(%x)
\n
"
,
This
,
fLock
);
return
E_NOTIMPL
;
}
static
const
IOleContainerVtbl
OleContainerVtbl
=
{
OleContainer_QueryInterface
,
OleContainer_AddRef
,
OleContainer_Release
,
OleContainer_ParseDisplayName
,
OleContainer_EnumObjects
,
OleContainer_LockContainer
static
const
IOleContainerVtbl
DocObj
OleContainerVtbl
=
{
DocObj
OleContainer_QueryInterface
,
DocObj
OleContainer_AddRef
,
DocObj
OleContainer_Release
,
DocObj
OleContainer_ParseDisplayName
,
DocObj
OleContainer_EnumObjects
,
DocObj
OleContainer_LockContainer
};
static
inline
HTMLDocumentObj
*
impl_from_ITargetContainer
(
ITargetContainer
*
iface
)
...
...
@@ -1376,8 +1957,8 @@ static HRESULT WINAPI TargetContainer_GetFramesContainer(ITargetContainer *iface
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
ppContainer
);
/* NOTE: we should return wrapped interface here */
IOleContainer_AddRef
(
&
This
->
basedoc
.
IOleContainer_iface
);
*
ppContainer
=
&
This
->
basedoc
.
IOleContainer_iface
;
IOleContainer_AddRef
(
&
This
->
IOleContainer_iface
);
*
ppContainer
=
&
This
->
IOleContainer_iface
;
return
S_OK
;
}
...
...
@@ -1398,41 +1979,88 @@ void TargetContainer_Init(HTMLDocumentObj *This)
* IObjectSafety implementation
*/
static
inline
HTMLDocument
*
impl_from_IObjectSafety
(
IObjectSafety
*
iface
)
static
inline
HTMLDocumentNode
*
HTMLDocumentNode_from_IObjectSafety
(
IObjectSafety
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentNode
,
IObjectSafety_iface
);
}
static
HRESULT
WINAPI
DocNodeObjectSafety_QueryInterface
(
IObjectSafety
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IObjectSafety
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
DocNodeObjectSafety_AddRef
(
IObjectSafety
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HTMLDocument
,
IObjectSafety_iface
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IObjectSafety
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
ObjectSafety_QueryInterface
(
IObjectSafety
*
iface
,
REFIID
riid
,
void
**
ppv
)
static
ULONG
WINAPI
DocNodeObjectSafety_Release
(
IObjectSafety
*
iface
)
{
HTMLDocument
*
This
=
impl
_from_IObjectSafety
(
iface
);
return
htmldoc_
query_interface
(
This
,
riid
,
ppv
);
HTMLDocument
Node
*
This
=
HTMLDocumentNode
_from_IObjectSafety
(
iface
);
return
htmldoc_
release
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
ObjectSafety_AddRef
(
IObjectSafety
*
iface
)
static
HRESULT
WINAPI
DocNodeObjectSafety_GetInterfaceSafetyOptions
(
IObjectSafety
*
iface
,
REFIID
riid
,
DWORD
*
pdwSupportedOptions
,
DWORD
*
pdwEnabledOptions
)
{
HTMLDocument
*
This
=
impl_from_IObjectSafety
(
iface
);
return
htmldoc_addref
(
This
);
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IObjectSafety
(
iface
);
FIXME
(
"(%p)->(%s %p %p)
\n
"
,
This
,
debugstr_guid
(
riid
),
pdwSupportedOptions
,
pdwEnabledOptions
);
return
E_NOTIMPL
;
}
static
ULONG
WINAPI
ObjectSafety_Release
(
IObjectSafety
*
iface
)
static
HRESULT
WINAPI
DocNodeObjectSafety_SetInterfaceSafetyOptions
(
IObjectSafety
*
iface
,
REFIID
riid
,
DWORD
dwOptionSetMask
,
DWORD
dwEnabledOptions
)
{
HTMLDocumentNode
*
This
=
HTMLDocumentNode_from_IObjectSafety
(
iface
);
return
IObjectSafety_SetInterfaceSafetyOptions
(
&
This
->
basedoc
.
doc_obj
->
IObjectSafety_iface
,
riid
,
dwOptionSetMask
,
dwEnabledOptions
);
}
static
const
IObjectSafetyVtbl
DocNodeObjectSafetyVtbl
=
{
DocNodeObjectSafety_QueryInterface
,
DocNodeObjectSafety_AddRef
,
DocNodeObjectSafety_Release
,
DocNodeObjectSafety_GetInterfaceSafetyOptions
,
DocNodeObjectSafety_SetInterfaceSafetyOptions
};
static
inline
HTMLDocumentObj
*
HTMLDocumentObj_from_IObjectSafety
(
IObjectSafety
*
iface
)
{
HTMLDocument
*
This
=
impl_from_IObjectSafety
(
iface
);
return
htmldoc_release
(
This
);
return
CONTAINING_RECORD
(
iface
,
HTMLDocumentObj
,
IObjectSafety_iface
);
}
static
HRESULT
WINAPI
ObjectSafety_GetInterfaceSafetyOptions
(
IObjectSafety
*
iface
,
static
HRESULT
WINAPI
DocObjObjectSafety_QueryInterface
(
IObjectSafety
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IObjectSafety
(
iface
);
return
htmldoc_query_interface
(
&
This
->
basedoc
,
riid
,
ppv
);
}
static
ULONG
WINAPI
DocObjObjectSafety_AddRef
(
IObjectSafety
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IObjectSafety
(
iface
);
return
htmldoc_addref
(
&
This
->
basedoc
);
}
static
ULONG
WINAPI
DocObjObjectSafety_Release
(
IObjectSafety
*
iface
)
{
HTMLDocumentObj
*
This
=
HTMLDocumentObj_from_IObjectSafety
(
iface
);
return
htmldoc_release
(
&
This
->
basedoc
);
}
static
HRESULT
WINAPI
DocObjObjectSafety_GetInterfaceSafetyOptions
(
IObjectSafety
*
iface
,
REFIID
riid
,
DWORD
*
pdwSupportedOptions
,
DWORD
*
pdwEnabledOptions
)
{
HTMLDocument
*
This
=
impl
_from_IObjectSafety
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IObjectSafety
(
iface
);
FIXME
(
"(%p)->(%s %p %p)
\n
"
,
This
,
debugstr_guid
(
riid
),
pdwSupportedOptions
,
pdwEnabledOptions
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
ObjectSafety_SetInterfaceSafetyOptions
(
IObjectSafety
*
iface
,
static
HRESULT
WINAPI
DocObj
ObjectSafety_SetInterfaceSafetyOptions
(
IObjectSafety
*
iface
,
REFIID
riid
,
DWORD
dwOptionSetMask
,
DWORD
dwEnabledOptions
)
{
HTMLDocument
*
This
=
impl
_from_IObjectSafety
(
iface
);
HTMLDocument
Obj
*
This
=
HTMLDocumentObj
_from_IObjectSafety
(
iface
);
FIXME
(
"(%p)->(%s %lx %lx)
\n
"
,
This
,
debugstr_guid
(
riid
),
dwOptionSetMask
,
dwEnabledOptions
);
if
(
IsEqualGUID
(
&
IID_IPersistMoniker
,
riid
)
&&
...
...
@@ -1443,12 +2071,12 @@ static HRESULT WINAPI ObjectSafety_SetInterfaceSafetyOptions(IObjectSafety *ifac
return
E_NOTIMPL
;
}
static
const
IObjectSafetyVtbl
ObjectSafetyVtbl
=
{
ObjectSafety_QueryInterface
,
ObjectSafety_AddRef
,
ObjectSafety_Release
,
ObjectSafety_GetInterfaceSafetyOptions
,
ObjectSafety_SetInterfaceSafetyOptions
static
const
IObjectSafetyVtbl
DocObj
ObjectSafetyVtbl
=
{
DocObj
ObjectSafety_QueryInterface
,
DocObj
ObjectSafety_AddRef
,
DocObj
ObjectSafety_Release
,
DocObj
ObjectSafety_GetInterfaceSafetyOptions
,
DocObj
ObjectSafety_SetInterfaceSafetyOptions
};
void
HTMLDocument_LockContainer
(
HTMLDocumentObj
*
This
,
BOOL
fLock
)
...
...
@@ -1467,16 +2095,30 @@ void HTMLDocument_LockContainer(HTMLDocumentObj *This, BOOL fLock)
}
}
void
HTMLDocument_OleObj_Init
(
HTMLDocument
*
This
)
{
This
->
IOleObject_iface
.
lpVtbl
=
&
OleObjectVtbl
;
This
->
IOleDocument_iface
.
lpVtbl
=
&
OleDocumentVtbl
;
This
->
IOleControl_iface
.
lpVtbl
=
&
OleControlVtbl
;
This
->
IOleInPlaceActiveObject_iface
.
lpVtbl
=
&
OleInPlaceActiveObjectVtbl
;
This
->
IOleInPlaceObjectWindowless_iface
.
lpVtbl
=
&
OleInPlaceObjectWindowlessVtbl
;
This
->
IObjectWithSite_iface
.
lpVtbl
=
&
ObjectWithSiteVtbl
;
This
->
IOleContainer_iface
.
lpVtbl
=
&
OleContainerVtbl
;
This
->
IObjectSafety_iface
.
lpVtbl
=
&
ObjectSafetyVtbl
;
This
->
doc_obj
->
extent
.
cx
=
1
;
This
->
doc_obj
->
extent
.
cy
=
1
;
void
HTMLDocumentNode_OleObj_Init
(
HTMLDocumentNode
*
This
)
{
This
->
IOleObject_iface
.
lpVtbl
=
&
DocNodeOleObjectVtbl
;
This
->
IOleDocument_iface
.
lpVtbl
=
&
DocNodeOleDocumentVtbl
;
This
->
IOleControl_iface
.
lpVtbl
=
&
DocNodeOleControlVtbl
;
This
->
IOleInPlaceActiveObject_iface
.
lpVtbl
=
&
DocNodeOleInPlaceActiveObjectVtbl
;
This
->
IOleInPlaceObjectWindowless_iface
.
lpVtbl
=
&
DocNodeOleInPlaceObjectWindowlessVtbl
;
This
->
IObjectWithSite_iface
.
lpVtbl
=
&
DocNodeObjectWithSiteVtbl
;
This
->
IOleContainer_iface
.
lpVtbl
=
&
DocNodeOleContainerVtbl
;
This
->
IObjectSafety_iface
.
lpVtbl
=
&
DocNodeObjectSafetyVtbl
;
This
->
basedoc
.
doc_obj
->
extent
.
cx
=
1
;
This
->
basedoc
.
doc_obj
->
extent
.
cy
=
1
;
}
void
HTMLDocumentObj_OleObj_Init
(
HTMLDocumentObj
*
This
)
{
This
->
IOleObject_iface
.
lpVtbl
=
&
DocObjOleObjectVtbl
;
This
->
IOleDocument_iface
.
lpVtbl
=
&
DocObjOleDocumentVtbl
;
This
->
IOleControl_iface
.
lpVtbl
=
&
DocObjOleControlVtbl
;
This
->
IOleInPlaceActiveObject_iface
.
lpVtbl
=
&
DocObjOleInPlaceActiveObjectVtbl
;
This
->
IOleInPlaceObjectWindowless_iface
.
lpVtbl
=
&
DocObjOleInPlaceObjectWindowlessVtbl
;
This
->
IObjectWithSite_iface
.
lpVtbl
=
&
DocObjObjectWithSiteVtbl
;
This
->
IOleContainer_iface
.
lpVtbl
=
&
DocObjOleContainerVtbl
;
This
->
IObjectSafety_iface
.
lpVtbl
=
&
DocObjObjectSafetyVtbl
;
This
->
extent
.
cx
=
1
;
This
->
extent
.
cy
=
1
;
}
dlls/mshtml/persist.c
View file @
da4a45cd
...
...
@@ -685,7 +685,7 @@ static HRESULT WINAPI DocObjPersistMoniker_Load(IPersistMoniker *iface, BOOL fFu
hres
=
IUnknown_QueryInterface
(
unk
,
&
IID_IOleClientSite
,
(
void
**
)
&
client
);
if
(
SUCCEEDED
(
hres
))
{
TRACE
(
"Got client site %p
\n
"
,
client
);
IOleObject_SetClientSite
(
&
This
->
basedoc
.
IOleObject_iface
,
client
);
IOleObject_SetClientSite
(
&
This
->
IOleObject_iface
,
client
);
IOleClientSite_Release
(
client
);
}
...
...
@@ -1508,7 +1508,7 @@ static HRESULT WINAPI DocNodeHlinkTarget_Navigate(IHlinkTarget *iface, DWORD grf
FIXME
(
"JumpLocation not supported
\n
"
);
if
(
This
->
basedoc
.
doc_obj
->
client
)
return
IOleObject_DoVerb
(
&
This
->
basedoc
.
IOleObject_iface
,
OLEIVERB_SHOW
,
NULL
,
NULL
,
-
1
,
NULL
,
NULL
);
return
IOleObject_DoVerb
(
&
This
->
IOleObject_iface
,
OLEIVERB_SHOW
,
NULL
,
NULL
,
-
1
,
NULL
,
NULL
);
return
IHlinkTarget_Navigate
(
&
This
->
basedoc
.
doc_obj
->
IHlinkTarget_iface
,
grfHLNF
,
pwzJumpLocation
);
}
...
...
@@ -1602,7 +1602,7 @@ static HRESULT WINAPI DocObjHlinkTarget_Navigate(IHlinkTarget *iface, DWORD grfH
return
S_OK
;
}
return
IOleObject_DoVerb
(
&
This
->
basedoc
.
IOleObject_iface
,
OLEIVERB_SHOW
,
NULL
,
NULL
,
-
1
,
NULL
,
NULL
);
return
IOleObject_DoVerb
(
&
This
->
IOleObject_iface
,
OLEIVERB_SHOW
,
NULL
,
NULL
,
-
1
,
NULL
,
NULL
);
}
static
HRESULT
WINAPI
DocObjHlinkTarget_GetMoniker
(
IHlinkTarget
*
iface
,
LPCWSTR
pwzLocation
,
DWORD
dwAssign
,
...
...
dlls/mshtml/pluginhost.c
View file @
da4a45cd
...
...
@@ -1602,7 +1602,7 @@ static HRESULT WINAPI PHClientSite_GetContainer(IOleClientSite *iface, IOleConta
return
E_UNEXPECTED
;
}
*
ppContainer
=
&
This
->
doc
->
basedoc
.
IOleContainer_iface
;
*
ppContainer
=
&
This
->
doc
->
IOleContainer_iface
;
IOleContainer_AddRef
(
*
ppContainer
);
return
S_OK
;
}
...
...
dlls/mshtml/view.c
View file @
da4a45cd
...
...
@@ -541,7 +541,7 @@ static HRESULT WINAPI OleDocumentView_Show(IOleDocumentView *iface, BOOL fShow)
ShowWindow
(
This
->
hwnd
,
SW_HIDE
);
if
(
This
->
in_place_active
)
IOleInPlaceObjectWindowless_InPlaceDeactivate
(
&
This
->
basedoc
.
IOleInPlaceObjectWindowless_iface
);
IOleInPlaceObjectWindowless_InPlaceDeactivate
(
&
This
->
IOleInPlaceObjectWindowless_iface
);
if
(
This
->
ip_window
)
{
IOleInPlaceUIWindow_Release
(
This
->
ip_window
);
...
...
@@ -612,8 +612,7 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
hres
=
IOleInPlaceSite_OnUIActivate
(
This
->
ipsite
);
if
(
SUCCEEDED
(
hres
))
{
call_set_active_object
((
IOleInPlaceUIWindow
*
)
This
->
frame
,
&
This
->
basedoc
.
IOleInPlaceActiveObject_iface
);
call_set_active_object
((
IOleInPlaceUIWindow
*
)
This
->
frame
,
&
This
->
IOleInPlaceActiveObject_iface
);
}
else
{
FIXME
(
"OnUIActivate failed: %08lx
\n
"
,
hres
);
IOleInPlaceFrame_Release
(
This
->
frame
);
...
...
@@ -625,14 +624,14 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
if
(
This
->
hostui
)
{
hres
=
IDocHostUIHandler_ShowUI
(
This
->
hostui
,
This
->
nscontainer
->
usermode
==
EDITMODE
?
DOCHOSTUITYPE_AUTHOR
:
DOCHOSTUITYPE_BROWSE
,
&
This
->
basedoc
.
IOleInPlaceActiveObject_iface
,
&
This
->
IOleCommandTarget_iface
,
&
This
->
IOleInPlaceActiveObject_iface
,
&
This
->
IOleCommandTarget_iface
,
This
->
frame
,
This
->
ip_window
);
if
(
FAILED
(
hres
))
IDocHostUIHandler_HideUI
(
This
->
hostui
);
}
if
(
This
->
ip_window
)
call_set_active_object
(
This
->
ip_window
,
&
This
->
basedoc
.
IOleInPlaceActiveObject_iface
);
call_set_active_object
(
This
->
ip_window
,
&
This
->
IOleInPlaceActiveObject_iface
);
SetRectEmpty
(
&
rcBorderWidths
);
IOleInPlaceFrame_SetBorderSpace
(
This
->
frame
,
&
rcBorderWidths
);
...
...
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