Reply to comment
Generate GUID
UDF below generates 128-bit GUID and returns it as a string in the format 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.
MSDN:
| This is sample code. Add error handling and adjust to your requirements as necessary. |
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
Alternatively, WSH object for constructing type libraries for scriptlets (Scriptlet.Typelib) can be used
FUNCTION GenerateGUID LOCAL loObj loObj = CREATEOBJECT("Scriptlet.TypeLib") * VFP 8.0 and later RETURN STREXTRACT(loObj.GUID, "{", "}") * Previous versions *RETURN CHRTRAN(loObj.GUID, "{}", "") ENDFUNC
Recent comments
1 week 4 days ago
4 weeks 19 hours ago
4 weeks 23 hours ago
4 weeks 1 day ago
4 weeks 1 day ago
5 weeks 2 days ago
8 weeks 2 days ago
10 weeks 4 days ago
12 weeks 2 days ago
12 weeks 3 days ago