Показать сообщение отдельно

  #4  
Старый 20.03.2010, 21:18
kurz
Новичок
Регистрация: 05.02.2010
Сообщений: 11
Провел на форуме:
58203

Репутация: 0
По умолчанию

Код:
#include "stdafx.h"

#pragma comment(lib, "netapi32.lib")
#pragma comment(lib, "mpr.lib")
#pragma comment(lib, "ws2_32.lib")

#define UNICODE
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <lm.h>

void wmain( int argc, TCHAR *lpszArgv[ ])
{
   PSHARE_INFO_502 BufPtr,p;
   NET_API_STATUS res;
   LPTSTR   lpszServer = NULL;
   DWORD er=0,tr=0,resume=0, i;

   lpszServer = lpszArgv[1];

   printf("Share:              Local Path:                   Uses:   Descriptor:\n");
   printf("---------------------------------------------------------------------\n");

   do
   {
      res = NetShareEnum (lpszServer, 502, (LPBYTE *) &BufPtr, -1, &er, &tr, &resume);

      if(res == ERROR_SUCCESS || res == ERROR_MORE_DATA)
      {
         p=BufPtr;
         for(i=1;i<=er;i++)
         {
            printf("%-20S%-30S%-8u",p->shi502_netname, p->shi502_path, p->shi502_current_uses);
            if (IsValidSecurityDescriptor(p->shi502_security_descriptor))
               printf("Yes\n");
            else
               printf("No\n");
            p++;
         }
         NetApiBufferFree(BufPtr);
      }
      else 
         printf("Error: %ld\n",res);
   }
   while (res==ERROR_MORE_DATA);
   getch();
 
   return;
}
это есть в MSDN. Правда в некоторых случаях возвращает error #5 - Access Denied, хотя сеть равноправная, о каком доступе идет речь?
 
Ответить с цитированием