Soweit ich es überblicke, sind es nur die beiden Verzeichnisse, wobei
All users nur als fallback dient.
unter
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shgetfolderpath.asp
und
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp#CSIDL_COMMON_DOCUMENTS
werden im wesentlichen nur
CSIDL_TEMPLATES (0x0015)
The file system directory that serves as a common repository for document templates. A typical path is C:\Documents and Settings\username\Templates.
...
CSIDL_COMMON_TEMPLATES (0x002d)
The file system directory that contains the templates that are available to all users. A typical path is C:\Documents and Settings\All Users\Templates. Valid only for Windows NT systems.
erwähnt.
Wobei
All users unter
95/98 anscheinend nicht existiert!
Verzeichnisse wie
C:\Dokumente und Einstellungen\Default User\Vorlagen\
und
C:\WINDOWS\system32\config\systemprofile\Vorlagen\
kann man glaube ich getrost ausser acht lassen, da sie nur als Vorlage für neue User accounts oder System Installatione/Restaurationen zu dienen scheinen.
Einen Überblick darüber was sich MS bei den
Documents and settings gedacht hat, gibt übrigens:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw2kcli/html/W2Kcli_chapter4.asp
Dort sind auch Hinweise auf den korrekten Umgang und die Kompatibilität von
SHGetFolderPath enthalten:
To help ensure your application can run on Windows 9x, Windows NT 4 as well as Windows 2000, always link to the SHGetFolderPath implementation in SHFOLDER.DLL. Windows 2000 natively implements SHGetFolderPath in SHELL32.DLL, but other versions of Windows do not include SHGetFolderPath in SHELL32.DLL.
Eine weitere interessante Frage stellt sich übrigens bei
roaming profiles: wenn man auf sich ine einem MS-Netzwerk mit DOMAIN.USERNAME auf einem Rechner einloggt, wird das Profile vom Server auf die lokale Maschine kopiert!
Zumindestens die Dokumente sind dann auch lokal unter
C:\Dokumente und Einstellungen\DOMAIN.USERNAME\ Eigene Dateien\ abgelegt.
Schätze mal, dass ShGetFolderPath auch dann noch korrekt arbeitet.
(Bin selber kein Admin, und nutze sowas eher selten/ungern, vonwegen der Rückstände die dann auf fremden Rechner zurückbleiben).
Gruß
Holger
Nachtrag: hab noch eine Stelle gefunden:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/templatefolder.asp
Platform SDK: Windows Installer
TemplateFolder Property
The installer sets the TemplateFolder property to the full path to the Template folder for the current user. Common values for this property are C:\Winnt\Profiles\[LogonUser]\ShellNew\ (Windows NT/Windows 2000) and C:\Windows\ShellNew\ (Windows 95 and Windows 98 ).
On Windows 2000 only, if the ALLUSERS property is set, this property points to a file system directory that contains the templates that are available to all users. A common path is C:\WINNT\Profiles\All Users\Templates.