⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ddraw_thunk.c

📁 这是一个开放源代码的与WINNT/WIN2K/WIN2003兼容的操作系统
💻 C
📖 第 1 页 / 共 2 页
字号:


#include "../rosdraw.h"



HRESULT WINAPI
ThunkDirectDraw_QueryInterface(LPDIRECTDRAW iface, REFIID iid, LPVOID *ppObj)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_QueryInterface ((LPDIRECTDRAW7) iface, iid, ppObj);
}

HRESULT WINAPI
ThunkDirectDraw2_QueryInterface(LPDIRECTDRAW2 iface, REFIID iid, LPVOID *obj)
{
	DX_WINDBG_trace();

	return Main_DirectDraw_QueryInterface ((LPDIRECTDRAW7) iface, iid, obj);
}


HRESULT WINAPI
ThunkDirectDraw4_QueryInterface(LPDIRECTDRAW4 iface, REFIID iid, LPVOID *ppObj)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_QueryInterface ((LPDIRECTDRAW7) iface, iid, ppObj);
}

ULONG WINAPI
ThunkDirectDraw_AddRef(LPDIRECTDRAW iface)
{
	DX_WINDBG_trace();
	
    return Main_DirectDraw_AddRef((LPDIRECTDRAW7) iface);
}

ULONG WINAPI
ThunkDirectDraw2_AddRef(LPDIRECTDRAW2 iface)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_AddRef((LPDIRECTDRAW7) iface);
}

ULONG WINAPI
ThunkDirectDraw4_AddRef(LPDIRECTDRAW4 iface)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_AddRef((LPDIRECTDRAW7) iface);
}

ULONG WINAPI
ThunkDirectDraw_Release(LPDIRECTDRAW iface)
{
	DX_WINDBG_trace();

	return Main_DirectDraw_Release ((LPDIRECTDRAW7) iface);     
}

ULONG WINAPI
ThunkDirectDraw2_Release(LPDIRECTDRAW2 iface)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_Release ((LPDIRECTDRAW7) iface);     
}

ULONG WINAPI
ThunkDirectDraw4_Release(LPDIRECTDRAW4 iface)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_Release ((LPDIRECTDRAW7) iface);    
}

HRESULT WINAPI
ThunkDirectDraw_Compact(LPDIRECTDRAW iface)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_Compact((LPDIRECTDRAW7) iface) ;
}

HRESULT WINAPI
ThunkDirectDraw2_Compact(LPDIRECTDRAW2 iface)
{
    DX_WINDBG_trace();

    return Main_DirectDraw_Compact((LPDIRECTDRAW7) iface) ;
}

HRESULT WINAPI
ThunkDirectDraw4_Compact(LPDIRECTDRAW4 iface)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_Compact((LPDIRECTDRAW7) iface) ;
}

HRESULT WINAPI
ThunkDirectDraw_CreateClipper(LPDIRECTDRAW iface,DWORD dwFlags,LPDIRECTDRAWCLIPPER *ppClipper,IUnknown *pUnkOuter)
{    
	DX_WINDBG_trace();

	return Main_DirectDraw_CreateClipper( (LPDIRECTDRAW7) iface, dwFlags, ppClipper, pUnkOuter);   	
}

HRESULT WINAPI
ThunkDirectDraw2_CreateClipper(LPDIRECTDRAW2 iface,DWORD dwFlags,LPDIRECTDRAWCLIPPER *ppClipper,IUnknown *pUnkOuter)
{
    DX_WINDBG_trace();

	return Main_DirectDraw_CreateClipper( (LPDIRECTDRAW7) iface, dwFlags, ppClipper, pUnkOuter);   
}

HRESULT WINAPI
ThunkDirectDraw4_CreateClipper(LPDIRECTDRAW4 iface,DWORD dwFlags,LPDIRECTDRAWCLIPPER *ppClipper,IUnknown *pUnkOuter)
{
   DX_WINDBG_trace();

   return Main_DirectDraw_CreateClipper( (LPDIRECTDRAW7) iface, dwFlags, ppClipper, pUnkOuter);   
}

