如何在WINDOWS2000或XP下用程序动太设置文件夹共享,且只有只读权限或读写权限?
以下代码可以在2000下使用,但只是是完全共享,而不能设置成只读共享?
unit my_share;interface
    uses Windows,Sysutils ;
type
    //纪录类型声明
    TSHARE_INFO_502 = record
        shi502_netname: PWideChar;
        shi502_type: DWORD;
        shi502_re: PWideChar;
        shi502_permissions: DWORD;
        shi502_max_uses: DWORD;
        shi502_current_uses: DWORD;
        shi502_path: PWideChar;
        shi502_passwd: PWideChar;
        shi502_reserved: DWORD;
        shi502_security_descriptor: PSECURITY_DESCRIPTOR;
    end;
//添加共享
    function NetShareAdd(servername:Widestring; level: DWORD;
    Buf: PBYTE;var parm_err: PDWORD ): DWORD; stdcall;
//删除共享
    function NetShareDel(ServerName:Widestring; NetName: Widestring;
    Reserved: DWord): Integer; StdCall;
const
{共享类型}
    STYPE_DISKTREE = 0 ;
    STYPE_PRINTQ = 1 ;
    STYPE_DEVICE = 2 ;
    STYPE_IPC = 3 ;
{访问权限}
    ACCESS_READ = 0 ;
    ACCESS_WRITE = 1 ;
    ACCESS_CREATE = 2 ;
    ACCESS_EXEC = 3 ;
    ACCESS_DELETE = 4 ;
    ACCESS_ALL = 7 ;function ShareResource(ServerName,FilePath,NetName, Re : string): Integer;
implementation
function NetShareAdd; external 'netapi32.DLL' name 'NetShareAdd';
function NetShareDel; external 'netapi32.DLL' name 'NetShareDel';
function ShareResource(ServerName,FilePath,NetName, Re : string): Integer;
var
    ShInfo: TSHARE_INFO_502;
    parm_err:PDWORD;
    _FilePath,_NetName, _Re : PWideChar ;
    _ServerName : Pchar ;
begin
    GetMem(_ServerName,255) ;
    GetMem(_FilePath,255);
    GetMem(_NetName,255);
    GetMem(_Re,255);
    StringToWideChar(FilePath,_FilePath,255);
    StringToWideChar(NetName,_NetName,255);
    StringToWideChar(Re,_Re,255);
    strpcopy(_ServerName,ServerName);
    with ShInfo do
    begin
        shi502_netname := _NetName;
        shi502_type := STYPE_DISKTREE ;
        shi502_re := _Re ;
        shi502_max_uses := $FFFFFFFF;
        shi502_current_uses := 10;
        shi502_path := _FilePath;
        shi502_passwd := nil;
        shi502_reserved := 0;
        shi502_security_descriptor := nil;
        shi502_permissions := ACCESS_ALL;
    end;
    try
        Result := NetShareAdd(_ServerName, 502, @ShInfo, parm_err);
    Finally
        FreeMem(_ServerName,255);
        FreeMem(_FilePath,255);
        FreeMem(_NetName,255);
        FreeMem(_Re,255);
    end;
end;
end.
且在XP下没用?