wrappers.cpp

Go to the documentation of this file.
00001 /*++
00002 
00003 DCOM Permission Configuration Sample
00004 Copyright (c) 1996, Microsoft Corporation. All rights reserved.
00005 
00006 Module Name:
00007 
00008     wrappers.cpp
00009 
00010 Abstract:
00011 
00012     Wrappers for low-level security and registry functions
00013 
00014 Author:
00015 
00016     Michael Nelson
00017 
00018 Environment:
00019 
00020     Windows NT
00021 
00022 --*/
00023 
00024 #include <windows.h>
00025 #include <stdio.h>
00026 #include <conio.h>
00027 #include <tchar.h>
00028 #include "ntsecapi.h"
00029 #include "dcomperm.h"
00030 
00031 DWORD
00032 ListDefaultAccessACL()
00033 {
00034     return ListNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"));
00035 }
00036 
00037 DWORD
00038 ListDefaultLaunchACL()
00039 {
00040     return ListNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"));
00041 }
00042 
00043 DWORD
00044 ListAppIDAccessACL (
00045     LPTSTR AppID
00046     )
00047 {
00048     TCHAR   keyName [256];
00049 
00050     if (AppID [0] == '{')
00051         wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
00052         wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
00053 
00054     return ListNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"));
00055 }
00056 
00057 DWORD
00058 ListAppIDLaunchACL (
00059     LPTSTR AppID
00060     )
00061 {
00062     TCHAR   keyName [256];
00063 
00064     if (AppID [0] == '{')
00065         wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
00066         wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
00067 
00068     return ListNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"));
00069 }
00070 
00071 DWORD
00072 ZapAppIDLaunchACL (LPTSTR AppID)
00073 {
00074     TCHAR   keyName [256];
00075 
00076     if (AppID [0] == '{')
00077         wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
00078         wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
00079 
00080     return ZapNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"));
00081 }
00082 
00083 DWORD
00084 ChangeDefaultAccessACL (
00085     LPTSTR Principal,
00086     BOOL SetPrincipal,
00087     BOOL Permit
00088     )
00089 {
00090     if (SetPrincipal)
00091     {
00092         RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"), Principal);
00093         return AddPrincipalToNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"), Principal, Permit);
00094     } else
00095         return RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"), Principal);
00096 }
00097 
00098 DWORD
00099 ChangeDefaultLaunchACL (
00100     LPTSTR Principal,
00101     BOOL SetPrincipal,
00102     BOOL Permit
00103     )
00104 {
00105     if (SetPrincipal)
00106     {
00107         RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"), Principal);
00108         return AddPrincipalToNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"), Principal, Permit);
00109     } else
00110         return RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"), Principal);
00111 }
00112 
00113 DWORD
00114 ChangeAppIDAccessACL (
00115     LPTSTR AppID,
00116     LPTSTR Principal,
00117     BOOL SetPrincipal,
00118     BOOL Permit
00119     )
00120 {
00121     TCHAR   keyName [256];
00122 
00123     if (AppID [0] == '{')
00124         wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
00125         wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
00126 
00127     if (SetPrincipal)
00128     {
00129         RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"), Principal);
00130         return AddPrincipalToNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"), Principal, Permit);
00131     } else
00132         return RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"), Principal);
00133 }
00134 
00135 DWORD
00136 ChangeAppIDLaunchACL (
00137     LPTSTR AppID,
00138     LPTSTR Principal,
00139     BOOL SetPrincipal,
00140     BOOL Permit
00141     )
00142 {
00143     TCHAR   keyName [256];
00144 
00145     if (AppID [0] == '{')
00146         wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
00147         wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
00148 
00149     if (SetPrincipal)
00150     {
00151         RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"), Principal);
00152         return AddPrincipalToNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"), Principal, Permit);
00153     } else
00154         return RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"), Principal);
00155 }
00156 

Generated on Fri Nov 21 04:28:59 2008 for HOOPLE Libraries by  doxygen 1.5.1