| Platform SDK: Group Policy | 
The GROUP_POLICY_OBJECT structure provides information about a GPO in a GPO list.
typedef struct _GROUP_POLICY_OBJECT {
   DWORD    dwOptions; 
   DWORD    dwVersion; 
   LPCTSTR  lpDSPath; 
   LPCTSTR  lpFileSysPath; 
   LPCTSTR  lpDisplayName; 
   TCHAR    szGPOName[50];
   GPO_LINK GPOLink;
   LPARAM   lParam;
   struct   _GROUP_POLICY_OBJECT *pNext;
   struct   _GROUP_POLICY_OBJECT *pPrev;
   LPTSTR   lpExtensions;
   LPARAM   lParam2;
   LPTSTR   lpLink;
}  GROUP_POLICY_OBJECT, *PGROUP_POLICY_OBJECT;
| Value | Meaning | 
|---|---|
| GPO_FLAG_DISABLE | This GPO is disabled. | 
| GPO_FLAG_FORCE | Do not override the settings in this GPO with settings in a subsequent GPO. | 
| Value | Meaning | 
|---|---|
| GPLinkUnknown | No link information is available. | 
| GPLinkMachine | The GPO is linked to a computer (local or remote). | 
| GPLinkSite | The GPO is linked to a site. | 
| GPLinkDomain | The GPO is linked to a domain. | 
| GPLinkOrganizationalUnit | The GPO is linked to an organizational unit. | 
Each GPO could contain data that must be processed by multiple snap-in extensions. Therefore, lpExtensions is organized as a series of GUIDs based on snap-in extension. The data format is as follows:
[ext_guid1, snap_in_guid1, snap_in_guid2, ...] [ext_guid2, snap_in_guid3, snap_in_guid4, ...]
First, there is an opening bracket, "[", followed by the GUID of the extension. Next, you'll find one or more GUIDS of the snap-in extensions that have put data in the GPO. After the last snap-in GUID, there is a closing bracket, "]". This pattern is repeated for the next extension.
  Windows NT/2000: Requires Windows 2000.
  Header: Declared in Userenv.h.
  Unicode: Declared as Unicode and ANSI structures.
Group Policy Overview, Group Policy Structures, GetGPOList, FreeGPOList