ReactOS 0.4.15-dev-6068-g8061a6f
shpolicy.c
Go to the documentation of this file.
1/*
2 * shpolicy.c - Data for shell/system policies.
3 *
4 * Copyright 1999 Ian Schmidt <ischmidt@cfl.rr.com>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 *
20 * NOTES:
21 *
22 * Some of these policies can be tweaked via the System Policy
23 * Editor which came with the Win95 Migration Guide, although
24 * there doesn't appear to be an updated Win98 version that
25 * would handle the many new policies introduced since then.
26 * You could easily write one with the information in
27 * this file...
28 *
29 * Up to date as of SHELL32 v5.00 (W2K)
30 */
31
32#include <stdarg.h>
33#include <stdlib.h>
34#include <string.h>
35
36#define WIN32_NO_STATUS
37#define _INC_WINDOWS
38
39#include <windef.h>
40#include <winbase.h>
41#include <shlobj.h>
42#include <wine/debug.h>
43
44#include "shell32_main.h"
45
47
48#define SHELL_NO_POLICY 0xffffffff
49
50typedef struct tagPOLICYDAT
51{
52 DWORD policy; /* policy value passed to SHRestricted */
53 LPCSTR appstr; /* application str such as "Explorer" */
54 LPCSTR keystr; /* name of the actual registry key / policy */
55 DWORD cache; /* cached value or 0xffffffff for invalid */
57
58/* application strings */
59
60static const char strExplorer[] = {"Explorer"};
61static const char strActiveDesk[] = {"ActiveDesktop"};
62static const char strWinOldApp[] = {"WinOldApp"};
63static const char strAddRemoveProgs[] = {"AddRemoveProgs"};
64
65/* key strings */
66
67static const char strNoFileURL[] = {"NoFileUrl"};
68static const char strNoFolderOptions[] = {"NoFolderOptions"};
69static const char strNoChangeStartMenu[] = {"NoChangeStartMenu"};
70static const char strNoWindowsUpdate[] = {"NoWindowsUpdate"};
71static const char strNoSetActiveDesktop[] = {"NoSetActiveDesktop"};
72static const char strNoForgetSoftwareUpdate[] = {"NoForgetSoftwareUpdate"};
73//static const char strNoMSAppLogo[] = {"NoMSAppLogo5ChannelNotify"};
74static const char strForceCopyACLW[] = {"ForceCopyACLWithFile"};
75static const char strNoResolveTrk[] = {"NoResolveTrack"};
76static const char strNoResolveSearch[] = {"NoResolveSearch"};
77static const char strNoEditComponent[] = {"NoEditingComponents"};
78static const char strNoMovingBand[] = {"NoMovingBands"};
79static const char strNoCloseDragDrop[] = {"NoCloseDragDropBands"};
80static const char strNoCloseComponent[] = {"NoClosingComponents"};
81static const char strNoDelComponent[] = {"NoDeletingComponents"};
82static const char strNoAddComponent[] = {"NoAddingComponents"};
83static const char strNoComponent[] = {"NoComponents"};
84static const char strNoChangeWallpaper[] = {"NoChangingWallpaper"};
85static const char strNoHTMLWallpaper[] = {"NoHTMLWallpaper"};
86static const char strNoCustomWebView[] = {"NoCustomizeWebView"};
87static const char strClassicShell[] = {"ClassicShell"};
88static const char strClearRecentDocs[] = {"ClearRecentDocsOnExit"};
89static const char strNoFavoritesMenu[] = {"NoFavoritesMenu"};
90static const char strNoActiveDesktopChanges[] = {"NoActiveDesktopChanges"};
91static const char strNoActiveDesktop[] = {"NoActiveDesktop"};
92static const char strNoRecentDocMenu[] = {"NoRecentDocsMenu"};
93static const char strNoRecentDocHistory[] = {"NoRecentDocsHistory"};
94static const char strNoInetIcon[] = {"NoInternetIcon"};
95static const char strNoSettingsWizard[] = {"NoSettingsWizards"};
96static const char strNoLogoff[] = {"NoLogoff"};
97static const char strNoNetConDis[] = {"NoNetConnectDisconnect"};
98static const char strNoViewContextMenu[] = {"NoViewContextMenu"};
99static const char strNoTrayContextMenu[] = {"NoTrayContextMenu"};
100static const char strNoWebMenu[] = {"NoWebMenu"};
101static const char strLnkResolveIgnoreLnkInfo[] = {"LinkResolveIgnoreLinkInfo"};
102static const char strNoCommonGroups[] = {"NoCommonGroups"};
103static const char strEnforceShlExtSecurity[] = {"EnforceShellExtensionSecurity"};
104static const char strNoRealMode[] = {"NoRealMode"};
105static const char strMyDocsOnNet[] = {"MyDocsOnNet"};
106static const char strNoStartMenuSubfolder[] = {"NoStartMenuSubFolders"};
107static const char strNoAddPrinters[] = {"NoAddPrinter"};
108static const char strNoDeletePrinters[] = {"NoDeletePrinter"};
109static const char strNoPrintTab[] = {"NoPrinterTabs"};
110static const char strRestrictRun[] = {"RestrictRun"};
111static const char strNoStartBanner[] = {"NoStartBanner"};
112static const char strNoNetworkNeighborhood[] = {"NoNetHood"};
113static const char strNoDriveTypeAtRun[] = {"NoDriveTypeAutoRun"};
114static const char strNoDrivesAutoRun[] = {"NoDriveAutoRun"};
115static const char strSeparateProcess[] = {"SeparateProcess"};
116static const char strNoDrives[] = {"NoDrives"};
117static const char strNoFind[] = {"NoFind"};
118static const char strNoDesktop[] = {"NoDesktop"};
119static const char strNoSetTaskBar[] = {"NoSetTaskbar"};
120static const char strNoSetFld[] = {"NoSetFolders"};
121static const char strNoFileMenu[] = {"NoFileMenu"};
122static const char strNoSaveSetting[] = {"NoSaveSettings"};
123static const char strNoClose[] = {"NoClose"};
124static const char strNoRun[] = {"NoRun"};
125#ifdef __REACTOS__
126static const char strNoSimpleStartMenu[] = {"NoSimpleStartMenu"};
127#endif
128
129/* policy data array */
131{
132 {
135 strNoRun,
137 },
138 {
143 },
144 {
149 },
150 {
155 },
156 {
161 },
162 {
167 },
168 {
173 },
174 {
177 strNoFind,
179 },
180 {
185 },
186 {
191 },
192 {
197 },
198 {
203 },
204 {
209 },
210 {
215 },
216 {
221 },
222 {
227 },
228 {
233 },
234 {
239 },
240 {
245 },
246 {
251 },
252 {
257 },
258 {
263 },
264 {
269 },
270 {
275 },
276 {
281 },
282 {
287 },
288 {
293 },
294 {
299 },
300 {
305 },
306 {
311 },
312 {
317 },
318 {
323 },
324 {
329 },
330 {
335 },
336 {
341 },
342 {
347 },
348 {
353 },
354 {
359 },
360 {
365 },
366 {
371 },
372 {
377 },
378 {
383 },
384 {
389 },
390 {
395 },
396 {
401 },
402 {
407 },
408 {
413 },
414 {
419 },
420 {
425 },
426 {
431 },
432 {
437 },
438#if (NTDDI_VERSION < NTDDI_LONGHORN)
439 {
440 REST_NOLOGO3CHANNELNOTIFY,
442 strNoMSAppLogo,
444 },
445#endif
446 {
451 },
452 {
457 },
458 {
463 },
464 {
469 },
470 {
475 },
476 {
479 "FindComputers",
481 },
482 {
485 "IntelliMenus",
487 },
488 {
491 "MemCheckBoxInRunDlg",
493 },
494 {
497 "ShowPostSetup",
499 },
500 {
503 "NoSyncAll",
505 },
506 {
509 "NoControlPanel",
511 },
512 {
515 "EnumWorkgroup",
517 },
518 {
521 "NoAddRemovePrograms",
523 },
524 {
527 "NoRemovePage",
529 },
530 {
533 "NoAddPage",
535 },
536 {
539 "NoWindowsSetupPage",
541 },
542 {
545 "",
547 },
548 {
551 "NoChangeMappedDriveLabel",
553 },
554 {
557 "NoChangeMappedDriveComment",
559 },
560 {
563 "MaxRecentDocs",
565 },
566 {
569 "NoNetworkConnections",
571 },
572 {
575 "ForceStartMenuLogoff",
577 },
578 {
581 "NoWebView",
583 },
584 {
587 "NoCustomizeThisFolder",
589 },
590 {
593 "NoEncryption",
595 },
596 {
599 "AllowFrenchEncryption",
601 },
602 {
605 "DontShowSuperHidden",
607 },
608 {
611 "NoShellSearchButton",
613 },
614 {
617 "NoHardwareTab",
619 },
620 {
623 "NoRunasInstallPrompt",
625 },
626 {
629 "PromptRunasInstallNetPath",
631 },
632 {
635 "NoManageMyComputerVerb",
637 },
638 {
641 "NoRecentDocsNetHood",
643 },
644 {
647 "DisallowRun",
649 },
650 {
653 "NoWelcomeScreen",
655 },
656 {
659 "RestrictCpl",
661 },
662 {
665 "DisallowCpl",
667 },
668 {
671 "NoSMBalloonTip",
673 },
674 {
677 "NoSMHelp",
679 },
680 {
683 "NoWinKeys",
685 },
686 {
689 "NoEncryptOnMove",
691 },
692 {
695 "DisableLocalMachineRun",
697 },
698 {
701 "DisableCurrentUserRun",
703 },
704 {
707 "DisableLocalMachineRunOnce",
709 },
710 {
713 "DisableCurrentUserRunOnce",
715 },
716 {
719 "ForceActiveDesktopOn",
721 },
722 {
725 "NoComputersNearMe",
727 },
728 {
731 "NoViewOnDrive",
733 },
734 {
737 "NoNetCrawl",
739 },
740 {
743 "NoSharedDocs",
745 },
746 {
749 "NoSMMyDocs",
751 },
752/* 0x4000050 - 0x4000060 */
753 {
756 "NoneLegacyShellMode",
758 },
759#ifdef __REACTOS__
760 {
763 strNoSimpleStartMenu,
765 },
766#endif
767 {
770 "StartRunNoHOMEPATH",
772 },
773/* 0x4000061 - 0x4000086 */
774 {
777 "NoDisconnect",
779 },
780 {
783 "NoNTSecurity",
785 },
786 {
789 "NoFileAssociate",
791 },
792 {
793 0x50000024,
797 },
798 {
799 0,
800 0,
801 0,
803 }
804};
805
806/*************************************************************************
807 * SHRestricted [SHELL32.100]
808 *
809 * Get the value associated with a policy Id.
810 *
811 * PARAMS
812 * pol [I] Policy Id
813 *
814 * RETURNS
815 * The queried value for the policy.
816 *
817 * NOTES
818 * Exported by ordinal.
819 * This function caches the retrieved values to prevent unnecessary registry access,
820 * if SHSettingsChanged() was previously called.
821 *
822 * REFERENCES
823 * a: MS System Policy Editor.
824 * b: 98Lite 2.0 (which uses many of these policy keys) http://www.98lite.net/
825 * c: 'The Windows 95 Registry', by John Woram, 1996 MIS: Press
826 */
828{
829 char regstr[256];
830 HKEY xhkey;
831 DWORD retval, datsize = 4;
833
834 TRACE("(%08x)\n", policy);
835
836 /* scan to see if we know this policy ID */
837 for (p = sh32_policy_table; p->policy; p++)
838 {
839 if (policy == p->policy)
840 {
841 break;
842 }
843 }
844
845 if (p->policy == 0)
846 {
847 /* we don't know this policy, return 0 */
848 TRACE("unknown policy: (%08x)\n", policy);
849 return 0;
850 }
851
852 /* we have a known policy */
853
854 /* first check if this policy has been cached, return it if so */
855 if (p->cache != SHELL_NO_POLICY)
856 {
857 return p->cache;
858 }
859
860 lstrcpyA(regstr, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\");
861 lstrcatA(regstr, p->appstr);
862
863 /* return 0 and don't set the cache if any registry errors occur */
864#ifndef __REACTOS__
865 retval = 0;
866 if (RegOpenKeyA(HKEY_CURRENT_USER, regstr, &xhkey) == ERROR_SUCCESS)
867#else // FIXME: Actually this *MUST* use shlwapi!SHRestrictionLookup()
868 // See http://www.geoffchappell.com/studies/windows/shell/shell32/api/util/shrestricted.htm
869 retval = RegOpenKeyA(HKEY_LOCAL_MACHINE, regstr, &xhkey);
870 if (retval != ERROR_SUCCESS)
871 {
872 retval = RegOpenKeyA(HKEY_CURRENT_USER, regstr, &xhkey);
873 if (retval != ERROR_SUCCESS)
874 return 0;
875 }
876#endif
877 {
878 if (RegQueryValueExA(xhkey, p->keystr, NULL, NULL, (LPBYTE)&retval, &datsize) == ERROR_SUCCESS)
879 {
880 p->cache = retval;
881 }
882 RegCloseKey(xhkey);
883 }
884 return retval;
885}
886
887/*************************************************************************
888 * SHSettingsChanged [SHELL32.244]
889 *
890 * Initialise the policy cache to speed up calls to SHRestricted().
891 *
892 * PARAMS
893 * unused [I] Reserved.
894 * inpRegKey [I] Registry key to scan.
895 *
896 * RETURNS
897 * Success: -1. The policy cache is initialised.
898 * Failure: 0, if inpRegKey is any value other than NULL, "Policy", or
899 * "Software\Microsoft\Windows\CurrentVersion\Policies".
900 *
901 * NOTES
902 * Exported by ordinal. Introduced in Win98.
903 */
905{
906 TRACE("(%p, %p)\n", unused, inpRegKey);
907
908 /* first check - if input is non-NULL and points to the secret
909 key string, then pass. Otherwise return 0.
910 */
911 if (inpRegKey != NULL)
912 {
913 if (SHELL_OsIsUnicode())
914 {
915 if (lstrcmpiW(inpRegKey, L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies") &&
916 lstrcmpiW(inpRegKey, L"Policy"))
917 /* doesn't match, fail */
918 return FALSE;
919 }
920 else
921 {
922 if (lstrcmpiA(inpRegKey, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies") &&
923 lstrcmpiA(inpRegKey, "Policy"))
924 /* doesn't match, fail */
925 return FALSE;
926 }
927 }
928
929 return TRUE;
930}
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
void shell(int argc, const char *argv[])
Definition: cmds.c:1231
#define RegCloseKey(hKey)
Definition: registry.h:47
#define ERROR_SUCCESS
Definition: deptool.c:10
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3254
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4024
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
WDF_INTERRUPT_POLICY policy
GLfloat GLfloat p
Definition: glext.h:8902
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:42
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:194
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:100
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:123
WORD unused[29]
Definition: crypt.c:1155
#define L(x)
Definition: ntvdm.h:50
static __inline BOOL SHELL_OsIsUnicode(void)
Definition: shell32_main.h:130
RESTRICTIONS
Definition: shlobj.h:1560
@ REST_PROMPTRUNASINSTALLNETPATH
Definition: shlobj.h:1649
@ REST_RUNDLGMEMCHECKBOX
Definition: shlobj.h:1624
@ REST_DONTSHOWSUPERHIDDEN
Definition: shlobj.h:1645
@ REST_NOFOLDEROPTIONS
Definition: shlobj.h:1621
@ REST_STARTBANNER
Definition: shlobj.h:1574
@ REST_NOCOMPUTERSNEARME
Definition: shlobj.h:1665
@ REST_NOFILEASSOCIATE
Definition: shlobj.h:1728
@ REST_NOPRINTERTABS
Definition: shlobj.h:1576
@ REST_MYDOCSONNET
Definition: shlobj.h:1580
@ REST_NORUNASINSTALLPROMPT
Definition: shlobj.h:1648
@ REST_NOCUSTOMIZEWEBVIEW
Definition: shlobj.h:1600
@ REST_NOSETACTIVEDESKTOP
Definition: shlobj.h:1618
@ REST_NOENCRYPTONMOVE
Definition: shlobj.h:1659
@ REST_NOCURRENTUSERRUNONCE
Definition: shlobj.h:1663
@ REST_ARP_ShowPostSetup
Definition: shlobj.h:1625
@ REST_NOMOVINGBAND
Definition: shlobj.h:1609
@ REST_CLASSICSHELL
Definition: shlobj.h:1599
@ REST_NOSETTINGSASSIST
Definition: shlobj.h:1591
@ REST_NOCLOSE_DRAGDROPBAND
Definition: shlobj.h:1608
@ REST_DISALLOWCPL
Definition: shlobj.h:1655
@ REST_FORCESTARTMENULOGOFF
Definition: shlobj.h:1638
@ REST_NOWEB
Definition: shlobj.h:1586
@ REST_MaxRecentDocs
Definition: shlobj.h:1636
@ REST_NONETCRAWL
Definition: shlobj.h:1667
@ REST_NOENCRYPTION
Definition: shlobj.h:1641
@ REST_NOSAVESET
Definition: shlobj.h:1564
@ REST_ARP_NOADDPAGE
Definition: shlobj.h:1631
@ REST_NODESKCOMP
Definition: shlobj.h:1604
@ REST_NOSETFOLDERS
Definition: shlobj.h:1566
@ REST_NOCONTROLPANEL
Definition: shlobj.h:1627
@ REST_NOCOMMONGROUPS
Definition: shlobj.h:1584
@ REST_NOPRINTERADD
Definition: shlobj.h:1578
@ REST_NOSTARTPANEL
Definition: shlobj.h:1680
@ REST_NONETCONNECTDISCONNECT
Definition: shlobj.h:1589
@ REST_NOFORGETSOFTWAREUPDATE
Definition: shlobj.h:1617
@ REST_NOCUSTOMIZETHISFOLDER
Definition: shlobj.h:1640
@ REST_NODRIVEAUTORUN
Definition: shlobj.h:1571
@ REST_NOWINKEYS
Definition: shlobj.h:1658
@ REST_NOCHANGEMAPPEDDRIVELABEL
Definition: shlobj.h:1634
@ REST_NOMANAGEMYCOMPUTERVERB
Definition: shlobj.h:1650
@ REST_NOTRAYCONTEXTMENU
Definition: shlobj.h:1587
@ REST_ENUMWORKGROUP
Definition: shlobj.h:1628
@ REST_NOCHANGESTARMENU
Definition: shlobj.h:1620
@ REST_NOEXITTODOS
Definition: shlobj.h:1581
@ REST_NORECENTDOCSHISTORY
Definition: shlobj.h:1593
@ REST_SEPARATEDESKTOPPROCESS
Definition: shlobj.h:1585
@ REST_STARTMENULOGOFF
Definition: shlobj.h:1590
@ REST_NOSMBALLOONTIP
Definition: shlobj.h:1656
@ REST_NORECENTDOCSNETHOOD
Definition: shlobj.h:1651
@ REST_ARP_NOREMOVEPAGE
Definition: shlobj.h:1630
@ REST_NOVIEWCONTEXTMENU
Definition: shlobj.h:1588
@ REST_NOLOCALMACHINERUNONCE
Definition: shlobj.h:1662
@ REST_NOACTIVEDESKTOPCHANGES
Definition: shlobj.h:1596
@ REST_ARP_NOWINSETUPPAGE
Definition: shlobj.h:1632
@ REST_NOWEBVIEW
Definition: shlobj.h:1639
@ REST_NOSHELLSEARCHBUTTON
Definition: shlobj.h:1646
@ REST_NOLOCALMACHINERUN
Definition: shlobj.h:1660
@ REST_GREYMSIADS
Definition: shlobj.h:1633
@ REST_NODELDESKCOMP
Definition: shlobj.h:1606
@ REST_NOWELCOMESCREEN
Definition: shlobj.h:1653
@ REST_NORESOLVETRACK
Definition: shlobj.h:1612
@ REST_NOCHANGEMAPPEDDRIVECOMMENT
Definition: shlobj.h:1635
@ REST_NOACTIVEDESKTOP
Definition: shlobj.h:1595
@ REST_NOCLOSEDESKCOMP
Definition: shlobj.h:1607
@ REST_RESTRICTCPL
Definition: shlobj.h:1654
@ REST_NONETWORKCONNECTIONS
Definition: shlobj.h:1637
@ REST_NOUPDATEWINDOWS
Definition: shlobj.h:1619
@ REST_NOSECURITY
Definition: shlobj.h:1727
@ REST_RESTRICTRUN
Definition: shlobj.h:1575
@ REST_NOINTERNETICON
Definition: shlobj.h:1592
@ REST_NOSMMYDOCS
Definition: shlobj.h:1669
@ REST_NORECENTDOCSMENU
Definition: shlobj.h:1594
@ REST_NOSETTASKBAR
Definition: shlobj.h:1567
@ REST_NOCHANGINGWALLPAPER
Definition: shlobj.h:1603
@ REST_NOVIEWONDRIVE
Definition: shlobj.h:1666
@ REST_NOPRINTERDELETE
Definition: shlobj.h:1577
@ REST_NOSTARTMENUSUBFOLDERS
Definition: shlobj.h:1579
@ REST_NOEDITDESKCOMP
Definition: shlobj.h:1610
@ REST_FORCECOPYACLWITHFILE
Definition: shlobj.h:1613
@ REST_LINKRESOLVEIGNORELINKINFO
Definition: shlobj.h:1583
@ REST_NOHTMLWALLPAPER
Definition: shlobj.h:1602
@ REST_NORUN
Definition: shlobj.h:1562
@ REST_NONLEGACYSHELLMODE
Definition: shlobj.h:1672
@ REST_NOFIND
Definition: shlobj.h:1569
@ REST_ALLOWFRENCHENCRYPTION
Definition: shlobj.h:1643
@ REST_NODRIVES
Definition: shlobj.h:1570
@ REST_NOCURRENTUSERRUN
Definition: shlobj.h:1661
@ REST_INTELLIMENUS
Definition: shlobj.h:1623
@ REST_NODISCONNECT
Definition: shlobj.h:1726
@ REST_NOSMHELP
Definition: shlobj.h:1657
@ REST_NOFILEMENU
Definition: shlobj.h:1565
@ REST_ARP_NOARP
Definition: shlobj.h:1629
@ REST_NODRIVETYPEAUTORUN
Definition: shlobj.h:1572
@ REST_STARTRUNNOHOMEPATH
Definition: shlobj.h:1687
@ REST_NOSHAREDDOCUMENTS
Definition: shlobj.h:1668
@ REST_NODESKTOP
Definition: shlobj.h:1568
@ REST_DISALLOWRUN
Definition: shlobj.h:1652
@ REST_CLEARRECENTDOCSONEXIT
Definition: shlobj.h:1598
@ REST_NONETHOOD
Definition: shlobj.h:1573
@ REST_NOCSC
Definition: shlobj.h:1626
@ REST_NORESOLVESEARCH
Definition: shlobj.h:1611
@ REST_NOCLOSE
Definition: shlobj.h:1563
@ REST_NOADDDESKCOMP
Definition: shlobj.h:1605
@ REST_FORCEACTIVEDESKTOPON
Definition: shlobj.h:1664
@ REST_HASFINDCOMPUTERS
Definition: shlobj.h:1622
@ REST_NOHARDWARETAB
Definition: shlobj.h:1647
@ REST_NOFAVORITESMENU
Definition: shlobj.h:1597
@ REST_ENFORCESHELLEXTSECURITY
Definition: shlobj.h:1582
static const char strNoAddComponent[]
Definition: shpolicy.c:82
static const char strNoHTMLWallpaper[]
Definition: shpolicy.c:85
static const char strNoDriveTypeAtRun[]
Definition: shpolicy.c:113
static const char strNoSetActiveDesktop[]
Definition: shpolicy.c:71
static const char strNoFileURL[]
Definition: shpolicy.c:67
static const char strNoCommonGroups[]
Definition: shpolicy.c:102
static const char strNoTrayContextMenu[]
Definition: shpolicy.c:99
static const char strNoEditComponent[]
Definition: shpolicy.c:77
static const char strExplorer[]
Definition: shpolicy.c:60
static const char strNoChangeWallpaper[]
Definition: shpolicy.c:84
static const char strNoActiveDesktop[]
Definition: shpolicy.c:91
static const char strNoDelComponent[]
Definition: shpolicy.c:81
static const char strNoResolveTrk[]
Definition: shpolicy.c:75
static const char strNoSaveSetting[]
Definition: shpolicy.c:122
static const char strEnforceShlExtSecurity[]
Definition: shpolicy.c:103
static const char strNoWindowsUpdate[]
Definition: shpolicy.c:70
static const char strClearRecentDocs[]
Definition: shpolicy.c:88
static const char strNoAddPrinters[]
Definition: shpolicy.c:107
static const char strNoFavoritesMenu[]
Definition: shpolicy.c:89
static const char strNoPrintTab[]
Definition: shpolicy.c:109
DWORD WINAPI SHRestricted(RESTRICTIONS policy)
Definition: shpolicy.c:827
static const char strNoNetworkNeighborhood[]
Definition: shpolicy.c:112
static const char strNoFileMenu[]
Definition: shpolicy.c:121
static const char strNoStartBanner[]
Definition: shpolicy.c:111
static const char strNoRealMode[]
Definition: shpolicy.c:104
static const char strSeparateProcess[]
Definition: shpolicy.c:115
static const char strNoComponent[]
Definition: shpolicy.c:83
static const char strLnkResolveIgnoreLnkInfo[]
Definition: shpolicy.c:101
static const char strClassicShell[]
Definition: shpolicy.c:87
struct tagPOLICYDAT POLICYDATA
static const char strNoLogoff[]
Definition: shpolicy.c:96
static const char strNoNetConDis[]
Definition: shpolicy.c:97
static const char strNoSetTaskBar[]
Definition: shpolicy.c:119
static const char strActiveDesk[]
Definition: shpolicy.c:61
#define SHELL_NO_POLICY
Definition: shpolicy.c:48
static const char strWinOldApp[]
Definition: shpolicy.c:62
static const char strNoChangeStartMenu[]
Definition: shpolicy.c:69
static const char strNoRun[]
Definition: shpolicy.c:124
static const char strForceCopyACLW[]
Definition: shpolicy.c:74
static const char strNoCustomWebView[]
Definition: shpolicy.c:86
static const char strNoViewContextMenu[]
Definition: shpolicy.c:98
static const char strNoClose[]
Definition: shpolicy.c:123
static const char strNoRecentDocHistory[]
Definition: shpolicy.c:93
static const char strMyDocsOnNet[]
Definition: shpolicy.c:105
static const char strNoCloseComponent[]
Definition: shpolicy.c:80
static POLICYDATA sh32_policy_table[]
Definition: shpolicy.c:130
BOOL WINAPI SHSettingsChanged(LPCVOID unused, LPCVOID inpRegKey)
Definition: shpolicy.c:904
static const char strNoSettingsWizard[]
Definition: shpolicy.c:95
static const char strNoSetFld[]
Definition: shpolicy.c:120
static const char strNoForgetSoftwareUpdate[]
Definition: shpolicy.c:72
static const char strRestrictRun[]
Definition: shpolicy.c:110
struct tagPOLICYDAT * LPPOLICYDATA
static const char strNoDesktop[]
Definition: shpolicy.c:118
static const char strNoStartMenuSubfolder[]
Definition: shpolicy.c:106
static const char strAddRemoveProgs[]
Definition: shpolicy.c:63
static const char strNoDeletePrinters[]
Definition: shpolicy.c:108
static const char strNoDrives[]
Definition: shpolicy.c:116
static const char strNoInetIcon[]
Definition: shpolicy.c:94
static const char strNoResolveSearch[]
Definition: shpolicy.c:76
static const char strNoCloseDragDrop[]
Definition: shpolicy.c:79
static const char strNoRecentDocMenu[]
Definition: shpolicy.c:92
static const char strNoFind[]
Definition: shpolicy.c:117
static const char strNoActiveDesktopChanges[]
Definition: shpolicy.c:90
static const char strNoWebMenu[]
Definition: shpolicy.c:100
static const char strNoMovingBand[]
Definition: shpolicy.c:78
static const char strNoDrivesAutoRun[]
Definition: shpolicy.c:114
static const char strNoFolderOptions[]
Definition: shpolicy.c:68
#define TRACE(s)
Definition: solgame.cpp:4
DWORD policy
Definition: shpolicy.c:52
DWORD cache
Definition: shpolicy.c:55
LPCSTR keystr
Definition: shpolicy.c:54
LPCSTR appstr
Definition: shpolicy.c:53
unsigned char * LPBYTE
Definition: typedefs.h:53
CONST void * LPCVOID
Definition: windef.h:191
#define WINAPI
Definition: msvc.h:6
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define HKEY_CURRENT_USER
Definition: winreg.h:11
const char * LPCSTR
Definition: xmlstorage.h:183