Kbase P3464: How to call the UuidCreate API
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  21/11/2008 |
|
Status: Verified
GOAL:
How to call the UuidCreate API
GOAL:
How to retrieve the MAC Address
FACT(s) (Environment):
Windows NT 4.0
Windows 98
FIX:
PROCEDURE UuidCreate EXTERNAL "rpcrt4.dll":U :
DEFINE INPUT-OUTPUT PARAMETER opi-guid AS CHAR NO-UNDO.
END PROCEDURE.
FUNCTION inttohex RETURNS CHAR (INPUT i AS INTEGER):
/* only for 0..255 integer values */
DEF VAR cHex AS CHAR NO-UNDO INIT '0123456789ABCDEF':U.
DEF VAR j1 AS INT NO-UNDO.
DEF VAR j2 AS INT NO-UNDO.
j1 = TRUNCATE(i / 16, 0) .
j2 = i - (j1 * 16).
RETURN SUBSTR(cHex, j1 + 1, 1) + SUBSTR(cHex, j2 + 1, 1).
END.
FUNCTION GetMacAddress RETURNS CHAR:
DEF VAR X AS CHAR NO-UNDO.
DEF VAR i AS INT NO-UNDO.
DEF VAR j AS INT NO-UNDO.
DEF VAR r AS CHAR NO-UNDO.
X = FILL(' ':U, 16).
RUN UuidCreate (INPUT-OUTPUT X).
DO i = 11 TO 16:
r = r + ' ':U + inttohex(ASC(SUBSTR(X,i,1))).
END.
RETURN SUBSTR(R,2).
END.
DISPLAY GetMAcAddress() FORMAT "X(20)".