Diff
Not logged in

Differences From Artifact [7ae7478ab9]:

To Artifact [5715c69e5e]:


462
463
464
465
466
467
468
469

470
471

472
473

474
475

476
477

478
479

480
481

482
483

484
485

486
487

488
489

490
491

492
493

494
495

496
497

498
499

500
501
502
503
504
505
506
462
463
464
465
466
467
468

469
470

471
472

473
474

475
476

477
478

479
480

481
482

483
484

485
486

487
488

489
490

491
492

493
494

495
496

497
498

499
500
501
502
503
504
505
506







-
+

-
+

-
+

-
+

-
+

-
+

-
+

-
+

-
+

-
+

-
+

-
+

-
+

-
+

-
+

-
+







     * One time initialization, dynamically load Windows NT features
     */

    if (!initialized) {
	TCL_DECLARE_MUTEX(initializeMutex)
	Tcl_MutexLock(&initializeMutex);
	if (!initialized) {
	    HINSTANCE hInstance = LoadLibrary("Advapi32");
	    HMODULE handle = GetModuleHandle(TEXT("ADVAPI"));

	    if (hInstance != NULL) {
	    if (handle != NULL) {
		setNamedSecurityInfoProc = (setNamedSecurityInfoADef)
			GetProcAddress(hInstance, "SetNamedSecurityInfoA");
			GetProcAddress(handle, "SetNamedSecurityInfoA");
		getFileSecurityProc = (getFileSecurityADef)
			GetProcAddress(hInstance, "GetFileSecurityA");
			GetProcAddress(handle, "GetFileSecurityA");
		getAceProc = (getAceDef)
			GetProcAddress(hInstance, "GetAce");
			GetProcAddress(handle, "GetAce");
		addAceProc = (addAceDef)
			GetProcAddress(hInstance, "AddAce");
			GetProcAddress(handle, "AddAce");
		equalSidProc = (equalSidDef)
			GetProcAddress(hInstance, "EqualSid");
			GetProcAddress(handle, "EqualSid");
		addAccessDeniedAceProc = (addAccessDeniedAceDef)
			GetProcAddress(hInstance, "AddAccessDeniedAce");
			GetProcAddress(handle, "AddAccessDeniedAce");
		initializeAclProc = (initializeAclDef)
			GetProcAddress(hInstance, "InitializeAcl");
			GetProcAddress(handle, "InitializeAcl");
		getLengthSidProc = (getLengthSidDef)
			GetProcAddress(hInstance, "GetLengthSid");
			GetProcAddress(handle, "GetLengthSid");
		getAclInformationProc = (getAclInformationDef)
			GetProcAddress(hInstance, "GetAclInformation");
			GetProcAddress(handle, "GetAclInformation");
		getSecurityDescriptorDaclProc = (getSecurityDescriptorDaclDef)
			GetProcAddress(hInstance, "GetSecurityDescriptorDacl");
			GetProcAddress(handle, "GetSecurityDescriptorDacl");
		lookupAccountNameProc = (lookupAccountNameADef)
			GetProcAddress(hInstance, "LookupAccountNameA");
			GetProcAddress(handle, "LookupAccountNameA");
		getSidLengthRequiredProc = (getSidLengthRequiredDef)
			GetProcAddress(hInstance, "GetSidLengthRequired");
			GetProcAddress(handle, "GetSidLengthRequired");
		initializeSidProc = (initializeSidDef)
			GetProcAddress(hInstance, "InitializeSid");
			GetProcAddress(handle, "InitializeSid");
		getSidSubAuthorityProc = (getSidSubAuthorityDef)
			GetProcAddress(hInstance, "GetSidSubAuthority");
			GetProcAddress(handle, "GetSidSubAuthority");

		if (setNamedSecurityInfoProc && getAceProc && addAceProc
			&& equalSidProc && addAccessDeniedAceProc
			&& initializeAclProc && getLengthSidProc
			&& getAclInformationProc
			&& getSecurityDescriptorDaclProc
			&& lookupAccountNameProc && getFileSecurityProc