home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / dcom / dcomperm / wrappers.cpp < prev   
C/C++ Source or Header  |  1996-07-19  |  4KB  |  144 lines

  1. /*++
  2.  
  3. DCOM Permission Configuration Sample
  4. Copyright (c) 1996, Microsoft Corporation. All rights reserved.
  5.  
  6. Module Name:
  7.  
  8.     wrappers.cpp
  9.  
  10. Abstract:
  11.  
  12.     Wrappers for low-level security and registry functions
  13.  
  14. Author:
  15.  
  16.     Michael Nelson
  17.  
  18. Environment:
  19.  
  20.     Windows NT
  21.  
  22. --*/
  23.  
  24. #include <windows.h>
  25. #include <stdio.h>
  26. #include <conio.h>
  27. #include <tchar.h>
  28. #include "ntsecapi.h"
  29. #include "dcomperm.h"
  30.  
  31. DWORD
  32. ListDefaultAccessACL()
  33. {
  34.     return ListNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"));
  35. }
  36.  
  37. DWORD
  38. ListDefaultLaunchACL()
  39. {
  40.     return ListNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"));
  41. }
  42.  
  43. DWORD
  44. ListAppIDAccessACL (
  45.     LPTSTR AppID
  46.     )
  47. {
  48.     TCHAR   keyName [256];
  49.  
  50.     if (AppID [0] == '{')
  51.         wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
  52.         wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
  53.  
  54.     return ListNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"));
  55. }
  56.  
  57. DWORD
  58. ListAppIDLaunchACL (
  59.     LPTSTR AppID
  60.     )
  61. {
  62.     TCHAR   keyName [256];
  63.  
  64.     if (AppID [0] == '{')
  65.         wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
  66.         wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
  67.  
  68.     return ListNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"));
  69. }
  70.  
  71. DWORD
  72. ChangeDefaultAccessACL (
  73.     LPTSTR Principal,
  74.     BOOL SetPrincipal,
  75.     BOOL Permit
  76.     )
  77. {
  78.     if (SetPrincipal)
  79.     {
  80.         RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"), Principal);
  81.         return AddPrincipalToNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"), Principal, Permit);
  82.     } else
  83.         return RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"), Principal);
  84. }
  85.  
  86. DWORD
  87. ChangeDefaultLaunchACL (
  88.     LPTSTR Principal,
  89.     BOOL SetPrincipal,
  90.     BOOL Permit
  91.     )
  92. {
  93.     if (SetPrincipal)
  94.     {
  95.         RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"), Principal);
  96.         return AddPrincipalToNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"), Principal, Permit);
  97.     } else
  98.         return RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"), Principal);
  99. }
  100.  
  101. DWORD
  102. ChangeAppIDAccessACL (
  103.     LPTSTR AppID,
  104.     LPTSTR Principal,
  105.     BOOL SetPrincipal,
  106.     BOOL Permit
  107.     )
  108. {
  109.     TCHAR   keyName [256];
  110.  
  111.     if (AppID [0] == '{')
  112.         wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
  113.         wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
  114.  
  115.     if (SetPrincipal)
  116.     {
  117.         RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"), Principal);
  118.         return AddPrincipalToNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"), Principal, Permit);
  119.     } else
  120.         return RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"), Principal);
  121. }
  122.  
  123. DWORD
  124. ChangeAppIDLaunchACL (
  125.     LPTSTR AppID,
  126.     LPTSTR Principal,
  127.     BOOL SetPrincipal,
  128.     BOOL Permit
  129.     )
  130. {
  131.     TCHAR   keyName [256];
  132.  
  133.     if (AppID [0] == '{')
  134.         wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
  135.         wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
  136.  
  137.     if (SetPrincipal)
  138.     {
  139.         RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"), Principal);
  140.         return AddPrincipalToNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"), Principal, Permit);
  141.     } else
  142.         return RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"), Principal);
  143. }
  144.