Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > GetPrinterExW


Автор: B2_Russia 31.7.2003, 10:38
Кто-нибудь использовал эту функцию, весь MSDN October 2001 перерыл нашел только какоето нелепое упоминание.
Если кто знает подскажите параметры передаваемые в нее. По-моему это одна структурка. И описание к ним.

Автор: mr.DUDA 31.7.2003, 11:01
Мот, тебе надо GetPrinterDataExW ? Твоей ф-ции нету нигде ни в *.h-ках, ни в MSDN (2001 и on-line)

Автор: B2_Russia 31.7.2003, 11:34
GetPrinterDataEx посмотри - она есть. А GetPrinterDataExW это скрытая функция она не описана в .h - ах.

Автор: mr.DUDA 31.7.2003, 11:39
В сабже написано имя ф-ци GetPrinterExW, а не GetPrinterDataExW как ты говоришь. Насчет буквы "W" и что это значит - есть ANSI и UNICODE версии каждой ф-ции WinAPI, поэтому GetPrinterDataEx означает тож самое, что GetPrinterDataExW (и с теми же параметрами).

Смотри сырец WINSPOOL.H:
Код
DWORD
WINAPI
GetPrinterDataExW(
   HANDLE   hPrinter,
   LPCWSTR pKeyName,
   LPCWSTR pValueName,
   LPDWORD  pType,
   LPBYTE   pData,
   DWORD    nSize,
   LPDWORD  pcbNeeded
);
#ifdef UNICODE
#define GetPrinterDataEx  GetPrinterDataExW
#else
#define GetPrinterDataEx  GetPrinterDataExA
#endif // !UNICODE

Автор: B2_Russia 1.8.2003, 11:44
СОрри, давно UNICODE - функциями не работал sad.gif - lol
Вопрос следующий как получить хандл принтера?

Автор: mr.DUDA 1.8.2003, 14:07
Лови работающий пример:
Код

#include "winspool.h"

//  ...

#define MAX_PRINTERS 10     // сколько принтеров ты хочешь найти :)
PRINTER_INFO_1 pi1[MAX_PRINTERS];
DWORD v=0, cnt=0;
if(EnumPrinters(PRINTER_ENUM_LOCAL, 0, 1, (LPBYTE)(pi1), sizeof
                        (PRINTER_INFO_1)*MAX_PRINTERS, &v, &cnt))
{
   // cnt равно количеству обнаруженных принтеров
   int iPrinter = 0; // можешь выбрать любой из них  :)
   HANDLE hPrinter;
   if(OpenPrinter(pi1[iPrinter].pName, &hPrinter, NULL))
   {
       // ....... твои действия с полученным hPrinter
       ClosePrinter(hPrinter);
   }
}

Вся нужная инфа есть в MSDN, надо только поискать получше.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)