/*++
DCOM Permission Configuration Sample
Copyright (c) 1996, Microsoft Corporation. All rights reserved.
Module Name:
dcomperm.h
Abstract:
Include file for DCOM Permission Configuration sample
Author:
Michael Nelson
Environment:
Windows NT
--*/
#define GUIDSTR_MAX 38
#ifndef STR2UNI
#define STR2UNI(unistr, regstr) \
mbstowcs (unistr, regstr, strlen (regstr)+1);
#define UNI2STR(regstr, unistr) \
wcstombs (regstr, unistr, wcslen (unistr)+1);
#endif
//
// Wrappers
//
DWORD
ListDefaultAccessACL();
DWORD
ListDefaultLaunchACL();
DWORD
ListAppIDAccessACL (
LPTSTR AppID
);
DWORD
ListAppIDLaunchACL (
LPTSTR AppID
);
DWORD
ChangeDefaultAccessACL (
LPTSTR Principal,
BOOL SetPrincipal,
BOOL Permit
);
DWORD
ChangeDefaultLaunchACL (
LPTSTR Principal,
BOOL SetPrincipal,
BOOL Permit
);
DWORD
ChangeAppIDAccessACL (
LPTSTR AppID,
LPTSTR Principal,
BOOL SetPrincipal,
BOOL Permit
);
DWORD
ChangeAppIDLaunchACL (
LPTSTR AppID,
LPTSTR Principal,
BOOL SetPrincipal,
BOOL Permit
);
DWORD GetRunAsPassword (
LPTSTR AppID,
LPTSTR Password
);
DWORD SetRunAsPassword (
LPTSTR AppID,
LPTSTR Principal,
LPTSTR Password
);
DWORD GetRunAsPassword (
LPTSTR AppID,
LPTSTR Password
);
DWORD SetRunAsPassword (
LPTSTR AppID,
LPTSTR Password
);
//
// Internal functions
//
DWORD
CreateNewSD (
SECURITY_DESCRIPTOR **SD
);
DWORD
MakeSDAbsolute (
PSECURITY_DESCRIPTOR OldSD,
PSECURITY_DESCRIPTOR *NewSD
);
DWORD
SetNamedValueSD (
HKEY RootKey,
LPTSTR KeyName,
LPTSTR ValueName,
SECURITY_DESCRIPTOR *SD
);
DWORD
GetNamedValueSD (
HKEY RootKey,
LPTSTR KeyName,
LPTSTR ValueName,
SECURITY_DESCRIPTOR **SD,
BOOL *NewSD
);
DWORD
ListNamedValueSD (
HKEY RootKey,
LPTSTR KeyName,
LPTSTR ValueName
);
DWORD
AddPrincipalToNamedValueSD (
HKEY RootKey,
LPTSTR KeyName,
LPTSTR ValueName,
LPTSTR Principal,
BOOL Permit
);
DWORD
RemovePrincipalFromNamedValueSD (
HKEY RootKey,
LPTSTR KeyName,
LPTSTR ValueName,
LPTSTR Principal
);
DWORD
GetCurrentUserSID (
PSID *Sid
);
DWORD
GetPrincipalSID (
LPTSTR Principal,
PSID *Sid
);
DWORD
CopyACL (
PACL OldACL,
PACL NewACL
);
DWORD
AddAccessDeniedACEToACL (
PACL *Acl,
DWORD PermissionMask,
LPTSTR Principal
);
DWORD
AddAccessAllowedACEToACL (
PACL *Acl,
DWORD PermissionMask,
LPTSTR Principal
);
DWORD
RemovePrincipalFromACL (
PACL Acl,
LPTSTR Principal
);
void
ListACL (
PACL Acl
);
DWORD
SetAccountRights (
LPTSTR User,
LPTSTR Privilege
);
//
// Utility Functions
//
LPTSTR
SystemMessage (
LPTSTR szBuffer,
HRESULT hr
);