Jacek Caban : mshtml: Added IPersistPropertyBag calls test.
Alexandre Julliard
julliard at winehq.org
Fri Dec 10 11:57:01 CST 2010
Module: wine
Branch: master
Commit: cc88c5a3312a5de11e7eb618a0570865397bf694
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cc88c5a3312a5de11e7eb618a0570865397bf694
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Dec 10 16:35:59 2010 +0100
mshtml: Added IPersistPropertyBag calls test.
---
dlls/mshtml/tests/activex.c | 84 +++++++++++++++++++++++++++++++++++--------
1 files changed, 69 insertions(+), 15 deletions(-)
diff --git a/dlls/mshtml/tests/activex.c b/dlls/mshtml/tests/activex.c
index 9984ae0..8e46a25 100644
--- a/dlls/mshtml/tests/activex.c
+++ b/dlls/mshtml/tests/activex.c
@@ -60,6 +60,8 @@ DEFINE_EXPECT(CreateInstance);
DEFINE_EXPECT(FreezeEvents_TRUE);
DEFINE_EXPECT(FreezeEvents_FALSE);
DEFINE_EXPECT(QuickActivate);
+DEFINE_EXPECT(IPersistPropertyBag_InitNew);
+DEFINE_EXPECT(IPersistPropertyBag_Load);
static HWND container_hwnd;
@@ -68,18 +70,6 @@ static HWND container_hwnd;
static const GUID CLSID_TestActiveX =
{0x178fc163,0xf585,0x4e24,{0x9c,0x13,0x4b,0xb7,0xf6,0x68,0x07,0x46}};
-static const char *debugstr_guid(REFIID riid)
-{
- static char buf[50];
-
- sprintf(buf, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
- riid->Data1, riid->Data2, riid->Data3, riid->Data4[0],
- riid->Data4[1], riid->Data4[2], riid->Data4[3], riid->Data4[4],
- riid->Data4[5], riid->Data4[6], riid->Data4[7]);
-
- return buf;
-}
-
static const char object_ax_str[] =
"<html><head></head><body>"
"<object classid=\"clsid:" TESTACTIVEX_CLSID "\" width=\"300\" height=\"200\" id=\"objid\">"
@@ -102,7 +92,7 @@ static const REFIID pluginhost_iids[] = {
NULL
};
-static const char *dbgstr_guid(REFIID riid)
+static const char *debugstr_guid(REFIID riid)
{
static char buf[50];
@@ -138,7 +128,7 @@ static void _test_ifaces(unsigned line, IUnknown *iface, REFIID *iids)
for(piid = iids; *piid; piid++) {
hres = IDispatch_QueryInterface(iface, *piid, (void**)&unk);
- ok_(__FILE__,line) (hres == S_OK, "Could not get %s interface: %08x\n", dbgstr_guid(*piid), hres);
+ ok_(__FILE__,line) (hres == S_OK, "Could not get %s interface: %08x\n", debugstr_guid(*piid), hres);
if(SUCCEEDED(hres))
IUnknown_Release(unk);
}
@@ -280,6 +270,62 @@ static const IQuickActivateVtbl QuickActivateVtbl = {
static IQuickActivate QuickActivate = { &QuickActivateVtbl };
+static HRESULT WINAPI PersistPropertyBag_QueryInterface(IPersistPropertyBag *iface, REFIID riid, void **ppv)
+{
+ return ax_qi(riid, ppv);
+}
+
+static ULONG WINAPI PersistPropertyBag_AddRef(IPersistPropertyBag *iface)
+{
+ return 2;
+}
+
+static ULONG WINAPI PersistPropertyBag_Release(IPersistPropertyBag *iface)
+{
+ return 1;
+}
+
+static HRESULT WINAPI PersistPropertyBag_GetClassID(IPersistPropertyBag *face, CLSID *pClassID)
+{
+ ok(0, "unexpected call\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI PersistPropertyBag_InitNew(IPersistPropertyBag *face)
+{
+ CHECK_EXPECT(IPersistPropertyBag_InitNew);
+ return S_OK;
+}
+
+static HRESULT WINAPI PersistPropertyBag_Load(IPersistPropertyBag *face, IPropertyBag *pPropBag, IErrorLog *pErrorLog)
+{
+ CHECK_EXPECT(IPersistPropertyBag_Load);
+
+ ok(pPropBag != NULL, "pPropBag == NULL\n");
+ ok(!pErrorLog, "pErrorLog != NULL\n");
+
+ return S_OK;
+}
+
+static HRESULT WINAPI PersistPropertyBag_Save(IPersistPropertyBag *face, IPropertyBag *pPropBag, BOOL fClearDisrty, BOOL fSaveAllProperties)
+{
+ ok(0, "unexpected call\n");
+ return E_NOTIMPL;
+}
+
+static const IPersistPropertyBagVtbl PersistPropertyBagVtbl = {
+ PersistPropertyBag_QueryInterface,
+ PersistPropertyBag_AddRef,
+ PersistPropertyBag_Release,
+ PersistPropertyBag_GetClassID,
+ PersistPropertyBag_InitNew,
+ PersistPropertyBag_Load,
+ PersistPropertyBag_Save
+
+};
+
+static IPersistPropertyBag PersistPropertyBag = { &PersistPropertyBagVtbl };
+
static HRESULT ax_qi(REFIID riid, void **ppv)
{
if(IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IOleControl)) {
@@ -292,6 +338,11 @@ static HRESULT ax_qi(REFIID riid, void **ppv)
return S_OK;
}
+ if(IsEqualGUID(riid, &IID_IPersistPropertyBag)) {
+ *ppv = &PersistPropertyBag;
+ return S_OK;
+ }
+
*ppv = NULL;
return E_NOINTERFACE;
}
@@ -351,6 +402,8 @@ static const IClassFactoryVtbl ClassFactoryVtbl = {
ClassFactory_LockServer
};
+static IClassFactory activex_cf = { &ClassFactoryVtbl };
+
static HRESULT cs_qi(REFIID,void **);
static IOleDocumentView *view;
@@ -726,7 +779,6 @@ static HRESULT cs_qi(REFIID riid, void **ppv)
return *ppv ? S_OK : E_NOINTERFACE;
}
-static IClassFactory activex_cf = { &ClassFactoryVtbl };
static IHTMLDocument2 *notif_doc;
static BOOL doc_complete;
@@ -914,6 +966,7 @@ static void test_object_ax(void)
SET_EXPECT(FreezeEvents_TRUE);
SET_EXPECT(QuickActivate);
SET_EXPECT(FreezeEvents_FALSE);
+ SET_EXPECT(IPersistPropertyBag_Load);
doc = create_doc(object_ax_str, &called_CreateInstance);
@@ -923,6 +976,7 @@ static void test_object_ax(void)
CHECK_CALLED(QuickActivate);
todo_wine
CHECK_CALLED(FreezeEvents_FALSE);
+ CHECK_CALLED(IPersistPropertyBag_Load);
release_doc(doc);
}
More information about the wine-cvs
mailing list