+#define test_disp(u) _test_disp(__LINE__,u)
+static void _test_disp(unsigned line, IUnknown *unk)
+{
+ DISPID dispid = DISPID_XMLDOM_NODELIST_RESET;
+ IDispatchEx *dispex;
+ DWORD dwProps = 0;
+ BSTR sName;
+ UINT ticnt;
+ IUnknown *pUnk;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (void**)&dispex);
+ ok_(__FILE__,line) (hres == S_OK, "Could not get IDispatch: %08x\n", hres);
+ if(FAILED(hres))
+ return;
+
+ ticnt = 0xdeadbeef;
+ hres = IDispatchEx_GetTypeInfoCount(dispex, &ticnt);
+ ok_(__FILE__,line) (hres == S_OK, "GetTypeInfoCount failed: %08x\n", hres);
+ ok_(__FILE__,line) (ticnt == 1, "ticnt=%u\n", ticnt);
+
+ sName = SysAllocString( szstar );
+ hres = IDispatchEx_DeleteMemberByName(dispex, sName, fdexNameCaseSensitive);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+ SysFreeString( sName );
+
+ hres = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+
+ hres = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &dwProps);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+ ok(dwProps == 0, "expected 0 got %d\n", dwProps);
+
+ hres = IDispatchEx_GetMemberName(dispex, dispid, &sName);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+ if(SUCCEEDED(hres))
+ SysFreeString(sName);
+
+ hres = IDispatchEx_GetNextDispID(dispex, fdexEnumDefault, DISPID_XMLDOM_NODELIST_RESET, &dispid);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+
+ hres = IDispatchEx_GetNameSpaceParent(dispex, &pUnk);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+ if(hres == S_OK && pUnk)
+ IUnknown_Release(pUnk);
+
+ IDispatchEx_Release(dispex);
+}
+