delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1998/06/02/11:54:45

From: colin AT fu DOT is DOT saga-u DOT ac DOT jp (Colin Peters)
Subject: RE: Windows version of Unix lpr program doesn't work?
2 Jun 1998 11:54:45 -0700 :
Message-ID: <006b01bd8e14$5fc862a0$fa173185.cygnus.gnu-win32@gbird0.fu.is.saga-u.ac.jp>
Mime-Version: 1.0
To: <vtailor AT gte DOT net>
Cc: "GNU-Win32" <gnu-win32 AT cygnus DOT com>

vtailor AT gte DOT net <vtailor AT gte DOT net> wrote:
>The reason that the PrintDlg() call fails under __WIN32__ is that
>sizeof(PRINTDLG) == 68, but the operating system gives an error
>message unless you set the pd.lStructSize member to 66.  This, of
>course, doesn't happen in the 16-bit Windows 3.x version.  Once
>you get the PrintDlg() call to work, you then discover that all
>succeeding calls to Escape and TextOut succeed, but the program
>still fails to print.  Oh yes, Borland C++ Builder for Windows 95
>gives similar results, and substituting more modern calls doesn't
>seem to make any difference.

The sizeof(PRINTDLG) will give 66 if you modify the Win32 headers to make
the PRINTDLG structure
packed. I did this by changing the line of Windows32/Structures.h

} PRINTDLG, *LPPRINTDLG;

To

} PACKED;

typedef struct tagPD PRINTDLG, *LPPRINTDLG;

Where I had earlier defined PACKED to be __attribute__((packed)) in
Windows32/Defines.h

Perhaps this will fix the problem?

Colin.

-- Colin Peters - colin at fu.is.saga-u.ac.jp
-- Saga Univ. Dept. of Information Science
-- http://www.geocities.com/Tokyo/Towers/6162/index.html
-- http://www.fu.is.saga-u.ac.jp/~colin/index.html


-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019