这个API怎样用?(50分)

  • 主题发起人 主题发起人 z_w_q
  • 开始时间 开始时间
Z

z_w_q

Unregistered / Unconfirmed
GUEST, unregistred user!
这个API怎样用?
1.BOOL OpenPrinter(
LPTSTR pPrinterName, // pointer to printer or server name
LPHANDLE phPrinter, // pointer to printer or server handle
LPPRINTER_DEFAULTS pDefault // pointer to printer defaults structure
);
2.BOOL GetPrinter(
HANDLE hPrinter,// handle to printer of interest
DWORD Level, // version of printer info data structure
LPBYTE pPrinter,// pointer to array of bytes that receives printer info. structure
DWORD cbBuf, // size, in bytes, of array of bytes
LPDWORD pcbNeeded // pointer to variable with count of bytes retrieved (or required)
);
其中的参数怎样写,给个例子最好.
 
来自:hubdog 时间:2000-5-5 8:22:26 ID:238339
我想这么多款...,总有一款适合你:)
var
pinfo: pPRINTERINFO2;
pprt,a: Cardinal;
b:PDWORD;
begin

b:=allocmem(256);
pinfo:=AllocMem(1000);
if OpenPrinter('HP DJ 200',pprt,nil) then

begin

a:=1000;
if getprinter(pprt,2,pinfo,a,b) then

showmessage(pinfo.pPrinterName+' ststus:'+inttostr(pinfo.Status));
ClosePrinter(pprt);
end;

freemem(b);
freemem(pinfo);
end;




 
pinfo: pPRINTERINFO2 这一句编译不通,另外pPRINTERINFO2是什么类型.
OpenPrinter('HP DJ 200',pprt,nil) 中的pprt参数是什么意思为什么是Cardinal类型.
 
1.pprt:pointer to printer or server handle,指向打印机或(打印)服务器的指针
2.cardinal 相当于integer,其值范围:0..4294967295
3. 你用pinfo:PRINTER_INFO_2^ 代替pinfo: pPRINTERINFO2 试试,sigh
to wjiachun:
你这是不对的,给人贴代码,也不贴全,丢把type pPRINTERINFO2=PRINTER_INFO_2^之类
,而且还不写中文注释,搞得人家不能拿起来就用,haha.
 
用pinfo:PRINTER_INFO_2^ 代替pinfo: pPRINTERINFO2也不行,但改为pinfo:^PRINTER_INFO_2
程序可以运行,但是不论打印机是否联机pinfo.status 均返回'0',为什么?
 
接受答案了.
 
后退
顶部