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

📄 ddraw_thunk.c

📁 这是一个开放源代码的与WINNT/WIN2K/WIN2003兼容的操作系统
💻 C
📖 第 1 页 / 共 2 页
字号:
{
  
	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_GetDisplayMode((LPDIRECTDRAW7) iface, &pDDSD2); 
       memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
	   pDDSD->dwSize = sizeof(DDSURFACEDESC);
	}
	else
	{
		retValue =   Main_DirectDraw_GetDisplayMode((LPDIRECTDRAW7) iface, NULL); 
	}

    return retValue;
}

HRESULT WINAPI
ThunkDirectDraw2_GetDisplayMode(LPDIRECTDRAW2 iface, LPDDSURFACEDESC pDDSD)
{
    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_GetDisplayMode((LPDIRECTDRAW7) iface, &pDDSD2); 
       memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
	   pDDSD->dwSize = sizeof(DDSURFACEDESC);
	}
	else
	{
		retValue =   Main_DirectDraw_GetDisplayMode((LPDIRECTDRAW7) iface, NULL); 
	}

    return retValue;
}

HRESULT WINAPI
ThunkDirectDraw4_GetDisplayMode(LPDIRECTDRAW4 iface, LPDDSURFACEDESC2 pDDSD2)
{
	DX_WINDBG_trace();

    return  Main_DirectDraw_GetDisplayMode((LPDIRECTDRAW7) iface, pDDSD2); 
}

HRESULT WINAPI
ThunkDirectDraw_GetFourCCCodes(LPDIRECTDRAW iface, LPDWORD pNumCodes,
			       LPDWORD pCodes)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_GetFourCCCodes((LPDIRECTDRAW7) iface, pNumCodes, pCodes);
}

HRESULT WINAPI
ThunkDirectDraw2_GetFourCCCodes(LPDIRECTDRAW2 iface, LPDWORD pNumCodes,
				LPDWORD pCodes)
{
   DX_WINDBG_trace();

   return Main_DirectDraw_GetFourCCCodes((LPDIRECTDRAW7) iface, pNumCodes, pCodes);
}

HRESULT WINAPI
ThunkDirectDraw4_GetFourCCCodes(LPDIRECTDRAW4 iface, LPDWORD pNumCodes,
				LPDWORD pCodes)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_GetFourCCCodes((LPDIRECTDRAW7) iface, pNumCodes, pCodes);
}

HRESULT WINAPI
ThunkDirectDraw_GetGDISurface(LPDIRECTDRAW iface, LPDIRECTDRAWSURFACE *lplpGDIDDSSurface)
{
   DX_WINDBG_trace();

   return Main_DirectDraw_GetGDISurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7 *) lplpGDIDDSSurface);
}

HRESULT WINAPI
ThunkDirectDraw2_GetGDISurface(LPDIRECTDRAW2 iface, LPDIRECTDRAWSURFACE *lplpGDIDDSSurface)
{
   DX_WINDBG_trace();

   return Main_DirectDraw_GetGDISurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7 *) lplpGDIDDSSurface);
}

HRESULT WINAPI
ThunkDirectDraw4_GetGDISurface(LPDIRECTDRAW4 iface, LPDIRECTDRAWSURFACE4 *lplpGDIDDSSurface)
{
   DX_WINDBG_trace();

   return Main_DirectDraw_GetGDISurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7 *) lplpGDIDDSSurface);
}

HRESULT WINAPI
ThunkDirectDraw_GetMonitorFrequency(LPDIRECTDRAW iface, LPDWORD pdwFreq)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_GetMonitorFrequency((LPDIRECTDRAW7) iface, pdwFreq);
}

HRESULT WINAPI
ThunkDirectDraw2_GetMonitorFrequency(LPDIRECTDRAW2 iface, LPDWORD pdwFreq)
{
 	DX_WINDBG_trace();

    return Main_DirectDraw_GetMonitorFrequency((LPDIRECTDRAW7) iface, pdwFreq);
}

HRESULT WINAPI
ThunkDirectDraw4_GetMonitorFrequency(LPDIRECTDRAW4 iface, LPDWORD pdwFreq)
{
  	DX_WINDBG_trace();

    return Main_DirectDraw_GetMonitorFrequency((LPDIRECTDRAW7) iface, pdwFreq);
}

