00001
00002
00003 #include "../rosdraw.h"
00004
00005
00006
00007 HRESULT WINAPI
00008 Thunk_DDrawSurface3_QueryInterface(LPDIRECTDRAWSURFACE3 iface, REFIID iid,
00009 LPVOID *ppObj)
00010 {
00011 DX_WINDBG_trace();
00012
00013 return Main_DDrawSurface_QueryInterface((LPDIRECTDRAWSURFACE7) iface, iid, ppObj);
00014 }
00015
00016 ULONG WINAPI
00017 Thunk_DDrawSurface3_AddRef(LPDIRECTDRAWSURFACE3 iface)
00018 {
00019 DX_WINDBG_trace();
00020
00021 return Main_DDrawSurface_AddRef((LPDIRECTDRAWSURFACE7) iface);
00022 }
00023
00024 ULONG WINAPI
00025 Thunk_DDrawSurface3_Release(LPDIRECTDRAWSURFACE3 iface)
00026 {
00027 DX_WINDBG_trace();
00028
00029 return Main_DDrawSurface_Release((LPDIRECTDRAWSURFACE7) iface);
00030 }
00031
00032 HRESULT WINAPI
00033 Thunk_DDrawSurface3_AddAttachedSurface(LPDIRECTDRAWSURFACE3 iface, LPDIRECTDRAWSURFACE3 pAttach)
00034 {
00035 DX_WINDBG_trace();
00036
00037 return Main_DDrawSurface_AddAttachedSurface((LPDIRECTDRAWSURFACE7) iface, (LPDIRECTDRAWSURFACE7) pAttach);
00038 }
00039
00040 HRESULT WINAPI
00041 Thunk_DDrawSurface3_AddOverlayDirtyRect(LPDIRECTDRAWSURFACE3 iface, LPRECT pRect)
00042 {
00043 DX_WINDBG_trace();
00044
00045 return Main_DDrawSurface_AddOverlayDirtyRect((LPDIRECTDRAWSURFACE7) iface, pRect);
00046 }
00047
00048 HRESULT WINAPI
00049 Thunk_DDrawSurface3_Blt(LPDIRECTDRAWSURFACE3 iface, LPRECT rdst,
00050 LPDIRECTDRAWSURFACE3 src, LPRECT rsrc,
00051 DWORD dwFlags, LPDDBLTFX pFX)
00052 {
00053 DX_WINDBG_trace();
00054
00055 return Main_DDrawSurface_Blt((LPDIRECTDRAWSURFACE7) iface, rdst,(LPDIRECTDRAWSURFACE7) src, rsrc, dwFlags, pFX);
00056 }
00057
00058 HRESULT WINAPI
00059 Thunk_DDrawSurface3_BltBatch(LPDIRECTDRAWSURFACE3 iface, LPDDBLTBATCH pBatch, DWORD dwCount, DWORD dwFlags)
00060 {
00061 DX_WINDBG_trace();
00062
00063 return Main_DDrawSurface_BltBatch((LPDIRECTDRAWSURFACE7) iface, pBatch, dwCount, dwFlags);
00064 }
00065
00066 HRESULT WINAPI
00067 Thunk_DDrawSurface3_BltFast(LPDIRECTDRAWSURFACE3 iface, DWORD dstx, DWORD dsty,
00068 LPDIRECTDRAWSURFACE3 src, LPRECT rsrc, DWORD dwTrans)
00069 {
00070 DX_WINDBG_trace();
00071
00072 return Main_DDrawSurface_BltFast((LPDIRECTDRAWSURFACE7) iface, dstx, dsty,
00073 (LPDIRECTDRAWSURFACE7)src, rsrc, dwTrans);
00074 }
00075
00076 HRESULT WINAPI
00077 Thunk_DDrawSurface3_DeleteAttachedSurface(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags, LPDIRECTDRAWSURFACE3 pAttached)
00078 {
00079 DX_WINDBG_trace();
00080
00081 return Main_DDrawSurface_DeleteAttachedSurface((LPDIRECTDRAWSURFACE7) iface, dwFlags,
00082 (LPDIRECTDRAWSURFACE7) pAttached);
00083 }
00084
00085
00086
00087 HRESULT WINAPI
00088 Thunk_DDrawSurface3_EnumAttachedSurfaces(LPDIRECTDRAWSURFACE3 iface,
00089 LPVOID context,
00090 LPDDENUMSURFACESCALLBACK cb)
00091 {
00092 DX_WINDBG_trace();
00093
00094 return Main_DDrawSurface_EnumAttachedSurfaces((LPDIRECTDRAWSURFACE7) iface,
00095 context, (LPDDENUMSURFACESCALLBACK7)cb);
00096 }
00097
00098 HRESULT WINAPI
00099 Thunk_DDrawSurface3_EnumOverlayZOrders(LPDIRECTDRAWSURFACE3 iface,
00100 DWORD dwFlags, LPVOID context,
00101 LPDDENUMSURFACESCALLBACK cb)
00102 {
00103 DX_WINDBG_trace();
00104
00105 return Main_DDrawSurface_EnumOverlayZOrders( (LPDIRECTDRAWSURFACE7) iface, dwFlags, context,
00106 (LPDDENUMSURFACESCALLBACK7) cb);
00107 }
00108
00109 HRESULT WINAPI
00110 Thunk_DDrawSurface3_Flip(LPDIRECTDRAWSURFACE3 iface,
00111 LPDIRECTDRAWSURFACE3 lpDDSurfaceTargetOverride, DWORD dwFlags)
00112 {
00113 DX_WINDBG_trace();
00114
00115 return Main_DDrawSurface_Flip( (LPDIRECTDRAWSURFACE7)iface, (LPDIRECTDRAWSURFACE7) lpDDSurfaceTargetOverride,
00116 dwFlags);
00117 }
00118
00119 HRESULT WINAPI
00120 Thunk_DDrawSurface3_GetAttachedSurface(LPDIRECTDRAWSURFACE3 iface,
00121 LPDDSCAPS pCaps,
00122 LPDIRECTDRAWSURFACE3* ppAttached)
00123 {
00124 DDSCAPS2 caps;
00125 HRESULT hr = DDERR_GENERIC;
00126
00127 DX_WINDBG_trace();
00128
00129 ZeroMemory(&caps,sizeof(DDSCAPS2));
00130
00131 if (pCaps != NULL)
00132 {
00133 caps.dwCaps = pCaps->dwCaps;
00134
00135 hr = Main_DDrawSurface_GetAttachedSurface( (LPDIRECTDRAWSURFACE7) iface,
00136 &caps, (LPDIRECTDRAWSURFACE7 *) ppAttached);
00137 pCaps->dwCaps = caps.dwCaps;
00138 }
00139 else
00140 {
00141 hr = Main_DDrawSurface_GetAttachedSurface( (LPDIRECTDRAWSURFACE7) iface,
00142 NULL, (LPDIRECTDRAWSURFACE7 *) ppAttached);
00143 }
00144
00145 return hr;
00146 }
00147
00148 HRESULT WINAPI
00149 Thunk_DDrawSurface3_GetBltStatus(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags)
00150 {
00151 DX_WINDBG_trace();
00152
00153 return Main_DDrawSurface_GetBltStatus((LPDIRECTDRAWSURFACE7) iface, dwFlags);
00154 }
00155
00156 HRESULT WINAPI
00157 Thunk_DDrawSurface3_GetCaps(LPDIRECTDRAWSURFACE3 iface, LPDDSCAPS pCaps)
00158 {
00159 DDSCAPS2 caps;
00160 HRESULT hr = DDERR_GENERIC;
00161
00162 DX_WINDBG_trace();
00163
00164 ZeroMemory(&caps,sizeof(DDSCAPS2));
00165
00166 if (pCaps != NULL)
00167 {
00168 hr = Main_DDrawSurface_GetCaps((LPDIRECTDRAWSURFACE7) iface, &caps);
00169 pCaps->dwCaps = caps.dwCaps;
00170 }
00171 else
00172 {
00173 hr = Main_DDrawSurface_GetCaps((LPDIRECTDRAWSURFACE7) iface, NULL);
00174 }
00175
00176 return hr;
00177 }
00178
00179 HRESULT WINAPI
00180 Thunk_DDrawSurface3_GetClipper(LPDIRECTDRAWSURFACE3 iface,
00181 LPDIRECTDRAWCLIPPER* ppClipper)
00182 {
00183 DX_WINDBG_trace();
00184
00185 return Main_DDrawSurface_GetClipper((LPDIRECTDRAWSURFACE7) iface, ppClipper);
00186 }
00187
00188 HRESULT WINAPI
00189 Thunk_DDrawSurface3_GetColorKey(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags,
00190 LPDDCOLORKEY pCKey)
00191 {
00192 DX_WINDBG_trace();
00193
00194 return Main_DDrawSurface_GetColorKey( (LPDIRECTDRAWSURFACE7) iface, dwFlags, pCKey);
00195 }
00196
00197 HRESULT WINAPI
00198 Thunk_DDrawSurface3_GetDC(LPDIRECTDRAWSURFACE3 iface, HDC* phDC)
00199 {
00200 DX_WINDBG_trace();
00201
00202 return Main_DDrawSurface_GetDC((LPDIRECTDRAWSURFACE7) iface, phDC);
00203 }
00204
00205 HRESULT WINAPI
00206 Thunk_DDrawSurface3_GetFlipStatus(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags)
00207 {
00208 DX_WINDBG_trace();
00209
00210 return Main_DDrawSurface_GetFlipStatus((LPDIRECTDRAWSURFACE7) iface, dwFlags);
00211 }
00212
00213 HRESULT WINAPI
00214 Thunk_DDrawSurface3_GetOverlayPosition(LPDIRECTDRAWSURFACE3 iface, LPLONG pX, LPLONG pY)
00215 {
00216 DX_WINDBG_trace();
00217
00218 return Main_DDrawSurface_GetOverlayPosition((LPDIRECTDRAWSURFACE7) iface, pX, pY);
00219 }
00220
00221 HRESULT WINAPI
00222 Thunk_DDrawSurface3_GetPalette(LPDIRECTDRAWSURFACE3 iface,
00223 LPDIRECTDRAWPALETTE* ppPalette)
00224 {
00225 DX_WINDBG_trace();
00226
00227 return Main_DDrawSurface_GetPalette((LPDIRECTDRAWSURFACE7) iface, ppPalette);
00228 }
00229
00230 HRESULT WINAPI
00231 Thunk_DDrawSurface3_GetPixelFormat(LPDIRECTDRAWSURFACE3 iface,
00232 LPDDPIXELFORMAT pDDPixelFormat)
00233 {
00234 DX_WINDBG_trace();
00235
00236 return Main_DDrawSurface_GetPixelFormat((LPDIRECTDRAWSURFACE7) iface, pDDPixelFormat);
00237 }
00238
00239 HRESULT WINAPI
00240 Thunk_DDrawSurface3_GetSurfaceDesc(LPDIRECTDRAWSURFACE3 iface,
00241 LPDDSURFACEDESC pDDSD)
00242 {
00243 HRESULT retValue = DDERR_GENERIC;
00244
00245 DX_WINDBG_trace();
00246
00247 if (pDDSD != NULL)
00248 {
00249 DDSURFACEDESC2 pDDSD2;
00250 ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
00251 memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
00252 pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
00253 retValue = Main_DDrawSurface_GetSurfaceDesc((LPDIRECTDRAWSURFACE7) iface, &pDDSD2);
00254 memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
00255 pDDSD->dwSize = sizeof(DDSURFACEDESC);
00256 }
00257 else
00258 {
00259 retValue = Main_DDrawSurface_GetSurfaceDesc((LPDIRECTDRAWSURFACE7) iface, NULL);
00260 }
00261
00262 return retValue;
00263 }
00264
00265 HRESULT WINAPI
00266 Thunk_DDrawSurface3_Initialize(LPDIRECTDRAWSURFACE3 iface, LPDIRECTDRAW pDD,
00267 LPDDSURFACEDESC pDDSD)
00268 {
00269 HRESULT retValue = DDERR_GENERIC;
00270 DDSURFACEDESC2 pDDSD2;
00271
00272 DX_WINDBG_trace();
00273
00274 ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
00275
00276 if (pDDSD != NULL)
00277 {
00278 DDSURFACEDESC2 pDDSD2;
00279 ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
00280 memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
00281 pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
00282 retValue = Main_DDrawSurface_Initialize((LPDIRECTDRAWSURFACE7) iface, pDD, &pDDSD2);
00283 memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
00284 pDDSD->dwSize = sizeof(DDSURFACEDESC);
00285 }
00286 else
00287 {
00288 retValue = Main_DDrawSurface_Initialize ((LPDIRECTDRAWSURFACE7) iface, pDD, NULL);
00289
00290 }
00291
00292 return retValue;
00293 }
00294
00295 HRESULT WINAPI
00296 Thunk_DDrawSurface3_IsLost(LPDIRECTDRAWSURFACE3 iface)
00297 {
00298 DX_WINDBG_trace();
00299
00300 return Main_DDrawSurface_IsLost((LPDIRECTDRAWSURFACE7) iface);
00301 }
00302
00303 HRESULT WINAPI
00304 Thunk_DDrawSurface3_Lock(LPDIRECTDRAWSURFACE3 iface, LPRECT pRect,
00305 LPDDSURFACEDESC pDDSD, DWORD dwFlags, HANDLE events)
00306 {
00307
00308 HRESULT retValue = DDERR_GENERIC;
00309 DDSURFACEDESC2 pDDSD2;
00310
00311 DX_WINDBG_trace();
00312
00313 ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
00314
00315 if (pDDSD != NULL)
00316 {
00317 DDSURFACEDESC2 pDDSD2;
00318 ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
00319 memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
00320 pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
00321 retValue = Main_DDrawSurface_Lock ( (LPDIRECTDRAWSURFACE7) iface, pRect, &pDDSD2, dwFlags, events);
00322 memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
00323 pDDSD->dwSize = sizeof(DDSURFACEDESC);
00324 }
00325 else
00326 {
00327 retValue = Main_DDrawSurface_Lock ( (LPDIRECTDRAWSURFACE7) iface, pRect, NULL, dwFlags, events);
00328 }
00329
00330 return retValue;
00331
00332 }
00333
00334 HRESULT WINAPI
00335 Thunk_DDrawSurface3_ReleaseDC(LPDIRECTDRAWSURFACE3 iface, HDC hDC)
00336 {
00337 DX_WINDBG_trace();
00338
00339 return Main_DDrawSurface_ReleaseDC((LPDIRECTDRAWSURFACE7) iface, hDC);
00340 }
00341
00342 HRESULT WINAPI
00343 Thunk_DDrawSurface3_Restore(LPDIRECTDRAWSURFACE3 iface)
00344 {
00345 DX_WINDBG_trace();
00346
00347 return Main_DDrawSurface_Restore((LPDIRECTDRAWSURFACE7) iface);
00348 }
00349
00350 HRESULT WINAPI
00351 Thunk_DDrawSurface3_SetClipper(LPDIRECTDRAWSURFACE3 iface, LPDIRECTDRAWCLIPPER pDDClipper)
00352 {
00353 DX_WINDBG_trace();
00354
00355 return Main_DDrawSurface_SetClipper ((LPDIRECTDRAWSURFACE7) iface, pDDClipper);
00356 }
00357
00358 HRESULT WINAPI
00359 Thunk_DDrawSurface3_SetColorKey(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags,
00360 LPDDCOLORKEY pCKey)
00361 {
00362 DX_WINDBG_trace();
00363
00364 return Main_DDrawSurface_SetColorKey ((LPDIRECTDRAWSURFACE7) iface, dwFlags, pCKey);
00365 }
00366
00367 HRESULT WINAPI
00368 Thunk_DDrawSurface3_SetOverlayPosition(LPDIRECTDRAWSURFACE3 iface, LONG X,LONG Y)
00369 {
00370 DX_WINDBG_trace();
00371
00372 return Main_DDrawSurface_SetOverlayPosition ((LPDIRECTDRAWSURFACE7) iface, X, Y);
00373 }
00374
00375 HRESULT WINAPI
00376 Thunk_DDrawSurface3_SetPalette(LPDIRECTDRAWSURFACE3 iface,
00377 LPDIRECTDRAWPALETTE pPalette)
00378 {
00379 DX_WINDBG_trace();
00380
00381 return Main_DDrawSurface_SetPalette ((LPDIRECTDRAWSURFACE7) iface, pPalette);
00382 }
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393 HRESULT WINAPI
00394 Thunk_DDrawSurface3_Unlock(LPVOID iface, LPVOID pRect)
00395 {
00396 DX_WINDBG_trace();
00397 DX_STUB;
00398 }
00399
00400 HRESULT WINAPI
00401 Thunk_DDrawSurface3_UpdateOverlay(LPDIRECTDRAWSURFACE3 iface, LPRECT pSrcRect, LPDIRECTDRAWSURFACE3 pDstSurface,
00402 LPRECT pDstRect, DWORD dwFlags, LPDDOVERLAYFX pFX)
00403 {
00404
00405 DX_WINDBG_trace();
00406
00407 return Main_DDrawSurface_UpdateOverlay ( (LPDIRECTDRAWSURFACE7) iface, pSrcRect,
00408 (LPDIRECTDRAWSURFACE7) pDstSurface, pDstRect, dwFlags, pFX);
00409 }
00410
00411 HRESULT WINAPI
00412 Thunk_DDrawSurface3_UpdateOverlayDisplay(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags)
00413 {
00414 DX_WINDBG_trace();
00415
00416 return Main_DDrawSurface_UpdateOverlayDisplay((LPDIRECTDRAWSURFACE7) iface, dwFlags);
00417 }
00418
00419 HRESULT WINAPI
00420 Thunk_DDrawSurface3_UpdateOverlayZOrder(LPDIRECTDRAWSURFACE3 iface,
00421 DWORD dwFlags,
00422 LPDIRECTDRAWSURFACE3 pSurfReference)
00423 {
00424 DX_WINDBG_trace();
00425 return Main_DDrawSurface_UpdateOverlayZOrder((LPDIRECTDRAWSURFACE7) iface, dwFlags,
00426 (LPDIRECTDRAWSURFACE7) pSurfReference);
00427 }
00428
00429 HRESULT WINAPI
00430 Thunk_DDrawSurface3_GetDDInterface(LPDIRECTDRAWSURFACE3 iface, LPVOID* ppDD)
00431 {
00432 DX_WINDBG_trace();
00433
00434 return Main_DDrawSurface_GetDDInterface((LPDIRECTDRAWSURFACE7) iface, ppDD);
00435 }
00436
00437 HRESULT WINAPI
00438 Thunk_DDrawSurface3_PageLock(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags)
00439 {
00440 DX_WINDBG_trace();
00441
00442 return Main_DDrawSurface_PageLock((LPDIRECTDRAWSURFACE7) iface, dwFlags);
00443 }
00444
00445 HRESULT WINAPI
00446 Thunk_DDrawSurface3_PageUnlock(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags)
00447 {
00448 DX_WINDBG_trace();
00449
00450 return Main_DDrawSurface_PageUnlock((LPDIRECTDRAWSURFACE7) iface, dwFlags);
00451 }
00452
00453 HRESULT WINAPI
00454 Thunk_DDrawSurface3_SetSurfaceDesc(LPDIRECTDRAWSURFACE3 iface,
00455 LPDDSURFACEDESC pDDSD, DWORD dwFlags)
00456 {
00457 HRESULT retValue = DDERR_GENERIC;
00458
00459 DX_WINDBG_trace();
00460
00461 if (pDDSD != NULL)
00462 {
00463 DDSURFACEDESC2 pDDSD2;
00464 ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
00465 memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
00466 pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
00467 retValue = Main_DDrawSurface_SetSurfaceDesc((LPDIRECTDRAWSURFACE7) iface, &pDDSD2, dwFlags);
00468 memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
00469 pDDSD->dwSize = sizeof(DDSURFACEDESC);
00470 }
00471 else
00472 {
00473 retValue = Main_DDrawSurface_SetSurfaceDesc((LPDIRECTDRAWSURFACE7) iface, NULL, dwFlags);
00474 }
00475
00476
00477 return retValue;
00478 }
00479
00480 IDirectDrawSurface3Vtbl DirectDrawSurface3_VTable =
00481 {
00482 Thunk_DDrawSurface3_QueryInterface,
00483 Thunk_DDrawSurface3_AddRef,
00484 Thunk_DDrawSurface3_Release,
00485 Thunk_DDrawSurface3_AddAttachedSurface,
00486 Thunk_DDrawSurface3_AddOverlayDirtyRect,
00487 Thunk_DDrawSurface3_Blt,
00488 Thunk_DDrawSurface3_BltBatch,
00489 Thunk_DDrawSurface3_BltFast,
00490 Thunk_DDrawSurface3_DeleteAttachedSurface,
00491 Thunk_DDrawSurface3_EnumAttachedSurfaces,
00492 Thunk_DDrawSurface3_EnumOverlayZOrders,
00493 Thunk_DDrawSurface3_Flip,
00494 Thunk_DDrawSurface3_GetAttachedSurface,
00495 Thunk_DDrawSurface3_GetBltStatus,
00496 Thunk_DDrawSurface3_GetCaps,
00497 Thunk_DDrawSurface3_GetClipper,
00498 Thunk_DDrawSurface3_GetColorKey,
00499 Thunk_DDrawSurface3_GetDC,
00500 Thunk_DDrawSurface3_GetFlipStatus,
00501 Thunk_DDrawSurface3_GetOverlayPosition,
00502 Thunk_DDrawSurface3_GetPalette,
00503 Thunk_DDrawSurface3_GetPixelFormat,
00504 Thunk_DDrawSurface3_GetSurfaceDesc,
00505 Thunk_DDrawSurface3_Initialize,
00506 Thunk_DDrawSurface3_IsLost,
00507 Thunk_DDrawSurface3_Lock,
00508 Thunk_DDrawSurface3_ReleaseDC,
00509 Thunk_DDrawSurface3_Restore,
00510 Thunk_DDrawSurface3_SetClipper,
00511 Thunk_DDrawSurface3_SetColorKey,
00512 Thunk_DDrawSurface3_SetOverlayPosition,
00513 Thunk_DDrawSurface3_SetPalette,
00514 Thunk_DDrawSurface3_Unlock,
00515 Thunk_DDrawSurface3_UpdateOverlay,
00516 Thunk_DDrawSurface3_UpdateOverlayDisplay,
00517 Thunk_DDrawSurface3_UpdateOverlayZOrder,
00518 Thunk_DDrawSurface3_GetDDInterface,
00519 Thunk_DDrawSurface3_PageLock,
00520 Thunk_DDrawSurface3_PageUnlock,
00521 Thunk_DDrawSurface3_SetSurfaceDesc
00522 };