Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Advanced
Sep 17, 1998



Building the Right Environment to Support AI, Machine Learning and Deep Learning

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 Explicit

Private Declare Function CoCreateGuid Lib _
	"OLE32.DLL" (pGuid As GUID) As Long
Private Declare Function StringFromGUID2 Lib _
	"OLE32.DLL" (pGuid As GUID, _
	ByVal PointerToString As Long, _
	ByVal MaxLength As Long) As Long

' Private members
Private Const GUID_OK As Long = 0

Private Type GUID
	Guid1			As Long
	Guid2			As Integer
	Guid3			As Integer
	Guid4(0 To 7) 	As Byte
End Type

Public 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
		'*** Return nothing or handle error
		strFormattedGUID = ""
	End If
	' *** Return our nicely formatted GUID
	CreateGUIDKey = strFormattedGUID
End Function
Doug Olson
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date