[PATCH] urlmon: Implement CreateZoneEnumerator, GetZoneAt, DestroyZoneEnumerator
Detlef Riekenberg
wine.dev at web.de
Mon Jun 22 16:23:10 CDT 2009
---
dlls/urlmon/sec_mgr.c | 34 ++++++++++++++++++++++++++++------
1 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/dlls/urlmon/sec_mgr.c b/dlls/urlmon/sec_mgr.c
index 19286b1..fb33879 100644
--- a/dlls/urlmon/sec_mgr.c
+++ b/dlls/urlmon/sec_mgr.c
@@ -29,6 +29,9 @@
WINE_DEFAULT_DEBUG_CHANNEL(urlmon);
+/* The registry has Zone "0" upto Zone "4" since IE4 */
+#define NUMBER_OF_ZONES 5
+
static const WCHAR currentlevelW[] = {'C','u','r','r','e','n','t','L','e','v','e','l',0};
static const WCHAR descriptionW[] = {'D','e','s','c','r','i','p','t','i','o','n',0};
static const WCHAR displaynameW[] = {'D','i','s','p','l','a','y','N','a','m','e',0};
@@ -876,8 +879,15 @@ static HRESULT WINAPI ZoneMgrImpl_CreateZoneEnumerator(IInternetZoneManager* ifa
DWORD* pdwCount,
DWORD dwFlags)
{
- FIXME("(%p)->(%p %p %08x) stub\n", iface, pdwEnum, pdwCount, dwFlags);
- return E_NOTIMPL;
+ ZoneMgrImpl* This = (ZoneMgrImpl*)iface;
+
+ TRACE("(%p)->(%p, %p, 0x%08x)\n", This, pdwEnum, pdwCount, dwFlags);
+ if (!pdwEnum || !pdwCount || (dwFlags != 0))
+ return E_INVALIDARG;
+
+ /* We don't care about *pdwEnum */
+ *pdwCount = NUMBER_OF_ZONES;
+ return S_OK;
}
/********************************************************************
@@ -888,8 +898,17 @@ static HRESULT WINAPI ZoneMgrImpl_GetZoneAt(IInternetZoneManager* iface,
DWORD dwIndex,
DWORD* pdwZone)
{
- FIXME("(%p)->(%08x %08x %p) stub\n", iface, dwEnum, dwIndex, pdwZone);
- return E_NOTIMPL;
+ ZoneMgrImpl* This = (ZoneMgrImpl*)iface;
+
+ TRACE("(%p)->(0x%08x, %d, %p)\n", This, dwEnum, dwIndex, pdwZone);
+
+ /* We don't care about dwEnum */
+ if (dwIndex < NUMBER_OF_ZONES) {
+
+ *pdwZone = dwIndex;
+ return S_OK;
+ }
+ return E_INVALIDARG;
}
/********************************************************************
@@ -898,8 +917,11 @@ static HRESULT WINAPI ZoneMgrImpl_GetZoneAt(IInternetZoneManager* iface,
static HRESULT WINAPI ZoneMgrImpl_DestroyZoneEnumerator(IInternetZoneManager* iface,
DWORD dwEnum)
{
- FIXME("(%p)->(%08x) stub\n", iface, dwEnum);
- return E_NOTIMPL;
+ ZoneMgrImpl* This = (ZoneMgrImpl*)iface;
+
+ TRACE("(%p)->(0x%08x)\n", This, dwEnum);
+ /* We don't care about dwEnum */
+ return S_OK;
}
/********************************************************************
--
1.5.4.3
--=-w/b2ssfSCgBqRMVPDDWz--
More information about the wine-patches
mailing list