HRESULT WINAPI
ThunkDirectDraw_CreatePalette(LPDIRECTDRAW iface, DWORD dwFlags,
			      LPPALETTEENTRY pEntries,
			      LPDIRECTDRAWPALETTE *ppPalette,
			      IUnknown *pUnkOuter)
{
    DX_WINDBG_trace();

	return Main_DirectDraw_CreatePalette( (LPDIRECTDRAW7) iface,  dwFlags, pEntries,  ppPalette, pUnkOuter);
}

HRESULT WINAPI
ThunkDirectDraw2_CreatePalette(LPDIRECTDRAW2 iface, DWORD dwFlags,
			       LPPALETTEENTRY pEntries,
			       LPDIRECTDRAWPALETTE *ppPalette,
			       IUnknown *pUnkOuter)
{
    DX_WINDBG_trace();

	return Main_DirectDraw_CreatePalette( (LPDIRECTDRAW7) iface,  dwFlags, pEntries,  ppPalette, pUnkOuter);
}

HRESULT WINAPI
ThunkDirectDraw4_CreatePalette(LPDIRECTDRAW4 iface, DWORD dwFlags, LPPALETTEENTRY pEntries, 
							   LPDIRECTDRAWPALETTE *ppPalette, IUnknown *pUnkOuter)
{
    DX_WINDBG_trace();

	return Main_DirectDraw_CreatePalette( (LPDIRECTDRAW7) iface,  dwFlags, pEntries,  ppPalette, pUnkOuter);
}

HRESULT WINAPI
ThunkDirectDraw_CreateSurface(LPDIRECTDRAW iface, LPDDSURFACEDESC pDDSD,
			      LPDIRECTDRAWSURFACE *ppSurf,
			      IUnknown *pUnkOuter)
{
	HRESULT retValue = DDERR_GENERIC;	
	LPDDRAWI_DDRAWSURFACE_INT That;

	DX_WINDBG_trace();
	
	if (pDDSD != NULL)
	{
	   DDSURFACEDESC2 pDDSD2;
	   ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
	   memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
	   pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
	   retValue =  Main_DirectDraw_CreateSurface ((LPDIRECTDRAW7) iface, &pDDSD2, 
		                                          (LPDIRECTDRAWSURFACE7 *) ppSurf, pUnkOuter); 
       memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
	   pDDSD->dwSize = sizeof(DDSURFACEDESC);
	}
	else
	{
		retValue =  Main_DirectDraw_CreateSurface ((LPDIRECTDRAW7) iface, NULL, 
			                                       (LPDIRECTDRAWSURFACE7 *) ppSurf, pUnkOuter);
	}
    
	That  = (LPDDRAWI_DDRAWSURFACE_INT) *ppSurf;
	That->lpVtbl = &DirectDrawSurface3_VTable;

    return retValue;
}

HRESULT WINAPI
ThunkDirectDraw2_CreateSurface(LPDIRECTDRAW2 iface, LPDDSURFACEDESC pDDSD,
			                   LPDIRECTDRAWSURFACE *ppSurface, IUnknown *pUnkOuter)
{
    HRESULT retValue = DDERR_GENERIC;	
	LPDDRAWI_DDRAWSURFACE_INT That;

	DX_WINDBG_trace();
	
	if (pDDSD != NULL)
	{
	   DDSURFACEDESC2 pDDSD2;
	   ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
	   memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
	   pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
	   retValue =  Main_DirectDraw_CreateSurface ((LPDIRECTDRAW7) iface, &pDDSD2, 
		                                          (LPDIRECTDRAWSURFACE7 *) ppSurface, pUnkOuter); 
       memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
	   pDDSD->dwSize = sizeof(DDSURFACEDESC);
	}
	else
	{
		retValue =  Main_DirectDraw_CreateSurface ((LPDIRECTDRAW7) iface, NULL, 
			                                       (LPDIRECTDRAWSURFACE7 *) ppSurface, pUnkOuter);
	}

	That  = (LPDDRAWI_DDRAWSURFACE_INT) *ppSurface;
	That->lpVtbl = &DirectDrawSurface3_VTable;

    return retValue;
}

HRESULT WINAPI
ThunkDirectDraw4_CreateSurface(LPDIRECTDRAW4 iface, LPDDSURFACEDESC2 pDDSD2,
			                   LPDIRECTDRAWSURFACE4 *ppSurface, IUnknown *pUnkOuter)
{
	HRESULT retValue;	
	LPDDRAWI_DDRAWSURFACE_INT That;

	DX_WINDBG_trace();
	

	retValue = Main_DirectDraw_CreateSurface ((LPDIRECTDRAW7) iface, pDDSD2, 
		                                   (LPDIRECTDRAWSURFACE7 *) ppSurface, pUnkOuter);

	That  = (LPDDRAWI_DDRAWSURFACE_INT) *ppSurface;
	That->lpVtbl = &DirectDrawSurface3_VTable;

	return retValue;    
}

HRESULT WINAPI
ThunkDirectDraw_DuplicateSurface(LPDIRECTDRAW iface, LPDIRECTDRAWSURFACE src, LPDIRECTDRAWSURFACE *dst)
{
	DX_WINDBG_trace();

    return  Main_DirectDraw_DuplicateSurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7) src,
                                             (LPDIRECTDRAWSURFACE7*) dst); 
}

HRESULT WINAPI
ThunkDirectDraw2_DuplicateSurface(LPDIRECTDRAW2 iface, LPDIRECTDRAWSURFACE src, LPDIRECTDRAWSURFACE *dst)
{
    DX_WINDBG_trace();

    return  Main_DirectDraw_DuplicateSurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7) src,
                                             (LPDIRECTDRAWSURFACE7*) dst); 
}

HRESULT WINAPI
ThunkDirectDraw4_DuplicateSurface(LPDIRECTDRAW4 iface, LPDIRECTDRAWSURFACE4 src, LPDIRECTDRAWSURFACE4 *dst)
{
    DX_WINDBG_trace();

    return  Main_DirectDraw_DuplicateSurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7) src,
                                             (LPDIRECTDRAWSURFACE7*) dst); 
}

HRESULT WINAPI
ThunkDirectDraw_EnumDisplayModes(LPDIRECTDRAW iface, DWORD dwFlags,
				 LPDDSURFACEDESC pDDSD, LPVOID context,
				 LPDDENUMMODESCALLBACK cb)
{
    HRESULT retValue = DDERR_GENERIC;

	DX_WINDBG_trace();

	if (pDDSD != NULL)
	{
	   DDSURFACEDESC2 pDDSD2;
	   ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
	   memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
	   pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
	   retValue =  Main_DirectDraw_EnumDisplayModes((LPDIRECTDRAW7) iface, dwFlags, &pDDSD2, 
		                                             context, (LPDDENUMMODESCALLBACK2)cb); 
       memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
	   pDDSD->dwSize = sizeof(DDSURFACEDESC);
	}
	else
	{
		retValue =   Main_DirectDraw_EnumDisplayModes((LPDIRECTDRAW7) iface, dwFlags, NULL, 
			                                           context, (LPDDENUMMODESCALLBACK2)cb); 
	}

    return retValue;
}

HRESULT WINAPI
ThunkDirectDraw2_EnumDisplayModes(LPDIRECTDRAW2 iface, DWORD dwFlags,
				  LPDDSURFACEDESC pDDSD, LPVOID context,
				  LPDDENUMMODESCALLBACK cb)
{
    HRESULT retValue = DDERR_GENERIC;

	DX_WINDBG_trace();

	if (pDDSD != NULL)
	{
	   DDSURFACEDESC2 pDDSD2;
	   ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
	   memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
	   pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
	   retValue =  Main_DirectDraw_EnumDisplayModes((LPDIRECTDRAW7) iface, dwFlags, &pDDSD2, 
		                                             context, (LPDDENUMMODESCALLBACK2)cb); 
       memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
	   pDDSD->dwSize = sizeof(DDSURFACEDESC);
	}
	else
	{
		retValue =   Main_DirectDraw_EnumDisplayModes((LPDIRECTDRAW7) iface, dwFlags, NULL, 
			                                           context, (LPDDENUMMODESCALLBACK2)cb); 
	}

    return retValue;
}

HRESULT WINAPI
ThunkDirectDraw4_EnumDisplayModes(LPDIRECTDRAW4 iface, DWORD dwFlags,
				  LPDDSURFACEDESC2 pDDSD, LPVOID context,
				  LPDDENUMMODESCALLBACK2 cb)
{
   DX_WINDBG_trace();

   return Main_DirectDraw_EnumDisplayModes((LPDIRECTDRAW7) iface, dwFlags, pDDSD, context, cb); 
}





