Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / EnumPrinters полный список принтеров / 4 сообщений из 4, страница 1 из 1
03.11.2006, 17:05
    #34104896
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EnumPrinters полный список принтеров
Привет всем!

Не могу получить полный список принтеров(+сетевые!).
Вроде почти копирую из мелкик EnumPrinters - пишет мало выделяю памяти!

Заранее спасибо ВС
...
Рейтинг: 0 / 0
03.11.2006, 17:21
    #34104934
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EnumPrinters полный список принтеров
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        DWORD dwFlags = PRINTER_ENUM_FAVORITE | PRINTER_ENUM_LOCAL | PRINTER_ENUM_NETWORK;
        LPPRINTER_INFO_2 pPrinters;
        DWORD            cbPrinters;
        DWORD            cReturned, i;
        char             buf[ 256 ];

        if(!EnumPrinters (dwFlags, NULL,  2 , NULL,  0 , &cbPrinters,
                &cReturned))
               MessageBox( 0 , IntToStr(GetLastError()).c_str(), NULL, MB_OK);
Уже даёт 122 (мало выделяю памяти)
...
Рейтинг: 0 / 0
03.11.2006, 18:19
    #34105100
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EnumPrinters полный список принтеров
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
int main(){
  DWORD dwFlags = PRINTER_ENUM_FAVORITE | PRINTER_ENUM_LOCAL | PRINTER_ENUM_NETWORK;
  DWORD cbNeeded;
  DWORD cReturned;
  EnumPrintersA(
     dwFlags
   ,  0 
   ,  2 
   ,  0 
   ,  0 
   , &cbNeeded
   , &cReturned
  );

  std::cout << cbNeeded << std::endl;
  
  BYTE* buf = new BYTE[cbNeeded];
  EnumPrintersA(
     dwFlags
   ,  0 
   ,  2 
   , buf
   , cbNeeded
   , &cbNeeded
   , &cReturned
  );

  std::cout << cReturned << std::endl;

  LPPRINTER_INFO_2A pPrinters = (LPPRINTER_INFO_2A)buf;
  for(DWORD i( 0 ); i<cReturned; ++i)std::cout << pPrinters[i].pPrinterName << std::endl;

  delete[]buf;
  return  0 ;
}
...
Рейтинг: 0 / 0
03.11.2006, 23:36
    #34105382
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EnumPrinters полный список принтеров
Спасибо - пошло!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / EnumPrinters полный список принтеров / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]