HRESULT WINAPI
ThunkDirectDraw_GetScanLine(LPDIRECTDRAW iface, LPDWORD lpdwScanLine)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_GetScanLine((LPDIRECTDRAW7) iface, lpdwScanLine);
}

HRESULT WINAPI
ThunkDirectDraw2_GetScanLine(LPDIRECTDRAW2 iface, LPDWORD lpdwScanLine)
{
   DX_WINDBG_trace();

   return Main_DirectDraw_GetScanLine((LPDIRECTDRAW7) iface, lpdwScanLine);
}

HRESULT WINAPI
ThunkDirectDraw4_GetScanLine(LPDIRECTDRAW4 iface, LPDWORD lpdwScanLine)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_GetScanLine((LPDIRECTDRAW7) iface, lpdwScanLine);
}

HRESULT WINAPI
ThunkDirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW iface, LPBOOL lpbIsInVB)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_GetVerticalBlankStatus((LPDIRECTDRAW7) iface, lpbIsInVB);
}

HRESULT WINAPI
ThunkDirectDraw2_GetVerticalBlankStatus(LPDIRECTDRAW2 iface, LPBOOL lpbIsInVB)
{
    DX_WINDBG_trace();

    return Main_DirectDraw_GetVerticalBlankStatus((LPDIRECTDRAW7) iface, lpbIsInVB);
}

HRESULT WINAPI
ThunkDirectDraw4_GetVerticalBlankStatus(LPDIRECTDRAW4 iface, LPBOOL lpbIsInVB)
{
    DX_WINDBG_trace();

    return Main_DirectDraw_GetVerticalBlankStatus((LPDIRECTDRAW7) iface, lpbIsInVB);
}

HRESULT WINAPI
ThunkDirectDraw_Initialize(LPDIRECTDRAW iface, LPGUID pGUID)
{
    DX_WINDBG_trace();
       
	if (iface==NULL) 
	{
		return DDERR_NOTINITIALIZED;
	}
	
    return DDERR_ALREADYINITIALIZED;	
}

HRESULT WINAPI
ThunkDirectDraw2_Initialize(LPDIRECTDRAW2 iface, LPGUID pGUID)
{
    DX_WINDBG_trace();
       
	if (iface==NULL) 
	{
		return DDERR_NOTINITIALIZED;
	}
	
    return DDERR_ALREADYINITIALIZED;	
}

HRESULT WINAPI
ThunkDirectDraw4_Initialize(LPDIRECTDRAW4 iface, LPGUID pGUID)
{
    DX_WINDBG_trace();
       
	if (iface==NULL) 
	{
		return DDERR_NOTINITIALIZED;
	}
	
    return DDERR_ALREADYINITIALIZED;	
}


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

    return Main_DirectDraw_RestoreDisplayMode((LPDIRECTDRAW7) iface);
}

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

    return Main_DirectDraw_RestoreDisplayMode((LPDIRECTDRAW7) iface);
}

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

    return Main_DirectDraw_RestoreDisplayMode((LPDIRECTDRAW7) iface);
}

HRESULT WINAPI
ThunkDirectDraw_SetCooperativeLevel(LPDIRECTDRAW iface, HWND hwnd, DWORD dwFlags)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_SetCooperativeLevel ((LPDIRECTDRAW7) iface,  hwnd, dwFlags);
}

HRESULT WINAPI
ThunkDirectDraw2_SetCooperativeLevel(LPDIRECTDRAW2 iface, HWND hwnd, DWORD dwFlags)
{
   	DX_WINDBG_trace();

    return Main_DirectDraw_SetCooperativeLevel ((LPDIRECTDRAW7) iface,  hwnd, dwFlags);
}

HRESULT WINAPI
ThunkDirectDraw4_SetCooperativeLevel(LPDIRECTDRAW4 iface, HWND hwnd, DWORD dwFlags)
{
   	DX_WINDBG_trace();

    return Main_DirectDraw_SetCooperativeLevel ((LPDIRECTDRAW7) iface,  hwnd, dwFlags);
}

