aboutsummaryrefslogtreecommitdiff
path: root/x86_64-w64-mingw32/include/gpedit.h
blob: 6b980f41f7dc6edba9af35c04d426b98721f4bdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
DEFINE_GUID(CLSID_GPESnapIn,0x8fc0b734,0xa0e1,0x11d1,0xa7,0xd3,0x0,0x0,0xf8,0x75,0x71,0xe3);
DEFINE_GUID(NODEID_Machine,0x8fc0b737,0xa0e1,0x11d1,0xa7,0xd3,0x0,0x0,0xf8,0x75,0x71,0xe3);
DEFINE_GUID(NODEID_MachineSWSettings,0x8fc0b73a,0xa0e1,0x11d1,0xa7,0xd3,0x0,0x0,0xf8,0x75,0x71,0xe3);
DEFINE_GUID(NODEID_User,0x8fc0b738,0xa0e1,0x11d1,0xa7,0xd3,0x0,0x0,0xf8,0x75,0x71,0xe3);
DEFINE_GUID(NODEID_UserSWSettings,0x8fc0b73c,0xa0e1,0x11d1,0xa7,0xd3,0x0,0x0,0xf8,0x75,0x71,0xe3);
DEFINE_GUID(IID_IGPEInformation,0x8fc0b735,0xa0e1,0x11d1,0xa7,0xd3,0x0,0x0,0xf8,0x75,0x71,0xe3);
DEFINE_GUID(CLSID_GroupPolicyObject,0xea502722,0xa23d,0x11d1,0xa7,0xd3,0x0,0x0,0xf8,0x75,0x71,0xe3);
DEFINE_GUID(IID_IGroupPolicyObject,0xea502723,0xa23d,0x11d1,0xa7,0xd3,0x0,0x0,0xf8,0x75,0x71,0xe3);
#define REGISTRY_EXTENSION_GUID { 0x35378EAC,0x683F,0x11D2,0xA8,0x9A,0x00,0xC0,0x4F,0xBB,0xCF,0xA2 }
DEFINE_GUID(CLSID_RSOPSnapIn,0x6dc3804b,0x7212,0x458d,0xad,0xb0,0x9a,0x07,0xe2,0xae,0x1f,0xa2);
DEFINE_GUID(NODEID_RSOPMachine,0xbd4c1a2e,0x0b7a,0x4a62,0xa6,0xb0,0xc0,0x57,0x75,0x39,0xc9,0x7e);
DEFINE_GUID(NODEID_RSOPMachineSWSettings,0x6a76273e,0xeb8e,0x45db,0x94,0xc5,0x25,0x66,0x3a,0x5f,0x2c,0x1a);
DEFINE_GUID(NODEID_RSOPUser,0xab87364f,0x0cec,0x4cd8,0x9b,0xf8,0x89,0x8f,0x34,0x62,0x8f,0xb8);
DEFINE_GUID(NODEID_RSOPUserSWSettings,0xe52c5ce3,0xfd27,0x4402,0x84,0xde,0xd9,0xa5,0xf2,0x85,0x89,0x10);
DEFINE_GUID(IID_IRSOPInformation,0x9a5a81b5,0xd9c7,0x49ef,0x9d,0x11,0xdd,0xf5,0x09,0x68,0xc4,0x8d);

#ifndef _GPEDIT_H_
#define _GPEDIT_H_

#ifndef _GPEDIT_
#define GPEDITAPI DECLSPEC_IMPORT
#else
#define GPEDITAPI
#endif

