Q&A

  • 스풀러 제어...
프린터 스풀제어에 관하여 김영대님께서 올리신 글을 찾았습니다.

그런데 에러가 나는군요...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.

0  COMMENTS