%% options copyright owner = Dirk Krause copyright year = 2011-2014 license = bsd %% module #include "dk3all.h" #include "dkt-version.h" #include "dkt.h" #include "dkwt.h" $!trace-include /** Text SIDS to show. */ static dkChar const * const sidstext[] = { $!text macro=dkT S-1-1-0 S-1-5-18 $!end }; /** The main function. @param argc Number of command line arguments. @param argv Command line arguments array. @return 0 on success, any other value indicates an error. */ DK3_MAIN { dkChar bu[DK3_MAX_PATH]; dkChar b2[DK3_MAX_PATH]; int exval = 0; dkChar const * const *sidtextptr; PSID psid; DWORD dwSize; DWORD dwSzB2; SID_NAME_USE sidNameUse; $!trace-init dkwt.deb $? "+ main" sidtextptr = sidstext; dk3sf_initialize_stdout(); while(*sidtextptr) { dk3sf_fputs(*sidtextptr, stdout); dk3sf_fputc(dkT('\n'), stdout); if(ConvertStringSidToSid(*sidtextptr, &psid)) { if(psid) { dwSize = DK3_SIZEOF(bu,dkChar); dwSzB2 = DK3_SIZEOF(bu,dkChar); if(LookupAccountSid( NULL, psid, bu, &dwSize, b2, &dwSzB2, &sidNameUse ) ) { if(dwSize > 0) { if(dwSize < DK3_SIZEOF(bu,dkChar)) { bu[dwSize] = dkT('\0'); } else { bu[DK3_SIZEOF(bu,dkChar)-1] = dkT('\0'); } dk3sf_fputs(bu, stdout); dk3sf_fputc(dkT('\n'), stdout); } else { $? "! ERROR" } } else { $? "! ERROR" } LocalFree(psid); } else { $? "! ERROR" } } else { $? "! ERROR" } sidtextptr++; } $? "- main" $!trace-end exit(exval); return exval; }