~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/dlls/gdi32/printdrv.c

Version: ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~ [ wine-1.0-rc5 ] ~ [ wine-1.0-rc4 ] ~ [ wine-1.0-rc3 ] ~ [ wine-1.0-rc2 ] ~ [ wine-1.0-rc1 ] ~ [ wine-0.9.61 ] ~ [ wine-0.9.60 ] ~ [ wine-0.9.59 ] ~ [ wine-0.9.58 ] ~ [ wine-0.9.57 ] ~ [ wine-0.9.56 ] ~ [ wine-0.9.55 ] ~ [ wine-0.9.54 ] ~ [ wine-0.9.53 ] ~ [ wine-0.9.52 ] ~ [ wine-0.9.51 ] ~ [ wine-0.9.50 ] ~ [ wine-0.9.49 ] ~ [ wine-0.9.48 ] ~ [ wine-0.9.47 ] ~ [ wine-0.9.46 ] ~ [ wine-0.9.45 ] ~ [ wine-0.9.44 ] ~ [ wine-0.9.43 ] ~ [ wine-0.9.42 ] ~ [ wine-0.9.41 ] ~ [ wine-0.9.40 ] ~ [ wine-0.9.39 ] ~ [ wine-0.9.38 ] ~ [ wine-0.9.37 ] ~ [ wine-0.9.36 ] ~ [ wine-0.9.35 ] ~ [ wine-0.9.34 ] ~ [ wine-0.9.33 ] ~ [ wine-0.9.32 ] ~ [ wine-0.9.31 ] ~ [ wine-0.9.30 ] ~ [ wine-0.9.29 ] ~ [ wine-0.9.28 ] ~ [ wine-0.9.27 ] ~ [ wine-0.9.26 ] ~ [ wine-0.9.25 ] ~ [ wine-0.9.24 ] ~ [ wine-0.9.23 ] ~ [ wine-0.9.22 ] ~ [ wine-0.9.21 ] ~ [ wine-0.9.20 ] ~ [ wine-0.9.19 ] ~ [ wine-0.9.18 ] ~ [ wine-0.9.17 ] ~ [ wine-0.9.16 ] ~ [ wine-0.9.15 ] ~ [ wine-0.9.14 ] ~ [ wine-0.9.13 ] ~ [ wine-0.9.12 ] ~ [ wine-0.9.11 ] ~ [ wine-0.9.10 ] ~ [ wine-0.9.9 ] ~ [ wine-0.9.8 ] ~ [ wine-0.9.7 ] ~ [ wine-0.9.6 ] ~ [ wine-0.9.5 ] ~ [ wine-0.9.4 ] ~ [ wine-0.9.3 ] ~ [ wine-0.9.2 ] ~ [ wine-0.9.1 ] ~ [ wine-0.9 ] ~ [ wine20050930 ] ~ [ wine20050830 ] ~ [ wine20050725 ] ~ [ wine20050628 ] ~ [ wine20050524 ] ~ [ wine20050419 ] ~ [ wine20050310 ] ~ [ wine20050211 ] ~ [ wine20050111 ] ~ [ wine20041201 ] ~ [ wine20041019 ] ~ [ wine20040914 ] ~ [ wine20040813 ] ~ [ wine20040716 ] ~ [ wine20040615 ] ~ [ wine20040505 ] ~ [ wine20040408 ] ~ [ wine20040309 ] ~ [ wine20040213 ] ~ [ wine20040121 ] ~ [ wine20031212 ] ~ [ wine20031118 ] ~ [ wine20031016 ] ~ [ wine20030911 ] ~ [ wine20030813 ] ~ [ wine20030709 ] ~ [ wine20030618 ] ~ [ wine20030508 ] ~ [ wine20030408 ] ~ [ wine20030318 ] ~ [ wine20030219 ] ~ [ wine20030115 ] ~ [ wine20021219 ] ~ [ wine20021125 ] ~ [ wine20021031 ] ~ [ wine20021007 ] ~ [ wine20020904 ] ~ [ wine20020804 ] ~ [ wine20020710 ] ~ [ wine20020605 ] ~ [ wine20020509 ] ~ [ wine20020411 ] ~ [ wine20020310 ] ~ [ wine20020228 ] ~ [ wine20011226 ] ~ [ wine20011108 ] ~ [ wine20011004 ] ~ [ wine20010824 ] ~ [ wine20010731 ] ~ [ wine20010629 ] ~ [ wine20010510 ] ~ [ wine20010418 ] ~ [ wine20010326 ] ~ [ wine20010305 ] ~ [ wine20010216 ] ~ [ wine20010112 ] ~ [ wine20001222 ] ~ [ wine20001202 ] ~ [ wine20001026 ] ~ [ wine20001002 ] ~ [ wine20000909 ] ~ [ wine20000821 ] ~ [ wine20000801 ] ~ [ wine20000716 ] ~ [ wine20000326 ] ~ [ wine20000227 ] ~ [ wine20000130 ] ~ [ wine20000109 ] ~

  1 /*
  2  * Implementation of some printer driver bits
  3  *
  4  * Copyright 1996 John Harvey
  5  * Copyright 1998 Huw Davies
  6  * Copyright 1998 Andreas Mohr
  7  * Copyright 1999 Klaas van Gend
  8  *
  9  * This library is free software; you can redistribute it and/or
 10  * modify it under the terms of the GNU Lesser General Public
 11  * License as published by the Free Software Foundation; either
 12  * version 2.1 of the License, or (at your option) any later version.
 13  *
 14  * This library is distributed in the hope that it will be useful,
 15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 17  * Lesser General Public License for more details.
 18  *
 19  * You should have received a copy of the GNU Lesser General Public
 20  * License along with this library; if not, write to the Free Software
 21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 22  */
 23 
 24 #include <stdarg.h>
 25 
 26 #include "windef.h"
 27 #include "winbase.h"
 28 #include "wingdi.h"
 29 #include "winspool.h"
 30 #include "winerror.h"
 31 #include "wine/debug.h"
 32 #include "gdi_private.h"
 33 
 34 WINE_DEFAULT_DEBUG_CHANNEL(print);
 35 
 36 /******************************************************************
 37  * GdiGetSpoolMessage [GDI32.@]
 38  *
 39  */
 40 DWORD WINAPI GdiGetSpoolMessage(LPVOID ptr1, DWORD data2, LPVOID ptr3, DWORD data4)
 41 {
 42     TRACE("(%p 0x%x %p 0x%x) stub\n", ptr1, data2, ptr3, data4);
 43     /* avoid 100% cpu usage with spoolsv.exe from w2k
 44       (spoolsv.exe from xp does Sleep 1000/1500/2000 in a loop) */
 45     Sleep(500);
 46     return 0;
 47 }
 48 
 49 /******************************************************************
 50  * GdiInitSpool [GDI32.@]
 51  *
 52  */
 53 DWORD WINAPI GdiInitSpool(void)
 54 {
 55     FIXME("stub\n");
 56     return TRUE;
 57 }
 58 
 59 /******************************************************************
 60  *                  StartDocW  [GDI32.@]
 61  *
 62  * StartDoc calls the STARTDOC Escape with the input data pointing to DocName
 63  * and the output data (which is used as a second input parameter).pointing at
 64  * the whole docinfo structure.  This seems to be an undocumented feature of
 65  * the STARTDOC Escape.
 66  *
 67  * Note: we now do it the other way, with the STARTDOC Escape calling StartDoc.
 68  */
 69 INT WINAPI StartDocW(HDC hdc, const DOCINFOW* doc)
 70 {
 71     INT ret = 0;
 72     DC *dc = get_dc_ptr( hdc );
 73 
 74     TRACE("DocName = %s Output = %s Datatype = %s\n",
 75           debugstr_w(doc->lpszDocName), debugstr_w(doc->lpszOutput),
 76           debugstr_w(doc->lpszDatatype));
 77 
 78     if(!dc) return SP_ERROR;
 79 
 80     if (dc->funcs->pStartDoc) ret = dc->funcs->pStartDoc( dc->physDev, doc );
 81     release_dc_ptr( dc );
 82     return ret;
 83 }
 84 
 85 /*************************************************************************
 86  *                  StartDocA [GDI32.@]
 87  *
 88  */
 89 INT WINAPI StartDocA(HDC hdc, const DOCINFOA* doc)
 90 {
 91     LPWSTR szDocName = NULL, szOutput = NULL, szDatatype = NULL;
 92     DOCINFOW docW;
 93     INT ret, len;
 94 
 95     docW.cbSize = doc->cbSize;
 96     if (doc->lpszDocName)
 97     {
 98         len = MultiByteToWideChar(CP_ACP,0,doc->lpszDocName,-1,NULL,0);
 99         szDocName = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
100         MultiByteToWideChar(CP_ACP,0,doc->lpszDocName,-1,szDocName,len);
101     }
102     if (doc->lpszOutput)
103     {
104         len = MultiByteToWideChar(CP_ACP,0,doc->lpszOutput,-1,NULL,0);
105         szOutput = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
106         MultiByteToWideChar(CP_ACP,0,doc->lpszOutput,-1,szOutput,len);
107     }
108     if (doc->lpszDatatype)
109     {
110         len = MultiByteToWideChar(CP_ACP,0,doc->lpszDatatype,-1,NULL,0);
111         szDatatype = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
112         MultiByteToWideChar(CP_ACP,0,doc->lpszDatatype,-1,szDatatype,len);
113     }
114 
115     docW.lpszDocName = szDocName;
116     docW.lpszOutput = szOutput;
117     docW.lpszDatatype = szDatatype;
118     docW.fwType = doc->fwType;
119 
120     ret = StartDocW(hdc, &docW);
121 
122     HeapFree( GetProcessHeap(), 0, szDocName );
123     HeapFree( GetProcessHeap(), 0, szOutput );
124     HeapFree( GetProcessHeap(), 0, szDatatype );
125 
126     return ret;
127 }
128 
129 
130 /******************************************************************
131  *                  EndDoc  [GDI32.@]
132  *
133  */
134 INT WINAPI EndDoc(HDC hdc)
135 {
136     INT ret = 0;
137     DC *dc = get_dc_ptr( hdc );
138     if(!dc) return SP_ERROR;
139 
140     if (dc->funcs->pEndDoc) ret = dc->funcs->pEndDoc( dc->physDev );
141     release_dc_ptr( dc );
142     return ret;
143 }
144 
145 
146 /******************************************************************
147  *                  StartPage  [GDI32.@]
148  *
149  */
150 INT WINAPI StartPage(HDC hdc)
151 {
152     INT ret = 1;
153     DC *dc = get_dc_ptr( hdc );
154     if(!dc) return SP_ERROR;
155 
156     if(dc->funcs->pStartPage)
157         ret = dc->funcs->pStartPage( dc->physDev );
158     else
159         FIXME("stub\n");
160     release_dc_ptr( dc );
161     return ret;
162 }
163 
164 
165 /******************************************************************
166  *                  EndPage  [GDI32.@]
167  *
168  */
169 INT WINAPI EndPage(HDC hdc)
170 {
171     INT ret = 0;
172     DC *dc = get_dc_ptr( hdc );
173     if(!dc) return SP_ERROR;
174 
175     if (dc->funcs->pEndPage) ret = dc->funcs->pEndPage( dc->physDev );
176     if (dc->pAbortProc && !dc->pAbortProc( hdc, 0 ))
177     {
178         EndDoc( hdc );
179         ret = 0;
180     }
181     release_dc_ptr( dc );
182     return ret;
183 }
184 
185 
186 /******************************************************************************
187  *                 AbortDoc  [GDI32.@]
188  */
189 INT WINAPI AbortDoc(HDC hdc)
190 {
191     INT ret = 0;
192     DC *dc = get_dc_ptr( hdc );
193     if(!dc) return SP_ERROR;
194 
195     if (dc->funcs->pAbortDoc) ret = dc->funcs->pAbortDoc( dc->physDev );
196     release_dc_ptr( dc );
197     return ret;
198 }
199 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.