Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: LookupAccountSidW und Datenbereich zu klein

  Alt 7. Mär 2007, 13:55
marabu hat hier http://www.delphipraxis.net/internal...=691954#691954 folgenden Vorscchlag gemacht:
Delphi-Quellcode:
function StrSIDToName(const StrSID: Widestring; var Name: WideString; var SIDType: DWORD): DWORD;
var
  SID : PSID;
  Buffer : PWideChar;
  NameLen, TempLen : Cardinal;
  ErrSuccess : Boolean;
begin
  SID := nil;
  ErrSuccess := ConvertStringSIDToSID(PWideChar(StrSID), SID);
  if ErrSuccess then
  begin
    NameLen := 0;
    TempLen := 0;
    LookupAccountSidW(nil, SID, nil, NameLen, nil, TempLen, SIDType);
    if NameLen > 0 then
    begin
      GetMem(Buffer, NameLen + 2);
      try
        ErrSuccess := LookupAccountSidW(nil, SID, Buffer, NameLen, nil, TempLen, SIDType);
        if ErrSuccess then
        begin
          SetString(Name, Buffer, Namelen);
          SetLastError(0);
        end;
      finally
        FreeMem(Buffer);
      end;
    end;
  end;
  if Assigned(SID) then
    LocalFree(Cardinal(SID));
  result := GetLastError;
end;
Das Problem bleibt aber das gleiche, beim zweiten Aufruf fliege ich einfach ohne Fehlermeldung aus dem Programm.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat