Open
Description
The expression of ComDebug(DevComDebug).NewGuid is wrong:
"256 * g[3] MOD 256"
which shoule be "g[3] MOD 256 * 256"
fixed procedure(with debug code): ```
PROCEDURE NewGuid*;
VAR f: TextMappers.Formatter; g: COM.GUID; res: COM.RESULT; n: INTEGER;
(*VAR buf:ARRAY 40 OF CHAR;*)
BEGIN
f.ConnectTo(TextModels.CloneOf(StdLog.buf)); n := 10;
WHILE n > 0 DO
res := WinOle.CoCreateGuid(g);
f.WriteChar("{");
Hex(f, g[2] MOD 256 + g[3] MOD 256 * 256, 4);
Hex(f, g[0] MOD 256 + g[1] MOD 256 * 256, 4);
f.WriteChar("-");
Hex(f, g[4] MOD 256 + g[5] MOD 256 *256, 4);
f.WriteChar("-");
Hex(f, g[6] MOD 256 + g[7] MOD 256 *256, 4);
f.WriteChar("-");
Hex(f, g[8] MOD 256, 2);
Hex(f, g[9] MOD 256, 2);
f.WriteChar("-");
Hex(f, g[10] MOD 256, 2);
Hex(f, g[11] MOD 256, 2);
Hex(f, g[12] MOD 256, 2);
Hex(f, g[13] MOD 256, 2);
Hex(f, g[14] MOD 256, 2);
Hex(f, g[15] MOD 256, 2);
f.WriteChar("}");
(*
res:=WinOle.StringFromGUID2(g,buf,LEN(buf));
f.WriteString(buf);
*)
f.WriteLn; DEC(n)
END;
OpenInfoViewer(f.rider.Base(), "Guids");
f.ConnectTo(NIL)
END NewGuid;
Metadata
Metadata
Assignees
Labels
No labels