#ifdef __cplusplus
extern "C" {
#endif

#include <objbase.h>

#define GPO_SECTION_ROOT 0
#define GPO_SECTION_USER 1
#define GPO_SECTION_MACHINE 2

  typedef enum _GROUP_POLICY_OBJECT_TYPE {
    GPOTypeLocal = 0,GPOTypeRemote,GPOTypeDS
  } GROUP_POLICY_OBJECT_TYPE,*PGROUP_POLICY_OBJECT_TYPE;

  typedef enum _GROUP_POLICY_HINT_TYPE {
    GPHintUnknown = 0,GPHintMachine,GPHintSite,GPHintDomain,GPHintOrganizationalUnit
  } GROUP_POLICY_HINT_TYPE,*PGROUP_POLICY_HINT_TYPE;

#undef INTERFACE
#define INTERFACE IGPEInformation
  DECLARE_INTERFACE_(IGPEInformation,IUnknown) {
    STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE;
    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
    STDMETHOD_(ULONG,Release) (THIS) PURE;
    STDMETHOD(GetName) (THIS_ LPOLESTR pszName,int cchMaxLength) PURE;
    STDMETHOD(GetDisplayName) (THIS_ LPOLESTR pszName,int cchMaxLength) PURE;
    STDMETHOD(GetRegistryKey) (THIS_ DWORD dwSection,HKEY *hKey) PURE;
    STDMETHOD(GetDSPath) (THIS_ DWORD dwSection,LPOLESTR pszPath,int cchMaxPath) PURE;
    STDMETHOD(GetFileSysPath) (THIS_ DWORD dwSection,LPOLESTR pszPath,int cchMaxPath) PURE;
    STDMETHOD(GetOptions) (THIS_ DWORD *dwOptions) PURE;
    STDMETHOD(GetType) (THIS_ GROUP_POLICY_OBJECT_TYPE *gpoType) PURE;
    STDMETHOD(GetHint) (THIS_ GROUP_POLICY_HINT_TYPE *gpHint) PURE;
    STDMETHOD(PolicyChanged) (THIS_ WINBOOL bMachine,WINBOOL bAdd,GUID *pGuidExtension,GUID *pGuidSnapin) PURE;
  };
  typedef IGPEInformation *LPGPEINFORMATION;

#define GPO_OPEN_LOAD_REGISTRY 0x00000001
#define GPO_OPEN_READ_ONLY 0x00000002

#define GPO_OPTION_DISABLE_USER 0x00000001
#define GPO_OPTION_DISABLE_MACHINE 0x00000002

#undef INTERFACE
#define INTERFACE IGroupPolicyObject
  DECLARE_INTERFACE_(IGroupPolicyObject,IUnknown) {
    STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE;
    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
    STDMETHOD_(ULONG,Release) (THIS) PURE;
    STDMETHOD(New) (THIS_ LPOLESTR pszDomainName,LPOLESTR pszDisplayName,DWORD dwFlags) PURE;
    STDMETHOD(OpenDSGPO) (THIS_ LPOLESTR pszPath,DWORD dwFlags) PURE;
    STDMETHOD(OpenLocalMachineGPO) (THIS_ DWORD dwFlags) PURE;
    STDMETHOD(OpenRemoteMachineGPO) (THIS_ LPOLESTR pszComputerName,DWORD dwFlags) PURE;
    STDMETHOD(Save) (THIS_ WINBOOL bMachine,WINBOOL bAdd,GUID *pGuidExtension,GUID *pGuid) PURE;
    STDMETHOD(Delete) (THIS) PURE;
    STDMETHOD(GetName) (THIS_ LPOLESTR pszName,int cchMaxLength) PURE;
    STDMETHOD(GetDisplayName) (THIS_ LPOLESTR pszName,int cchMaxLength) PURE;
    STDMETHOD(SetDisplayName) (THIS_ LPOLESTR pszName) PURE;
    STDMETHOD(GetPath) (THIS_ LPOLESTR pszPath,int cchMaxPath) PURE;
    STDMETHOD(GetDSPath) (THIS_ DWORD dwSection,LPOLESTR pszPath,int cchMaxPath) PURE;
    STDMETHOD(GetFileSysPath) (THIS_ DWORD dwSection,LPOLESTR pszPath,int cchMaxPath) PURE;
    STDMETHOD(GetRegistryKey) (THIS_ DWORD dwSection,HKEY *hKey) PURE;
    STDMETHOD(GetOptions) (THIS_ DWORD *dwOptions) PURE;
    STDMETHOD(SetOptions) (THIS_ DWORD dwOptions,DWORD dwMask) PURE;
    STDMETHOD(GetType) (THIS_ GROUP_POLICY_OBJECT_TYPE *gpoType) PURE;
    STDMETHOD(GetMachineName) (THIS_ LPOLESTR pszName,int cchMaxLength) PURE;
    STDMETHOD(GetPropertySheetPages) (THIS_ HPROPSHEETPAGE **hPages,UINT *uPageCount) PURE;
  };
  typedef IGroupPolicyObject *LPGROUPPOLICYOBJECT;

#define RSOP_INFO_FLAG_DIAGNOSTIC_MODE 0x00000001

#undef INTERFACE
#define INTERFACE IRSOPInformation
  DECLARE_INTERFACE_(IRSOPInformation,IUnknown) {
    STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE;
    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
    STDMETHOD_(ULONG,Release) (THIS) PURE;
    STDMETHOD(GetNamespace) (THIS_ DWORD dwSection,LPOLESTR pszName,int cchMaxLength) PURE;
    STDMETHOD(GetFlags) (THIS_ DWORD *pdwFlags) PURE;
    STDMETHOD(GetEventLogEntryText) (THIS_ LPOLESTR pszEventSource,LPOLESTR pszEventLogName,LPOLESTR pszEventTime,DWORD dwEventID,LPOLESTR *ppszText) PURE;
  };
  typedef IRSOPInformation *LPRSOPINFORMATION;

  GPEDITAPI HRESULT WINAPI CreateGPOLink(LPOLESTR lpGPO,LPOLESTR lpContainer,WINBOOL fHighPriority);
  GPEDITAPI HRESULT WINAPI DeleteGPOLink(LPOLESTR lpGPO,LPOLESTR lpContainer);
  GPEDITAPI HRESULT WINAPI DeleteAllGPOLinks(LPOLESTR lpContainer);

#define GPO_BROWSE_DISABLENEW 0x00000001
#define GPO_BROWSE_NOCOMPUTERS 0x00000002
#define GPO_BROWSE_NODSGPOS 0x00000004
#define GPO_BROWSE_OPENBUTTON 0x00000008
#define GPO_BROWSE_INITTOALL 0x00000010

  typedef struct tag_GPOBROWSEINFO {
    DWORD dwSize;
    DWORD dwFlags;
    HWND hwndOwner;
    LPOLESTR lpTitle;
    LPOLESTR lpInitialOU;
    LPOLESTR lpDSPath;
    DWORD dwDSPathSize;
    LPOLESTR lpName;
    DWORD dwNameSize;
    GROUP_POLICY_OBJECT_TYPE gpoType;
    GROUP_POLICY_HINT_TYPE gpoHint;
  } GPOBROWSEINFO,*LPGPOBROWSEINFO;

  GPEDITAPI HRESULT WINAPI BrowseForGPO(LPGPOBROWSEINFO lpBrowseInfo);
  GPEDITAPI HRESULT WINAPI ImportRSoPData(LPOLESTR lpNameSpace,LPOLESTR lpFileName);
  GPEDITAPI HRESULT WINAPI ExportRSoPData(LPOLESTR lpNameSpace,LPOLESTR lpFileName);

#ifdef __cplusplus
}
#endif
#endif