HRESULT WINAPI
ThunkDirectDraw_EnumSurfaces(LPDIRECTDRAW iface, DWORD dwFlags,
			     LPDDSURFACEDESC pDDSD, LPVOID context,
			     LPDDENUMSURFACESCALLBACK cb)
{
    HRESULT retValue = DDERR_GENERIC;

	DX_WINDBG_trace();

	if (pDDSD != NULL)
	{
	   DDSURFACEDESC2 pDDSD2;
	   ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
	   memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
	   pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
	   retValue =  Main_DirectDraw_EnumSurfaces((LPDIRECTDRAW7) iface, dwFlags, &pDDSD2, 
		                                         context, (LPDDENUMSURFACESCALLBACK7)cb); 
       memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
	   pDDSD->dwSize = sizeof(DDSURFACEDESC);
	}
	else
	{
		retValue =   Main_DirectDraw_EnumSurfaces((LPDIRECTDRAW7) iface, dwFlags, NULL, 
			                                       context, (LPDDENUMSURFACESCALLBACK7)cb); 
	}

    return retValue;
}

HRESULT WINAPI
ThunkDirectDraw2_EnumSurfaces(LPDIRECTDRAW2 iface, DWORD dwFlags,
			      LPDDSURFACEDESC pDDSD, LPVOID context,
			      LPDDENUMSURFACESCALLBACK cb)
{
    HRESULT retValue = DDERR_GENERIC;	

	DX_WINDBG_trace();

	if (pDDSD != NULL)
	{
	   DDSURFACEDESC2 pDDSD2;
	   ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
	   memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
	   pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
	   retValue =  Main_DirectDraw_EnumSurfaces((LPDIRECTDRAW7) iface, dwFlags, &pDDSD2, 
		                                         context, (LPDDENUMSURFACESCALLBACK7)cb); 
       memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
	   pDDSD->dwSize = sizeof(DDSURFACEDESC);
	}
	else
	{
		retValue =   Main_DirectDraw_EnumSurfaces((LPDIRECTDRAW7) iface, dwFlags, NULL, 
			                                       context, (LPDDENUMSURFACESCALLBACK7)cb); 
	}

    return retValue;
}

HRESULT WINAPI
ThunkDirectDraw4_EnumSurfaces(LPDIRECTDRAW4 iface, DWORD dwFlags,
			      LPDDSURFACEDESC2 pDDSD, LPVOID context,
			      LPDDENUMSURFACESCALLBACK2 cb)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_EnumSurfaces((LPDIRECTDRAW7) iface, dwFlags, pDDSD, context, (LPDDENUMSURFACESCALLBACK7)cb); 
}



HRESULT WINAPI
ThunkDirectDraw_FlipToGDISurface(LPDIRECTDRAW iface)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_FlipToGDISurface((LPDIRECTDRAW7) iface); 
}

HRESULT WINAPI
ThunkDirectDraw2_FlipToGDISurface(LPDIRECTDRAW2 iface)
{
   DX_WINDBG_trace();

   return Main_DirectDraw_FlipToGDISurface((LPDIRECTDRAW7) iface); 
}

HRESULT WINAPI
ThunkDirectDraw4_FlipToGDISurface(LPDIRECTDRAW4 iface)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_FlipToGDISurface((LPDIRECTDRAW7) iface); 
}

HRESULT WINAPI
ThunkDirectDraw_GetCaps(LPDIRECTDRAW iface, LPDDCAPS pDDC1, LPDDCAPS pDDC2)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_GetCaps((LPDIRECTDRAW7) iface, pDDC1, pDDC2); 
}

HRESULT WINAPI
ThunkDirectDraw2_GetCaps(LPDIRECTDRAW2 iface, LPDDCAPS pDDC1, LPDDCAPS pDDC2)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_GetCaps((LPDIRECTDRAW7) iface, pDDC1, pDDC2); 
}

HRESULT WINAPI
ThunkDirectDraw4_GetCaps(LPDIRECTDRAW4 iface, LPDDCAPS pDDC1, LPDDCAPS pDDC2)
{
   DX_WINDBG_trace();

   return Main_DirectDraw_GetCaps((LPDIRECTDRAW7) iface, pDDC1, pDDC2); 
}

HRESULT WINAPI
ThunkDirectDraw_GetDisplayMode(LPDIRECTDRAW iface, LPDDSURFACEDESC pDDSD)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -