/******************************************************************** * IInternetZoneManagerEx2_GetZoneAttributesEx */ static HRESULT WINAPI ZoneMgrImpl_GetZoneAttributesEx(IInternetZoneManagerEx2* iface, DWORD dwZone, ZONEATTRIBUTES* pZoneAttributes, DWORD dwFlags) { TRACE("(%p)->(%d, %p, 0x%x)\n", iface, dwZone, pZoneAttributes, dwFlags); if (dwFlags) FIXME("dwFlags 0x%x ignored\n", dwFlags); return IInternetZoneManager_GetZoneAttributes(iface, dwZone, pZoneAttributes); }
/********************************************************************* * add_zone_to_listview [internal] * */ static void add_zone_to_listview(secdlg_data *sd, DWORD *pindex, DWORD zone) { DWORD lv_index = *pindex; ZONEATTRIBUTES *za = &sd->zone_attr[lv_index]; LVITEMW lvitem; HRESULT hr; INT iconid = 0; HMODULE hdll = NULL; WCHAR * ptr; HICON icon; TRACE("item %d (zone %d)\n", lv_index, zone); sd->zones[lv_index] = zone; memset(&lvitem, 0, sizeof(LVITEMW)); memset(za, 0, sizeof(ZONEATTRIBUTES)); za->cbSize = sizeof(ZONEATTRIBUTES); hr = IInternetZoneManager_GetZoneAttributes(sd->zone_mgr, zone, za); if (SUCCEEDED(hr)) { TRACE("displayname: %s\n", debugstr_w(za->szDisplayName)); TRACE("description: %s\n", debugstr_w(za->szDescription)); TRACE("minlevel: 0x%x, recommended: 0x%x, current: 0x%x (flags: 0x%x)\n", za->dwTemplateMinLevel, za->dwTemplateRecommended, za->dwTemplateCurrentLevel, za->dwFlags); if (za->dwFlags & ZAFLAGS_NO_UI ) { TRACE("item %d (zone %d): UI disabled for %s\n", lv_index, zone, debugstr_w(za->szDisplayName)); return; } sd->levels[lv_index] = za->dwTemplateCurrentLevel; lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM; lvitem.iItem = lv_index; lvitem.iSubItem = 0; lvitem.pszText = za->szDisplayName; lvitem.lParam = (LPARAM) zone; /* format is "filename.ext#iconid" */ ptr = StrChrW(za->szIconPath, '#'); if (ptr) { *ptr = 0; ptr++; iconid = StrToIntW(ptr); hdll = LoadLibraryExW(za->szIconPath, NULL, LOAD_LIBRARY_AS_DATAFILE); TRACE("%p: icon #%d from %s\n", hdll, iconid, debugstr_w(za->szIconPath)); icon = LoadImageW(hdll, MAKEINTRESOURCEW(iconid), IMAGE_ICON, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), LR_SHARED); if (!icon) { FIXME("item %d (zone %d): missing icon #%d in %s\n", lv_index, zone, iconid, debugstr_w(za->szIconPath)); } /* the failure result (NULL) from LoadImageW let ImageList_AddIcon fail with -1, which is reused in ListView_InsertItemW to disable the image */ lvitem.iImage = ImageList_AddIcon(sd->himages, icon); } else FIXME("item %d (zone %d): malformed szIconPath %s\n", lv_index, zone, debugstr_w(za->szIconPath)); if (ListView_InsertItemW(sd->hlv, &lvitem) >= 0) { /* activate first item in the listview */ if (! lv_index) { lvitem.state = LVIS_FOCUSED | LVIS_SELECTED; lvitem.stateMask = LVIS_FOCUSED | LVIS_SELECTED; SendMessageW(sd->hlv, LVM_SETITEMSTATE, 0, (LPARAM) &lvitem); sd->last_level = ~0; update_zone_info(sd, lv_index); } (*pindex)++; } FreeLibrary(hdll); } else FIXME("item %d (zone %d): GetZoneAttributes failed with 0x%x\n", lv_index, zone, hr); }