1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
FUNCTION GenerateGUID
LOCAL lcGUID, lcStrucGUID, lnSize
lcStrucGUID = SPACE (16)
lcGUID = SPACE (78)
lnSize = LEN(lcGUID)/2
IF CoCreateGuid(@lcStrucGUID) <> 0
RETURN ""
ENDIF
IF StringFromGUID2(lcStrucGUID, @lcGuid, lnSize) = 0
RETURN ""
ENDIF
* VFP 8.0 and later
RETURN STREXTRACT(STRCONV(lcGUID,6), "{", "}")
* Previous versions
*RETURN CHRTRAN(STRCONV(lcGUID, 6), "{}" + CHR(0), "")
ENDFUNC
FUNCTION CoCreateGuid(tcStrucGUID)
DECLARE INTEGER CoCreateGuid IN Ole32.dll STRING @cGUIDStruc
RETURN CoCreateGuid(@tcStrucGUID)
ENDFUNC
FUNCTION StringFromGUID2(tcStrucGUID, tcGuid, tnSize)
DECLARE INTEGER StringFromGUID2 IN Ole32.dll STRING cGUIDStruc, STRING @cGUID, LONG nSize
RETURN StringFromGUID2(tcStrucGUID, @tcGuid, tnSize)
ENDFUNC
|
Comments
Thanks Sergey--very useful