HRESULT WINAPI
ThunkDirectDraw_SetDisplayMode(LPDIRECTDRAW iface, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP)
{
	DX_WINDBG_trace();

	return Main_DirectDraw_SetDisplayMode ((LPDIRECTDRAW7) iface, dwWidth, dwHeight, dwBPP, 0, 0);
}

HRESULT WINAPI
ThunkDirectDraw2_SetDisplayMode(LPDIRECTDRAW2 iface, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD d, DWORD e)
{
    DX_WINDBG_trace();

	return Main_DirectDraw_SetDisplayMode ((LPDIRECTDRAW7) iface, dwWidth, dwHeight, dwBPP, 0, 0);
}

HRESULT WINAPI
ThunkDirectDraw4_SetDisplayMode(LPDIRECTDRAW4 iface, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD d, DWORD e)
{
    DX_WINDBG_trace();

	return Main_DirectDraw_SetDisplayMode ((LPDIRECTDRAW7) iface, dwWidth, dwHeight, dwBPP, 0, 0);
}

HRESULT WINAPI
ThunkDirectDraw_WaitForVerticalBlank(LPDIRECTDRAW iface, DWORD dwFlags, HANDLE hEvent)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_WaitForVerticalBlank((LPDIRECTDRAW7) iface, dwFlags, hEvent);
}

HRESULT WINAPI
ThunkDirectDraw2_WaitForVerticalBlank(LPDIRECTDRAW2 iface, DWORD dwFlags, HANDLE hEvent)
{
    DX_WINDBG_trace();

    return Main_DirectDraw_WaitForVerticalBlank((LPDIRECTDRAW7) iface, dwFlags, hEvent);
}

HRESULT WINAPI
ThunkDirectDraw4_WaitForVerticalBlank(LPDIRECTDRAW4 iface, DWORD dwFlags, HANDLE hEvent)
{
    DX_WINDBG_trace();

    return Main_DirectDraw_WaitForVerticalBlank((LPDIRECTDRAW7) iface, dwFlags, hEvent);
}





HRESULT WINAPI
ThunkDirectDraw4_GetSurfaceFromDC(LPDIRECTDRAW4 iface, HDC hdc, LPDIRECTDRAWSURFACE4 *pSurf)
{
	DX_WINDBG_trace();

    return Main_DirectDraw_GetSurfaceFromDC((LPDIRECTDRAW7) iface,  hdc, (LPDIRECTDRAWSURFACE7 *) pSurf);
}

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

    return Main_DirectDraw_RestoreAllSurfaces((LPDIRECTDRAW7) iface);
}

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

    return Main_DirectDraw_TestCooperativeLevel((LPDIRECTDRAW7) iface);
}



HRESULT WINAPI
ThunkDirectDraw4_GetDeviceIdentifier(LPDIRECTDRAW4 iface,
				     LPDDDEVICEIDENTIFIER pDDDI, DWORD dwFlags)
{
    HRESULT retValue = DDERR_GENERIC;
	
	DX_WINDBG_trace();

	if (pDDDI != NULL)
	{
       
	   DDDEVICEIDENTIFIER2 pDDDI2;	   
	   ZeroMemory(&pDDDI2,sizeof(DDDEVICEIDENTIFIER2));
	   memcpy(&pDDDI2, pDDDI, sizeof(DDDEVICEIDENTIFIER));	  
	   retValue = Main_DirectDraw_GetDeviceIdentifier((LPDIRECTDRAW7) iface, &pDDDI2, dwFlags);
       memcpy(pDDDI, &pDDDI2, sizeof(DDDEVICEIDENTIFIER));	   	   
	}
	else
	{
		retValue = Main_DirectDraw_GetDeviceIdentifier((LPDIRECTDRAW7) iface, NULL, dwFlags);
	}

    return retValue;
}



