procedure TForm1.Button2Click(Sender: TObject); Type TPaperName = Array [0..63] of Char;TPaperNameArray = Array [1..High(Cardinal) div Sizeof( TPaperName )] ofTPaperName;PPapernameArray = ^TPaperNameArray;Var Device, Driver, Port: Array [0..255] of Char;hDevMode: THandle;i, numPaperformats: Integer;pPaperFormats: PPapernameArray;begin Printer.PrinterIndex := -1;Printer.GetPrinter(Device, Driver, Port, hDevmode);numPaperformats :=WinSpool.DeviceCapabilities( Device, Port, DC_PAPERNAMES, Nil, Nil );If numPaperformats > 0 Then BeginGetMem( pPaperformats, numPaperformats * Sizeof( TPapername ));tryWinSpool.DeviceCapabilities( Device, Port, DC_PAPERNAMES,Pchar( pPaperFormats ), Nil);memo1.clear;For i:= 1 To numPaperformats Domemo1.lines.add( pPaperformats^[i] );finallyFreeMem( pPaperformats );end;End;End; |
[000095]