Dave,
If you are using Windows then the following OOP method will return new GUID's in hex and in lowercase, which is typically how they are stored, since you don't want to store the 16 binary chars that make them up as you could have field seps in the binaary values.:
function local getGUID(guid$)
local pGuid$, S_OK, BYTE
SO_OK = 0, BYTE = tcb(303)
enter pGuid$
pGuid$ = dim(BYTE * 16, $00$)
if dll("Ole32", "CoCreateGuid", pGuid$) <> S_OK pGuid$ = ""; return 0
pGuid$ = lcs(hta(pGuid$))
return 1