Einzelnen Beitrag anzeigen

Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#1

fehlende Konstanten in der Unit SHLOBJ.PAS

  Alt 23. Mai 2009, 13:45
Hallo,

im Folgenden einige Konstanten, die in der Unit ShlObj.pas nicht definiert sind :

Delphi-Quellcode:

implementation

{$R *.dfm}
uses ShlObj;

Const
 CSIDL_CURR_MUSIK = $000D; // Dokumente und Einstellungen\[CurrentUser]\Eigene Dateien\Eigene Musik
 CSIDL_CURR_VIDEO = $000E; // Dokumente und Einstellungen\[CurrentUser]\Eigene Dateien\Eigene Videos
 CSIDL_LOCAL_APPDATA = $001C; // Dokumente und Einstellungen\[CurrentUser]\Anwendungsdaten
 CSIDL_COMMON_APPDATA = $0023; // Dokumente und Einstellungen\AllUsers\Anwendungsdaten
 CSIDL_WINDOWS = $0024; // Windows-Verzeichnis
 CSIDL_SYSTEM = $0025; // Windows\System32-Verzeichnis
 CSIDL_PROGRAMS_FIRST = $0026; // Programmverzeichnis der ersten(!!!) Windows-Partition,
                                           // muss nicht die aktuelle Partition sein
 CSIDL_CURR_PICTURES = $0027; // Dokumente und Einstellungen\[CurrentUser]\Eigene Dateien\Eigene Bilder
 CSIDL_CURRUSER = $0028; // Dokumente und Einstellungen\[CurrentUser]
 CSIDL_SYSTEM2 = $0029; // Windows\System32-Verzeichnis
 CSIDL_SHARED_FILES = $002B; // Programme\Gemeinsame Dateien
 CSIDL_COMMON_TEMPLATES = $002D; // Dokumente und Einstellungen\All Users\Vorlagen
 CSIDL_COMMON_DOKUMENTS = $002E; // Dokumente und Einstellungen\All Users\Dokumente
 CSIDL_COMMON_MANAGEMENT = $002F; // Dokumente und Einstellungen\All Users\Startmenü\Programme\Verwaltung
 CSIDL_CURR_MANAGEMENT = $0030; // Dokumente und Einstellungen\[CurrentUser]\Startmenü\Programme\Verwaltung
 CSIDL_COMMON_MUSIK = $0035; // Dokumente und Einstellungen\All Users\Eigene Dateien\Eigene Musik
 CSIDL_COMMON_PICTURES = $0036; // Dokumente und Einstellungen\All Users\Eigene Dateien\Eigene Bilder
 CSIDL_COMMON_VIDEO = $0037; // Dokumente und Einstellungen\All Users\Eigene Dateien\Eigene Videos
 CSIDL_RESOURCES = $0038; // Windows\Resources
 CSIDL_RESOURCES_C_SPEC = $0039; // Windows\Resources\0407
 CSIDL_WINBURNING = $003B; // [microsoft brennerverzeichnis >cd burning<]

function GetSpecialFolder (aFolder: Integer): String;
var
  pIdL: PItemIDList;
  Path: Array [0..Max_Path] Of Char;
  Allocator: IMalloc;
begin
  // ItemIdList für den Ordner holen
  SHGetSpecialFolderLocation (0, aFolder, pIdL);

  // ItemIdList in String umwandeln lassen
  SHGetPathFromIDList (pIDL, Path);

  // Speicher wieder freigeben
  if Succeeded (SHGetMalloc (Allocator)) then
    begin
      Allocator.Free (pIdL);
      {$IFDEF VER100}
      Allocator.Release;
      {$ENDIF}
    end;

  Result := Path;
end;
Markus H.
  Mit Zitat antworten Zitat