mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-31 04:13:37 +00:00
- move FCIDM_SHVIEW_NEW, FCIDM_SHVIEW_NEWFOLDER, FCIDM_SHVIEW_NEWLINK, from menu to resource strings
- delete new file object from background contextmenu code as this code this should be implemented as context menu extension svn path=/trunk/; revision=30300
This commit is contained in:
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ïîñòàâÿíå", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Ïîñòàâÿíå êàòî âðúçêà", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Íîâè"
|
||||
BEGIN
|
||||
MENUITEM "Íîâà &ïàïêà", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "Íîâà &âðúçêà", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ñâîéñòâà", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Íîâè"
|
||||
FCIDM_SHVIEW_NEWFOLDER "Íîâà &ïàïêà"
|
||||
FCIDM_SHVIEW_NEWLINK "Íîâà &âðúçêà"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
@@ -55,14 +55,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "V&ložit", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Vložit zást&upce", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Nový"
|
||||
BEGIN
|
||||
MENUITEM "Nová &složka", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "Nový &zástupce", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Vlastnosti", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -436,4 +428,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "&Nový"
|
||||
FCIDM_SHVIEW_NEWFOLDER "Nová &složka"
|
||||
FCIDM_SHVIEW_NEWLINK "Nový &zástupce"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
@@ -56,14 +56,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Einfügen", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Einfügen als Verweis", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Neu"
|
||||
BEGIN
|
||||
MENUITEM "Neues Ver&zeichnis", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "Neuer Ver&weis", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Eigenschaften", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -436,4 +428,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Autoren"
|
||||
IDS_SHELL_ABOUT_BACK "< &Zurück"
|
||||
FCIDM_SHVIEW_NEW "Neu"
|
||||
FCIDM_SHVIEW_NEWFOLDER "Neues Ver&zeichnis"
|
||||
FCIDM_SHVIEW_NEWLINK "Neuer Ver&weis"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
@@ -55,14 +55,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Pegar", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Pegar acceso directo", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Nuevo"
|
||||
BEGIN
|
||||
MENUITEM "Nueva &carpeta", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "Nuevo &acceso directo", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Propiedades", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -436,4 +428,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Nuevo"
|
||||
FCIDM_SHVIEW_NEWFOLDER "Nueva &carpeta"
|
||||
FCIDM_SHVIEW_NEWLINK "Nuevo &acceso directo"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Liitä", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Liitä Linkiksi", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Uusi"
|
||||
BEGIN
|
||||
MENUITEM "Uusi &Kansio", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "Uusi &Linkki", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ominaisuudet", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Uusi"
|
||||
FCIDM_SHVIEW_NEWFOLDER "Uusi &Kansio"
|
||||
FCIDM_SHVIEW_NEWLINK "Uusi &Linkki"
|
||||
END
|
||||
|
||||
@@ -58,14 +58,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Coller", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Coller comme un lien", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Nouveau"
|
||||
BEGIN
|
||||
MENUITEM "Nouveau d&ossier", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "Nouveau &lien", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Propriétés", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -439,4 +431,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Nouveau"
|
||||
FCIDM_SHVIEW_NEWFOLDER "Nouveau d&ossier"
|
||||
FCIDM_SHVIEW_NEWLINK "Nouveau &lien"
|
||||
END
|
||||
|
||||
@@ -57,14 +57,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Beillesztés", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Parancsikon beillesztése", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Ú&j"
|
||||
BEGIN
|
||||
MENUITEM "&Mappa", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "&Parancsikon", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Beállítások", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -438,4 +430,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Ú&j"
|
||||
FCIDM_SHVIEW_NEWFOLDER "&Mappa"
|
||||
FCIDM_SHVIEW_NEWLINK "&Parancsikon"
|
||||
END
|
||||
|
||||
@@ -55,14 +55,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Incolla", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Crea Collegamento", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Nuovo"
|
||||
BEGIN
|
||||
MENUITEM "Nuova &Cartella", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "Nuovo &Collegamento", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Proprietà", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -436,4 +428,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Nuovo"
|
||||
FCIDM_SHVIEW_NEWFOLDER "Nuova &Cartella"
|
||||
FCIDM_SHVIEW_NEWLINK "Nuovo &Collegamento"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "貼\り付け", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "ショートカットの貼\り付け", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "新規作成"
|
||||
BEGIN
|
||||
MENUITEM "フォルダ(&F)", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "ショートカット(&L)", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "プロパティ", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "新規作成"
|
||||
FCIDM_SHVIEW_NEWFOLDER "フォルダ(&F)"
|
||||
FCIDM_SHVIEW_NEWLINK "ショートカット(&L)"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Lim inn", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Lim inn som snarvei", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Ny"
|
||||
BEGIN
|
||||
MENUITEM "Ny &mappe", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "Ny &snarvei", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Egenskaper", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Ny"
|
||||
FCIDM_SHVIEW_NEWFOLDER "Ny &mappe"
|
||||
FCIDM_SHVIEW_NEWLINK "Ny &snarvei"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
@@ -55,14 +55,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "W&klej", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Wklej s&krót", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Nowy"
|
||||
BEGIN
|
||||
MENUITEM "&Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "&Skrót", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "W³aœciwoœci", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -436,4 +428,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "&Nowy"
|
||||
FCIDM_SHVIEW_NEWFOLDER "&Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "&Skrót"
|
||||
END
|
||||
|
||||
@@ -56,14 +56,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Co&lar", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Colar a&talho", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Novo"
|
||||
BEGIN
|
||||
MENUITEM "&Pasta", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "&Atalho", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Propriedades", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -437,4 +429,8 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Novo"
|
||||
FCIDM_SHVIEW_NEWFOLDER "&Pasta"
|
||||
FCIDM_SHVIEW_NEWLINK "&Atalho"
|
||||
|
||||
END
|
||||
|
||||
@@ -56,14 +56,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Co&lar", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Colar a&talho", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Novo"
|
||||
BEGIN
|
||||
MENUITEM "&Pasta", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "&Atalho", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Propriedades", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -437,4 +429,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Novo"
|
||||
FCIDM_SHVIEW_NEWFOLDER "&Pasta"
|
||||
FCIDM_SHVIEW_NEWLINK "&Atalho"
|
||||
END
|
||||
|
||||
@@ -55,14 +55,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Âñòàâèòü", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Âñòàâèòü &ÿðëûê", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Ñîçäàòü"
|
||||
BEGIN
|
||||
MENUITEM "&Ïàïêà", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "&ßðëûê", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ñâî&éñòâà", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -434,4 +426,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Àâòîðû"
|
||||
IDS_SHELL_ABOUT_BACK "< &Íàçàä"
|
||||
FCIDM_SHVIEW_NEW "Ñîçäàòü"
|
||||
FCIDM_SHVIEW_NEWFOLDER "&Ïàïêà"
|
||||
FCIDM_SHVIEW_NEWLINK "&ßðëûê"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Yapýþtýr", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Kýsayol Yapýþtýr", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Yeni"
|
||||
BEGIN
|
||||
MENUITEM "Yeni &Dizin", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "Yeni &Kýsayol", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Özellikler", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Yeni"
|
||||
FCIDM_SHVIEW_NEWFOLDER "Yeni &Dizin"
|
||||
FCIDM_SHVIEW_NEWLINK "Yeni &Kýsayol"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Âñòàâèòè", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Âñòàâèòè Ïîñèëàííÿ", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Ñòâîðèòè"
|
||||
BEGIN
|
||||
MENUITEM "Íîâà &Òåêà", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "Íîâå &Ïîñèëàííÿ", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Âëàñòèâîñò³", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "Ñòâîðèòè"
|
||||
FCIDM_SHVIEW_NEWFOLDER "Íîâà &Òåêà"
|
||||
FCIDM_SHVIEW_NEWLINK "Íîâå &Ïîñèëàííÿ"
|
||||
END
|
||||
|
||||
@@ -54,14 +54,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -435,4 +427,7 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
@@ -55,14 +55,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -436,6 +428,9 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
#pragma code_page(default)
|
||||
|
||||
@@ -55,14 +55,6 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Paste", FCIDM_SHVIEW_INSERT
|
||||
MENUITEM "Paste as Link", FCIDM_SHVIEW_INSERTLINK
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "New"
|
||||
BEGIN
|
||||
MENUITEM "New &Folder", FCIDM_SHVIEW_NEWFOLDER
|
||||
MENUITEM "New &Link", FCIDM_SHVIEW_NEWLINK
|
||||
MENUITEM SEPARATOR
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Properties", FCIDM_SHVIEW_PROPERTIES
|
||||
END
|
||||
END
|
||||
@@ -436,6 +428,9 @@ BEGIN
|
||||
|
||||
IDS_SHELL_ABOUT_AUTHORS "&Authors"
|
||||
IDS_SHELL_ABOUT_BACK "< &Back"
|
||||
FCIDM_SHVIEW_NEW "New"
|
||||
FCIDM_SHVIEW_NEWFOLDER "New &Folder"
|
||||
FCIDM_SHVIEW_NEWLINK "New &Link"
|
||||
END
|
||||
|
||||
#pragma code_page(default)
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
#define IDS_OPEN_WITH_CHOOSE 143
|
||||
#define IDS_SHELL_ABOUT_AUTHORS 144
|
||||
#define IDS_SHELL_ABOUT_BACK 145
|
||||
#define FCIDM_SHVIEW_NEW 146
|
||||
|
||||
/* Note: this string is referenced from the registry */
|
||||
#define IDS_RECYCLEBIN_FOLDER_NAME 8964
|
||||
|
||||
@@ -49,493 +49,10 @@ typedef struct
|
||||
IShellFolder* pSFParent;
|
||||
LONG ref;
|
||||
BOOL bDesktop;
|
||||
UINT iIdShellNewFirst;
|
||||
UINT iIdShellNewLast;
|
||||
} BgCmImpl;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
SHELLNEW_TYPE_COMMAND = 1,
|
||||
SHELLNEW_TYPE_DATA = 2,
|
||||
SHELLNEW_TYPE_FILENAME = 4,
|
||||
SHELLNEW_TYPE_NULLFILE = 8
|
||||
}SHELLNEW_TYPE;
|
||||
|
||||
|
||||
typedef struct __SHELLNEW_ITEM__
|
||||
{
|
||||
SHELLNEW_TYPE Type;
|
||||
LPWSTR szExt;
|
||||
LPWSTR szTarget;
|
||||
LPWSTR szDesc;
|
||||
LPWSTR szIcon;
|
||||
struct __SHELLNEW_ITEM__ * Next;
|
||||
}SHELLNEW_ITEM, *PSHELLNEW_ITEM;
|
||||
|
||||
|
||||
static const IContextMenu2Vtbl cmvt;
|
||||
|
||||
static PSHELLNEW_ITEM s_SnHead = NULL;
|
||||
|
||||
static
|
||||
BOOL
|
||||
GetKeyDescription(LPWSTR szKeyName, LPWSTR szResult)
|
||||
{
|
||||
HKEY hKey;
|
||||
DWORD dwDesc, dwError;
|
||||
WCHAR szDesc[100];
|
||||
|
||||
static const WCHAR szFriendlyTypeName[] = { '\\','F','r','i','e','n','d','l','y','T','y','p','e','N','a','m','e',0 };
|
||||
|
||||
TRACE("GetKeyDescription: keyname %s\n", debugstr_w(szKeyName));
|
||||
|
||||
if (RegOpenKeyExW(HKEY_CLASSES_ROOT,szKeyName,0, KEY_READ | KEY_QUERY_VALUE,&hKey) != ERROR_SUCCESS)
|
||||
return FALSE;
|
||||
|
||||
if (RegLoadMUIStringW(hKey,szFriendlyTypeName,szResult,MAX_PATH,&dwDesc,0,NULL) == ERROR_SUCCESS)
|
||||
{
|
||||
TRACE("result %s\n", debugstr_w(szResult));
|
||||
RegCloseKey(hKey);
|
||||
return TRUE;
|
||||
}
|
||||
/* fetch default value */
|
||||
dwDesc = sizeof(szDesc);
|
||||
dwError = RegGetValueW(hKey,NULL,NULL, RRF_RT_REG_SZ,NULL,szDesc,&dwDesc);
|
||||
if(dwError == ERROR_SUCCESS)
|
||||
{
|
||||
if (wcsncmp(szDesc, szKeyName, dwDesc / sizeof(WCHAR)))
|
||||
{
|
||||
/* recurse for to a linked key */
|
||||
if (!GetKeyDescription(szDesc, szResult))
|
||||
{
|
||||
/* use description */
|
||||
wcscpy(szResult, szDesc);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* use default value as description */
|
||||
wcscpy(szResult, szDesc);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* registry key w/o default key?? */
|
||||
TRACE("RegGetValue failed with %x\n", dwError);
|
||||
wcscpy(szResult, szKeyName);
|
||||
}
|
||||
|
||||
RegCloseKey(hKey);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
PSHELLNEW_ITEM LoadItem(LPWSTR szKeyName)
|
||||
{
|
||||
HKEY hKey;
|
||||
DWORD dwIndex;
|
||||
WCHAR szName[MAX_PATH];
|
||||
WCHAR szCommand[MAX_PATH];
|
||||
WCHAR szDesc[MAX_PATH] = {0};
|
||||
WCHAR szIcon[MAX_PATH] = {0};
|
||||
DWORD dwName, dwCommand;
|
||||
LONG result;
|
||||
PSHELLNEW_ITEM pNewItem;
|
||||
|
||||
static const WCHAR szShellNew[] = { '\\','S','h','e','l','l','N','e','w',0 };
|
||||
static const WCHAR szCmd[] = { 'C','o','m','m','a','n','d',0 };
|
||||
static const WCHAR szData[] = { 'D','a','t','a',0 };
|
||||
static const WCHAR szFileName[] = { 'F','i','l','e','N','a','m','e', 0 };
|
||||
static const WCHAR szNullFile[] = { 'N','u','l','l','F','i','l','e', 0 };
|
||||
|
||||
wcscpy(szName, szKeyName);
|
||||
GetKeyDescription(szKeyName, szDesc);
|
||||
wcscat(szName, szShellNew);
|
||||
result = RegOpenKeyExW(HKEY_CLASSES_ROOT,szName,0,KEY_READ,&hKey);
|
||||
|
||||
//TRACE("LoadItem dwName %d keyname %s szName %s szDesc %s szIcon %s\n", dwName, debugstr_w(szKeyName), debugstr_w(szName), debugstr_w(szDesc), debugstr_w(szIcon));
|
||||
|
||||
if (result != ERROR_SUCCESS)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
dwIndex = 0;
|
||||
pNewItem = NULL;
|
||||
|
||||
do
|
||||
{
|
||||
dwName = MAX_PATH;
|
||||
dwCommand = MAX_PATH;
|
||||
result = RegEnumValueW(hKey,dwIndex,szName,&dwName,NULL,NULL,(LPBYTE)szCommand, &dwCommand);
|
||||
if (result == ERROR_SUCCESS)
|
||||
{
|
||||
long type = -1;
|
||||
LPWSTR szTarget = szCommand;
|
||||
//TRACE("szName %s szCommand %s\n", debugstr_w(szName), debugstr_w(szCommand));
|
||||
if (!wcsicmp(szName, szCmd))
|
||||
{
|
||||
type = SHELLNEW_TYPE_COMMAND;
|
||||
}else if (!wcsicmp(szName, szData))
|
||||
{
|
||||
type = SHELLNEW_TYPE_DATA;
|
||||
}
|
||||
else if (!wcsicmp(szName, szFileName))
|
||||
{
|
||||
type = SHELLNEW_TYPE_FILENAME;
|
||||
}
|
||||
else if (!wcsicmp(szName, szNullFile))
|
||||
{
|
||||
type = SHELLNEW_TYPE_NULLFILE;
|
||||
szTarget = NULL;
|
||||
}
|
||||
if (type != -1)
|
||||
{
|
||||
pNewItem = HeapAlloc(GetProcessHeap(), 0, sizeof(SHELLNEW_ITEM));
|
||||
pNewItem->Type = type;
|
||||
if (szTarget)
|
||||
pNewItem->szTarget = wcsdup(szTarget);
|
||||
else
|
||||
pNewItem->szTarget = NULL;
|
||||
|
||||
pNewItem->szDesc = wcsdup(szDesc);
|
||||
pNewItem->szIcon = wcsdup(szIcon);
|
||||
pNewItem->szExt = wcsdup(szKeyName);
|
||||
pNewItem->Next = NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
dwIndex++;
|
||||
}while(result != ERROR_NO_MORE_ITEMS);
|
||||
RegCloseKey(hKey);
|
||||
return pNewItem;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
LoadShellNewItems()
|
||||
{
|
||||
DWORD dwIndex;
|
||||
WCHAR szName[MAX_PATH];
|
||||
LONG result;
|
||||
PSHELLNEW_ITEM pNewItem;
|
||||
PSHELLNEW_ITEM pCurItem = NULL;
|
||||
static WCHAR szLnk[] = { '.','l','n','k',0 };
|
||||
|
||||
dwIndex = 0;
|
||||
do
|
||||
{
|
||||
result = RegEnumKeyW(HKEY_CLASSES_ROOT,dwIndex,szName,MAX_PATH);
|
||||
if (result == ERROR_SUCCESS)
|
||||
{
|
||||
pNewItem = LoadItem(szName);
|
||||
if (pNewItem)
|
||||
{
|
||||
if (!wcsicmp(pNewItem->szExt, szLnk))
|
||||
{
|
||||
if (s_SnHead)
|
||||
{
|
||||
pNewItem->Next = s_SnHead;
|
||||
s_SnHead = pNewItem;
|
||||
}
|
||||
else
|
||||
{
|
||||
s_SnHead = pCurItem = pNewItem;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pCurItem)
|
||||
{
|
||||
pCurItem->Next = pNewItem;
|
||||
pCurItem = pNewItem;
|
||||
}
|
||||
else
|
||||
{
|
||||
pCurItem = s_SnHead = pNewItem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dwIndex++;
|
||||
}while(result != ERROR_NO_MORE_ITEMS);
|
||||
|
||||
if (s_SnHead == NULL)
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
}
|
||||
VOID
|
||||
InsertShellNewItems(HMENU hMenu, UINT idFirst, UINT idMenu, BgCmImpl * This)
|
||||
{
|
||||
MENUITEMINFOW mii;
|
||||
PSHELLNEW_ITEM pCurItem;
|
||||
UINT i;
|
||||
if (s_SnHead == NULL)
|
||||
{
|
||||
if (!LoadShellNewItems())
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
ZeroMemory(&mii, sizeof(mii));
|
||||
mii.cbSize = sizeof(mii);
|
||||
|
||||
This->iIdShellNewFirst = idFirst;
|
||||
|
||||
/*
|
||||
* FIXME: small hack for new shortcut
|
||||
*/
|
||||
|
||||
mii.fMask = MIIM_ID;
|
||||
mii.wID = idFirst;
|
||||
SetMenuItemInfoW(hMenu, 1, TRUE, &mii);
|
||||
idFirst++;
|
||||
|
||||
mii.fMask = MIIM_TYPE | MIIM_ID;
|
||||
mii.fType = MFT_SEPARATOR;
|
||||
mii.wID = -1;
|
||||
InsertMenuItemW(hMenu, -1, TRUE, &mii);
|
||||
|
||||
|
||||
mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | MIIM_DATA;
|
||||
mii.fType = MFT_OWNERDRAW;
|
||||
mii.fState = MFS_ENABLED;
|
||||
|
||||
pCurItem = s_SnHead;
|
||||
i = 0;
|
||||
|
||||
while(pCurItem)
|
||||
{
|
||||
if (i >= 1)
|
||||
{
|
||||
mii.dwTypeData = pCurItem->szDesc;
|
||||
mii.cch = strlenW(mii.dwTypeData);
|
||||
mii.wID = idFirst;
|
||||
InsertMenuItemW(hMenu, idMenu, TRUE, &mii);
|
||||
idMenu++;
|
||||
idFirst++;
|
||||
}
|
||||
pCurItem = pCurItem->Next;
|
||||
i++;
|
||||
}
|
||||
This->iIdShellNewLast = idFirst;
|
||||
}
|
||||
VOID
|
||||
DoShellNewCmd(BgCmImpl * This, LPCMINVOKECOMMANDINFO lpcmi)
|
||||
{
|
||||
PSHELLNEW_ITEM pCurItem = s_SnHead;
|
||||
IPersistFolder3 * psf;
|
||||
LPITEMIDLIST pidl;
|
||||
STRRET strTemp;
|
||||
WCHAR szTemp[MAX_PATH];
|
||||
WCHAR szBuffer[MAX_PATH];
|
||||
WCHAR szPath[MAX_PATH];
|
||||
STARTUPINFOW sInfo;
|
||||
PROCESS_INFORMATION pi;
|
||||
UINT i, target;
|
||||
HANDLE hFile;
|
||||
DWORD dwWritten, dwError;
|
||||
|
||||
static const WCHAR szNew[] = { 'N','e','w',' ',0 }; //FIXME
|
||||
static const WCHAR szP1[] = { '%', '1', 0 };
|
||||
static const WCHAR szFormat[] = {'%','s',' ','(','%','d',')','%','s',0 };
|
||||
|
||||
i = This->iIdShellNewFirst;
|
||||
target = LOWORD(lpcmi->lpVerb);
|
||||
|
||||
while(pCurItem)
|
||||
{
|
||||
if (i == target)
|
||||
break;
|
||||
|
||||
pCurItem = pCurItem->Next;
|
||||
i++;
|
||||
}
|
||||
|
||||
if (!pCurItem)
|
||||
return;
|
||||
|
||||
if (This->bDesktop)
|
||||
{
|
||||
if (!SHGetSpecialFolderPathW(0, szPath, CSIDL_DESKTOPDIRECTORY, FALSE))
|
||||
{
|
||||
ERR("Failed to get desktop folder location");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IShellFolder2_QueryInterface(This->pSFParent, &IID_IPersistFolder2, (LPVOID*)&psf) != S_OK)
|
||||
{
|
||||
ERR("Failed to get interface IID_IPersistFolder2\n");
|
||||
return;
|
||||
}
|
||||
if (IPersistFolder2_GetCurFolder(psf, &pidl) != S_OK)
|
||||
{
|
||||
ERR("IPersistFolder2_GetCurFolder failed\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (IShellFolder2_GetDisplayNameOf(This->pSFParent, pidl, SHGDN_FORPARSING, &strTemp) != S_OK)
|
||||
{
|
||||
ERR("IShellFolder_GetDisplayNameOf failed\n");
|
||||
return;
|
||||
}
|
||||
StrRetToBufW(&strTemp, pidl, szPath, MAX_PATH);
|
||||
}
|
||||
switch(pCurItem->Type)
|
||||
{
|
||||
case SHELLNEW_TYPE_COMMAND:
|
||||
{
|
||||
LPWSTR ptr;
|
||||
LPWSTR szCmd;
|
||||
|
||||
if (!ExpandEnvironmentStringsW(pCurItem->szTarget, szBuffer, MAX_PATH))
|
||||
{
|
||||
TRACE("ExpandEnvironmentStrings failed\n");
|
||||
break;
|
||||
}
|
||||
|
||||
ptr = wcsstr(szBuffer, szP1);
|
||||
if (ptr)
|
||||
{
|
||||
ptr[1] = 's';
|
||||
sprintfW(szTemp, szBuffer, szPath);
|
||||
ptr = szTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
ptr = szBuffer;
|
||||
}
|
||||
|
||||
ZeroMemory(&sInfo, sizeof(sInfo));
|
||||
sInfo.cb = sizeof(sizeof(sInfo));
|
||||
szCmd = wcsdup(ptr);
|
||||
if (!szCmd)
|
||||
break;
|
||||
if (CreateProcessW(NULL, szCmd, NULL, NULL,FALSE,0,NULL,NULL,&sInfo, &pi))
|
||||
{
|
||||
CloseHandle( pi.hProcess );
|
||||
CloseHandle( pi.hThread );
|
||||
}
|
||||
free(szCmd);
|
||||
break;
|
||||
}
|
||||
case SHELLNEW_TYPE_DATA:
|
||||
case SHELLNEW_TYPE_FILENAME:
|
||||
case SHELLNEW_TYPE_NULLFILE:
|
||||
{
|
||||
i = 2;
|
||||
|
||||
PathAddBackslashW(szPath);
|
||||
wcscat(szPath, szNew);
|
||||
wcscat(szPath, pCurItem->szDesc);
|
||||
wcscpy(szBuffer, szPath);
|
||||
wcscat(szBuffer, pCurItem->szExt);
|
||||
do
|
||||
{
|
||||
hFile = CreateFileW(szBuffer, GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (hFile != INVALID_HANDLE_VALUE)
|
||||
break;
|
||||
dwError = GetLastError();
|
||||
|
||||
TRACE("FileName %s szBuffer %s i %u error %x\n", debugstr_w(szBuffer), debugstr_w(szPath), i, dwError);
|
||||
sprintfW(szBuffer, szFormat, szPath, i, pCurItem->szExt);
|
||||
i++;
|
||||
}while(hFile == INVALID_HANDLE_VALUE && dwError == ERROR_FILE_EXISTS);
|
||||
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
return;
|
||||
|
||||
if (pCurItem->Type == SHELLNEW_TYPE_DATA)
|
||||
{
|
||||
i = WideCharToMultiByte(CP_ACP, 0, pCurItem->szTarget, -1, (LPSTR)szTemp, MAX_PATH*2, NULL, NULL);
|
||||
if (i)
|
||||
{
|
||||
WriteFile(hFile, (LPCVOID)szTemp, i, &dwWritten, NULL);
|
||||
}
|
||||
}
|
||||
CloseHandle(hFile);
|
||||
if (pCurItem->Type == SHELLNEW_TYPE_FILENAME)
|
||||
{
|
||||
if (!CopyFileW(pCurItem->szTarget, szBuffer, FALSE))
|
||||
break;
|
||||
}
|
||||
TRACE("Notifying fs %s\n", debugstr_w(szBuffer));
|
||||
SHChangeNotify(SHCNE_CREATE, SHCNF_PATHW, (LPCVOID)szBuffer, NULL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
HRESULT
|
||||
DoMeasureItem(BgCmImpl *This, HWND hWnd, MEASUREITEMSTRUCT * lpmis)
|
||||
{
|
||||
PSHELLNEW_ITEM pCurItem;
|
||||
PSHELLNEW_ITEM pItem;
|
||||
UINT i;
|
||||
HDC hDC;
|
||||
SIZE size;
|
||||
|
||||
TRACE("DoMeasureItem entered with id %x\n", lpmis->itemID);
|
||||
|
||||
pCurItem = s_SnHead;
|
||||
|
||||
i = This->iIdShellNewFirst;
|
||||
pItem = NULL;
|
||||
while(pCurItem)
|
||||
{
|
||||
if (i == lpmis->itemID)
|
||||
{
|
||||
pItem = pCurItem;
|
||||
break;
|
||||
}
|
||||
pCurItem = pCurItem->Next;
|
||||
i++;
|
||||
}
|
||||
|
||||
if (!pItem)
|
||||
return E_FAIL;
|
||||
|
||||
hDC = GetDC(hWnd);
|
||||
GetTextExtentPoint32W(hDC, pCurItem->szDesc, strlenW(pCurItem->szDesc), &size);
|
||||
lpmis->itemWidth = size.cx + 32;
|
||||
lpmis->itemHeight = max(size.cy, 20);
|
||||
ReleaseDC (hWnd, hDC);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
DoDrawItem(BgCmImpl *This, HWND hWnd, DRAWITEMSTRUCT * drawItem)
|
||||
{
|
||||
PSHELLNEW_ITEM pCurItem;
|
||||
PSHELLNEW_ITEM pItem;
|
||||
UINT i;
|
||||
pCurItem = s_SnHead;
|
||||
|
||||
TRACE("DoDrawItem entered with id %x\n", drawItem->itemID);
|
||||
|
||||
i = This->iIdShellNewFirst;
|
||||
pItem = NULL;
|
||||
while(pCurItem)
|
||||
{
|
||||
if (i == drawItem->itemID)
|
||||
{
|
||||
pItem = pCurItem;
|
||||
break;
|
||||
}
|
||||
pCurItem = pCurItem->Next;
|
||||
i++;
|
||||
}
|
||||
|
||||
if (!pItem)
|
||||
return E_FAIL;
|
||||
|
||||
drawItem->rcItem.left += 20;
|
||||
|
||||
DrawTextW(drawItem->hDC, pCurItem->szDesc, wcslen(pCurItem->szDesc), &drawItem->rcItem, 0);
|
||||
return S_OK;
|
||||
}
|
||||
BOOL
|
||||
HasClipboardData()
|
||||
{
|
||||
@@ -693,13 +210,6 @@ static HRESULT WINAPI ISVBgCm_fnQueryContextMenu(
|
||||
}
|
||||
DestroyMenu(hMyMenu);
|
||||
|
||||
mii.cbSize = sizeof(mii);
|
||||
mii.fMask = MIIM_SUBMENU;
|
||||
if (GetMenuItemInfoW(hMenu, 10, TRUE, &mii))
|
||||
{
|
||||
InsertShellNewItems(mii.hSubMenu, 0x6000, 0x6000, This);
|
||||
}
|
||||
|
||||
if (!HasClipboardData())
|
||||
{
|
||||
mii.cbSize = sizeof(mii);
|
||||
@@ -720,36 +230,6 @@ static HRESULT WINAPI ISVBgCm_fnQueryContextMenu(
|
||||
return hr;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* DoNewFolder
|
||||
*/
|
||||
static void DoNewFolder(
|
||||
IContextMenu2 *iface,
|
||||
IShellView *psv)
|
||||
{
|
||||
BgCmImpl *This = (BgCmImpl *)iface;
|
||||
ISFHelper * psfhlp;
|
||||
WCHAR wszName[MAX_PATH];
|
||||
|
||||
IShellFolder_QueryInterface(This->pSFParent, &IID_ISFHelper, (LPVOID*)&psfhlp);
|
||||
if (psfhlp)
|
||||
{
|
||||
LPITEMIDLIST pidl;
|
||||
ISFHelper_GetUniqueName(psfhlp, wszName, MAX_PATH);
|
||||
ISFHelper_AddFolder(psfhlp, 0, wszName, &pidl);
|
||||
|
||||
if(psv)
|
||||
{
|
||||
/* if we are in a shellview do labeledit */
|
||||
IShellView_SelectItem(psv,
|
||||
pidl,(SVSI_DESELECTOTHERS | SVSI_EDIT | SVSI_ENSUREVISIBLE
|
||||
|SVSI_FOCUSED|SVSI_SELECT));
|
||||
}
|
||||
SHFree(pidl);
|
||||
|
||||
ISFHelper_Release(psfhlp);
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* DoPaste
|
||||
@@ -876,11 +356,7 @@ static HRESULT WINAPI ISVBgCm_fnInvokeCommand(
|
||||
{
|
||||
TRACE("%s\n",lpcmi->lpVerb);
|
||||
|
||||
if (! strcmp(lpcmi->lpVerb,CMDSTR_NEWFOLDERA))
|
||||
{
|
||||
DoNewFolder(iface, lpSV);
|
||||
}
|
||||
else if (! strcmp(lpcmi->lpVerb,CMDSTR_VIEWLISTA))
|
||||
if (! strcmp(lpcmi->lpVerb,CMDSTR_VIEWLISTA))
|
||||
{
|
||||
if(hWndSV) SendMessageA(hWndSV, WM_COMMAND, MAKEWPARAM(FCIDM_SHVIEW_LISTVIEW,0),0 );
|
||||
}
|
||||
@@ -900,11 +376,6 @@ static HRESULT WINAPI ISVBgCm_fnInvokeCommand(
|
||||
case FCIDM_SHVIEW_REFRESH:
|
||||
if (lpSV) IShellView_Refresh(lpSV);
|
||||
break;
|
||||
|
||||
case FCIDM_SHVIEW_NEWFOLDER:
|
||||
DoNewFolder(iface, lpSV);
|
||||
break;
|
||||
|
||||
case FCIDM_SHVIEW_INSERT:
|
||||
DoPaste(iface);
|
||||
break;
|
||||
@@ -918,16 +389,6 @@ static HRESULT WINAPI ISVBgCm_fnInvokeCommand(
|
||||
break;
|
||||
|
||||
default:
|
||||
if (LOWORD(lpcmi->lpVerb) >= This->iIdShellNewFirst && LOWORD(lpcmi->lpVerb) <= This->iIdShellNewLast)
|
||||
{
|
||||
DoShellNewCmd(This, lpcmi);
|
||||
if (lpSV)
|
||||
{
|
||||
IShellView_Refresh(lpSV);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* if it's an id just pass it to the parent shv */
|
||||
if (hWndSV) SendMessageA(hWndSV, WM_COMMAND, MAKEWPARAM(LOWORD(lpcmi->lpVerb), 0),0 );
|
||||
break;
|
||||
@@ -963,8 +424,7 @@ static HRESULT WINAPI ISVBgCm_fnGetCommandString(
|
||||
if(HIWORD(idCommand))
|
||||
{
|
||||
if (!strcmp((LPSTR)idCommand, CMDSTR_VIEWLISTA) ||
|
||||
!strcmp((LPSTR)idCommand, CMDSTR_VIEWDETAILSA) ||
|
||||
!strcmp((LPSTR)idCommand, CMDSTR_NEWFOLDERA))
|
||||
!strcmp((LPSTR)idCommand, CMDSTR_VIEWDETAILSA))
|
||||
{
|
||||
return NOERROR;
|
||||
}
|
||||
@@ -985,23 +445,9 @@ static HRESULT WINAPI ISVBgCm_fnHandleMenuMsg(
|
||||
LPARAM lParam)
|
||||
{
|
||||
BgCmImpl *This = (BgCmImpl *)iface;
|
||||
DRAWITEMSTRUCT * lpids = (DRAWITEMSTRUCT*) lParam;
|
||||
MEASUREITEMSTRUCT *lpmis = (MEASUREITEMSTRUCT*) lParam;
|
||||
|
||||
TRACE("ISVBgCm_fnHandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n",This, uMsg, wParam, lParam);
|
||||
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_MEASUREITEM:
|
||||
if (lpmis->itemID >= This->iIdShellNewFirst && lpmis->itemID <= This->iIdShellNewLast)
|
||||
return DoMeasureItem(This, (HWND)wParam, lpmis);
|
||||
break;
|
||||
case WM_DRAWITEM:
|
||||
if (lpmis->itemID >= This->iIdShellNewFirst && lpmis->itemID <= This->iIdShellNewLast)
|
||||
return DoDrawItem(This, (HWND)wParam, lpids);
|
||||
break;
|
||||
}
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user