source: trunk/src/ddraw/OS2SURFACE.H@ 6941

Last change on this file since 6941 was 6935, checked in by sandervl, 24 years ago

take clipping info into account when blitting

File size: 17.4 KB
Line 
1/* $Id: OS2SURFACE.H,v 1.14 2001-10-03 13:49:41 sandervl Exp $ */
2
3/*
4 * Direct/X Surface class
5 *
6 * Copyright 1999 Markus Montkowski
7 *
8 * Project Odin Software License can be found in LICENSE.TXT
9 *
10 */
11
12#ifndef __OS2SURFACE_H__
13#define __OS2SURFACE_H__
14#define FAR
15#include "divewrap.h"
16#include <commctrl.h>
17
18#define FAR
19#undef THIS
20#define THIS VOID*
21
22#define RECT_WIDTH(a) ((a)->right - (a)->left)
23#define RECT_HEIGHT(a) ((a)->bottom - (a)->top)
24#define RECT_EQUAL(a,b) memcmp(a, b, sizeof(RECT))
25
26inline BOOL intersects(LPRECT lprcSrc1, LPRECT lprcSrc2)
27{
28 if( (lprcSrc1->left >= lprcSrc2->right) || (lprcSrc2->left >= lprcSrc1->right) ||
29 (lprcSrc1->top >= lprcSrc2->bottom) || (lprcSrc2->top >= lprcSrc1->bottom) )
30 {
31 return FALSE;
32 }
33 return TRUE;
34}
35
36typedef struct _OS2RECTL {
37 LONG xLeft; /* X-coordinate of left-hand edge of rectangle. */
38 LONG yBottom; /* Y-coordinate of bottom edge of rectangle. */
39 LONG xRight; /* X-coordinate of right-hand edge of rectangle. */
40 LONG yTop; /* Y-coordinate of top edge of rectangle. */
41 } OS2RECTL;
42
43typedef struct _SURFPRIVATEDATA
44{
45 GUID guidTag;
46 void *pData;
47 DWORD dwFlags;
48 DWORD dwSize;
49 BOOL isValid;
50}SURFPRIVATEDATA , *PSURFPRIVATEDATA;
51
52class OS2IDirectDrawSurface
53{
54 public:
55 //this one has to go first!
56 IDirectDrawSurface2Vtbl *lpVtbl;
57 IDirectDrawSurface2Vtbl *lpVtbl2; // 2nd Vtable pointer An other MS assumtion see below
58// IDirectDrawSurface4Vtbl *lpVtbl;
59// IDirectDrawSurface4Vtbl *lpVtbl2; // 2nd Vtable pointer An other MS assumtion see below
60 DWORD dwUnknownData; // Pointer to unknown data set to DEADDEAD to indicate that we can't handle this
61 IDirectDrawSurface2Vtbl Vtbl2;
62 IDirectDrawSurface3Vtbl Vtbl3;
63 IDirectDrawSurface4Vtbl Vtbl; // With Dx6 CreateSurface creates per default one with Interface 4 !
64
65 OS2IDirectDrawSurface( OS2IDirectDraw *lpDirectDraw,
66 LPDDSURFACEDESC2 lpDDSurfaceDesc,
67 BOOL Implicit = FALSE, // Indicates that this surface was created as result of a complex surface
68 BOOL Mainchain = FALSE); // Indicates if an implicit surface belongs to the primary surface
69 ~OS2IDirectDrawSurface();
70 int Referenced;
71 inline HRESULT GetLastError() { return lastError; };
72 inline int GetDiveBufNr() { return diveBufNr; };
73 inline BOOL IsImplicitSurface() {return ImplicitSurface; };
74 inline OS2IDirectDrawSurface* GetFrontBuffer(){ return FrontBuffer;};
75 inline void SetFrontBuffer( OS2IDirectDrawSurface* NewFBuffer);
76 void ColorConversion(LPRECT lpRect);
77
78 private:
79 HRESULT DoColorFill(LPRECT, DWORD);
80 void (__cdecl *BltSolid)( char *pDBDst,
81 char *pFBDst,
82 DWORD dwDstTop,
83 DWORD dwDstLeft,
84 DWORD dwPitchDBDst,
85 DWORD dwPitchFBDst,
86 char *pDBSrc,
87 char *pFBSrc,
88 DWORD dwSrcTop,
89 DWORD dwSrcLeft,
90 DWORD dwWidth,
91 DWORD dwHeight,
92 DWORD dwPitchDBSrc,
93 DWORD dwPitchFBSrc
94 );
95 void (__cdecl *ColorConv)( char *pDB,
96 char *pFB,
97 DWORD dwTop,
98 DWORD dwLeft,
99 DWORD dwWidth,
100 DWORD dwHeight,
101 DWORD dwPitchDB,
102 DWORD dwPitchFB,
103 VOID *pPalette
104 );
105 void (__cdecl *ColorFill)( char *pDBDst,
106 char *pFBDst,
107 DWORD dwDstTop,
108 DWORD dwDstLeft,
109 DWORD dwWidth,
110 DWORD dwHeight,
111 DWORD dwPitchDBDst,
112 DWORD dwPitchFBDst,
113 DWORD dwColor,
114 VOID *pPalette
115 );
116 protected:
117 HRESULT lastError;
118 HDIVE hDive;
119 HDIVE hDiveCC; // Color conversion DIVE Handle
120 ULONG height, width;
121 ULONG screenHeight, screenWidth;
122 ULONG surfaceType;
123 ULONG diveBufNr;
124 OS2IDirectDraw *lpDraw;
125 OS2IDirectDrawClipper *lpClipper;
126 OS2IDirectDrawPalette *lpPalette;
127 DDSURFACEDESC2 DDSurfaceDesc;
128 BOOL fLocked;
129 HDC hdcImage;
130 HBITMAP hbmImage;
131 HGDIOBJ hgdiOld;
132 DWORD dwLastDCUnique;
133 // The real pointers hold the allocated memory (for the free)
134 // The other an pointer addjusted to QWORDs which we use and report
135 char *pFrameBuffer, *pFBreal;
136 char *pDiveBuffer, *pDBreal;
137 DWORD *pTransBufferSrc;
138 DWORD *pTransBufferDest;
139 DWORD dwPitchFB;
140 DWORD dwPitchDB;
141 DWORD dwBytesPPDive;
142 BOOL Updated;
143 BOOL ImplicitSurface;
144
145 // DDraw internal vars
146
147 DWORD dwUniqueValue;
148 HDPA DPA_SurfacePrivateData;
149
150 BOOL fOverlayValid;
151 LONG lOverlayX;
152 LONG lOverlayY;
153
154 // surface management
155
156 OS2IDirectDrawSurface* BackBuffer; // Backbuffer goes in here
157 OS2IDirectDrawSurface* FrontBuffer; // NULL if the real frontbuffer of a Flipchain otherwise the prev. Backbuffer
158 OS2IDirectDrawSurface* NextFlip; // Only valid in a frontbuffer
159
160 HDPA DPA_SurfaceMipMaps;
161 HDPA DPA_SurfaceAttached;
162 HDPA DPA_LockedRects;
163
164 friend HRESULT WIN32API SurfQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj);
165 friend ULONG WIN32API SurfAddRef(THIS);
166 friend ULONG WIN32API SurfRelease(THIS);
167 friend HRESULT WIN32API SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2);
168 friend HRESULT WIN32API SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3);
169 friend HRESULT WIN32API SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4);
170 friend HRESULT WIN32API SurfAddOverlayDirtyRect(THIS, LPRECT);
171 friend HRESULT WIN32API SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX);
172 friend HRESULT WIN32API SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX);
173 friend HRESULT WIN32API SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX);
174 friend HRESULT WIN32API SurfDoBlt(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface,
175 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx);
176 friend HRESULT WIN32API SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD );
177 friend HRESULT WIN32API SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD);
178 friend HRESULT WIN32API SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD);
179 friend HRESULT WIN32API SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD);
180 friend HRESULT WIN32API SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2);
181 friend HRESULT WIN32API SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3);
182 friend HRESULT WIN32API SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4);
183 friend HRESULT WIN32API SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK);
184 friend HRESULT WIN32API SurfEnumAttachedSurfaces4(THIS, LPVOID,LPDDENUMSURFACESCALLBACK2);
185 friend HRESULT WIN32API SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK);
186 friend HRESULT WIN32API SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2);
187 friend HRESULT WIN32API SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD);
188 friend HRESULT WIN32API SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD);
189 friend HRESULT WIN32API SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD);
190 friend HRESULT WIN32API SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *);
191 friend HRESULT WIN32API SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *);
192 friend HRESULT WIN32API SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *);
193 friend HRESULT WIN32API SurfGetBltStatus(THIS, DWORD);
194 friend HRESULT WIN32API SurfGetCaps(THIS, LPDDSCAPS);
195 friend HRESULT WIN32API SurfGetCaps4(THIS, LPDDSCAPS2);
196 friend HRESULT WIN32API SurfGetClipper(THIS, LPDIRECTDRAWCLIPPER FAR*);
197 friend HRESULT WIN32API SurfGetColorKey(THIS, DWORD, LPDDCOLORKEY);
198 friend HRESULT WIN32API SurfGetDC(THIS, HDC FAR *);
199 friend HRESULT WIN32API SurfGetFlipStatus(THIS, DWORD);
200 friend HRESULT WIN32API SurfGetOverlayPosition(THIS, LPLONG, LPLONG );
201 friend HRESULT WIN32API SurfGetPalette(THIS, LPDIRECTDRAWPALETTE FAR*);
202 friend HRESULT WIN32API SurfGetPixelFormat(THIS, LPDDPIXELFORMAT);
203 friend HRESULT WIN32API SurfGetSurfaceDesc(THIS, LPDDSURFACEDESC);
204 friend HRESULT WIN32API SurfGetSurfaceDesc4(THIS, LPDDSURFACEDESC2);
205 friend HRESULT WIN32API SurfInitialize(THIS, LPDIRECTDRAW, LPDDSURFACEDESC);
206 friend HRESULT WIN32API SurfInitialize4(THIS, LPDIRECTDRAW, LPDDSURFACEDESC2);
207 friend HRESULT WIN32API SurfIsLost(THIS);
208 friend HRESULT WIN32API SurfLock(THIS, LPRECT,LPDDSURFACEDESC,DWORD,HANDLE);
209 friend HRESULT WIN32API SurfLock4(THIS, LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE);
210 friend HRESULT WIN32API SurfReleaseDC(THIS, HDC);
211 friend HRESULT WIN32API SurfRestore(THIS);
212 friend HRESULT WIN32API SurfSetClipper(THIS, LPDIRECTDRAWCLIPPER);
213 friend HRESULT WIN32API SurfSetColorKey(THIS, DWORD, LPDDCOLORKEY);
214 friend HRESULT WIN32API SurfSetOverlayPosition(THIS, LONG, LONG );
215 friend HRESULT WIN32API SurfSetPalette(THIS, LPDIRECTDRAWPALETTE);
216 friend HRESULT WIN32API SurfUnlock(THIS, LPVOID);
217 friend HRESULT WIN32API SurfUnlock4(THIS, LPRECT);
218 friend HRESULT WIN32API SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX);
219 friend HRESULT WIN32API SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX);
220 friend HRESULT WIN32API SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX);
221 friend HRESULT WIN32API SurfUpdateOverlayDisplay(THIS, DWORD);
222 friend HRESULT WIN32API SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2);
223 friend HRESULT WIN32API SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3);
224 friend HRESULT WIN32API SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4);
225 // Added in V2 interface
226 friend HRESULT WIN32API SurfGetDDInterface(THIS, LPVOID FAR *);
227 friend HRESULT WIN32API SurfPageLock(THIS, DWORD);
228 friend HRESULT WIN32API SurfPageUnlock(THIS, DWORD);
229 // Added in V3 interface
230 friend HRESULT WIN32API SurfSetSurfaceDesc(THIS, LPDDSURFACEDESC, DWORD);
231 friend HRESULT WIN32API SurfSetSurfaceDesc4(THIS, LPDDSURFACEDESC2, DWORD);
232 // Added in V4 interface
233 friend HRESULT WIN32API SurfSetPrivateData(THIS, REFGUID, LPVOID, DWORD, DWORD);
234 friend HRESULT WIN32API SurfGetPrivateData(THIS, REFGUID, LPVOID, LPDWORD);
235 friend HRESULT WIN32API SurfFreePrivateData(THIS, REFGUID);
236 friend HRESULT WIN32API SurfGetUniquenessValue(THIS, LPDWORD);
237 friend HRESULT WIN32API SurfChangeUniquenessValue(THIS);
238};
239
240
241HRESULT WIN32API SurfQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj);
242ULONG WIN32API SurfAddRef(THIS);
243ULONG WIN32API SurfRelease(THIS);
244HRESULT WIN32API SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2);
245HRESULT WIN32API SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3);
246HRESULT WIN32API SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4);
247HRESULT WIN32API SurfAddOverlayDirtyRect(THIS, LPRECT);
248HRESULT WIN32API SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX);
249HRESULT WIN32API SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX);
250HRESULT WIN32API SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX);
251HRESULT WIN32API SurfDoBlt(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface,
252 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx);
253HRESULT WIN32API SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD );
254HRESULT WIN32API SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD);
255HRESULT WIN32API SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD);
256HRESULT WIN32API SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD);
257HRESULT WIN32API SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2);
258HRESULT WIN32API SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3);
259HRESULT WIN32API SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4);
260HRESULT WIN32API SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK);
261HRESULT WIN32API SurfEnumAttachedSurfaces4(THIS, LPVOID,LPDDENUMSURFACESCALLBACK2);
262HRESULT WIN32API SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK);
263HRESULT WIN32API SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2);
264HRESULT WIN32API SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD);
265HRESULT WIN32API SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD);
266HRESULT WIN32API SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD);
267HRESULT WIN32API SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *);
268HRESULT WIN32API SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *);
269HRESULT WIN32API SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *);
270HRESULT WIN32API SurfGetBltStatus(THIS, DWORD);
271HRESULT WIN32API SurfGetCaps4(THIS, LPDDSCAPS2);
272HRESULT WIN32API SurfGetCaps(THIS, LPDDSCAPS);
273HRESULT WIN32API SurfGetClipper(THIS, LPDIRECTDRAWCLIPPER FAR*);
274HRESULT WIN32API SurfGetColorKey(THIS, DWORD, LPDDCOLORKEY);
275HRESULT WIN32API SurfGetDC(THIS, HDC FAR *);
276HRESULT WIN32API SurfGetFlipStatus(THIS, DWORD);
277HRESULT WIN32API SurfGetOverlayPosition(THIS, LPLONG, LPLONG );
278HRESULT WIN32API SurfGetPalette(THIS, LPDIRECTDRAWPALETTE FAR*);
279HRESULT WIN32API SurfGetPixelFormat(THIS, LPDDPIXELFORMAT);
280HRESULT WIN32API SurfGetSurfaceDesc(THIS, LPDDSURFACEDESC);
281HRESULT WIN32API SurfGetSurfaceDesc4(THIS, LPDDSURFACEDESC2);
282HRESULT WIN32API SurfInitialize(THIS, LPDIRECTDRAW, LPDDSURFACEDESC);
283HRESULT WIN32API SurfInitialize4(THIS, LPDIRECTDRAW, LPDDSURFACEDESC2);
284HRESULT WIN32API SurfIsLost(THIS);
285HRESULT WIN32API SurfLock(THIS, LPRECT,LPDDSURFACEDESC,DWORD,HANDLE);
286HRESULT WIN32API SurfLock4(THIS, LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE);
287HRESULT WIN32API SurfReleaseDC(THIS, HDC);
288HRESULT WIN32API SurfRestore(THIS);
289HRESULT WIN32API SurfSetClipper(THIS, LPDIRECTDRAWCLIPPER);
290HRESULT WIN32API SurfSetColorKey(THIS, DWORD, LPDDCOLORKEY);
291HRESULT WIN32API SurfSetOverlayPosition(THIS, LONG, LONG );
292HRESULT WIN32API SurfSetPalette(THIS, LPDIRECTDRAWPALETTE);
293HRESULT WIN32API SurfUnlock(THIS, LPVOID);
294HRESULT WIN32API SurfUnlock4(THIS, LPRECT);
295HRESULT WIN32API SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX);
296HRESULT WIN32API SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX);
297HRESULT WIN32API SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX);
298HRESULT WIN32API SurfUpdateOverlayDisplay(THIS, DWORD);
299HRESULT WIN32API SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2);
300HRESULT WIN32API SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3);
301HRESULT WIN32API SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4);
302HRESULT WIN32API SurfGetDDInterface(THIS, LPVOID FAR *);
303HRESULT WIN32API SurfPageLock(THIS, DWORD);
304HRESULT WIN32API SurfPageUnlock(THIS, DWORD);
305HRESULT WIN32API SurfSetSurfaceDesc(THIS, LPDDSURFACEDESC, DWORD);
306HRESULT WIN32API SurfSetSurfaceDesc4(THIS, LPDDSURFACEDESC2, DWORD);
307HRESULT WIN32API SurfSetPrivateData(THIS, REFGUID, LPVOID, DWORD, DWORD);
308HRESULT WIN32API SurfGetPrivateData(THIS, REFGUID, LPVOID, LPDWORD);
309HRESULT WIN32API SurfFreePrivateData(THIS, REFGUID);
310HRESULT WIN32API SurfGetUniquenessValue(THIS, LPDWORD);
311HRESULT WIN32API SurfChangeUniquenessValue(THIS);
312
313void __cdecl MoveRects(char* pBuffer, LPRECT lpDestRect, LPRECT lpSrcRect, int bbp, LONG lPitch);
314void __cdecl TransSRCBlit8(LPDDSURFACEDESC2 pDestDesc, LPDDSURFACEDESC2 pSrcDesc, char *pAlpha, LPRECT lpSrcRect);
315void __cdecl TransSRCBlit16(LPDDSURFACEDESC2 pDestDesc, LPDDSURFACEDESC2 pSrcDesc, char *pAlpha, LPRECT lpSrcRect);
316void __cdecl TransSRCBlit24(LPDDSURFACEDESC2 pDestDesc, LPDDSURFACEDESC2 pSrcDesc, char *pAlpha, LPRECT lpSrcRect);
317void __cdecl TransSRCBlit32(LPDDSURFACEDESC2 pDestDesc, LPDDSURFACEDESC2 pSrcDesc, char *pAlpha, LPRECT lpSrcRect);
318
319
320#endif
Note: See TracBrowser for help on using the repository browser.