Create a Globally Unique Identifier (GUID)

Create a Globally Unique Identifier (GUID)

I use this routine in almost every application I develop. It’s handy whether you need a key for a collection or whether you use it in a database:

 Option ExplicitPrivate Declare Function CoCreateGuid Lib _	"OLE32.DLL" (pGuid As GUID) As LongPrivate Declare Function StringFromGUID2 Lib _	"OLE32.DLL" (pGuid As GUID, _	ByVal PointerToString As Long, _	ByVal MaxLength As Long) As Long' Private membersPrivate Const GUID_OK As Long = 0Private Type GUID	Guid1			As Long	Guid2			As Integer	Guid3			As Integer	Guid4(0 To 7) 	As ByteEnd TypePublic Function CreateGUIDKey() As String	'*** Possible max length for buffer	Const GUID_LENGTH	As Long = 38	Dim udtGUID As GUID	'User Defined Type	Dim strFormattedGUID As String	'The formatted string	Dim lngResult As Long	'Useless result flag	'*** Create a 'raw' GUID	lngResult = CoCreateGuid(udtGUID)	If lngResult = GUID_OK Then		'*** Pre-allocate space for the ID		strFormattedGUID = String$(GUID_LENGTH, 0)		'*** Convert the 'raw' GUID to a 		'formatted string		StringFromGUID2 udtGUID, _			StrPtr(strFormattedGUID), GUID_LENGTH + 1	Else		'*** Return nothing or handle error		strFormattedGUID = ""	End If	' *** Return our nicely formatted GUID	CreateGUIDKey = strFormattedGUIDEnd Function


Share the Post: