-\r
-\r
-\r
-#include <windows.h>\r
-#include "ddraw.h"\r
-#include "rosddraw.h"\r
-#include "ddraw_private.h"\r
-\r
-static IDirectDraw7Vtbl HAL_DirectDraw_VTable;\r
-\r
-\r
-HRESULT HAL_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex)\r
-{ \r
- //This->local.lpGbl = &dd_gbl;\r
-\r
- This->final_release = HAL_DirectDraw_final_release;\r
- This->set_exclusive_mode = HAL_DirectDrawSet_exclusive_mode;\r
- // This->create_palette = HAL_DirectDrawPalette_Create;\r
-\r
- This->create_primary = HAL_DirectDraw_create_primary;\r
- This->create_backbuffer = HAL_DirectDraw_create_backbuffer;\r
- This->create_texture = HAL_DirectDraw_create_texture; \r
-\r
- // ICOM_INIT_INTERFACE(This, IDirectDraw7, HAL_DirectDraw_VTable);\r
- return S_OK;\r
-}\r
-\r
-void HAL_DirectDraw_final_release(IDirectDrawImpl *This)\r
-{\r
- \r
-}\r
-\r
-HRESULT HAL_DirectDrawSet_exclusive_mode(IDirectDrawImpl *This, DWORD dwEnterExcl)\r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-\r
-HRESULT HAL_DirectDraw_create_primary(IDirectDrawImpl* This, const DDSURFACEDESC2* pDDSD, LPDIRECTDRAWSURFACE7* ppSurf,\r
- IUnknown* pUnkOuter)\r
-\r
-{\r
- return DDERR_UNSUPPORTED;\r
- }\r
-\r
-HRESULT HAL_DirectDraw_create_backbuffer(IDirectDrawImpl* This,\r
- const DDSURFACEDESC2* pDDSD,\r
- LPDIRECTDRAWSURFACE7* ppSurf,\r
- IUnknown* pUnkOuter,\r
- IDirectDrawSurfaceImpl* primary)\r
-{\r
- return DDERR_UNSUPPORTED;\r
- }\r
-\r
-HRESULT HAL_DirectDraw_create_texture(IDirectDrawImpl* This,\r
- const DDSURFACEDESC2* pDDSD,\r
- LPDIRECTDRAWSURFACE7* ppSurf,\r
- LPUNKNOWN pOuter,\r
- DWORD dwMipMapLevel)\r
-{\r
- return DDERR_UNSUPPORTED;\r
- }\r
-\r
-\r
-\r
-\r
-\r
-\r
-/* basic funtion for the com object */\r
-HRESULT WINAPI HAL_DirectDraw_QueryInterface(LPDIRECTDRAW7 iface,REFIID refiid,LPVOID *obj) \r
-{\r
- return DDERR_UNSUPPORTED;\r
- }\r
-\r
-ULONG WINAPI HAL_DirectDraw_AddRef(LPDIRECTDRAW7 iface) \r
-{\r
- IDirectDrawImpl *This = (IDirectDrawImpl *)iface;\r
- ULONG ref = InterlockedIncrement(&This->ref);\r
-\r
- //TRACE("(%p)->() incrementing from %lu.\n", This, ref -1);\r
-\r
- return ref;\r
-}\r
-\r
-ULONG WINAPI HAL_DirectDraw_Release(LPDIRECTDRAW7 iface) \r
-{\r
- IDirectDrawImpl *This = (IDirectDrawImpl *)iface;\r
- ULONG ref = InterlockedDecrement(&This->ref);\r
- \r
- if (ref == 0)\r
- {\r
- if (This->final_release != NULL)\r
- This->final_release(This);\r
-\r
- /* We free the private. This is an artifact of the fact that I don't\r
- * have the destructors set up correctly. */\r
- if (This->private != (This+1))\r
- HeapFree(GetProcessHeap(), 0, This->private);\r
-\r
- HeapFree(GetProcessHeap(), 0, This);\r
- }\r
-\r
- return ref;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_Compact(LPDIRECTDRAW7 iface) \r
-{\r
- \r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_CreateClipper(LPDIRECTDRAW7 iface, DWORD dwFlags, \r
- LPDIRECTDRAWCLIPPER *ppClipper, IUnknown *pUnkOuter)\r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-HRESULT WINAPI HAL_DirectDraw_CreatePalette(LPDIRECTDRAW7 iface, DWORD dwFlags,\r
- LPPALETTEENTRY palent,LPDIRECTDRAWPALETTE* ppPalette,LPUNKNOWN pUnknown)\r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_CreateSurface(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD,\r
- LPDIRECTDRAWSURFACE7 *ppSurf,IUnknown *pUnkOuter) \r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_DuplicateSurface(LPDIRECTDRAW7 iface, LPDIRECTDRAWSURFACE7 src,\r
- LPDIRECTDRAWSURFACE7* dst) \r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_EnumDisplayModes(LPDIRECTDRAW7 iface, DWORD dwFlags,\r
- LPDDSURFACEDESC2 pDDSD, LPVOID context, LPDDENUMMODESCALLBACK2 callback) \r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_EnumSurfaces(LPDIRECTDRAW7 iface, DWORD dwFlags,\r
- LPDDSURFACEDESC2 lpDDSD2, LPVOID context,\r
- LPDDENUMSURFACESCALLBACK7 callback) \r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface) \r
-{\r
-return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_GetCaps(LPDIRECTDRAW7 iface, LPDDCAPS pDriverCaps,\r
- LPDDCAPS pHELCaps) \r
-{\r
-return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD) \r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-\r
-HRESULT WINAPI HAL_DirectDraw_GetFourCCCodes(LPDIRECTDRAW7 iface, LPDWORD pNumCodes, LPDWORD pCodes)\r
-{\r
- \r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_GetGDISurface(LPDIRECTDRAW7 iface, \r
- LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface)\r
-{\r
- \r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_GetMonitorFrequency(LPDIRECTDRAW7 iface,LPDWORD freq)\r
-{ \r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine)\r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7 iface, LPBOOL status)\r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_Initialize(LPDIRECTDRAW7 iface, LPGUID lpGuid)\r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface)\r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_SetCooperativeLevel(LPDIRECTDRAW7 iface, HWND hwnd,\r
- DWORD cooplevel)\r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_SetDisplayMode(LPDIRECTDRAW7 iface, DWORD dwWidth,\r
- DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags)\r
-{\r
- \r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-\r
-HRESULT WINAPI HAL_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,\r
- HANDLE h)\r
-{\r
- \r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps,\r
- LPDWORD total, LPDWORD free) \r
-\r
-{\r
- \r
- return DDERR_UNSUPPORTED;\r
-}\r
- \r
-HRESULT WINAPI HAL_DirectDraw_GetSurfaceFromDC(LPDIRECTDRAW7 iface, HDC hdc,\r
- LPDIRECTDRAWSURFACE7 *lpDDS)\r
-{ \r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_RestoreAllSurfaces(LPDIRECTDRAW7 iface)\r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_TestCooperativeLevel(LPDIRECTDRAW7 iface) \r
-{\r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7 iface,\r
- LPDDDEVICEIDENTIFIER2 pDDDI, DWORD dwFlags)\r
-{ \r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_StartModeTest(LPDIRECTDRAW7 iface, LPSIZE pModes,\r
- DWORD dwNumModes, DWORD dwFlags)\r
-{ \r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-HRESULT WINAPI HAL_DirectDraw_EvaluateMode(LPDIRECTDRAW7 iface,DWORD a,DWORD* b)\r
-{ \r
- return DDERR_UNSUPPORTED;\r
-}\r
-\r
-/* End com interface */\r
-\r
-\r
-\r
-\r
-HRESULT WINAPI HAL_DirectDraw_Create(const GUID* pGUID, LPDIRECTDRAW7* pIface,\r
- IUnknown* pUnkOuter, BOOL ex)\r
-{\r
- \r
- HRESULT hr;\r
- IDirectDrawImpl* This;\r
- HDC desktop;\r
-\r
- /*\r
- This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,\r
- sizeof(IDirectDrawImpl)\r
- + sizeof(HAL_DirectDrawImpl));\r
- */\r
- This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,\r
- sizeof(IDirectDrawImpl));\r
-\r
- if (This == NULL) return E_OUTOFMEMORY;\r
-\r
- /* Note that this relation does *not* hold true if the DD object was\r
- * CoCreateInstanced then Initialized. */\r
- //This->private = (HAL_DirectDrawImpl *)(This+1);\r
-\r
- /* Initialize the DDCAPS structure */\r
- This->caps.dwSize = sizeof(This->caps);\r
-\r
- hr = HAL_DirectDraw_Construct(This, ex);\r
- if (FAILED(hr))\r
- HeapFree(GetProcessHeap(), 0, This);\r
- else *pIface = ICOM_INTERFACE(This, IDirectDraw7);\r
-\r
- /* create a scaner that check which driver we should get the HDC from */\r
- /* for now we always asume it is the active dirver that should be use. */\r
- \r
- desktop = GetWindowDC(GetDesktopWindow());\r
- *pIface = OsThunkDdCreateDirectDrawObject(desktop); \r
- if (pIface == NULL) hr == DDERR_NODIRECTDRAWHW; \r
-\r
- return DDERR_UNSUPPORTED; \r
-}\r
-\r
-static IDirectDraw7Vtbl HAL_DirectDraw_VTable =\r
-{\r
- HAL_DirectDraw_QueryInterface,\r
- HAL_DirectDraw_AddRef,\r
- HAL_DirectDraw_Release,\r
- HAL_DirectDraw_Compact,\r
- HAL_DirectDraw_CreateClipper,\r
- HAL_DirectDraw_CreatePalette,\r
- HAL_DirectDraw_CreateSurface,\r
- HAL_DirectDraw_DuplicateSurface,\r
- HAL_DirectDraw_EnumDisplayModes,\r
- HAL_DirectDraw_EnumSurfaces,\r
- HAL_DirectDraw_FlipToGDISurface,\r
- HAL_DirectDraw_GetCaps,\r
- HAL_DirectDraw_GetDisplayMode,\r
- HAL_DirectDraw_GetFourCCCodes,\r
- HAL_DirectDraw_GetGDISurface,\r
- HAL_DirectDraw_GetMonitorFrequency,\r
- HAL_DirectDraw_GetScanLine,\r
- HAL_DirectDraw_GetVerticalBlankStatus,\r
- HAL_DirectDraw_Initialize,\r
- HAL_DirectDraw_RestoreDisplayMode,\r
- HAL_DirectDraw_SetCooperativeLevel,\r
- HAL_DirectDraw_SetDisplayMode,\r
- HAL_DirectDraw_WaitForVerticalBlank,\r
- HAL_DirectDraw_GetAvailableVidMem,\r
- HAL_DirectDraw_GetSurfaceFromDC,\r
- HAL_DirectDraw_RestoreAllSurfaces,\r
- HAL_DirectDraw_TestCooperativeLevel,\r
- HAL_DirectDraw_GetDeviceIdentifier,\r
- HAL_DirectDraw_StartModeTest,\r
- HAL_DirectDraw_EvaluateMode\r
-};\r
+
+
+
+#include <windows.h>
+#include "ddraw.h"
+#include "rosddraw.h"
+#include "ddraw_private.h"
+
+static IDirectDraw7Vtbl HAL_DirectDraw_VTable;
+
+
+HRESULT HAL_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex)
+{
+ //This->local.lpGbl = &dd_gbl;
+
+ This->final_release = HAL_DirectDraw_final_release;
+ This->set_exclusive_mode = HAL_DirectDrawSet_exclusive_mode;
+ // This->create_palette = HAL_DirectDrawPalette_Create;
+
+ This->create_primary = HAL_DirectDraw_create_primary;
+ This->create_backbuffer = HAL_DirectDraw_create_backbuffer;
+ This->create_texture = HAL_DirectDraw_create_texture;
+
+ // ICOM_INIT_INTERFACE(This, IDirectDraw7, HAL_DirectDraw_VTable);
+ return S_OK;
+}
+
+void HAL_DirectDraw_final_release(IDirectDrawImpl *This)
+{
+
+}
+
+HRESULT HAL_DirectDrawSet_exclusive_mode(IDirectDrawImpl *This, DWORD dwEnterExcl)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+
+HRESULT HAL_DirectDraw_create_primary(IDirectDrawImpl* This, const DDSURFACEDESC2* pDDSD, LPDIRECTDRAWSURFACE7* ppSurf,
+ IUnknown* pUnkOuter)
+
+{
+ return DDERR_UNSUPPORTED;
+ }
+
+HRESULT HAL_DirectDraw_create_backbuffer(IDirectDrawImpl* This,
+ const DDSURFACEDESC2* pDDSD,
+ LPDIRECTDRAWSURFACE7* ppSurf,
+ IUnknown* pUnkOuter,
+ IDirectDrawSurfaceImpl* primary)
+{
+ return DDERR_UNSUPPORTED;
+ }
+
+HRESULT HAL_DirectDraw_create_texture(IDirectDrawImpl* This,
+ const DDSURFACEDESC2* pDDSD,
+ LPDIRECTDRAWSURFACE7* ppSurf,
+ LPUNKNOWN pOuter,
+ DWORD dwMipMapLevel)
+{
+ return DDERR_UNSUPPORTED;
+ }
+
+
+
+
+
+
+/* basic funtion for the com object */
+HRESULT WINAPI HAL_DirectDraw_QueryInterface(LPDIRECTDRAW7 iface,REFIID refiid,LPVOID *obj)
+{
+ return DDERR_UNSUPPORTED;
+ }
+
+ULONG WINAPI HAL_DirectDraw_AddRef(LPDIRECTDRAW7 iface)
+{
+ IDirectDrawImpl *This = (IDirectDrawImpl *)iface;
+ ULONG ref = InterlockedIncrement(&This->ref);
+
+ //TRACE("(%p)->() incrementing from %lu.\n", This, ref -1);
+
+ return ref;
+}
+
+ULONG WINAPI HAL_DirectDraw_Release(LPDIRECTDRAW7 iface)
+{
+ IDirectDrawImpl *This = (IDirectDrawImpl *)iface;
+ ULONG ref = InterlockedDecrement(&This->ref);
+
+ if (ref == 0)
+ {
+ if (This->final_release != NULL)
+ This->final_release(This);
+
+ /* We free the private. This is an artifact of the fact that I don't
+ * have the destructors set up correctly. */
+ if (This->private != (This+1))
+ HeapFree(GetProcessHeap(), 0, This->private);
+
+ HeapFree(GetProcessHeap(), 0, This);
+ }
+
+ return ref;
+}
+
+HRESULT WINAPI HAL_DirectDraw_Compact(LPDIRECTDRAW7 iface)
+{
+
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_CreateClipper(LPDIRECTDRAW7 iface, DWORD dwFlags,
+ LPDIRECTDRAWCLIPPER *ppClipper, IUnknown *pUnkOuter)
+{
+ return DDERR_UNSUPPORTED;
+}
+HRESULT WINAPI HAL_DirectDraw_CreatePalette(LPDIRECTDRAW7 iface, DWORD dwFlags,
+ LPPALETTEENTRY palent,LPDIRECTDRAWPALETTE* ppPalette,LPUNKNOWN pUnknown)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_CreateSurface(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD,
+ LPDIRECTDRAWSURFACE7 *ppSurf,IUnknown *pUnkOuter)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_DuplicateSurface(LPDIRECTDRAW7 iface, LPDIRECTDRAWSURFACE7 src,
+ LPDIRECTDRAWSURFACE7* dst)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_EnumDisplayModes(LPDIRECTDRAW7 iface, DWORD dwFlags,
+ LPDDSURFACEDESC2 pDDSD, LPVOID context, LPDDENUMMODESCALLBACK2 callback)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_EnumSurfaces(LPDIRECTDRAW7 iface, DWORD dwFlags,
+ LPDDSURFACEDESC2 lpDDSD2, LPVOID context,
+ LPDDENUMSURFACESCALLBACK7 callback)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface)
+{
+return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_GetCaps(LPDIRECTDRAW7 iface, LPDDCAPS pDriverCaps,
+ LPDDCAPS pHELCaps)
+{
+return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+
+HRESULT WINAPI HAL_DirectDraw_GetFourCCCodes(LPDIRECTDRAW7 iface, LPDWORD pNumCodes, LPDWORD pCodes)
+{
+
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_GetGDISurface(LPDIRECTDRAW7 iface,
+ LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface)
+{
+
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_GetMonitorFrequency(LPDIRECTDRAW7 iface,LPDWORD freq)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7 iface, LPBOOL status)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_Initialize(LPDIRECTDRAW7 iface, LPGUID lpGuid)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_SetCooperativeLevel(LPDIRECTDRAW7 iface, HWND hwnd,
+ DWORD cooplevel)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_SetDisplayMode(LPDIRECTDRAW7 iface, DWORD dwWidth,
+ DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags)
+{
+
+ return DDERR_UNSUPPORTED;
+}
+
+
+HRESULT WINAPI HAL_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,
+ HANDLE h)
+{
+
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps,
+ LPDWORD total, LPDWORD free)
+
+{
+
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_GetSurfaceFromDC(LPDIRECTDRAW7 iface, HDC hdc,
+ LPDIRECTDRAWSURFACE7 *lpDDS)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_RestoreAllSurfaces(LPDIRECTDRAW7 iface)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_TestCooperativeLevel(LPDIRECTDRAW7 iface)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7 iface,
+ LPDDDEVICEIDENTIFIER2 pDDDI, DWORD dwFlags)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_StartModeTest(LPDIRECTDRAW7 iface, LPSIZE pModes,
+ DWORD dwNumModes, DWORD dwFlags)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+HRESULT WINAPI HAL_DirectDraw_EvaluateMode(LPDIRECTDRAW7 iface,DWORD a,DWORD* b)
+{
+ return DDERR_UNSUPPORTED;
+}
+
+/* End com interface */
+
+
+
+
+HRESULT WINAPI HAL_DirectDraw_Create(const GUID* pGUID, LPDIRECTDRAW7* pIface,
+ IUnknown* pUnkOuter, BOOL ex)
+{
+
+ HRESULT hr;
+ IDirectDrawImpl* This;
+ HDC desktop;
+
+ /*
+ This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+ sizeof(IDirectDrawImpl)
+ + sizeof(HAL_DirectDrawImpl));
+ */
+ This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+ sizeof(IDirectDrawImpl));
+
+ if (This == NULL) return E_OUTOFMEMORY;
+
+ /* Note that this relation does *not* hold true if the DD object was
+ * CoCreateInstanced then Initialized. */
+ //This->private = (HAL_DirectDrawImpl *)(This+1);
+
+ /* Initialize the DDCAPS structure */
+ This->caps.dwSize = sizeof(This->caps);
+
+ hr = HAL_DirectDraw_Construct(This, ex);
+ if (FAILED(hr))
+ HeapFree(GetProcessHeap(), 0, This);
+ else *pIface = ICOM_INTERFACE(This, IDirectDraw7);
+
+ /* create a scaner that check which driver we should get the HDC from */
+ /* for now we always asume it is the active dirver that should be use. */
+
+ desktop = GetWindowDC(GetDesktopWindow());
+ *pIface = OsThunkDdCreateDirectDrawObject(desktop);
+ if (pIface == NULL) hr == DDERR_NODIRECTDRAWHW;
+
+ return DDERR_UNSUPPORTED;
+}
+
+static IDirectDraw7Vtbl HAL_DirectDraw_VTable =
+{
+ HAL_DirectDraw_QueryInterface,
+ HAL_DirectDraw_AddRef,
+ HAL_DirectDraw_Release,
+ HAL_DirectDraw_Compact,
+ HAL_DirectDraw_CreateClipper,
+ HAL_DirectDraw_CreatePalette,
+ HAL_DirectDraw_CreateSurface,
+ HAL_DirectDraw_DuplicateSurface,
+ HAL_DirectDraw_EnumDisplayModes,
+ HAL_DirectDraw_EnumSurfaces,
+ HAL_DirectDraw_FlipToGDISurface,
+ HAL_DirectDraw_GetCaps,
+ HAL_DirectDraw_GetDisplayMode,
+ HAL_DirectDraw_GetFourCCCodes,
+ HAL_DirectDraw_GetGDISurface,
+ HAL_DirectDraw_GetMonitorFrequency,
+ HAL_DirectDraw_GetScanLine,
+ HAL_DirectDraw_GetVerticalBlankStatus,
+ HAL_DirectDraw_Initialize,
+ HAL_DirectDraw_RestoreDisplayMode,
+ HAL_DirectDraw_SetCooperativeLevel,
+ HAL_DirectDraw_SetDisplayMode,
+ HAL_DirectDraw_WaitForVerticalBlank,
+ HAL_DirectDraw_GetAvailableVidMem,
+ HAL_DirectDraw_GetSurfaceFromDC,
+ HAL_DirectDraw_RestoreAllSurfaces,
+ HAL_DirectDraw_TestCooperativeLevel,
+ HAL_DirectDraw_GetDeviceIdentifier,
+ HAL_DirectDraw_StartModeTest,
+ HAL_DirectDraw_EvaluateMode
+};