IDirectDrawVtbl DirectDraw_Vtable =
{
    ThunkDirectDraw_QueryInterface,
    ThunkDirectDraw_AddRef,
    ThunkDirectDraw_Release,
    ThunkDirectDraw_Compact,
    ThunkDirectDraw_CreateClipper,
    ThunkDirectDraw_CreatePalette,
    ThunkDirectDraw_CreateSurface,
    ThunkDirectDraw_DuplicateSurface,
    ThunkDirectDraw_EnumDisplayModes,
    ThunkDirectDraw_EnumSurfaces,
    ThunkDirectDraw_FlipToGDISurface,
    ThunkDirectDraw_GetCaps,
    ThunkDirectDraw_GetDisplayMode,
    ThunkDirectDraw_GetFourCCCodes,
    ThunkDirectDraw_GetGDISurface,
    ThunkDirectDraw_GetMonitorFrequency,
    ThunkDirectDraw_GetScanLine,
    ThunkDirectDraw_GetVerticalBlankStatus,
    ThunkDirectDraw_Initialize,
    ThunkDirectDraw_RestoreDisplayMode,
    ThunkDirectDraw_SetCooperativeLevel,
    ThunkDirectDraw_SetDisplayMode,
    ThunkDirectDraw_WaitForVerticalBlank,
};

IDirectDraw2Vtbl DirectDraw2_Vtable =
{
    ThunkDirectDraw2_QueryInterface,
    ThunkDirectDraw2_AddRef,
    ThunkDirectDraw2_Release,
    ThunkDirectDraw2_Compact,
    ThunkDirectDraw2_CreateClipper,
    ThunkDirectDraw2_CreatePalette,
    ThunkDirectDraw2_CreateSurface,
    ThunkDirectDraw2_DuplicateSurface,
    ThunkDirectDraw2_EnumDisplayModes,
    ThunkDirectDraw2_EnumSurfaces,
    ThunkDirectDraw2_FlipToGDISurface,
    ThunkDirectDraw2_GetCaps,
    ThunkDirectDraw2_GetDisplayMode,
    ThunkDirectDraw2_GetFourCCCodes,
    ThunkDirectDraw2_GetGDISurface,
    ThunkDirectDraw2_GetMonitorFrequency,
    ThunkDirectDraw2_GetScanLine,
    ThunkDirectDraw2_GetVerticalBlankStatus,
    ThunkDirectDraw2_Initialize,
    ThunkDirectDraw2_RestoreDisplayMode,
    ThunkDirectDraw2_SetCooperativeLevel,
    ThunkDirectDraw2_SetDisplayMode,
    ThunkDirectDraw2_WaitForVerticalBlank,
    ThunkDirectDraw2_GetAvailableVidMem
};

IDirectDraw4Vtbl DirectDraw4_Vtable =
{
    ThunkDirectDraw4_QueryInterface,
    ThunkDirectDraw4_AddRef,
    ThunkDirectDraw4_Release,
    ThunkDirectDraw4_Compact,
    ThunkDirectDraw4_CreateClipper,
    ThunkDirectDraw4_CreatePalette,
    ThunkDirectDraw4_CreateSurface,
    ThunkDirectDraw4_DuplicateSurface,
    ThunkDirectDraw4_EnumDisplayModes,
    ThunkDirectDraw4_EnumSurfaces,
    ThunkDirectDraw4_FlipToGDISurface,
    ThunkDirectDraw4_GetCaps,
    ThunkDirectDraw4_GetDisplayMode,
    ThunkDirectDraw4_GetFourCCCodes,
    ThunkDirectDraw4_GetGDISurface,
    ThunkDirectDraw4_GetMonitorFrequency,
    ThunkDirectDraw4_GetScanLine,
    ThunkDirectDraw4_GetVerticalBlankStatus,
    ThunkDirectDraw4_Initialize,
    ThunkDirectDraw4_RestoreDisplayMode,
    ThunkDirectDraw4_SetCooperativeLevel,
    ThunkDirectDraw4_SetDisplayMode,
    ThunkDirectDraw4_WaitForVerticalBlank,
    ThunkDirectDraw4_GetAvailableVidMem,
    ThunkDirectDraw4_GetSurfaceFromDC,
    ThunkDirectDraw4_RestoreAllSurfaces,
    ThunkDirectDraw4_TestCooperativeLevel,
    ThunkDirectDraw4_GetDeviceIdentifier
};

⌨️ 快捷键说明

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