- Start implementing Network Connections Shell Folder

- Rename cpanelfolder to shfldr_cpanel
- Implement _ILIsNetConnect, ILCreateNetConnect

svn path=/trunk/; revision=35686
This commit is contained in:
Johannes Anderwald
2008-08-26 21:29:55 +00:00
parent 6c2116d0cf
commit d7a196cf95
39 changed files with 952 additions and 1380 deletions
+5 -1
View File
@@ -386,7 +386,11 @@ BOOL HCR_GetClassNameW(REFIID riid, LPWSTR szDest, DWORD len)
if(LoadStringW(shell32_hInstance, IDS_ADMINISTRATIVETOOLS, szDest, buflen))
ret = TRUE;
}
else if (IsEqualIID(riid, &CLSID_NetworkConnections))
{
if(LoadStringW(shell32_hInstance, IDS_NETWORKCONNECTION, szDest, buflen))
ret = TRUE;
}
}
TRACE("-- %s\n", debugstr_w(szDest));
return ret;
File diff suppressed because it is too large Load Diff
+4
View File
@@ -620,6 +620,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
// special folders
IDS_DESKTOP "Ðàáîòíà ïëîù"
@@ -627,6 +630,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "政֌"
IDS_CONTROLPANEL "Êðèëî çà óïðàâëåíèå"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
// context menus
IDS_VIEW_LARGE "&Ãîëåìè çíà÷åòà"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Lar&ge Icons"
+4
View File
@@ -619,6 +619,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Plocha"
@@ -626,6 +629,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Koš"
IDS_CONTROLPANEL "Ovládací panely"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "&Vedle sebe"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Lar&ge Icons"
+4 -1
View File
@@ -621,7 +621,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Kommentare"
IDS_SHV_COLUMN_LOCATION "Ort"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Gerätename"
IDS_SHV_COLUMN_PHONE "Rufnummer oder Hostaddresse"
IDS_SHV_COLUMN_OWNER "Besitzer"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -629,6 +631,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Papierkorb"
IDS_CONTROLPANEL "Systemsteuerung"
IDS_ADMINISTRATIVETOOLS "Verwaltung"
IDS_NETWORKCONNECTION "Netzwerkverbindungen"
/* context menus */
IDS_VIEW_LARGE "&Große Symbole"
+4
View File
@@ -618,6 +618,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "ÅðéöÜíåéá åñãáóßáò"
@@ -625,6 +628,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "ÊÜäïò áíáêýêëùóçò"
IDS_CONTROLPANEL "Ðßíáêáò åëÝã÷ïõ"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "&ÌåãÜëá åéêïíßäéá"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Recycle Bin"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Lar&ge Icons"
+4
View File
@@ -618,6 +618,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -625,6 +628,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Lar&ge Icons"
+4
View File
@@ -620,6 +620,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comentarios"
IDS_SHV_COLUMN_LOCATION "Ubicación"
IDS_SHV_COLUMN_MODEL "Modelo"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Escritorio"
@@ -627,6 +630,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Papelera de reciclaje"
IDS_CONTROLPANEL "Panel de control"
IDS_ADMINISTRATIVETOOLS "Herramientas Administrativas"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Iconos &grandes"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Työpöytä"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "&Suuret Kuvakkeet"
+4
View File
@@ -621,6 +621,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Commentaires"
IDS_SHV_COLUMN_LOCATION "Emplacement"
IDS_SHV_COLUMN_MODEL "Modèle"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Bureau"
@@ -628,6 +631,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Corbeille"
IDS_CONTROLPANEL "Panneau de configuration"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "&Grandes icônes"
+4
View File
@@ -620,6 +620,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Asztal"
@@ -627,6 +630,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Nagy képek"
+4
View File
@@ -618,6 +618,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Commenti"
IDS_SHV_COLUMN_LOCATION "Posizione"
IDS_SHV_COLUMN_MODEL "Modello"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -625,6 +628,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Cestino"
IDS_CONTROLPANEL "Pannello di controllo"
IDS_ADMINISTRATIVETOOLS "Strumenti di amministrazione"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "&Icone Grandi"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "デスクトップ"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "大きいアイコン(&G)"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Lar&ge Icons"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Lar&ge Icons"
+4
View File
@@ -596,6 +596,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Skrivebord"
@@ -603,6 +606,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Papirkurv"
IDS_CONTROLPANEL "Kontrollpanel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "&Store ikoner"
+4
View File
@@ -624,6 +624,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Komentarze"
IDS_SHV_COLUMN_LOCATION "Lokalizacja"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Pulpit"
@@ -631,6 +634,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Kosz"
IDS_CONTROLPANEL "Panel Sterowania"
IDS_ADMINISTRATIVETOOLS "Narzêdzia Administracyjne"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "&Du¿e Ikony"
+4
View File
@@ -619,6 +619,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Área de trabalho"
@@ -626,6 +629,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Ícones &grandes"
+4
View File
@@ -619,6 +619,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Ambiente de trabalho"
@@ -626,6 +629,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Ícones &grandes"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Êîìåíòàðèè"
IDS_SHV_COLUMN_LOCATION "Ðàñïîëîæåíèå"
IDS_SHV_COLUMN_MODEL "Ìîäåëü"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Ðàáî÷èé ñòîë"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Êîðçèíà"
IDS_CONTROLPANEL "Ïàíåëü óïðàâëåíèÿ"
IDS_ADMINISTRATIVETOOLS "Àäìèíèñòðèðîâàíèå"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "&Áîëüøèå çíà÷êè"
+4
View File
@@ -623,6 +623,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Pracovná plocha"
@@ -630,6 +633,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Kôš"
IDS_CONTROLPANEL "Ovládací panel"
IDS_ADMINISTRATIVETOOLS "Nástroje na správu"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "&Ve¾ké ikony"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Lar&ge Icons"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Lar&ge Icons"
+4
View File
@@ -617,6 +617,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Masaüstü"
@@ -624,6 +627,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Çöp"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Bü&yük Simgeler"
+4
View File
@@ -618,6 +618,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Ðîáî÷èé ñò³ë"
@@ -625,6 +628,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Êîøèê"
IDS_CONTROLPANEL "Ïàíåëü êåðóâàííÿ"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "&Âåëèê³ çíà÷êè"
+4
View File
@@ -606,6 +606,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "桌面"
@@ -613,6 +616,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "回收站"
IDS_CONTROLPANEL "控制面板"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "大图标(&G)"
+4
View File
@@ -618,6 +618,9 @@ BEGIN
IDS_SHV_COLUMN_COMMENTS "Comments"
IDS_SHV_COLUMN_LOCATION "Location"
IDS_SHV_COLUMN_MODEL "Model"
IDS_SHV_COLUMN_DEVNAME "Device Name"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
IDS_SHV_COLUMN_OWNER "Owner"
/* special folders */
IDS_DESKTOP "Desktop"
@@ -625,6 +628,7 @@ BEGIN
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
IDS_CONTROLPANEL "Control Panel"
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
IDS_NETWORKCONNECTION "Network Connections"
/* context menus */
IDS_VIEW_LARGE "Lar&ge Icons"
+16
View File
@@ -1622,6 +1622,16 @@ BOOL _ILIsNetHood(LPCITEMIDLIST pidl)
return FALSE;
}
BOOL _ILIsNetConnect(LPCITEMIDLIST pidl)
{
REFIID iid = _ILGetGUIDPointer(pidl);
TRACE("(%p)\n",pidl);
if (iid)
return IsEqualIID(iid, &CLSID_NetworkConnections);
return FALSE;
}
LPITEMIDLIST _ILCreateNetHood(void)
{
@@ -1633,6 +1643,12 @@ LPITEMIDLIST _ILCreateFont(void)
return _ILCreateGuid(PT_GUID, &CLSID_FontsFolderShortcut);
}
LPITEMIDLIST _ILCreateNetConnect(void)
{
return _ILCreateGuid(PT_GUID, &CLSID_NetworkConnections);
}
BOOL _ILIsMyComputer(LPCITEMIDLIST pidl)
{
REFIID iid = _ILGetGUIDPointer(pidl);
+3
View File
@@ -239,6 +239,7 @@ BOOL _ILIsControlPanel (LPCITEMIDLIST pidl);
BOOL _ILIsBitBucket (LPCITEMIDLIST pidl);
BOOL _ILIsAdminTools (LPCITEMIDLIST pidl);
BOOL _ILIsNetHood (LPCITEMIDLIST pidl);
BOOL _ILIsNetConnect (LPCITEMIDLIST pidl);
BOOL _ILIsDrive (LPCITEMIDLIST pidl);
BOOL _ILIsFolder (LPCITEMIDLIST pidl);
BOOL _ILIsValue (LPCITEMIDLIST pidl);
@@ -287,8 +288,10 @@ LPITEMIDLIST _ILCreateControlPanel (void);
LPITEMIDLIST _ILCreatePrinters (void);
LPITEMIDLIST _ILCreateNetwork (void);
LPITEMIDLIST _ILCreateNetHood (void);
LPITEMIDLIST _ILCreateNetConnect (void);
LPITEMIDLIST _ILCreateAdminTools (void);
LPITEMIDLIST _ILCreateFont (void);
LPITEMIDLIST _ILCreateNetConnect (void);
LPITEMIDLIST _ILCreateBitBucket (void);
LPITEMIDLIST _ILCreateDrive (LPCWSTR);
+2 -1
View File
@@ -44,7 +44,7 @@
#include <shtypes.h>
#include <ndk/ntndk.h>
#include <fmifs/fmifs.h>
#include <largeint.h>
//#include <largeint.h>
#include "base/shell/explorer-new/todo.h"
@@ -72,6 +72,7 @@ extern const GUID CLSID_UnixFolder;
extern const GUID CLSID_UnixDosFolder;
extern const GUID SHELL32_AdvtShortcutProduct;
extern const GUID SHELL32_AdvtShortcutComponent;
extern const GUID CLSID_NetworkConnections;
#endif
+20
View File
@@ -25,6 +25,7 @@ const GUID CLSID_OpenWith = {0x09799AFB, 0xAD67, 0x11d1, {0xAB, 0
const GUID CLSID_UnixFolder = {0xcc702eb2, 0x7dc5, 0x11d9, {0xc6, 0x87, 0x00, 0x04, 0x23, 0x8a, 0x01, 0xcd}};
const GUID CLSID_UnixDosFolder = {0x9d20aae8, 0x0625, 0x44b0, {0x9c, 0xa7, 0x71, 0x88, 0x9c, 0x22, 0x54, 0xd9}};
const GUID CLSID_FontsFolderShortcut = {0xD20EA4E1, 0x3957, 0x11D2, {0xA4, 0x0B, 0x0C, 0x50, 0x20, 0x52, 0x41,0x52}};
const GUID CLSID_NetworkConnections = {0x7007ACC7, 0x3202, 0x11D1, {0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E}};
const GUID SHELL32_AdvtShortcutProduct = {0x9db1186f, 0x40df, 0x11d1, {0xaa, 0x8c, 0x00, 0xc0, 0x4f, 0xb6, 0x78, 0x63}};
const GUID SHELL32_AdvtShortcutComponent = {0x9db1186e, 0x40df, 0x11d1, {0xaa, 0x8c, 0x00, 0xc0, 0x4f, 0xb6, 0x78, 0x63}};
@@ -622,6 +623,19 @@ static struct regsvr_coclass const coclass_list[] = {
0,
NULL,
NULL,
IDI_SHELL_NETWORK_FOLDER
},
{ &CLSID_NetworkConnections,
"Network Connections",
IDS_NETWORKCONNECTION,
NULL,
"shell32.dll",
"Apartment",
SHELLFOLDER_ATTRIBUTES|SHELLFOLDER_CALLFORATTRIBUTES,
SFGAO_FOLDER,
0,
NULL,
NULL,
IDI_SHELL_MY_NETWORK_PLACES
},
{ &CLSID_FontsFolderShortcut,
@@ -745,6 +759,7 @@ static const WCHAR wszNethoodFolder[] = { 'N','e','t','h','o','o','d',' ','f','o
static const WCHAR wszPrinters[] = { 'P','r','i','n','t','e','r','s',0 };
static const WCHAR wszFonts[] = { 'F','o','n','t','s',0 };
static const WCHAR wszAdminTools[] = { 'A','d','m','i','n','T','o','o','l','s',0 };
static const WCHAR wszNetConnect[] = { 'N','e','t','w','o','r','k',' ','C','o','n','n','e','c','t','i','o','n','s',0 };
const GUID CLSID_FolderOptions = { 0x6DFD7C5C, 0x2451, 0x11d3, {0xa2,0x99,0x00,0xC0,0x4F,0x8e,0xf6,0xaf} };
static struct regsvr_namespace const namespace_extensions_list[] = {
@@ -795,6 +810,11 @@ static struct regsvr_namespace const namespace_extensions_list[] = {
wszControlPanel,
wszAdminTools
},
{
&CLSID_NetworkConnections,
wszControlPanel,
wszNetConnect
},
{ NULL }
};
+5 -4
View File
@@ -33,7 +33,6 @@
<file>classes.c</file>
<file>clipboard.c</file>
<file>control.c</file>
<file>cpanelfolder.c</file>
<file>dataobject.c</file>
<file>dde.c</file>
<file>debughlp.c</file>
@@ -59,6 +58,11 @@
<file>shfldr_mydocuments.c</file>
<file>shfldr_printers.c</file>
<file>shfldr_admintools.c</file>
<file>shfldr_netplaces.c</file>
<file>shfldr_fonts.c</file>
<file>shfldr_netconnect.c</file>
<file>shfldr_cpanel.c</file>
<file>shfldr_recyclebin.c</file>
<file>shlexec.c</file>
<file>shlfileop.c</file>
<file>shlfolder.c</file>
@@ -72,11 +76,8 @@
<file>shell32.spec</file>
<file>fprop.c</file>
<file>drive.c</file>
<file>shfldr_recyclebin.c</file>
<file>she_ocmenu.c</file>
<file>shv_item_new.c</file>
<file>folder_options.c</file>
<file>shfldr_netplaces.c</file>
<file>shfldr_fonts.c</file>
<file>shell32.rc</file>
</module>
+1
View File
@@ -99,6 +99,7 @@ HRESULT WINAPI ISF_Printers_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOI
HRESULT WINAPI ISF_MyDocuments_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
HRESULT WINAPI ISF_NetworkPlaces_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
HRESULT WINAPI ISF_Fonts_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
HRESULT WINAPI ISF_NetConnect_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
HRESULT WINAPI ISF_AdminTools_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
HRESULT WINAPI IFileSystemBindData_Constructor(const WIN32_FIND_DATAW *pfd, LPBC *ppV);
+1
View File
@@ -54,6 +54,7 @@ static const struct {
{&CLSID_MyDocuments, &ISF_MyDocuments_Constructor},
{&CLSID_NetworkPlaces, &ISF_NetworkPlaces_Constructor},
{&CLSID_FontsFolderShortcut, &ISF_Fonts_Constructor},
{&CLSID_NetworkConnections, &ISF_NetConnect_Constructor},
{&CLSID_Printers, &ISF_Printers_Constructor},
{&CLSID_AdminFolderShortcut, &ISF_AdminTools_Constructor},
{&CLSID_RecycleBin, &RecycleBin_Constructor},
@@ -0,0 +1,781 @@
/*
* Network Connections Shell Folder
*
* Copyright 2008 Johannes Anderwald <janderwald@reactos.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <precomp.h>
WINE_DEFAULT_DEBUG_CHANNEL (shell);
/***********************************************************************
* IShellFolder implementation
*/
typedef struct {
const IShellFolder2Vtbl *lpVtbl;
LONG ref;
const IContextMenu2Vtbl *lpVtblContextMenu;
const IPersistFolder2Vtbl *lpVtblPersistFolder2;
/* both paths are parsible from the desktop */
LPITEMIDLIST pidlRoot; /* absolute pidl */
LPCITEMIDLIST apidl; /* currently focused font item */
} IGenericSFImpl, *LPIGenericSFImpl;
static const shvheader NetConnectSFHeader[] = {
{IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15},
{IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
{IDS_SHV_COLUMN_STATUS, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
{IDS_SHV_COLUMN_DEVNAME, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12},
{IDS_SHV_COLUMN_PHONE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
{IDS_SHV_COLUMN_OWNER, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 5}
};
#define NETCONNECTSHELLVIEWCOLUMNS 6
#define COLUMN_NAME 0
#define COLUMN_TYPE 1
#define COLUMN_STATUS 2
#define COLUMN_DEVNAME 3
#define COLUMN_PHONE 4
#define COLUMN_OWNER 5
static LPIGenericSFImpl __inline impl_from_IContextMenu2(IContextMenu2 *iface)
{
return (LPIGenericSFImpl)((char *)iface - FIELD_OFFSET(IGenericSFImpl, lpVtblContextMenu));
}
static LPIGenericSFImpl __inline impl_from_IPersistFolder2(IPersistFolder2 *iface)
{
return (LPIGenericSFImpl)((char *)iface - FIELD_OFFSET(IGenericSFImpl, lpVtblPersistFolder2));
}
/**************************************************************************
* ISF_NetConnect_fnQueryInterface
*
* NOTE
* supports not IPersist/IPersistFolder
*/
static HRESULT WINAPI ISF_NetConnect_fnQueryInterface (IShellFolder2 *iface, REFIID riid, LPVOID *ppvObj)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
*ppvObj = NULL;
if (IsEqualIID (riid, &IID_IUnknown) ||
IsEqualIID (riid, &IID_IShellFolder) ||
IsEqualIID (riid, &IID_IShellFolder2))
{
*ppvObj = This;
}
else if (IsEqualIID (riid, &IID_IPersistFolder) ||
IsEqualIID (riid, &IID_IPersistFolder2))
{
*ppvObj = (LPVOID *)&This->lpVtblPersistFolder2;
}
if (*ppvObj)
{
IUnknown_AddRef ((IUnknown *) (*ppvObj));
TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
return S_OK;
}
TRACE ("-- Interface: E_NOINTERFACE\n");
return E_NOINTERFACE;
}
static ULONG WINAPI ISF_NetConnect_fnAddRef (IShellFolder2 * iface)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
ULONG refCount = InterlockedIncrement(&This->ref);
TRACE ("(%p)->(count=%u)\n", This, refCount - 1);
return refCount;
}
static ULONG WINAPI ISF_NetConnect_fnRelease (IShellFolder2 * iface)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
ULONG refCount = InterlockedDecrement(&This->ref);
TRACE ("(%p)->(count=%u)\n", This, refCount + 1);
if (!refCount) {
TRACE ("-- destroying IShellFolder(%p)\n", This);
SHFree (This->pidlRoot);
HeapFree (GetProcessHeap(), 0, This);
}
return refCount;
}
/**************************************************************************
* ISF_NetConnect_fnParseDisplayName
*/
static HRESULT WINAPI ISF_NetConnect_fnParseDisplayName (IShellFolder2 * iface,
HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName,
DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
HRESULT hr = E_UNEXPECTED;
TRACE ("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", This,
hwndOwner, pbcReserved, lpszDisplayName, debugstr_w (lpszDisplayName),
pchEaten, ppidl, pdwAttributes);
*ppidl = 0;
if (pchEaten)
*pchEaten = 0; /* strange but like the original */
TRACE ("(%p)->(-- ret=0x%08x)\n", This, hr);
return hr;
}
/**************************************************************************
* CreateNetConnectEnumListss()
*/
static BOOL CreateNetConnectEnumList(IEnumIDList *list, DWORD dwFlags)
{
return FALSE;
}
/**************************************************************************
* ISF_NetConnect_fnEnumObjects
*/
static HRESULT WINAPI ISF_NetConnect_fnEnumObjects (IShellFolder2 * iface,
HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
TRACE ("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", This,
hwndOwner, dwFlags, ppEnumIDList);
*ppEnumIDList = IEnumIDList_Constructor();
if(*ppEnumIDList)
CreateNetConnectEnumList(*ppEnumIDList, dwFlags);
TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList);
return (*ppEnumIDList) ? S_OK : E_OUTOFMEMORY;
}
/**************************************************************************
* ISF_NetConnect_fnBindToObject
*/
static HRESULT WINAPI ISF_NetConnect_fnBindToObject (IShellFolder2 * iface,
LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This,
pidl, pbcReserved, shdebugstr_guid (riid), ppvOut);
return SHELL32_BindToChild (This->pidlRoot, NULL, pidl, riid, ppvOut);
}
/**************************************************************************
* ISF_NetConnect_fnBindToStorage
*/
static HRESULT WINAPI ISF_NetConnect_fnBindToStorage (IShellFolder2 * iface,
LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", This,
pidl, pbcReserved, shdebugstr_guid (riid), ppvOut);
*ppvOut = NULL;
return E_NOTIMPL;
}
/**************************************************************************
* ISF_NetConnect_fnCompareIDs
*/
static HRESULT WINAPI ISF_NetConnect_fnCompareIDs (IShellFolder2 * iface,
LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
int nReturn;
TRACE ("(%p)->(0x%08lx,pidl1=%p,pidl2=%p)\n", This, lParam, pidl1, pidl2);
nReturn = SHELL32_CompareIDs ((IShellFolder*)This, lParam, pidl1, pidl2);
TRACE ("-- %i\n", nReturn);
return nReturn;
}
/**************************************************************************
* ISF_NetConnect_fnCreateViewObject
*/
static HRESULT WINAPI ISF_NetConnect_fnCreateViewObject (IShellFolder2 * iface,
HWND hwndOwner, REFIID riid, LPVOID * ppvOut)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
LPSHELLVIEW pShellView;
HRESULT hr = E_INVALIDARG;
TRACE ("(%p)->(hwnd=%p,%s,%p)\n", This,
hwndOwner, shdebugstr_guid (riid), ppvOut);
if (!ppvOut)
return hr;
*ppvOut = NULL;
if (IsEqualIID (riid, &IID_IShellView))
{
pShellView = IShellView_Constructor ((IShellFolder *) iface);
if (pShellView)
{
hr = IShellView_QueryInterface (pShellView, riid, ppvOut);
IShellView_Release (pShellView);
}
}
TRACE ("-- (%p)->(interface=%p)\n", This, ppvOut);
return hr;
}
/**************************************************************************
* ISF_NetConnect_fnGetAttributesOf
*/
static HRESULT WINAPI ISF_NetConnect_fnGetAttributesOf (IShellFolder2 * iface,
UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
HRESULT hr = S_OK;
TRACE ("(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n", This,
cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0);
if (!rgfInOut)
return E_INVALIDARG;
if (cidl && !apidl)
return E_INVALIDARG;
if (*rgfInOut == 0)
*rgfInOut = ~0;
/* make sure SFGAO_VALIDATE is cleared, some apps depend on that */
*rgfInOut &= ~SFGAO_VALIDATE;
TRACE ("-- result=0x%08x\n", *rgfInOut);
return hr;
}
/**************************************************************************
* ISF_NetConnect_fnGetUIObjectOf
*
* PARAMETERS
* hwndOwner [in] Parent window for any output
* cidl [in] array size
* apidl [in] simple pidl array
* riid [in] Requested Interface
* prgfInOut [ ] reserved
* ppvObject [out] Resulting Interface
*
*/
static HRESULT WINAPI ISF_NetConnect_fnGetUIObjectOf (IShellFolder2 * iface,
HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl, REFIID riid,
UINT * prgfInOut, LPVOID * ppvOut)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
IUnknown *pObj = NULL;
HRESULT hr = E_INVALIDARG;
TRACE ("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n", This,
hwndOwner, cidl, apidl, shdebugstr_guid (riid), prgfInOut, ppvOut);
if (!ppvOut)
return hr;
*ppvOut = NULL;
if (IsEqualIID (riid, &IID_IContextMenu) && (cidl >= 1))
{
pObj = (IUnknown*)(&This->lpVtblContextMenu);
This->apidl = apidl[0];
IUnknown_AddRef(pObj);
hr = S_OK;
}
else
hr = E_NOINTERFACE;
if (SUCCEEDED(hr) && !pObj)
hr = E_OUTOFMEMORY;
*ppvOut = pObj;
TRACE ("(%p)->hr=0x%08x\n", This, hr);
return hr;
}
/**************************************************************************
* ISF_NetConnect_fnGetDisplayNameOf
*
*/
static HRESULT WINAPI ISF_NetConnect_fnGetDisplayNameOf (IShellFolder2 * iface,
LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet)
{
LPWSTR pszName;
HRESULT hr = E_FAIL;
IGenericSFImpl *This = (IGenericSFImpl *)iface;
TRACE("ISF_NetConnect_fnGetDisplayNameOf (%p)->(pidl=%p,0x%08x,%p)\n", This, pidl, dwFlags, strRet);
if (!strRet)
return E_INVALIDARG;
pszName = CoTaskMemAlloc(MAX_PATH * sizeof(WCHAR));
if (!pszName)
return E_OUTOFMEMORY;
if (_ILIsNetConnect (pidl))
{
if (HCR_GetClassNameW(&CLSID_NetworkConnections, pszName, MAX_PATH))
hr = S_OK;
}
if (SUCCEEDED(hr))
{
strRet->uType = STRRET_WSTR;
strRet->u.pOleStr = pszName;
}
else
CoTaskMemFree(pszName);
return hr;
}
/**************************************************************************
* ISF_NetConnect_fnSetNameOf
* Changes the name of a file object or subfolder, possibly changing its item
* identifier in the process.
*
* PARAMETERS
* hwndOwner [in] Owner window for output
* pidl [in] simple pidl of item to change
* lpszName [in] the items new display name
* dwFlags [in] SHGNO formatting flags
* ppidlOut [out] simple pidl returned
*/
static HRESULT WINAPI ISF_NetConnect_fnSetNameOf (IShellFolder2 * iface,
HWND hwndOwner, LPCITEMIDLIST pidl, /*simple pidl */
LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
FIXME ("(%p)->(%p,pidl=%p,%s,%u,%p)\n", This,
hwndOwner, pidl, debugstr_w (lpName), dwFlags, pPidlOut);
return E_NOTIMPL;
}
static HRESULT WINAPI ISF_NetConnect_fnGetDefaultSearchGUID (
IShellFolder2 * iface, GUID * pguid)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
FIXME ("(%p)\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI ISF_NetConnect_fnEnumSearches (IShellFolder2 * iface,
IEnumExtraSearch ** ppenum)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
FIXME ("(%p)\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI ISF_NetConnect_fnGetDefaultColumn (IShellFolder2 * iface,
DWORD dwRes, ULONG * pSort, ULONG * pDisplay)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
TRACE ("(%p)\n", This);
if (pSort)
*pSort = 0;
if (pDisplay)
*pDisplay = 0;
return S_OK;
}
static HRESULT WINAPI ISF_NetConnect_fnGetDefaultColumnState (
IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
TRACE ("(%p)\n", This);
if (!pcsFlags || iColumn >= NETCONNECTSHELLVIEWCOLUMNS)
return E_INVALIDARG;
*pcsFlags = NetConnectSFHeader[iColumn].pcsFlags;
return S_OK;
}
static HRESULT WINAPI ISF_NetConnect_fnGetDetailsEx (IShellFolder2 * iface,
LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
FIXME ("(%p)\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI ISF_NetConnect_fnGetDetailsOf (IShellFolder2 * iface,
LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
WCHAR buffer[MAX_PATH] = {0};
HRESULT hr = E_FAIL;
TRACE("(%p, %p, %d, %p)\n", This, pidl, iColumn, psd);
if (iColumn >= NETCONNECTSHELLVIEWCOLUMNS)
return E_FAIL;
psd->fmt = NetConnectSFHeader[iColumn].fmt;
psd->cxChar = NetConnectSFHeader[iColumn].cxChar;
if (pidl == NULL)
{
psd->str.uType = STRRET_WSTR;
if (LoadStringW(shell32_hInstance, NetConnectSFHeader[iColumn].colnameid, buffer, MAX_PATH))
hr = SHStrDupW(buffer, &psd->str.u.pOleStr);
return hr;
}
if (iColumn == COLUMN_NAME)
{
psd->str.uType = STRRET_WSTR;
return IShellFolder2_GetDisplayNameOf(iface, pidl, SHGDN_NORMAL, &psd->str);
}
psd->str.uType = STRRET_CSTR;
psd->str.u.cStr[0] = '\0';
switch(iColumn)
{
case COLUMN_NAME:
case COLUMN_TYPE:
case COLUMN_STATUS:
case COLUMN_DEVNAME:
case COLUMN_PHONE:
case COLUMN_OWNER:
break;
}
return E_FAIL;
}
static HRESULT WINAPI ISF_NetConnect_fnMapColumnToSCID (IShellFolder2 * iface,
UINT column, SHCOLUMNID * pscid)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
FIXME ("(%p)\n", This);
return E_NOTIMPL;
}
static const IShellFolder2Vtbl vt_ShellFolder2 = {
ISF_NetConnect_fnQueryInterface,
ISF_NetConnect_fnAddRef,
ISF_NetConnect_fnRelease,
ISF_NetConnect_fnParseDisplayName,
ISF_NetConnect_fnEnumObjects,
ISF_NetConnect_fnBindToObject,
ISF_NetConnect_fnBindToStorage,
ISF_NetConnect_fnCompareIDs,
ISF_NetConnect_fnCreateViewObject,
ISF_NetConnect_fnGetAttributesOf,
ISF_NetConnect_fnGetUIObjectOf,
ISF_NetConnect_fnGetDisplayNameOf,
ISF_NetConnect_fnSetNameOf,
/* ShellFolder2 */
ISF_NetConnect_fnGetDefaultSearchGUID,
ISF_NetConnect_fnEnumSearches,
ISF_NetConnect_fnGetDefaultColumn,
ISF_NetConnect_fnGetDefaultColumnState,
ISF_NetConnect_fnGetDetailsEx,
ISF_NetConnect_fnGetDetailsOf,
ISF_NetConnect_fnMapColumnToSCID
};
/**************************************************************************
* IContextMenu2 Implementation
*/
/************************************************************************
* ISF_NetConnect_IContextMenu_QueryInterface
*/
static HRESULT WINAPI ISF_NetConnect_IContextMenu2_QueryInterface(IContextMenu2 * iface, REFIID iid, LPVOID * ppvObject)
{
IGenericSFImpl * This = impl_from_IContextMenu2(iface);
TRACE("(%p)\n", This);
return IShellFolder2_QueryInterface((IShellFolder2*)This, iid, ppvObject);
}
/************************************************************************
* ISF_NetConnect_IContextMenu_AddRef
*/
static ULONG WINAPI ISF_NetConnect_IContextMenu2_AddRef(IContextMenu2 * iface)
{
IGenericSFImpl * This = impl_from_IContextMenu2(iface);
TRACE("(%p)->(count=%u)\n", This, This->ref);
return IShellFolder2_AddRef((IShellFolder2*)This);
}
/************************************************************************
* ISF_NetConnect_IContextMenu_Release
*/
static ULONG WINAPI ISF_NetConnect_IContextMenu2_Release(IContextMenu2 * iface)
{
IGenericSFImpl * This = impl_from_IContextMenu2(iface);
TRACE("(%p)->(count=%u)\n", This, This->ref);
return IShellFolder2_Release((IShellFolder2*)This);
}
/**************************************************************************
* ISF_NetConnect_IContextMenu_QueryContextMenu()
*/
static HRESULT WINAPI ISF_NetConnect_IContextMenu2_QueryContextMenu(
IContextMenu2 *iface,
HMENU hMenu,
UINT indexMenu,
UINT idCmdFirst,
UINT idCmdLast,
UINT uFlags)
{
int Count = 1;
IGenericSFImpl * This = impl_from_IContextMenu2(iface);
TRACE("(%p)->(hmenu=%p indexmenu=%x cmdfirst=%x cmdlast=%x flags=%x )\n",
This, hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, Count);
}
/**************************************************************************
* ISF_NetConnect_IContextMenu_InvokeCommand()
*/
static HRESULT WINAPI ISF_NetConnect_IContextMenu2_InvokeCommand(
IContextMenu2 *iface,
LPCMINVOKECOMMANDINFO lpcmi)
{
IGenericSFImpl * This = impl_from_IContextMenu2(iface);
TRACE("(%p)->(invcom=%p verb=%p wnd=%p)\n",This,lpcmi,lpcmi->lpVerb, lpcmi->hwnd);
return S_OK;
}
/**************************************************************************
* ISF_NetConnect_IContextMenu_GetCommandString()
*
*/
static HRESULT WINAPI ISF_NetConnect_IContextMenu2_GetCommandString(
IContextMenu2 *iface,
UINT_PTR idCommand,
UINT uFlags,
UINT* lpReserved,
LPSTR lpszName,
UINT uMaxNameLen)
{
IGenericSFImpl * This = impl_from_IContextMenu2(iface);
TRACE("(%p)->(idcom=%lx flags=%x %p name=%p len=%x)\n",This, idCommand, uFlags, lpReserved, lpszName, uMaxNameLen);
return E_FAIL;
}
/**************************************************************************
* ISF_NetConnect_IContextMenu_HandleMenuMsg()
*/
static HRESULT WINAPI ISF_NetConnect_IContextMenu2_HandleMenuMsg(
IContextMenu2 *iface,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
IGenericSFImpl * This = impl_from_IContextMenu2(iface);
TRACE("ISF_NetConnect_IContextMenu_HandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n",This, uMsg, wParam, lParam);
return E_NOTIMPL;
}
static const IContextMenu2Vtbl vt_ContextMenu2 =
{
ISF_NetConnect_IContextMenu2_QueryInterface,
ISF_NetConnect_IContextMenu2_AddRef,
ISF_NetConnect_IContextMenu2_Release,
ISF_NetConnect_IContextMenu2_QueryContextMenu,
ISF_NetConnect_IContextMenu2_InvokeCommand,
ISF_NetConnect_IContextMenu2_GetCommandString,
ISF_NetConnect_IContextMenu2_HandleMenuMsg
};
/************************************************************************
* ISF_NetConnect_PersistFolder2_QueryInterface
*/
static HRESULT WINAPI ISF_NetConnect_PersistFolder2_QueryInterface (IPersistFolder2 * iface,
REFIID iid, LPVOID * ppvObj)
{
IGenericSFImpl * This = impl_from_IPersistFolder2(iface);
TRACE ("(%p)\n", This);
return IShellFolder2_QueryInterface ((IShellFolder2*)This, iid, ppvObj);
}
/************************************************************************
* ISF_NetConnect_PersistFolder2_AddRef
*/
static ULONG WINAPI ISF_NetConnect_PersistFolder2_AddRef (IPersistFolder2 * iface)
{
IGenericSFImpl * This = impl_from_IPersistFolder2(iface);
TRACE ("(%p)->(count=%u)\n", This, This->ref);
return IShellFolder2_AddRef((IShellFolder2*)This);
}
/************************************************************************
* ISF_NetConnect_PersistFolder2_Release
*/
static ULONG WINAPI ISF_NetConnect_PersistFolder2_Release (IPersistFolder2 * iface)
{
IGenericSFImpl * This = impl_from_IPersistFolder2(iface);
TRACE ("(%p)->(count=%u)\n", This, This->ref);
return IShellFolder2_Release((IShellFolder2*)This);
}
/************************************************************************
* ISF_NetConnect_PersistFolder2_GetClassID
*/
static HRESULT WINAPI ISF_NetConnect_PersistFolder2_GetClassID (
IPersistFolder2 * iface, CLSID * lpClassId)
{
IGenericSFImpl * This = impl_from_IPersistFolder2(iface);
TRACE ("(%p)\n", This);
if (!lpClassId)
return E_POINTER;
*lpClassId = CLSID_NetworkConnections;
return S_OK;
}
/************************************************************************
* ISF_NetConnect_PersistFolder2_Initialize
*
* NOTES: it makes no sense to change the pidl
*/
static HRESULT WINAPI ISF_NetConnect_PersistFolder2_Initialize (
IPersistFolder2 * iface, LPCITEMIDLIST pidl)
{
IGenericSFImpl * This = impl_from_IPersistFolder2(iface);
TRACE ("(%p)->(%p)\n", This, pidl);
return E_NOTIMPL;
}
/**************************************************************************
* ISF_NetConnect_PersistFolder2_GetCurFolder
*/
static HRESULT WINAPI ISF_NetConnect_PersistFolder2_GetCurFolder (
IPersistFolder2 * iface, LPITEMIDLIST * pidl)
{
IGenericSFImpl * This = impl_from_IPersistFolder2(iface);
TRACE ("(%p)->(%p)\n", This, pidl);
if (!pidl)
return E_POINTER;
*pidl = ILClone (This->pidlRoot);
return S_OK;
}
static const IPersistFolder2Vtbl vt_PersistFolder2 =
{
ISF_NetConnect_PersistFolder2_QueryInterface,
ISF_NetConnect_PersistFolder2_AddRef,
ISF_NetConnect_PersistFolder2_Release,
ISF_NetConnect_PersistFolder2_GetClassID,
ISF_NetConnect_PersistFolder2_Initialize,
ISF_NetConnect_PersistFolder2_GetCurFolder
};
/**************************************************************************
* ISF_NetConnect_Constructor
*/
HRESULT WINAPI ISF_NetConnect_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv)
{
IGenericSFImpl *sf;
TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid));
if (!ppv)
return E_POINTER;
if (pUnkOuter)
return CLASS_E_NOAGGREGATION;
sf = (IGenericSFImpl *) HeapAlloc ( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof (IGenericSFImpl));
if (!sf)
return E_OUTOFMEMORY;
sf->ref = 1;
sf->lpVtbl = &vt_ShellFolder2;
sf->lpVtblPersistFolder2 = &vt_PersistFolder2;
sf->lpVtblContextMenu = &vt_ContextMenu2;
sf->pidlRoot = _ILCreateNetConnect(); /* my qualified pidl */
if (!SUCCEEDED (IShellFolder2_QueryInterface ((IShellFolder2*)sf, riid, ppv)))
{
IShellFolder2_Release((IShellFolder2*)sf);
return E_NOINTERFACE;
}
TRACE ("--(%p)\n", sf);
return S_OK;
}
+6
View File
@@ -89,6 +89,7 @@
#define IDS_NETWORKPLACE 75
#define IDS_FONTS 76
#define IDS_PRINTERS 77
#define IDS_NETWORKCONNECTION 78
#define IDS_CREATEFOLDER_DENIED 128
#define IDS_CREATEFOLDER_CAPTION 129
@@ -165,6 +166,10 @@
#define IDS_FORMATDRIVE 327
#define IDS_RENAME 328
#define IDS_INSERT 329
#define IDS_SHV_COLUMN_DEVNAME 330
#define IDS_SHV_COLUMN_PHONE 331
#define IDS_SHV_COLUMN_OWNER 332
/* Note: this string is referenced from the registry */
#define IDS_RECYCLEBIN_FOLDER_NAME 8964
@@ -241,6 +246,7 @@
#define IDI_SHELL_MY_DOCUMENTS 235
#define IDI_SHELL_CONTROL_PANEL1 330
#define IDI_SHELL_ADMINTOOLS 328
#define IDI_SHELL_NETWORK_FOLDER 172
// Icons for Folder Options (ID's identical to Windows XP SP3)
#define IDI_SHELL_SHOW_COMMON_TASKS 182