by Hamish Indurain (3 Submissions)
Category: Windows System Services
Compatability: Visual Basic 5.0
Difficulty: Unknown Difficulty
Originally Published: Mon 16th October 2000
Date Added: Mon 8th February 2021
Rating: (1 Votes)
This code creates GUIDs. Really useful as primary keys.
API Declarations
Type GUID
l1 As Long
l2 As Long
l3 As Long
l4 As Long
End Type
Declare Function CoCreateGuid Lib "OLE32.DLL" (lpGuid As GUID) As Long
Declare Function StringFromGUID2 Lib "OLE32.DLL" (lpGuid As GUID, ByVal lpString As String, ByVal cbBytes As Integer) As Integer
Dim id As GUID
Dim sTemp$
Dim nLen%, hr&
hr = CoCreateGuid(id)
If (hr = 0) Then
sTemp = StrConv(String(38, Chr(0)), vbUnicode)
nLen = StringFromGUID2(id, sTemp, Len(sTemp))
sTemp = StrConv(sTemp, vbFromUnicode)
If (nLen > 0) Then
If (Left(sTemp, 1) = "{") Then sTemp = Right(sTemp, Len(sTemp) - 1)
If (Right(sTemp, 1) = "}") Then sTemp = Left(sTemp, Len(sTemp) - 1)
nLen = InStr(sTemp, "-")
Do While (nLen <> 0)
sTemp = Left(sTemp, nLen - 1) & Right(sTemp, Len(sTemp) - nLen)
nLen = InStr(sTemp, "-")
Loop
Else
sTemp = ""
End If
End If
UniqueValue = sTemp
End Function