프린터 스풀제어에 관하여 김영대님께서 올리신 글을 찾았습니다.
그런데 에러가 나는군요...T.T
제 생각에 uses절에 뭐가 빠진거 같은데 뭐가 빠졌는지 몰겠네요...
아시는 분 글 좀 남겨 주십시요.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, winspool, Activex, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
procedure WM_SpoolerStatus(var Msg : TWMSPOOLERSTATUS);
message WM_SPOOLERSTATUS;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WM_SpoolerStatus(var Msg : TWMSPOOLERSTATUS);
var
i : integer;
pjobinfo : ^JOB_INFO_1; <--에러 위치(Undeclared Identifire)
hprinter : Thandle;
dwneeded, dwreturned : Dword;
begin
dwneeded := 0;
dwreturned := 0;
msg.Result := 0;
if (OpenPrinter('삼성 MyLaser ML-66H', hprinter, nil) = false) then closeprinter(hprinter);
if (EnumJobs(hprinter, 0, $FFFFFFFF, 1, nil, 0, dwneeded, dwreturned) = false) then
begin
if (GetLastError() <> ERROR_INSUFFICIENT_BUFFER) then closeprinter(hprinter);
end;
GetMem(pjobinfo, dwNeeded);
if (pjobinfo = nil) then closeprinter(hprinter);
if (EnumJobs(hprinter, 0, $FFFFFFFF, 1, pjobinfo, dwneeded, dwneeded, dwreturned) = false) then begin
closeprinter(hprinter);
FreeMem(pjobinfo);
end;
if msg.jobsleft > 1 then setjob(hprinter,pjobinfo^.jobid,1,pjobinfo,1);
end;
end.