<html>
<head>
<style>
<!--
body { background-color:#ffffff }
.file { border:1px solid #eeeeee; margin-top:1em; margin-bottom:1em }
.pathname { font-family:monospace; float:right }
.fileheader { margin-bottom:.5em }
.diff { margin:0 }
.tasklist { padding:4px; border:1px dashed #000000; margin-top:1em }
.tasklist ul { margin-top:0; margin-bottom:0 }
tr.alt { background-color:#eeeeee }
#added { background-color:#ddffdd }
#addedchars { background-color:#99ff99; font-weight:bolder }
tr.alt #added { background-color:#ccf7cc }
#removed { background-color:#ffdddd }
#removedchars { background-color:#ff9999; font-weight:bolder }
tr.alt #removed { background-color:#f7cccc }
#info { color:#888888 }
#context { background-color:#eeeeee }
td {padding-left:.3em; padding-right:.3em }
tr.head { border-bottom-width:1px; border-bottom-style:solid }
tr.head td { padding:0; padding-top:.2em }
.task { background-color:#ffff00 }
.comment { padding:4px; border:1px dashed #000000; background-color:#ffffdd }
.error { color:red }
hr { border-width:0px; height:2px; background:black }
-->
</style>
</head>
<body>
<pre class="comment">Wine-20041201 vendor drop</pre><pre class="diff" id="added">Added: vendor/wine/dlls/shdocvw/
Added: vendor/wine/dlls/shdocvw/current/
Added: vendor/wine/dlls/shdocvw/current/Makefile.in
Added: vendor/wine/dlls/shdocvw/current/classinfo.c
Added: vendor/wine/dlls/shdocvw/current/events.c
Added: vendor/wine/dlls/shdocvw/current/factory.c
Added: vendor/wine/dlls/shdocvw/current/misc.c
Added: vendor/wine/dlls/shdocvw/current/oleobject.c
Added: vendor/wine/dlls/shdocvw/current/persist.c
Added: vendor/wine/dlls/shdocvw/current/regsvr.c
Added: vendor/wine/dlls/shdocvw/current/shdocvw.h
Added: vendor/wine/dlls/shdocvw/current/shdocvw.rc
Added: vendor/wine/dlls/shdocvw/current/shdocvw.spec
Added: vendor/wine/dlls/shdocvw/current/shdocvw_main.c
Added: vendor/wine/dlls/shdocvw/current/version.rc
Added: vendor/wine/dlls/shdocvw/current/webbrowser.c
</pre><hr /><div class="file">
<div class="fileheader"><big><b>Added: vendor/wine/dlls/shdocvw/current/Makefile.in</b></big></div>
<pre class="diff"><small id="info">--- vendor/wine/dlls/shdocvw/current/Makefile.in        2004-12-31 16:00:23 UTC (rev 12599)
+++ vendor/wine/dlls/shdocvw/current/Makefile.in        2004-12-31 16:05:11 UTC (rev 12600)
@@ -0,0 +1,25 @@
</small></pre><pre class="diff" id="added">+EXTRADEFS = -D_SHDOCVW_
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR &nbsp; &nbsp;= @srcdir@
+VPATH &nbsp; &nbsp; = @srcdir@
+MODULE &nbsp; &nbsp;= shdocvw.dll
+IMPORTS &nbsp; = urlmon ole32 user32 advapi32 kernel32
+EXTRALIBS = -luuid
+
+C_SRCS = \
+        classinfo.c \
+        events.c \
+        factory.c \
+        misc.c \
+        oleobject.c \
+        persist.c \
+        regsvr.c \
+        shdocvw_main.c \
+        webbrowser.c
+
+RC_SRCS = shdocvw.rc
+
+@MAKE_DLL_RULES@
+
+### Dependencies:
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Added: vendor/wine/dlls/shdocvw/current/classinfo.c</b></big></div>
<pre class="diff"><small id="info">--- vendor/wine/dlls/shdocvw/current/classinfo.c        2004-12-31 16:00:23 UTC (rev 12599)
+++ vendor/wine/dlls/shdocvw/current/classinfo.c        2004-12-31 16:05:11 UTC (rev 12600)
@@ -0,0 +1,170 @@
</small></pre><pre class="diff" id="added">+/*
+ * Implementation of IProvideClassInfo interfaces for IE Web Browser control
+ *
+ * Copyright 2001 John R. Sheets (for CodeWeavers)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &nbsp;See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA &nbsp;02111-1307 &nbsp;USA
+ */
+
+#include &lt;stdarg.h&gt;
+#include &lt;string.h&gt;
+
+#include &quot;windef.h&quot;
+#include &quot;winbase.h&quot;
+#include &quot;shdocvw.h&quot;
+#include &quot;wine/debug.h&quot;
+
+WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
+
+/**********************************************************************
+ * Implement the IProvideClassInfo interface
+ *
+ * FIXME: Should we just pass in the IProvideClassInfo2 methods rather
+ * &nbsp; &nbsp; &nbsp; &nbsp;reimplementing them here?
+ */
+
+static HRESULT WINAPI WBPCI_QueryInterface(LPPROVIDECLASSINFO iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; REFIID riid, LPVOID *ppobj)
+{
+ &nbsp; &nbsp;IProvideClassInfoImpl *This = (IProvideClassInfoImpl *)iface;
+
+ &nbsp; &nbsp;FIXME(&quot;(%p)-&gt;(%s,%p),stub!\n&quot;, This, debugstr_guid(riid), ppobj);
+ &nbsp; &nbsp;return E_NOINTERFACE;
+}
+
+static ULONG WINAPI WBPCI_AddRef(LPPROVIDECLASSINFO iface)
+{
+ &nbsp; &nbsp;IProvideClassInfoImpl *This = (IProvideClassInfoImpl *)iface;
+
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return ++(This-&gt;ref);
+}
+
+static ULONG WINAPI WBPCI_Release(LPPROVIDECLASSINFO iface)
+{
+ &nbsp; &nbsp;IProvideClassInfoImpl *This = (IProvideClassInfoImpl *)iface;
+
+ &nbsp; &nbsp;/* static class, won't be freed */
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return --(This-&gt;ref);
+}
+
+/* Return an ITypeInfo interface to retrieve type library info about
+ * this control.
+ */
+static HRESULT WINAPI WBPCI_GetClassInfo(LPPROVIDECLASSINFO iface, LPTYPEINFO *ppTI)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: LPTYPEINFO = %p\n&quot;, *ppTI);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/**********************************************************************
+ * IProvideClassInfo virtual function table for IE Web Browser component
+ */
+
+static IProvideClassInfoVtbl WBPCI_Vtbl =
+{
+ &nbsp; &nbsp;WBPCI_QueryInterface,
+ &nbsp; &nbsp;WBPCI_AddRef,
+ &nbsp; &nbsp;WBPCI_Release,
+ &nbsp; &nbsp;WBPCI_GetClassInfo
+};
+
+IProvideClassInfoImpl SHDOCVW_ProvideClassInfo = { &amp;WBPCI_Vtbl, 1 };
+
+
+/**********************************************************************
+ * Implement the IProvideClassInfo2 interface (inherits from
+ * IProvideClassInfo).
+ */
+
+static HRESULT WINAPI WBPCI2_QueryInterface(LPPROVIDECLASSINFO2 iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;REFIID riid, LPVOID *ppobj)
+{
+ &nbsp; &nbsp;IProvideClassInfo2Impl *This = (IProvideClassInfo2Impl *)iface;
+
+ &nbsp; &nbsp;FIXME(&quot;(%p)-&gt;(%s,%p),stub!\n&quot;, This, debugstr_guid(riid), ppobj);
+ &nbsp; &nbsp;return E_NOINTERFACE;
+}
+
+static ULONG WINAPI WBPCI2_AddRef(LPPROVIDECLASSINFO2 iface)
+{
+ &nbsp; &nbsp;IProvideClassInfo2Impl *This = (IProvideClassInfo2Impl *)iface;
+
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return ++(This-&gt;ref);
+}
+
+static ULONG WINAPI WBPCI2_Release(LPPROVIDECLASSINFO2 iface)
+{
+ &nbsp; &nbsp;IProvideClassInfo2Impl *This = (IProvideClassInfo2Impl *)iface;
+
+ &nbsp; &nbsp;/* static class, won't be freed */
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return --(This-&gt;ref);
+}
+
+/* Return an ITypeInfo interface to retrieve type library info about
+ * this control.
+ */
+static HRESULT WINAPI WBPCI2_GetClassInfo(LPPROVIDECLASSINFO2 iface, LPTYPEINFO *ppTI)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: LPTYPEINFO = %p\n&quot;, *ppTI);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/* Get the IID for generic default event callbacks. &nbsp;This IID will
+ * in theory be used to later query for an IConnectionPoint to connect
+ * an event sink (callback implementation in the OLE control site)
+ * to this control.
+*/
+static HRESULT WINAPI WBPCI2_GetGUID(LPPROVIDECLASSINFO2 iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DWORD dwGuidKind, GUID *pGUID)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: dwGuidKind = %ld, pGUID = %s\n&quot;, dwGuidKind, debugstr_guid(pGUID));
+
+ &nbsp; &nbsp;if (dwGuidKind != GUIDKIND_DEFAULT_SOURCE_DISP_IID)
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;FIXME (&quot;Requested unsupported GUID type: %ld\n&quot;, dwGuidKind);
+ &nbsp; &nbsp; &nbsp; &nbsp;return E_FAIL; &nbsp;/* Is there a better return type here? */
+ &nbsp; &nbsp;}
+
+ &nbsp; &nbsp;/* FIXME: Returning IPropertyNotifySink interface, but should really
+ &nbsp; &nbsp; * return a more generic event set (???) dispinterface.
+ &nbsp; &nbsp; * However, this hack, allows a control site to return with success
+ &nbsp; &nbsp; * (MFC's COleControlSite falls back to older IProvideClassInfo interface
+ &nbsp; &nbsp; * if GetGUID() fails to return a non-NULL GUID).
+ &nbsp; &nbsp; */
+ &nbsp; &nbsp;memcpy(pGUID, &amp;IID_IPropertyNotifySink, sizeof(GUID));
+ &nbsp; &nbsp;FIXME(&quot;Wrongly returning IPropertyNotifySink interface %s\n&quot;,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;debugstr_guid(pGUID));
+
+ &nbsp; &nbsp;return S_OK;
+}
+
+/**********************************************************************
+ * IProvideClassInfo virtual function table for IE Web Browser component
+ */
+
+static IProvideClassInfo2Vtbl WBPCI2_Vtbl =
+{
+ &nbsp; &nbsp;WBPCI2_QueryInterface,
+ &nbsp; &nbsp;WBPCI2_AddRef,
+ &nbsp; &nbsp;WBPCI2_Release,
+ &nbsp; &nbsp;WBPCI2_GetClassInfo,
+ &nbsp; &nbsp;WBPCI2_GetGUID
+};
+
+IProvideClassInfo2Impl SHDOCVW_ProvideClassInfo2 = { &amp;WBPCI2_Vtbl, 1 };
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Added: vendor/wine/dlls/shdocvw/current/events.c</b></big></div>
<pre class="diff"><small id="info">--- vendor/wine/dlls/shdocvw/current/events.c        2004-12-31 16:00:23 UTC (rev 12599)
+++ vendor/wine/dlls/shdocvw/current/events.c        2004-12-31 16:05:11 UTC (rev 12600)
@@ -0,0 +1,212 @@
</small></pre><pre class="diff" id="added">+/*
+ * Implementation of event-related interfaces for IE Web Browser control:
+ *
+ * &nbsp;- IConnectionPointContainer
+ * &nbsp;- IConnectionPoint
+ *
+ * Copyright 2001 John R. Sheets (for CodeWeavers)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &nbsp;See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA &nbsp;02111-1307 &nbsp;USA
+ */
+
+#include &lt;string.h&gt;
+#include &quot;wine/debug.h&quot;
+#include &quot;shdocvw.h&quot;
+
+WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
+
+
+static const GUID IID_INotifyDBEvents =
+ &nbsp; &nbsp;{ 0xdb526cc0, 0xd188, 0x11cd, { 0xad, 0x48, 0x00, 0xaa, 0x00, 0x3c, 0x9c, 0xb6 } };
+
+/**********************************************************************
+ * Implement the IConnectionPointContainer interface
+ */
+
+static HRESULT WINAPI WBCPC_QueryInterface(LPCONNECTIONPOINTCONTAINER iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; REFIID riid, LPVOID *ppobj)
+{
+ &nbsp; &nbsp;IConnectionPointContainerImpl *This = (IConnectionPointContainerImpl *)iface;
+
+ &nbsp; &nbsp;FIXME(&quot;(%p)-&gt;(%s,%p),stub!\n&quot;, This, debugstr_guid(riid), ppobj);
+ &nbsp; &nbsp;return E_NOINTERFACE;
+}
+
+static ULONG WINAPI WBCPC_AddRef(LPCONNECTIONPOINTCONTAINER iface)
+{
+ &nbsp; &nbsp;IConnectionPointContainerImpl *This = (IConnectionPointContainerImpl *)iface;
+
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return ++(This-&gt;ref);
+}
+
+static ULONG WINAPI WBCPC_Release(LPCONNECTIONPOINTCONTAINER iface)
+{
+ &nbsp; &nbsp;IConnectionPointContainerImpl *This = (IConnectionPointContainerImpl *)iface;
+
+ &nbsp; &nbsp;/* static class, won't be freed */
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return --(This-&gt;ref);
+}
+
+/* Get a list of connection points inside this container. */
+static HRESULT WINAPI WBCPC_EnumConnectionPoints(LPCONNECTIONPOINTCONTAINER iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LPENUMCONNECTIONPOINTS *ppEnum)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: IEnumConnectionPoints = %p\n&quot;, *ppEnum);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/* Retrieve the connection point in this container associated with the
+ * riid interface. &nbsp;When events occur in the control, the control can
+ * call backwards into its embedding site, through these interfaces.
+ */
+static HRESULT WINAPI WBCPC_FindConnectionPoint(LPCONNECTIONPOINTCONTAINER iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;REFIID riid, LPCONNECTIONPOINT *ppCP)
+{
+ &nbsp; &nbsp;TRACE(&quot;: IID = %s, IConnectionPoint = %p\n&quot;, debugstr_guid(riid), *ppCP);
+
+ &nbsp; &nbsp;/* For now, return the same IConnectionPoint object for both
+ &nbsp; &nbsp; * event interface requests.
+ &nbsp; &nbsp; */
+ &nbsp; &nbsp;if (IsEqualGUID (&amp;IID_INotifyDBEvents, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning connection point %p for IID_INotifyDBEvents\n&quot;,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp;SHDOCVW_ConnectionPoint);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppCP = (LPCONNECTIONPOINT)&amp;SHDOCVW_ConnectionPoint;
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;else if (IsEqualGUID (&amp;IID_IPropertyNotifySink, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning connection point %p for IID_IPropertyNotifySink\n&quot;,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp;SHDOCVW_ConnectionPoint);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppCP = (LPCONNECTIONPOINT)&amp;SHDOCVW_ConnectionPoint;
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+
+ &nbsp; &nbsp;return E_FAIL;
+}
+
+/**********************************************************************
+ * IConnectionPointContainer virtual function table for IE Web Browser component
+ */
+
+static IConnectionPointContainerVtbl WBCPC_Vtbl =
+{
+ &nbsp; &nbsp;WBCPC_QueryInterface,
+ &nbsp; &nbsp;WBCPC_AddRef,
+ &nbsp; &nbsp;WBCPC_Release,
+ &nbsp; &nbsp;WBCPC_EnumConnectionPoints,
+ &nbsp; &nbsp;WBCPC_FindConnectionPoint
+};
+
+IConnectionPointContainerImpl SHDOCVW_ConnectionPointContainer = { &amp;WBCPC_Vtbl, 1 };
+
+
+/**********************************************************************
+ * Implement the IConnectionPoint interface
+ */
+
+static HRESULT WINAPI WBCP_QueryInterface(LPCONNECTIONPOINT iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;REFIID riid, LPVOID *ppobj)
+{
+ &nbsp; &nbsp;IConnectionPointImpl *This = (IConnectionPointImpl *)iface;
+
+ &nbsp; &nbsp;FIXME(&quot;(%p)-&gt;(%s,%p),stub!\n&quot;, This, debugstr_guid(riid), ppobj);
+ &nbsp; &nbsp;return E_NOINTERFACE;
+}
+
+static ULONG WINAPI WBCP_AddRef(LPCONNECTIONPOINT iface)
+{
+ &nbsp; &nbsp;IConnectionPointImpl *This = (IConnectionPointImpl *)iface;
+
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return ++(This-&gt;ref);
+}
+
+static ULONG WINAPI WBCP_Release(LPCONNECTIONPOINT iface)
+{
+ &nbsp; &nbsp;IConnectionPointImpl *This = (IConnectionPointImpl *)iface;
+
+ &nbsp; &nbsp;/* static class, won't be freed */
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return --(This-&gt;ref);
+}
+
+static HRESULT WINAPI WBCP_GetConnectionInterface(LPCONNECTIONPOINT iface, IID* pIId)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: %s\n&quot;, debugstr_guid(pIId));
+ &nbsp; &nbsp;return S_OK;
+}
+
+/* Get this connection point's owning container */
+static HRESULT WINAPI
+WBCP_GetConnectionPointContainer(LPCONNECTIONPOINT iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LPCONNECTIONPOINTCONTAINER *ppCPC)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: IConnectionPointContainer = %p\n&quot;, *ppCPC);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/* Connect the pUnkSink event-handling implementation (in the control site)
+ * to this connection point. &nbsp;Return a handle to this connection in
+ * pdwCookie (for later use in Unadvise()).
+ */
+static HRESULT WINAPI WBCP_Advise(LPCONNECTIONPOINT iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LPUNKNOWN pUnkSink, DWORD *pdwCookie)
+{
+ &nbsp; &nbsp;static int new_cookie;
+
+ &nbsp; &nbsp;FIXME(&quot;stub: IUnknown = %p, connection cookie = %ld\n&quot;, pUnkSink, *pdwCookie);
+
+ &nbsp; &nbsp;*pdwCookie = ++new_cookie;
+ &nbsp; &nbsp;TRACE (&quot;Returning cookie = %ld\n&quot;, *pdwCookie);
+
+ &nbsp; &nbsp;return S_OK;
+}
+
+/* Disconnect this implementation from the connection point. */
+static HRESULT WINAPI WBCP_Unadvise(LPCONNECTIONPOINT iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DWORD dwCookie)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: cookie to disconnect = %lx\n&quot;, dwCookie);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/* Get a list of connections in this connection point. */
+static HRESULT WINAPI WBCP_EnumConnections(LPCONNECTIONPOINT iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LPENUMCONNECTIONS *ppEnum)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: IEnumConnections = %p\n&quot;, *ppEnum);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/**********************************************************************
+ * IConnectionPoint virtual function table for IE Web Browser component
+ */
+
+static IConnectionPointVtbl WBCP_Vtbl =
+{
+ &nbsp; &nbsp;WBCP_QueryInterface,
+ &nbsp; &nbsp;WBCP_AddRef,
+ &nbsp; &nbsp;WBCP_Release,
+ &nbsp; &nbsp;WBCP_GetConnectionInterface,
+ &nbsp; &nbsp;WBCP_GetConnectionPointContainer,
+ &nbsp; &nbsp;WBCP_Advise,
+ &nbsp; &nbsp;WBCP_Unadvise,
+ &nbsp; &nbsp;WBCP_EnumConnections
+};
+
+IConnectionPointImpl SHDOCVW_ConnectionPoint = { &amp;WBCP_Vtbl, 1 };
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Added: vendor/wine/dlls/shdocvw/current/factory.c</b></big></div>
<pre class="diff"><small id="info">--- vendor/wine/dlls/shdocvw/current/factory.c        2004-12-31 16:00:23 UTC (rev 12599)
+++ vendor/wine/dlls/shdocvw/current/factory.c        2004-12-31 16:05:11 UTC (rev 12600)
@@ -0,0 +1,121 @@
</small></pre><pre class="diff" id="added">+/*
+ * Implementation of class factory for IE Web Browser
+ *
+ * Copyright 2001 John R. Sheets (for CodeWeavers)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &nbsp;See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA &nbsp;02111-1307 &nbsp;USA
+ */
+
+#include &lt;string.h&gt;
+#include &quot;wine/debug.h&quot;
+#include &quot;shdocvw.h&quot;
+
+WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
+
+/**********************************************************************
+ * Implement the IWebBrowser class factory
+ *
+ * (Based on implementation in ddraw/main.c)
+ */
+
+/**********************************************************************
+ * WBCF_QueryInterface (IUnknown)
+ */
+static HRESULT WINAPI WBCF_QueryInterface(LPCLASSFACTORY iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;REFIID riid, LPVOID *ppobj)
+{
+ &nbsp; &nbsp;IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
+
+ &nbsp; &nbsp;TRACE (&quot;\n&quot;);
+
+ &nbsp; &nbsp;/*
+ &nbsp; &nbsp; * Perform a sanity check on the parameters.
+ &nbsp; &nbsp; */
+ &nbsp; &nbsp;if ((This == NULL) || (ppobj == NULL) )
+ &nbsp; &nbsp; &nbsp; &nbsp;return E_INVALIDARG;
+
+ &nbsp; &nbsp;return E_NOINTERFACE;
+}
+
+/************************************************************************
+ * WBCF_AddRef (IUnknown)
+ */
+static ULONG WINAPI WBCF_AddRef(LPCLASSFACTORY iface)
+{
+ &nbsp; &nbsp;IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
+
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return ++(This-&gt;ref);
+}
+
+/************************************************************************
+ * WBCF_Release (IUnknown)
+ */
+static ULONG WINAPI WBCF_Release(LPCLASSFACTORY iface)
+{
+ &nbsp; &nbsp;IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
+
+ &nbsp; &nbsp;/* static class, won't be freed */
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return --(This-&gt;ref);
+}
+
+/************************************************************************
+ * WBCF_CreateInstance (IClassFactory)
+ */
+static HRESULT WINAPI WBCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;REFIID riid, LPVOID *ppobj)
+{
+ &nbsp; &nbsp;IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
+
+ &nbsp; &nbsp;/* Don't support aggregation (yet?) */
+ &nbsp; &nbsp;if (pOuter)
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE (&quot;Failed attempt to aggregate IWebBrowser\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;return CLASS_E_NOAGGREGATION;
+ &nbsp; &nbsp;}
+
+ &nbsp; &nbsp;TRACE(&quot;(%p)-&gt;(%p,%s,%p)\n&quot;, This, pOuter, debugstr_guid(riid), ppobj);
+
+ &nbsp; &nbsp;if ((IsEqualGUID (&amp;IID_IOleObject, riid)))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE (&quot;Instantiating IOleObject component\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_OleObject;
+
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;return CLASS_E_CLASSNOTAVAILABLE;
+}
+
+/************************************************************************
+ * WBCF_LockServer (IClassFactory)
+ */
+static HRESULT WINAPI WBCF_LockServer(LPCLASSFACTORY iface, BOOL dolock)
+{
+ &nbsp; &nbsp;IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
+ &nbsp; &nbsp;FIXME(&quot;(%p)-&gt;(%d),stub!\n&quot;, This, dolock);
+ &nbsp; &nbsp;return S_OK;
+}
+
+static IClassFactoryVtbl WBCF_Vtbl =
+{
+ &nbsp; &nbsp;WBCF_QueryInterface,
+ &nbsp; &nbsp;WBCF_AddRef,
+ &nbsp; &nbsp;WBCF_Release,
+ &nbsp; &nbsp;WBCF_CreateInstance,
+ &nbsp; &nbsp;WBCF_LockServer
+};
+
+IClassFactoryImpl SHDOCVW_ClassFactory = { &amp;WBCF_Vtbl, 1 };
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Added: vendor/wine/dlls/shdocvw/current/misc.c</b></big></div>
<pre class="diff"><small id="info">--- vendor/wine/dlls/shdocvw/current/misc.c        2004-12-31 16:00:23 UTC (rev 12599)
+++ vendor/wine/dlls/shdocvw/current/misc.c        2004-12-31 16:05:11 UTC (rev 12600)
@@ -0,0 +1,93 @@
</small></pre><pre class="diff" id="added">+/*
+ * Implementation of miscellaneous interfaces for IE Web Browser control:
+ *
+ * &nbsp;- IQuickActivate
+ *
+ * Copyright 2001 John R. Sheets (for CodeWeavers)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &nbsp;See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA &nbsp;02111-1307 &nbsp;USA
+ */
+
+#include &quot;wine/debug.h&quot;
+#include &quot;shdocvw.h&quot;
+
+WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
+
+/**********************************************************************
+ * Implement the IQuickActivate interface
+ */
+
+static HRESULT WINAPI WBQA_QueryInterface(LPQUICKACTIVATE iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;REFIID riid, LPVOID *ppobj)
+{
+ &nbsp; &nbsp;IQuickActivateImpl *This = (IQuickActivateImpl *)iface;
+
+ &nbsp; &nbsp;FIXME(&quot;(%p)-&gt;(%s,%p),stub!\n&quot;, This, debugstr_guid(riid), ppobj);
+ &nbsp; &nbsp;return E_NOINTERFACE;
+}
+
+static ULONG WINAPI WBQA_AddRef(LPQUICKACTIVATE iface)
+{
+ &nbsp; &nbsp;IQuickActivateImpl *This = (IQuickActivateImpl *)iface;
+
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return ++(This-&gt;ref);
+}
+
+static ULONG WINAPI WBQA_Release(LPQUICKACTIVATE iface)
+{
+ &nbsp; &nbsp;IQuickActivateImpl *This = (IQuickActivateImpl *)iface;
+
+ &nbsp; &nbsp;/* static class, won't be freed */
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return --(This-&gt;ref);
+}
+
+/* Alternative interface for quicker, easier activation of a control. */
+static HRESULT WINAPI WBQA_QuickActivate(LPQUICKACTIVATE iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QACONTAINER *pQaContainer,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QACONTROL *pQaControl)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: QACONTAINER = %p, QACONTROL = %p\n&quot;, pQaContainer, pQaControl);
+ &nbsp; &nbsp;return S_OK;
+}
+
+static HRESULT WINAPI WBQA_SetContentExtent(LPQUICKACTIVATE iface, LPSIZEL pSizel)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: LPSIZEL = %p\n&quot;, pSizel);
+ &nbsp; &nbsp;return E_NOINTERFACE;
+}
+
+static HRESULT WINAPI WBQA_GetContentExtent(LPQUICKACTIVATE iface, LPSIZEL pSizel)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: LPSIZEL = %p\n&quot;, pSizel);
+ &nbsp; &nbsp;return E_NOINTERFACE;
+}
+
+/**********************************************************************
+ * IQuickActivate virtual function table for IE Web Browser component
+ */
+
+static IQuickActivateVtbl WBQA_Vtbl =
+{
+ &nbsp; &nbsp;WBQA_QueryInterface,
+ &nbsp; &nbsp;WBQA_AddRef,
+ &nbsp; &nbsp;WBQA_Release,
+ &nbsp; &nbsp;WBQA_QuickActivate,
+ &nbsp; &nbsp;WBQA_SetContentExtent,
+ &nbsp; &nbsp;WBQA_GetContentExtent
+};
+
+IQuickActivateImpl SHDOCVW_QuickActivate = { &amp;WBQA_Vtbl, 1 };
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Added: vendor/wine/dlls/shdocvw/current/oleobject.c</b></big></div>
<pre class="diff"><small id="info">--- vendor/wine/dlls/shdocvw/current/oleobject.c        2004-12-31 16:00:23 UTC (rev 12599)
+++ vendor/wine/dlls/shdocvw/current/oleobject.c        2004-12-31 16:05:11 UTC (rev 12600)
@@ -0,0 +1,615 @@
</small></pre><pre class="diff" id="added">+/*
+ * Implementation of IOleObject interfaces for IE Web Browser
+ *
+ * - IOleObject
+ * - IOleInPlaceObject
+ * - IOleControl
+ *
+ * Copyright 2001 John R. Sheets (for CodeWeavers)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &nbsp;See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA &nbsp;02111-1307 &nbsp;USA
+ */
+
+#include &lt;string.h&gt;
+#include &quot;wine/debug.h&quot;
+#include &quot;shdocvw.h&quot;
+#include &quot;ole2.h&quot;
+
+WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
+
+/**********************************************************************
+ * Implement the IOleObject interface for the web browser component
+ *
+ * Based on DefaultHandler code in dlls/ole32/defaulthandler.c.
+ */
+
+static ULONG WINAPI WBOOBJ_AddRef(LPOLEOBJECT iface);
+static ULONG WINAPI WBOOBJ_Release(LPOLEOBJECT iface);
+
+/************************************************************************
+ * WBOOBJ_QueryInterface (IUnknown)
+ *
+ * Interfaces we need to (at least pretend to) retrieve:
+ *
+ * &nbsp; a6bc3ac0-dbaa-11ce-9de3-00aa004bb851 &nbsp;IID_IProvideClassInfo2
+ * &nbsp; b196b283-bab4-101a-b69c-00aa00341d07 &nbsp;IID_IProvideClassInfo
+ * &nbsp; cf51ed10-62fe-11cf-bf86-00a0c9034836 &nbsp;IID_IQuickActivate
+ * &nbsp; 7fd52380-4e07-101b-ae2d-08002b2ec713 &nbsp;IID_IPersistStreamInit
+ * &nbsp; 0000010a-0000-0000-c000-000000000046 &nbsp;IID_IPersistStorage
+ * &nbsp; b196b284-bab4-101a-b69c-00aa00341d07 &nbsp;IID_IConnectionPointContainer
+ */
+static HRESULT WINAPI WBOOBJ_QueryInterface(LPOLEOBJECT iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;REFIID riid, void** ppobj)
+{
+ &nbsp; &nbsp;IOleObjectImpl *This = (IOleObjectImpl *)iface;
+
+ &nbsp; &nbsp;/*
+ &nbsp; &nbsp; * Perform a sanity check on the parameters.
+ &nbsp; &nbsp; */
+ &nbsp; &nbsp;if ((This == NULL) || (ppobj == NULL) )
+ &nbsp; &nbsp; &nbsp; &nbsp;return E_INVALIDARG;
+
+ &nbsp; &nbsp;if (IsEqualGUID (&amp;IID_IPersistStorage, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning IID_IPersistStorage interface\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_PersistStorage;
+ &nbsp; &nbsp; &nbsp; &nbsp;WBOOBJ_AddRef (iface);
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;else if (IsEqualGUID (&amp;IID_IPersistStreamInit, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning IID_IPersistStreamInit interface\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_PersistStreamInit;
+ &nbsp; &nbsp; &nbsp; &nbsp;WBOOBJ_AddRef (iface);
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;else if (IsEqualGUID (&amp;IID_IProvideClassInfo, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning IID_IProvideClassInfo interface\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_ProvideClassInfo;
+ &nbsp; &nbsp; &nbsp; &nbsp;WBOOBJ_AddRef (iface);
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;else if (IsEqualGUID (&amp;IID_IProvideClassInfo2, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning IID_IProvideClassInfo2 interface %p\n&quot;,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp;SHDOCVW_ProvideClassInfo2);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_ProvideClassInfo2;
+ &nbsp; &nbsp; &nbsp; &nbsp;WBOOBJ_AddRef (iface);
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;else if (IsEqualGUID (&amp;IID_IQuickActivate, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning IID_IQuickActivate interface\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_QuickActivate;
+ &nbsp; &nbsp; &nbsp; &nbsp;WBOOBJ_AddRef (iface);
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;else if (IsEqualGUID (&amp;IID_IConnectionPointContainer, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning IID_IConnectionPointContainer interface\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_ConnectionPointContainer;
+ &nbsp; &nbsp; &nbsp; &nbsp;WBOOBJ_AddRef (iface);
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;else if (IsEqualGUID (&amp;IID_IOleInPlaceObject, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning IID_IOleInPlaceObject interface\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_OleInPlaceObject;
+ &nbsp; &nbsp; &nbsp; &nbsp;WBOOBJ_AddRef (iface);
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;else if (IsEqualGUID (&amp;IID_IOleControl, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning IID_IOleControl interface\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_OleControl;
+ &nbsp; &nbsp; &nbsp; &nbsp;WBOOBJ_AddRef (iface);
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;else if (IsEqualGUID (&amp;IID_IWebBrowser, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning IID_IWebBrowser interface\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_WebBrowser;
+ &nbsp; &nbsp; &nbsp; &nbsp;WBOOBJ_AddRef (iface);
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+ &nbsp; &nbsp;else if (IsEqualGUID (&amp;IID_IDispatch, riid))
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;TRACE(&quot;Returning IID_IDispatch interface\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;*ppobj = (LPVOID)&amp;SHDOCVW_WebBrowser;
+ &nbsp; &nbsp; &nbsp; &nbsp;WBOOBJ_AddRef (iface);
+ &nbsp; &nbsp; &nbsp; &nbsp;return S_OK;
+ &nbsp; &nbsp;}
+
+ &nbsp; &nbsp;TRACE (&quot;Failed to find iid = %s\n&quot;, debugstr_guid(riid));
+
+ &nbsp; &nbsp;return E_NOINTERFACE;
+}
+
+/************************************************************************
+ * WBOOBJ_AddRef (IUnknown)
+ */
+static ULONG WINAPI WBOOBJ_AddRef(LPOLEOBJECT iface)
+{
+ &nbsp; &nbsp;IOleObjectImpl *This = (IOleObjectImpl *)iface;
+
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return ++(This-&gt;ref);
+}
+
+/************************************************************************
+ * WBOOBJ_Release (IUnknown)
+ */
+static ULONG WINAPI WBOOBJ_Release(LPOLEOBJECT iface)
+{
+ &nbsp; &nbsp;IOleObjectImpl *This = (IOleObjectImpl *)iface;
+
+ &nbsp; &nbsp;/* static class, won't be freed */
+ &nbsp; &nbsp;TRACE(&quot;\n&quot;);
+ &nbsp; &nbsp;return --(This-&gt;ref);
+}
+
+/************************************************************************
+ * WBOOBJ_SetClientSite (IOleObject)
+ */
+static HRESULT WINAPI WBOOBJ_SetClientSite(LPOLEOBJECT iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LPOLECLIENTSITE pClientSite)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: (%p, %p)\n&quot;, iface, pClientSite);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/************************************************************************
+ * WBOOBJ_GetClientSite (IOleObject)
+ */
+static HRESULT WINAPI WBOOBJ_GetClientSite(LPOLEOBJECT iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LPOLECLIENTSITE* ppClientSite)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: (%p)\n&quot;, *ppClientSite);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/************************************************************************
+ * WBOOBJ_SetHostNames (IOleObject)
+ */
+static HRESULT WINAPI WBOOBJ_SetHostNames(LPOLEOBJECT iface, LPCOLESTR szContainerApp,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LPCOLESTR szContainerObj)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: (%p, %s, %s)\n&quot;, iface, debugstr_w(szContainerApp),
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;debugstr_w(szContainerObj));
+ &nbsp; &nbsp;return S_OK;
+}
+
+/************************************************************************
+ * WBOOBJ_Close (IOleObject)
+ */
+static HRESULT WINAPI WBOOBJ_Close(LPOLEOBJECT iface, DWORD dwSaveOption)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: ()\n&quot;);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/************************************************************************
+ * WBOOBJ_SetMoniker (IOleObject)
+ */
+static HRESULT WINAPI WBOOBJ_SetMoniker(LPOLEOBJECT iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DWORD dwWhichMoniker, IMoniker* pmk)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: (%p, %ld, %p)\n&quot;, iface, dwWhichMoniker, pmk);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/************************************************************************
+ * WBOOBJ_GetMoniker (IOleObject)
+ *
+ * Delegate this request to the client site if we have one.
+ */
+static HRESULT WINAPI WBOOBJ_GetMoniker(LPOLEOBJECT iface, DWORD dwAssign,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DWORD dwWhichMoniker, LPMONIKER *ppmk)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub (%p, %ld, %ld, %p)\n&quot;, iface, dwAssign, dwWhichMoniker, ppmk);
+ &nbsp; &nbsp;return E_FAIL;
+}
+
+/************************************************************************
+ * WBOOBJ_InitFromData (IOleObject)
+ *
+ * This method is meaningless if the server is not running
+ */
+static HRESULT WINAPI WBOOBJ_InitFromData(LPOLEOBJECT iface, LPDATAOBJECT pDataObject,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BOOL fCreation, DWORD dwReserved)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: (%p, %p, %d, %ld)\n&quot;, iface, pDataObject, fCreation, dwReserved);
+ &nbsp; &nbsp;return OLE_E_NOTRUNNING;
+}
+
+/************************************************************************
+ * WBOOBJ_GetClipboardData (IOleObject)
+ *
+ * This method is meaningless if the server is not running
+ */
+static HRESULT WINAPI WBOOBJ_GetClipboardData(LPOLEOBJECT iface, DWORD dwReserved,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LPDATAOBJECT *ppDataObject)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: (%p, %ld, %p)\n&quot;, iface, dwReserved, ppDataObject);
+ &nbsp; &nbsp;return OLE_E_NOTRUNNING;
+}
+
+/************************************************************************
+ * WBOOBJ_DoVerb (IOleObject)
+ */
+static HRESULT WINAPI WBOOBJ_DoVerb(LPOLEOBJECT iface, LONG iVerb, struct tagMSG* lpmsg,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LPOLECLIENTSITE pActiveSite, LONG lindex,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HWND hwndParent, LPCRECT lprcPosRect)
+{
+ &nbsp; &nbsp;FIXME(&quot;: stub iVerb = %ld\n&quot;, iVerb);
+ &nbsp; &nbsp;switch (iVerb)
+ &nbsp; &nbsp;{
+ &nbsp; &nbsp;case OLEIVERB_INPLACEACTIVATE:
+ &nbsp; &nbsp; &nbsp; &nbsp;FIXME (&quot;stub for OLEIVERB_INPLACEACTIVATE\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;break;
+ &nbsp; &nbsp;case OLEIVERB_HIDE:
+ &nbsp; &nbsp; &nbsp; &nbsp;FIXME (&quot;stub for OLEIVERB_HIDE\n&quot;);
+ &nbsp; &nbsp; &nbsp; &nbsp;break;
+ &nbsp; &nbsp;}
+
+ &nbsp; &nbsp;return S_OK;
+}
+
+/************************************************************************
+ * WBOOBJ_EnumVerbs (IOleObject)
+ *
+ * Delegate to OleRegEnumVerbs.
+ */
+static HRESULT WINAPI WBOOBJ_EnumVerbs(LPOLEOBJECT iface,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IEnumOLEVERB** ppEnumOleVerb)
+{
+ &nbsp; &nbsp;TRACE(&quot;(%p, %p)\n&quot;, iface, ppEnumOleVerb);
+
+ &nbsp; &nbsp;return OleRegEnumVerbs(&amp;CLSID_WebBrowser, ppEnumOleVerb);
+}
+
+/************************************************************************
+ * WBOOBJ_EnumVerbs (IOleObject)
+ */
+static HRESULT WINAPI WBOOBJ_Update(LPOLEOBJECT iface)
+{
+ &nbsp; &nbsp;FIXME(&quot;: Stub\n&quot;);
+ &nbsp; &nbsp;return E_NOTIMPL;
+}
+
+/************************************************************************
+ * WBOOBJ_IsUpToDate (IOleObject)
+ *
+ * This method is meaningless if the server is not running
+ */
+static HRESULT WINAPI WBOOBJ_IsUpToDate(LPOLEOBJECT iface)
+{
+ &nbsp; &nbsp;FIXME(&quot;(%p)\n&quot;, iface);
+ &nbsp; &nbsp;return OLE_E_NOTRUNNING;
+}
+
+/************************************************************************
+ * WBOOBJ_GetUserClassID (IOleObject)
+ */
+static HRESULT WINAPI WBOOBJ_GetUserClassID(LPOLEOBJECT iface, CLSID* pClsid)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: (%p, %p)\n&quot;, iface, pClsid);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/************************************************************************
+ * WBOOBJ_GetUserType (IOleObject)
+ *
+ * Delegate to OleRegGetUserType.
+ */
+static HRESULT WINAPI WBOOBJ_GetUserType(LPOLEOBJECT iface, DWORD dwFormOfType,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LPOLESTR* pszUserType)
+{
+ &nbsp; &nbsp;TRACE(&quot;(%p, %ld, %p)\n&quot;, iface, dwFormOfType, pszUserType);
+
+ &nbsp; &nbsp;return OleRegGetUserType(&amp;CLSID_WebBrowser, dwFormOfType, pszUserType);
+}
+
+/************************************************************************
+ * WBOOBJ_SetExtent (IOleObject)
+ *
+ * This method is meaningless if the server is not running
+ */
+static HRESULT WINAPI WBOOBJ_SetExtent(LPOLEOBJECT iface, DWORD dwDrawAspect,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SIZEL* psizel)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: (%p, %lx, (%ld x %ld))\n&quot;, iface, dwDrawAspect,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;psizel-&gt;cx, psizel-&gt;cy);
+ &nbsp; &nbsp;return OLE_E_NOTRUNNING;
+}
+
+/************************************************************************
+ * WBOOBJ_GetExtent (IOleObject)
+ */
+static HRESULT WINAPI WBOOBJ_GetExtent(LPOLEOBJECT iface, DWORD dwDrawAspect,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SIZEL* psizel)
+{
+ &nbsp; &nbsp;FIXME(&quot;stub: (%p, %lx, %p)\n&quot;, iface, dwDrawAspect, psizel);
+ &nbsp; &nbsp;return S_OK;
+}
+
+/************************************************************************
</pre>
<strong class="error">[truncated at 1000 lines; 2280 more skipped]</strong>
</div>

</body>
</html>