+ Added Windows-Compatible GetTempFileName to sysutils

git-svn-id: trunk@1031 -
This commit is contained in:
michael 2005-09-02 09:57:43 +00:00
parent e6d48d0c6a
commit 752ba67635
3 changed files with 33 additions and 0 deletions

View File

@ -204,3 +204,24 @@ begin
Result:=GetTempFileName('','');
end;
{$ifndef win32}
Function GetTempFileName(Dir,Prefix: PChar; uUnique: DWORD; TempFileName: PChar):DWORD;
Var
P,Buf : String;
L : Integer;
begin
P:=StrPas(Prefix);
if (uUnique<>0) then
P:=P+format('%.4x',[uUnique]);
Buf:=GetTempFileName(StrPas(Dir),P);
L:=Length(Buf);
If (L>0) then
Move(Buf[1],TempFileName^,L+1);
if (uUnique<>0) then
result:=uUnique
else
result:=1;
end;
{$endif}

View File

@ -32,6 +32,8 @@ Function GetTempDir(Global : Boolean) : String;
Function GetTempDir : String;
Function GetTempFileName(Const Dir,Prefix : String) : String;
Function GetTempFileName : String;
{ For windows compatibility }
function GetTempFileName(Dir,Prefix: PChar; uUnique: DWORD; TempFileName: PChar):DWORD;
Function GetAppConfigDir(Global : Boolean) : String;
Function GetAppConfigFile(Global : Boolean) : String;
Function GetAppConfigFile(Global : Boolean; SubDir : Boolean) : String;

View File

@ -60,6 +60,16 @@ implementation
{ Include platform independent implementation part }
{$i sysutils.inc}
Function SysGetTempFileName(lpPathName:LPCSTR; lpPrefixString:LPCSTR; uUnique:UINT; lpTempFileName:LPSTR):UINT; external 'kernel32' name 'GetTempFileNameA';
function GetTempFileName(Dir,Prefix: PChar; uUnique: DWORD; TempFileName: PChar):DWORD;
begin
Result:=SysGetTempFileName(Dir,Prefix,uUnique,TempFileName);
end;
{ UUID generation. }
function CoCreateGuid(out guid: TGUID): HResult; stdcall; external 'ole32.dll' name 'CoCreateGuid';