Liefert den absoluten Pfad zum TempRoot Ordner, den die Interface-DLL für temporäre Dateien und Ordner verwendet, und der auch von der Engine genutzt werden kann. Dieser Ordner wird bei Bedarf neu angelegt. Auf NTFS-Dateisystemen wird er mit der Sicherheitsoption Vollzugriff für alle erstellt.
AFXTEMPROOT( )
Die folgende Tabelle listet die Reihenfolge auf, in der die
Interface-DLL nach einem geeigneten Ort für den TempRoot Ordner sucht. Die Spalte identisch gibt an, ob zwischen den unterschiedlichen Arten der Instanzierung der Interface-DLL identische Ergebnisse zu erwarten sind oder nicht. Ob die Ergebnisse tatsächlich identisch sind, hängt von einer korrekten Konfiguration des Betriebssystems ab.
Sobald ein geeigneter Ort gefunden ist, wird die weitere Suche abgebrochen. Sollte wider Erwarten kein einziger der Versuche zum Erfolg führen, kann die Interface-DLL nicht geladen werden, und der entsprechende Prozess schlägt fehl.
| Kriterium | Beispiel mit IIS | Beispiel bei VFP-Anwendung (EXE) | identisch | Hinweise |
|---|---|---|---|---|
| TempPath in der Konfigurationsdatei | N:\MYTEMP\~AFX0900\ | N:\MYTEMP\~AFX0900\ | ja | 1) 2) |
| CSIDL_COMMON_APPDATA | C:\DOKUME~1\ALLUSE~1\ANWEND~1\DFPUG\AFX\9.0\ | C:\DOKUME~1\ALLUSE~1\ANWEND~1\DFPUG\AFX\9.0\ | ja | 3) 4) |
| ALLUSERSPROFILE Umgebungsvariable | C:\DOKUME~1\ALLUSE~1\~AFX0900\ | C:\DOKUME~1\ALLUSE~1\~AFX0900\ | ja | 2) 5) |
| TMP Umgebungsvariable | C:\WINDOWS\TEMP\~AFX0900\ | C:\DOKUME~1\USERNAME\LOKALE~1\TEMP\~AFX0900\ | nein | 2) 5) |
| TEMP Umgebungsvariable | C:\WINDOWS\TEMP\~AFX0900\ | C:\DOKUME~1\USERNAME\LOKALE~1\TEMP\~AFX0900\ | nein | 2) 5) |
| %windir%\TEMP | C:\WINDOWS\TEMP\~AFX0900\ | C:\WINDOWS\TEMP\~AFX0900\ | nein | 2) |
| Windows Verzeichnis | C:\WINDOWS\~AFX0900\ | C:\WINDOWS\~AFX0900\ | nein | 2) |
| Windows Systemverzeichnis | C:\WINDOWS\SYSTEM32\~AFX0900\ | C:\WINDOWS\SYSTEM32\~AFX0900\ | nein | 2) |
| Aktuelles Arbeitsverzeichnis | C:\WINDOWS\SYSTEM32\~AFX0900\ | F:\PROJEKTE\AFX\~AFX0900\ | nein | 2) |
| CSIDL_LOCAL_APPDATA | C:\DOKUME~1\DEFAUL~1\LOKALE~1\ANWEND~1\DFPUG\AFX\9.0\ | C:\DOKUME~1\USERNAME\LOKALE~1\ANWEND~1\DFPUG\AFX\9.0\ | nein | 3) 4) |
| CSIDL_COMMON_DESKTOPDIRECTORY | C:\DOKUME~1\ALLUSE~1\DESKTOP\~AFX0900\ | C:\DOKUME~1\ALLUSE~1\DESKTOP\~AFX0900\ | ja | 3) 4) 6) |
Hinweise:
1) Nur wenn der entsprechende Eintrag vorhanden ist.
2) Der Name wird nach dem Schema ~afxNNNN gebildet, wobei NNNN die
Version der
Interface-DLL bezeichnet, wie sie
AFXVERSION(5)
zurückgibt, links mit Nullen auf vier Stellen aufgefüllt.
3) Wenn der Pfad für die CSIDL nicht ermittelt werden kann, wird dieser Versuch
übersprungen.
Siehe auch:
WINFOLDER().
4) An den Pfad wird gemäß der Empfehlung von Microsoft folgende Ordnerstruktur
angehängt: Vendor\Product\Version.
5) Die Umgebungsvariablen gelten immer für den Prozess, der die
Interface-DLL geladen hat. Bei IIS Erweiterungen ist das dllhost.exe
im Windows Systemverzeichnis (IIS Prozesskonto IWAM_machine), bei FoxPro
Anwendungen die jeweilige EXE, also entweder die vfp9.exe oder die mit
BUILD EXE erstellte Anwendung. Bei FoxPro COM-Servern ist es jener Prozess,
der die COM-DLL instanziert hat.
6) Der Ordner ~afxNNNN wird auf dem Desktop des angemeldeten Beuntzers
angezeigt.