Consultor Eletrônico



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)".