Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#9

Re: TreeResetNamedSecurityInfoW-Aufrufproblem

  Alt 8. Mär 2007, 08:19
Delphi-Quellcode:
procedure DoTreeProgress(
    pObjectName: LPWSTR; // name of object just processed
    Status: DWORD; // status of operation on object
    var pInvokeSetting: PROG_INVOKE_SETTING; // Never, always,
    Args: PVOID; // Caller specific data
    SecuritySet: BOOL );Stdcall;

var
  NewSI : SECURITY_INFORMATION;
  NewOwner,NewGroup : SID;
  NewDACL,NewSACL : ACL;
  CallBack : FN_PROGRESS;

dErr := TreeResetNamedSecurityInfoW(PWidechar(ffilename),
       SE_FILE_OBJECT,
       NewSI,
       @NewOwner,
       @NewGroup,
       @NewDACL,
       @NewSACL,
       FALSE,
       NIL,
       ProgressInvokeNever,NIL);
Ist ffilename string oder WideString? Besser WideString.
Ich habe oben mal meine Vermutungen eingesetzt. NewOwner, NewGroup, NewDACL und NewSACL sind vermutlich ausgefuellte Strukturen. Es koenne aber auch Zeiger sein, die andere Funktinoen angeliefert haben, dann ist meine Veraenderung mit @ falsch.
Die Dokumentation sagt das man NIL fuer den Callback angeben soll, wenn man ProgressInvokeNever benutzt.

Wie vermutet ist der Parameter pInvokeSetting falsch deklariert. var macht bereits die Indirektion. Es muss also der Struktur-Typ nicht der Zeiger-auf-Struktur-Typ gewaehlt werden.
  Mit Zitat antworten Zitat