function NetShareAdd (
  pszServer: PChar;
  sLevel: Short;
  pbBuffer: Pointer;
  cbBuffer: Short
): DWORD; stdcall; external 'SvrApi.dll';const
  LM20_NNLEN = 12;
  SHPWLEN = 8;
  SHI50F_RDONLY = 1;
  SHI50F_FULL = 2;
  STYPE_DISKTREE = 0;type
  TShareInfo50 = packed record
    shi50_netname: array[0..LM20_NNLEN] of Char;
    shi50_type: Byte;
    shi50_flags: Short;
    shi50_re: PChar; // ANSI comment string
    shi50_path: PChar;   // shared resource
    shi50_rw_password: array[0..SHPWLEN] of Char;
    shi50_ro_password: array[0..SHPWLEN] of Char;
  end;var
  info50: TShareInfo50;
  rc, cb: DWORD;
begin
  FillChar(info50, sizeof(info50), 0);
  with info50 do
  begin
    StrCopy(shi50_netname, 'TEST');
    shi50_type := STYPE_DISKTREE;
    shi50_flags := SHI50F_RDONLY;
    shi50_path := 'C:\TEMP';  
end;  cb := sizeof(info50);
  rc := NetShareAdd(nil, 50, @info50, cb);
end;