📄 kernel.c
字号:
/* $Id: kernel.c 21817 2006-05-07 07:43:50Z greatlrd $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS
* FILE: lib/ddraw/main/kernel.c
* PURPOSE: IDirectDrawKernel and IDirectDrawSurfaceKernel Implementation
* PROGRAMMER: Maarten Bosma
*
*/
#include "rosdraw.h"
/***** IDirectDrawKernel ****/
ULONG WINAPI
DirectDrawKernel_AddRef ( LPDIRECTDRAWKERNEL iface)
{
DX_WINDBG_trace();
IDirectDrawKernelImpl * This = (IDirectDrawKernelImpl*)iface;
ULONG ref=0;
if (iface!=NULL)
{
ref = InterlockedIncrement( (PLONG) &This->ref);
}
return ref;
}
ULONG WINAPI
DirectDrawKernel_Release ( LPDIRECTDRAWKERNEL iface)
{
DX_WINDBG_trace();
IDirectDrawKernelImpl* This = (IDirectDrawKernelImpl*)iface;
ULONG ref=0;
if (iface!=NULL)
{
ref = InterlockedDecrement( (PLONG) &This->ref);
if (ref == 0)
{
/* Add here if we need releae some memory pointer before
* exists
*/
if (This!=NULL)
{
HeapFree(GetProcessHeap(), 0, This);
}
}
}
return ref;
}
HRESULT WINAPI
DirectDrawKernel_QueryInterface ( LPDIRECTDRAWKERNEL iface,
REFIID riid,
LPVOID* ppvObj)
{
DX_WINDBG_trace();
DX_STUB;
}
HRESULT WINAPI
DirectDrawKernel_GetKernelHandle ( LPDIRECTDRAWKERNEL iface,
ULONG* handle)
{
DX_WINDBG_trace();
DX_STUB;
}
HRESULT WINAPI
DirectDrawKernel_ReleaseKernelHandle ( LPDIRECTDRAWKERNEL iface)
{
DX_WINDBG_trace();
DX_STUB;
}
ULONG WINAPI
DDSurfaceKernel_AddRef ( LPDIRECTDRAWSURFACEKERNEL iface)
{
DX_WINDBG_trace();
IDirectDrawSurfaceKernelImpl * This = (IDirectDrawSurfaceKernelImpl*)iface;
ULONG ref=0;
if (iface!=NULL)
{
ref = InterlockedIncrement( (PLONG) &This->ref);
}
return ref;
}
ULONG WINAPI
DDSurfaceKernel_Release ( LPDIRECTDRAWSURFACEKERNEL iface)
{
DX_WINDBG_trace();
IDirectDrawSurfaceKernelImpl* This = (IDirectDrawSurfaceKernelImpl*)iface;
ULONG ref=0;
if (iface!=NULL)
{
ref = InterlockedDecrement( (PLONG) &This->ref);
if (ref == 0)
{
/* Add here if we need releae some memory pointer before
* exists
*/
if (This!=NULL)
{
HeapFree(GetProcessHeap(), 0, This);
}
}
}
return ref;
}
HRESULT WINAPI
DDSurfaceKernel_QueryInterface ( LPDIRECTDRAWSURFACEKERNEL iface,
REFIID riid,
LPVOID* ppvObj)
{
DX_WINDBG_trace();
DX_STUB;
}
HRESULT WINAPI
DDSurfaceKernel_GetKernelHandle ( LPDIRECTDRAWSURFACEKERNEL iface,
ULONG* handle)
{
DX_WINDBG_trace();
DX_STUB;
}
HRESULT WINAPI
DDSurfaceKernel_ReleaseKernelHandle ( LPDIRECTDRAWSURFACEKERNEL iface)
{
DX_WINDBG_trace();
DX_STUB;
}
IDirectDrawKernelVtbl DirectDrawKernel_Vtable =
{
DirectDrawKernel_QueryInterface,
DirectDrawKernel_AddRef,
DirectDrawKernel_Release,
DirectDrawKernel_GetKernelHandle,
DirectDrawKernel_ReleaseKernelHandle
};
IDirectDrawSurfaceKernelVtbl DirectDrawSurfaceKernel_Vtable =
{
DDSurfaceKernel_QueryInterface,
DDSurfaceKernel_AddRef,
DDSurfaceKernel_Release,
DDSurfaceKernel_GetKernelHandle,
DDSurfaceKernel_ReleaseKernelHandle
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -