NET_API_STATUS NetSessionEnum(    LPTSTR servername,
    LPTSTR UncClientName,
    LPTSTR username,
    DWORD level,
    LPBYTE *bufptr,
    DWORD prefmaxlen,
    LPDWORD entriesread,
    LPDWORD totalentries,
    LPDWORD resume_handle 
   );
我想把这个函数转换成delphi的形式,高手请指点。。

解决方案 »

  1.   

    wininet 吧?用现成的吧。 delphi-jedi.org上没有了吗?NET_API_STATUS NetSessionEnum(  // NET_API_STATUS 可以定义常量 enum 或者 int    LPTSTR servername, //LPTSTR  = PCHAR
        LPTSTR UncClientName,
        LPTSTR username,
        DWORD level, //DWORD
        LPBYTE *bufptr, //PBYTE   可以声明成 PByte = ^Byte;
        DWORD prefmaxlen,
        LPDWORD entriesread, //LPDWORD 指向DORD 的指针,直接可用。
        LPDWORD totalentries,
        LPDWORD resume_handle 
       );
      

  2.   

    Type
    _SESSION_INFO_0 = Record
           Client : Array[0..4095] Of lpWStr;
    SESSION_INFO_0 = _SESSION_INFO_0;Function NetSessionEnum(ServerName,ClientName,UserName : lpWStr;
                           Level : DWord;
                           Var Buffer : Pointer;
                           PrefMaxLen : DWord;
                           Var EntriesRead,TotalEntries : DWord;
                           Resume_Handle : lpDWord) : LongInt; StdCall;Implementation Declarations :Function NetSessionEnum; External 'NETAPI32.DLL';
    Function GetNetSessionData : Boolean;
    Var
    NET_API_RESULT : LongInt;
    NSE_Buffer : Pointer;
    NSE_STRUCT : SESSION_INFO_0;
    I : Integer;
    PDCServerName : Array[0..255] of Char;
    EntriesRead,TotalEntries,ResumeHandle : DWord;
    Begin
    ResumeHandle := 0;StringToWideChar(PChar('UNC path of server),@PDCServerName,256);  ResumeHandle := 0;  NetAPIBufferAllocate(SizeOf(SESSION_INFO_0),NSE_Buffer);  NET_API_RESULT := NetSessionEnum(@PDCServerName,Nil,@IdentBuffer,0,NSE_Buffer,SizeOf(SESSION_INFO_0),EntriesRead,TotalEntries,@ResumeHandle);  If NET_API_RESULT = 0 Then
       Begin
        NSE_STRUCT := SESSION_INFO_0(NSE_Buffer^);
        
        If NSE_Buffer <> Nil Then For I := 0 To EntriesRead - 1 Do ShowMessage('Client : ' + WideCharToString(NSE_STRUCT.Client[I]));   End;   NetAPIBufferFree(NSE_Buffer);
     End;End;