/**********************************************************************/
/******** Example for Windows 95 or Windows NT ************************/
/*
Use the following code on a Windows 95 or Windows NT client to
update the DOS environment variable, VQPNAME. This code uses the
external dll, GetUserName, a Win32 api. This api is called with the
modulen function.
*1*
Data step to create the attribute table for GetUserNameA. Store
attribute table in a text file to be referenced by the modulen
function. The example uses the file winapi.txt in the current
directory. The modulen function will use the fileref SASCBTBL.
*2*
Data step to execute the Win32 api external module 'GetUserNameA'.
The module returns the current user's userid. The macro variable
vqpname is updated with this value.
*3*
Now set the environment variable vqpname with the value stored
in the macro variable vqpname.
*/
/****** Start of Code for WINDOWS 95 and WINDOWS NT example ***********/
/* *1* */
filename sascbtbl 'winapi.txt';
data _null_;
file sascbtbl;
input line $char80.;
put line $char80.;
cards4;
routine GetUserNameA
minarg=2
maxarg=2
stackpop=called
module=advapi32
returns=short;
arg 1 char update format=$cstr20;
arg 2 num update format=pib4.;
;;;;
run;
/* *2* */
filename sascbtbl 'winapi.txt';
data _null_;
length Name $20.;
name='';
Size=20;
rc=modulen('GetUserNameA',Name,Size);
put rc= Name=;
call symput('vqpname',name);
run;
/* *3* */
options set=vqpname &vqpname;
/****** End of example for Windows 95 or Windows NT *******************/