shdocvw: Added DISPID_AMBIENT_OFFLINEIFNOTCONNECTED and DISPID_AMBIENT_SILENT implementation in DocHost::Invoke.

This commit is contained in:
Jacek Caban 2007-03-09 16:49:21 +01:00 committed by Alexandre Julliard
parent 1f92fba5cc
commit 355b3c190b
1 changed files with 39 additions and 2 deletions

View File

@ -16,8 +16,12 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <stdio.h>
#include "wine/debug.h"
#include "shdocvw.h"
#include "mshtmdid.h"
#include "idispids.h"
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
@ -400,13 +404,46 @@ static HRESULT WINAPI ClDispatch_GetIDsOfNames(IDispatch *iface, REFIID riid, LP
return E_NOTIMPL;
}
static const char *debugstr_dispid(DISPID dispid)
{
static char buf[16];
#define CASE_DISPID(did) case did: return #did
switch(dispid) {
CASE_DISPID(DISPID_AMBIENT_USERMODE);
CASE_DISPID(DISPID_AMBIENT_DLCONTROL);
CASE_DISPID(DISPID_AMBIENT_USERAGENT);
CASE_DISPID(DISPID_AMBIENT_PALETTE);
CASE_DISPID(DISPID_AMBIENT_OFFLINEIFNOTCONNECTED);
CASE_DISPID(DISPID_AMBIENT_SILENT);
}
#undef CASE_DISPID
sprintf(buf, "%d", dispid);
return buf;
}
static HRESULT WINAPI ClDispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REFIID riid,
LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
DocHost *This = DISP_THIS(iface);
FIXME("(%p)->(%d %s %d %04x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
TRACE("(%p)->(%s %s %d %04x %p %p %p %p)\n", This, debugstr_dispid(dispIdMember),
debugstr_guid(riid), lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
switch(dispIdMember) {
case DISPID_AMBIENT_OFFLINEIFNOTCONNECTED:
V_VT(pVarResult) = VT_BOOL;
V_BOOL(pVarResult) = This->offline;
return S_OK;
case DISPID_AMBIENT_SILENT:
V_VT(pVarResult) = VT_BOOL;
V_BOOL(pVarResult) = This->offline;
return S_OK;
}
FIXME("unhandled dispid %d\n", dispIdMember);
return E_NOTIMPL;
}