mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-30 04:13:33 +00:00
Implement some COM-related functions.
svn path=/trunk/; revision=18767
This commit is contained in:
@@ -101,11 +101,3 @@ HRESULT WINAPI DirectDrawEnumerateExW(
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
HRESULT WINAPI DirectDrawCreateClipper(
|
||||
DWORD dwFlags,
|
||||
LPDIRECTDRAWCLIPPER* lplpDDClipper,
|
||||
LPUNKNOWN pUnkOuter
|
||||
)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
@@ -11,13 +11,33 @@
|
||||
#include "rosdraw.h"
|
||||
|
||||
|
||||
HRESULT WINAPI Main_DirectDrawClipper_SetHwnd(
|
||||
LPDIRECTDRAWCLIPPER iface, DWORD dwFlags, HWND hWnd)
|
||||
ULONG WINAPI Main_DirectDrawClipper_Release(LPDIRECTDRAWCLIPPER iface)
|
||||
{
|
||||
DX_STUB;
|
||||
IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface;
|
||||
ULONG ref = InterlockedDecrement(&This->ref);
|
||||
|
||||
if (ref == 0)
|
||||
HeapFree(GetProcessHeap(), 0, This);
|
||||
|
||||
return ref;
|
||||
}
|
||||
|
||||
ULONG WINAPI Main_DirectDrawClipper_Release(LPDIRECTDRAWCLIPPER iface)
|
||||
ULONG WINAPI Main_DirectDrawClipper_AddRef (LPDIRECTDRAWCLIPPER iface)
|
||||
{
|
||||
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
|
||||
ULONG ref = InterlockedIncrement((PLONG)&This->DirectDrawGlobal.dwRefCnt);
|
||||
|
||||
return ref;
|
||||
}
|
||||
|
||||
HRESULT WINAPI Main_DirectDrawClipper_Initialize(
|
||||
LPDIRECTDRAWCLIPPER iface, LPDIRECTDRAW lpDD, DWORD dwFlags)
|
||||
{
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
HRESULT WINAPI Main_DirectDrawClipper_SetHwnd(
|
||||
LPDIRECTDRAWCLIPPER iface, DWORD dwFlags, HWND hWnd)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
@@ -41,23 +61,12 @@ HRESULT WINAPI Main_DirectDrawClipper_QueryInterface(
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
ULONG WINAPI Main_DirectDrawClipper_AddRef (LPDIRECTDRAWCLIPPER iface)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
HRESULT WINAPI Main_DirectDrawClipper_GetHWnd(
|
||||
LPDIRECTDRAWCLIPPER iface, HWND* hWndPtr)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
HRESULT WINAPI Main_DirectDrawClipper_Initialize(
|
||||
LPDIRECTDRAWCLIPPER iface, LPDIRECTDRAW lpDD, DWORD dwFlags)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
HRESULT WINAPI Main_DirectDrawClipper_IsClipListChanged(
|
||||
LPDIRECTDRAWCLIPPER iface, BOOL* lpbChanged)
|
||||
{
|
||||
|
||||
@@ -10,21 +10,30 @@
|
||||
|
||||
#include "rosdraw.h"
|
||||
|
||||
HRESULT WINAPI
|
||||
Main_DirectDrawColorControl_QueryInterface(LPDIRECTDRAWCOLORCONTROL iface,
|
||||
REFIID riid, LPVOID* ppvObj)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
ULONG WINAPI
|
||||
Main_DirectDrawColorControl_AddRef(LPDIRECTDRAWCOLORCONTROL iface)
|
||||
{
|
||||
DX_STUB;
|
||||
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
|
||||
ULONG ref = InterlockedIncrement((PLONG)&This->DirectDrawGlobal.dwRefCnt);
|
||||
|
||||
return ref;
|
||||
}
|
||||
|
||||
ULONG WINAPI
|
||||
Main_DirectDrawColorControl_Release(LPDIRECTDRAWCOLORCONTROL iface)
|
||||
{
|
||||
IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface;
|
||||
ULONG ref = InterlockedDecrement(&This->ref);
|
||||
|
||||
if (ref == 0)
|
||||
HeapFree(GetProcessHeap(), 0, This);
|
||||
|
||||
return ref;
|
||||
}
|
||||
|
||||
HRESULT WINAPI
|
||||
Main_DirectDrawColorControl_QueryInterface(LPDIRECTDRAWCOLORCONTROL iface,
|
||||
REFIID riid, LPVOID* ppvObj)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
@@ -125,33 +125,6 @@ HRESULT WINAPI Main_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidt
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD,
|
||||
LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter)
|
||||
{
|
||||
if (pUnkOuter!=NULL)
|
||||
return DDERR_INVALIDPARAMS;
|
||||
|
||||
if(sizeof(DDSURFACEDESC2)!=pDDSD->dwSize)
|
||||
return DDERR_UNSUPPORTED;
|
||||
|
||||
// the nasty com stuff
|
||||
IDirectDrawSurfaceImpl* That;
|
||||
|
||||
That = (IDirectDrawSurfaceImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectDrawSurfaceImpl));
|
||||
|
||||
if (That == NULL)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
That->lpVtbl = &DirectDrawSurface7_Vtable;
|
||||
That->lpVtbl_v3 = &DDRAW_IDDS3_Thunk_VTable;
|
||||
|
||||
That->ref = 1;
|
||||
*ppSurf = (LPDIRECTDRAWSURFACE7)That;
|
||||
|
||||
// the real surface object creation
|
||||
return That->lpVtbl->Initialize (*ppSurf, (LPDIRECTDRAW)iface, pDDSD);
|
||||
}
|
||||
|
||||
ULONG WINAPI Main_DirectDraw_AddRef (LPDIRECTDRAW7 iface)
|
||||
{
|
||||
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
|
||||
@@ -208,22 +181,89 @@ HRESULT WINAPI Main_DirectDraw_QueryInterface (
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/**** Stubs ****/
|
||||
|
||||
HRESULT WINAPI Main_DirectDraw_Compact(LPDIRECTDRAW7 iface)
|
||||
HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD,
|
||||
LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter)
|
||||
{
|
||||
DX_STUB;
|
||||
if (pUnkOuter!=NULL)
|
||||
return DDERR_INVALIDPARAMS;
|
||||
|
||||
if(sizeof(DDSURFACEDESC2)!=pDDSD->dwSize)
|
||||
return DDERR_UNSUPPORTED;
|
||||
|
||||
// the nasty com stuff
|
||||
IDirectDrawSurfaceImpl* That;
|
||||
|
||||
That = (IDirectDrawSurfaceImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawSurfaceImpl));
|
||||
|
||||
if (That == NULL)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
ZeroMemory(That, sizeof(IDirectDrawSurfaceImpl));
|
||||
|
||||
That->lpVtbl = &DirectDrawSurface7_Vtable;
|
||||
That->lpVtbl_v3 = &DDRAW_IDDS3_Thunk_VTable;
|
||||
That->ref = 1;
|
||||
|
||||
*ppSurf = (LPDIRECTDRAWSURFACE7)That;
|
||||
|
||||
// the real surface object creation
|
||||
return That->lpVtbl->Initialize (*ppSurf, (LPDIRECTDRAW)iface, pDDSD);
|
||||
}
|
||||
|
||||
HRESULT WINAPI Main_DirectDraw_CreateClipper(LPDIRECTDRAW7 iface, DWORD dwFlags,
|
||||
LPDIRECTDRAWCLIPPER *ppClipper, IUnknown *pUnkOuter)
|
||||
{
|
||||
DX_STUB;
|
||||
if (pUnkOuter!=NULL)
|
||||
return DDERR_INVALIDPARAMS;
|
||||
|
||||
IDirectDrawClipperImpl* That;
|
||||
That = (IDirectDrawClipperImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawClipperImpl));
|
||||
|
||||
if (That == NULL)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
ZeroMemory(That, sizeof(IDirectDrawClipperImpl));
|
||||
|
||||
That->lpVtbl = &DirectDrawClipper_Vtable;
|
||||
That->ref = 1;
|
||||
*ppClipper = (LPDIRECTDRAWCLIPPER)That;
|
||||
|
||||
return That->lpVtbl->Initialize (*ppClipper, (LPDIRECTDRAW)iface, dwFlags);
|
||||
}
|
||||
HRESULT WINAPI Main_DirectDraw_CreatePalette(LPDIRECTDRAW7 iface, DWORD dwFlags,
|
||||
LPPALETTEENTRY palent,LPDIRECTDRAWPALETTE* ppPalette,LPUNKNOWN pUnknown)
|
||||
|
||||
// This function is exported by the dll
|
||||
HRESULT WINAPI DirectDrawCreateClipper (DWORD dwFlags,
|
||||
LPDIRECTDRAWCLIPPER* lplpDDClipper, LPUNKNOWN pUnkOuter)
|
||||
{
|
||||
DX_STUB;
|
||||
return Main_DirectDraw_CreateClipper(NULL, dwFlags, lplpDDClipper, pUnkOuter);
|
||||
}
|
||||
|
||||
HRESULT WINAPI Main_DirectDraw_CreatePalette(LPDIRECTDRAW7 iface, DWORD dwFlags,
|
||||
LPPALETTEENTRY palent, LPDIRECTDRAWPALETTE* ppPalette, LPUNKNOWN pUnkOuter)
|
||||
{
|
||||
if (pUnkOuter!=NULL)
|
||||
return DDERR_INVALIDPARAMS;
|
||||
|
||||
IDirectDrawPaletteImpl* That;
|
||||
That = (IDirectDrawPaletteImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawPaletteImpl));
|
||||
|
||||
if (That == NULL)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
ZeroMemory(That, sizeof(IDirectDrawPaletteImpl));
|
||||
|
||||
That->lpVtbl = &DirectDrawPalette_Vtable;
|
||||
That->ref = 1;
|
||||
*ppPalette = (LPDIRECTDRAWPALETTE)That;
|
||||
|
||||
return That->lpVtbl->Initialize (*ppPalette, (LPDIRECTDRAW)iface, dwFlags, palent);
|
||||
}
|
||||
|
||||
/**** Stubs ****/
|
||||
|
||||
HRESULT WINAPI Main_DirectDraw_Compact(LPDIRECTDRAW7 iface)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
HRESULT WINAPI Main_DirectDraw_DuplicateSurface(LPDIRECTDRAW7 iface, LPDIRECTDRAWSURFACE7 src,
|
||||
|
||||
@@ -10,22 +10,30 @@
|
||||
|
||||
#include "rosdraw.h"
|
||||
|
||||
|
||||
HRESULT WINAPI
|
||||
Main_DirectDrawGammaControl_QueryInterface(LPDIRECTDRAWGAMMACONTROL iface, REFIID riid,
|
||||
LPVOID *ppObj)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
ULONG WINAPI
|
||||
Main_DirectDrawGammaControl_AddRef(LPDIRECTDRAWGAMMACONTROL iface)
|
||||
{
|
||||
DX_STUB;
|
||||
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
|
||||
ULONG ref = InterlockedIncrement((PLONG)&This->DirectDrawGlobal.dwRefCnt);
|
||||
|
||||
return ref;
|
||||
}
|
||||
|
||||
ULONG WINAPI
|
||||
Main_DirectDrawGammaControl_Release(LPDIRECTDRAWGAMMACONTROL iface)
|
||||
{
|
||||
IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface;
|
||||
ULONG ref = InterlockedDecrement(&This->ref);
|
||||
|
||||
if (ref == 0)
|
||||
HeapFree(GetProcessHeap(), 0, This);
|
||||
|
||||
return ref;
|
||||
}
|
||||
|
||||
HRESULT WINAPI
|
||||
Main_DirectDrawGammaControl_QueryInterface(LPDIRECTDRAWGAMMACONTROL iface, REFIID riid,
|
||||
LPVOID *ppObj)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,33 @@
|
||||
|
||||
#include "rosdraw.h"
|
||||
|
||||
ULONG WINAPI
|
||||
Main_DirectDrawPalette_Release(LPDIRECTDRAWPALETTE iface)
|
||||
{
|
||||
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
|
||||
ULONG ref = InterlockedIncrement((PLONG)&This->DirectDrawGlobal.dwRefCnt);
|
||||
|
||||
return ref;
|
||||
}
|
||||
|
||||
ULONG WINAPI Main_DirectDrawPalette_AddRef(LPDIRECTDRAWPALETTE iface)
|
||||
{
|
||||
IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface;
|
||||
ULONG ref = InterlockedDecrement(&This->ref);
|
||||
|
||||
if (ref == 0)
|
||||
HeapFree(GetProcessHeap(), 0, This);
|
||||
|
||||
return ref;
|
||||
}
|
||||
|
||||
HRESULT WINAPI
|
||||
Main_DirectDrawPalette_Initialize(LPDIRECTDRAWPALETTE iface,
|
||||
LPDIRECTDRAW ddraw, DWORD dwFlags,
|
||||
LPPALETTEENTRY palent)
|
||||
{
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
HRESULT WINAPI
|
||||
Main_DirectDrawPalette_GetEntries(LPDIRECTDRAWPALETTE iface, DWORD dwFlags,
|
||||
@@ -26,26 +53,6 @@ Main_DirectDrawPalette_SetEntries(LPDIRECTDRAWPALETTE iface, DWORD dwFlags,
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
ULONG WINAPI
|
||||
Main_DirectDrawPalette_Release(LPDIRECTDRAWPALETTE iface)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
ULONG WINAPI Main_DirectDrawPalette_AddRef(LPDIRECTDRAWPALETTE iface)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
HRESULT WINAPI
|
||||
Main_DirectDrawPalette_Initialize(LPDIRECTDRAWPALETTE iface,
|
||||
LPDIRECTDRAW ddraw, DWORD dwFlags,
|
||||
LPPALETTEENTRY palent)
|
||||
{
|
||||
DX_STUB;
|
||||
}
|
||||
|
||||
HRESULT WINAPI
|
||||
Main_DirectDrawPalette_GetCaps(LPDIRECTDRAWPALETTE iface, LPDWORD lpdwCaps)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user