GUID

The GUID structure stores a globally unique identifier (GUID). GUIDs uniquely identify objects such as interfaces, manager entry-point vectors, and class objects.

A GUID is a 128-bit value consisting of one group of eight hexadecimal digits, followed by three groups of four hexadecimal digits each, followed by one group of twelve hexadecimal digits. The following example shows the groupings of hexadecimal digits in a GUID.

6B29FC40-CA47-1067-B31D-00DD010662DA
.
typedef struct _GUID {          // size is 16
    DWORD Data1;
    WORD   Data2;
    WORD   Data3;
    BYTE  Data4[8];
} GUID;
 

Members

Data1
Specifies the first eight hexadecimal digits of the GUID.
Data2
Specifies the first group of four hexadecimal digits.
Data3
Specifies the second group of four hexadecimal digits.
Data4
Specifies an array of eight bytes. The first two bytes contain the third group of four hexadecimal digits. The remaining six bytes contain the final 12 hexadecimal digits.

Remarks

GUIDs are Microsoft implementation of the distributed computing environment (DCE) universally unique identifier (UUID).

The RPC run-time libraries use UUIDs to check for compatibility between clients and servers and to select among multiple implementations of an interface.

The Win32 access-control functions use GUIDs to identify the type of object protected by an object-specific ACE in an access-control list (ACL).

QuickInfo

  Windows NT: Yes
  Windows CE: Unsupported.
  Header: Declared in mapiguid.h.

See Also

ACCESS_ALLOWED_OBJECT_ACE, ACE, ACL, UUID, UUID_VECTOR