Get rid of the ICOM_CALL macros.
diff --git a/include/d3d8.h b/include/d3d8.h
index 0e2f3fc..85a1970 100644
--- a/include/d3d8.h
+++ b/include/d3d8.h
@@ -126,24 +126,26 @@
ICOM_DEFINE(IDirect3D8,IUnknown)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3D8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3D8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3D8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3D8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3D8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3D8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3D8 methods ***/
-#define IDirect3D8_RegisterSoftwareDevice(p,a) ICOM_CALL1(RegisterSoftwareDevice,p,a)
-#define IDirect3D8_GetAdapterCount(p) ICOM_CALL (GetAdapterCount,p)
-#define IDirect3D8_GetAdapterIdentifier(p,a,b,c) ICOM_CALL3(GetAdapterIdentifier,p,a,b,c)
-#define IDirect3D8_GetAdapterModeCount(p,a) ICOM_CALL1(GetAdapterModeCount,p,a)
-#define IDirect3D8_EnumAdapterModes(p,a,b,c) ICOM_CALL3(EnumAdapterModes,p,a,b,c)
-#define IDirect3D8_GetAdapterDisplayMode(p,a,b) ICOM_CALL2(GetAdapterDisplayMode,p,a,b)
-#define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) ICOM_CALL5(CheckDeviceType,p,a,b,c,d,e)
-#define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) ICOM_CALL6(CheckDeviceFormat,p,a,b,c,d,e,f)
-#define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) ICOM_CALL5(CheckDeviceMultiSampleType,p,a,b,c,d,e)
-#define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) ICOM_CALL5(CheckDepthStencilMatch,p,a,b,c,d,e)
-#define IDirect3D8_GetDeviceCaps(p,a,b,c) ICOM_CALL3(GetDeviceCaps,p,a,b,c)
-#define IDirect3D8_GetAdapterMonitor(p,a) ICOM_CALL1(GetAdapterMonitor,p,a)
-#define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) ICOM_CALL6(CreateDevice,p,a,b,c,d,e,f)
+#define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a)
+#define IDirect3D8_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
+#define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
+#define IDirect3D8_GetAdapterModeCount(p,a) (p)->lpVtbl->GetAdapterModeCount(p,a)
+#define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->lpVtbl->EnumAdapterModes(p,a,b,c)
+#define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
+#define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
+#define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
+#define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e)
+#define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
+#define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
+#define IDirect3D8_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
+#define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
+#endif
/*****************************************************************************
* IDirect3DDevice8 interface
@@ -253,105 +255,107 @@
ICOM_DEFINE(IDirect3DDevice8,IUnknown)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DDevice8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DDevice8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DDevice8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DDevice8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DDevice8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DDevice8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DDevice8 methods ***/
-#define IDirect3DDevice8_TestCooperativeLevel(p) ICOM_CALL (TestCooperativeLevel,p)
-#define IDirect3DDevice8_GetAvailableTextureMem(p) ICOM_CALL (GetAvailableTextureMem,p)
-#define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a) ICOM_CALL1(ResourceManagerDiscardBytes,p,a)
-#define IDirect3DDevice8_GetDirect3D(p,a) ICOM_CALL1(GetDirect3D,p,a)
-#define IDirect3DDevice8_GetDeviceCaps(p,a) ICOM_CALL1(GetDeviceCaps,p,a)
-#define IDirect3DDevice8_GetDisplayMode(p,a) ICOM_CALL1(GetDisplayMode,p,a)
-#define IDirect3DDevice8_GetCreationParameters(p,a) ICOM_CALL1(GetCreationParameters,p,a)
-#define IDirect3DDevice8_SetCursorProperties(p,a,b,c) ICOM_CALL3(SetCursorProperties,p,a,b,c)
-#define IDirect3DDevice8_SetCursorPosition(p,a,b,c) ICOM_CALL3(SetCursorPosition,p,a,b,c)
-#define IDirect3DDevice8_ShowCursor(p,a) ICOM_CALL1(ShowCursor,p,a)
-#define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b) ICOM_CALL2(CreateAdditionalSwapChain,p,a,b)
-#define IDirect3DDevice8_Reset(p,a) ICOM_CALL1(Reset,p,a)
+#define IDirect3DDevice8_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p)
+#define IDirect3DDevice8_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p)
+#define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a) (p)->lpVtbl->ResourceManagerDiscardBytes(p,a)
+#define IDirect3DDevice8_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
+#define IDirect3DDevice8_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a)
+#define IDirect3DDevice8_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
+#define IDirect3DDevice8_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a)
+#define IDirect3DDevice8_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c)
+#define IDirect3DDevice8_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c)
+#define IDirect3DDevice8_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a)
+#define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
+#define IDirect3DDevice8_Reset(p,a) (p)->lpVtbl->Reset(p,a)
#define IDirect3DDevice8_Present(p,a,b,c,d) ICOM_CALL4,present,p,a,b,c,d)
-#define IDirect3DDevice8_GetBackBuffer(p,a,b,c) ICOM_CALL3(GetBackBuffer,p,a,b,c)
-#define IDirect3DDevice8_GetRasterStatus(p,a) ICOM_CALL1(GetRasterStatus,p,a)
-#define IDirect3DDevice8_SetGammaRamp(p,a,b) ICOM_CALL2(SetGammaRamp,p,a,b)
-#define IDirect3DDevice8_GetGammaRamp(p,a) ICOM_CALL1(GetGammaRamp,p,a)
-#define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g) ICOM_CALL7(CreateTexture,p,a,b,c,d,e,f,g)
-#define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h) ICOM_CALL8(CreateVolumeTexture,p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f) ICOM_CALL6(CreateCubeTexture,p,a,b,c,d,e,f)
-#define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e) ICOM_CALL5(CreateVertexBuffer,p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e) ICOM_CALL5(CreateIndexBuffer,p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f) ICOM_CALL6(CreateRenderTarget,p,a,b,c,d,e,f)
-#define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e) ICOM_CALL5(CreateDepthStencilSurface,p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d) ICOM_CALL4(CreateImageSurface,p,a,b,c,d)
-#define IDirect3DDevice8_CopyRects(p,a,b,c,d,e) ICOM_CALL5(CopyRects,p,a,b,c,d,e)
-#define IDirect3DDevice8_UpdateTexture(p,a,b) ICOM_CALL2(UpdateTexture,p,a,b)
-#define IDirect3DDevice8_GetFrontBuffer(p,a) ICOM_CALL1(GetFrontBuffer,p,a)
-#define IDirect3DDevice8_SetRenderTarget(p,a,b) ICOM_CALL2(SetRenderTarget,p,a,b)
-#define IDirect3DDevice8_GetRenderTarget(p,a) ICOM_CALL1(GetRenderTarget,p,a)
-#define IDirect3DDevice8_GetDepthStencilSurface(p,a) ICOM_CALL1(GetDepthStencilSurface,p,a)
-#define IDirect3DDevice8_BeginScene(p) ICOM_CALL (BeginScene,p)
-#define IDirect3DDevice8_EndScene(p) ICOM_CALL (EndScene,p)
-#define IDirect3DDevice8_Clear(p,a,b,c,d,e,f) ICOM_CALL6(Clear,p,a,b,c,d,e,f)
-#define IDirect3DDevice8_SetTransform(p,a,b) ICOM_CALL2(SetTransform,p,a,b)
-#define IDirect3DDevice8_GetTransform(p,a,b) ICOM_CALL2(GetTransform,p,a,b)
-#define IDirect3DDevice8_MultiplyTransform(p,a,b) ICOM_CALL2(MultiplyTransform,p,a,b)
-#define IDirect3DDevice8_SetViewport(p,a) ICOM_CALL1(SetViewport,p,a)
-#define IDirect3DDevice8_GetViewport(p,a) ICOM_CALL1(GetViewport,p,a)
-#define IDirect3DDevice8_SetMaterial(p,a) ICOM_CALL1(SetMaterial,p,a)
-#define IDirect3DDevice8_GetMaterial(p,a) ICOM_CALL1(GetMaterial,p,a)
-#define IDirect3DDevice8_SetLight(p,a,b) ICOM_CALL2(SetLight,p,a,b)
-#define IDirect3DDevice8_GetLight(p,a,b) ICOM_CALL2(GetLight,p,a,b)
-#define IDirect3DDevice8_LightEnable(p,a,b) ICOM_CALL2(LightEnable,p,a,b)
-#define IDirect3DDevice8_GetLightEnable(p,a,b) ICOM_CALL2(GetLightEnable,p,a,b)
-#define IDirect3DDevice8_SetClipPlane(p,a,b) ICOM_CALL2(SetClipPlane,p,a,b)
-#define IDirect3DDevice8_GetClipPlane(p,a,b) ICOM_CALL2(GetClipPlane,p,a,b)
-#define IDirect3DDevice8_SetRenderState(p,a,b) ICOM_CALL2(SetRenderState,p,a,b)
-#define IDirect3DDevice8_GetRenderState(p,a,b) ICOM_CALL2(GetRenderState,p,a,b)
-#define IDirect3DDevice8_BeginStateBlock(p) ICOM_CALL (BeginStateBlock,p)
-#define IDirect3DDevice8_EndStateBlock(p,a) ICOM_CALL1(EndStateBlock,p,a)
-#define IDirect3DDevice8_ApplyStateBlock(p,a) ICOM_CALL1(ApplyStateBlock,p,a)
-#define IDirect3DDevice8_CaptureStateBlock(p,a) ICOM_CALL1(CaptureStateBlock,p,a)
-#define IDirect3DDevice8_DeleteStateBlock(p,a) ICOM_CALL1(DeleteStateBlock,p,a)
-#define IDirect3DDevice8_CreateStateBlock(p,a,b) ICOM_CALL2(CreateStateBlock,p,a,b)
-#define IDirect3DDevice8_SetClipStatus(p,a) ICOM_CALL1(SetClipStatus,p,a)
-#define IDirect3DDevice8_GetClipStatus(p,a) ICOM_CALL1(GetClipStatus,p,a)
-#define IDirect3DDevice8_GetTexture(p,a,b) ICOM_CALL2(GetTexture,p,a,b)
-#define IDirect3DDevice8_SetTexture(p,a,b) ICOM_CALL2(SetTexture,p,a,b)
-#define IDirect3DDevice8_GetTextureStageState(p,a,b,c) ICOM_CALL3(GetTextureStageState,p,a,b,c)
-#define IDirect3DDevice8_SetTextureStageState(p,a,b,c) ICOM_CALL3(SetTextureStageState,p,a,b,c)
-#define IDirect3DDevice8_ValidateDevice(p,a) ICOM_CALL1(ValidateDevice,p,a)
-#define IDirect3DDevice8_GetInfo(p,a,b,c) ICOM_CALL3(GetInfo,p,a,b,c)
-#define IDirect3DDevice8_SetPaletteEntries(p,a,b) ICOM_CALL2(SetPaletteEntries,p,a,b)
-#define IDirect3DDevice8_GetPaletteEntries(p,a,b) ICOM_CALL2(GetPaletteEntries,p,a,b)
-#define IDirect3DDevice8_SetCurrentTexturePalette(p,a) ICOM_CALL1(SetCurrentTexturePalette,p,a)
-#define IDirect3DDevice8_GetCurrentTexturePalette(p,a) ICOM_CALL1(GetCurrentTexturePalette,p,a)
-#define IDirect3DDevice8_DrawPrimitive(p,a,b,c) ICOM_CALL3(DrawPrimitive,p,a,b,c)
-#define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e) ICOM_CALL5(DrawIndexedPrimitive,p,a,b,c,d,e)
-#define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d) ICOM_CALL4(DrawPrimitiveUP,p,a,b,c,d)
-#define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) ICOM_CALL8(DrawIndexedPrimitiveUP,p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e) ICOM_CALL5(processVertices,p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d) ICOM_CALL4(CreateVertexShader,p,a,b,c,d)
-#define IDirect3DDevice8_SetVertexShader(p,a) ICOM_CALL1(SetVertexShader,p,a)
-#define IDirect3DDevice8_GetVertexShader(p,a) ICOM_CALL1(GetVertexShader,p,a)
-#define IDirect3DDevice8_DeleteVertexShader(p,a) ICOM_CALL1(DeleteVertexShader,p,a)
-#define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c) ICOM_CALL3(SetVertexShaderConstant,p,a,b,c)
-#define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c) ICOM_CALL3(GetVertexShaderConstant,p,a,b,c)
-#define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c) ICOM_CALL3(GetVertexShaderDeclaration,p,a,b,c)
-#define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c) ICOM_CALL3(GetVertexShaderFunction,p,a,b,c)
-#define IDirect3DDevice8_SetStreamSource(p,a,b,c) ICOM_CALL3(SetStreamSource,p,a,b,c)
-#define IDirect3DDevice8_GetStreamSource(p,a,b,c) ICOM_CALL3(GetStreamSource,p,a,b,c)
-#define IDirect3DDevice8_SetIndices(p,a,b) ICOM_CALL2(SetIndices,p,a,b)
-#define IDirect3DDevice8_GetIndices(p,a,b) ICOM_CALL2(GetIndices,p,a,b)
-#define IDirect3DDevice8_CreatePixelShader(p,a,b) ICOM_CALL2(CreatePixelShader,p,a,b)
-#define IDirect3DDevice8_SetPixelShader(p,a) ICOM_CALL1(SetPixelShader,p,a)
-#define IDirect3DDevice8_GetPixelShader(p,a) ICOM_CALL1(GetPixelShader,p,a)
-#define IDirect3DDevice8_DeletePixelShader(p,a) ICOM_CALL1(DeletePixelShader,p,a)
-#define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c) ICOM_CALL3(SetPixelShaderConstant,p,a,b,c)
-#define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c) ICOM_CALL3(GetPixelShaderConstant,p,a,b,c)
-#define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c) ICOM_CALL3(GetPixelShaderFunction,p,a,b,c)
-#define IDirect3DDevice8_DrawRectPatch(p,a,b,c) ICOM_CALL3(DrawRectPatch,p,a,b,c)
-#define IDirect3DDevice8_DrawTriPatch(p,a,b,c) ICOM_CALL3(DrawTriPatch,p,a,b,c)
-#define IDirect3DDevice8_DeletePatch(p,a) ICOM_CALL1(DeletePatch,p,a)
+#define IDirect3DDevice8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
+#define IDirect3DDevice8_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a)
+#define IDirect3DDevice8_SetGammaRamp(p,a,b) (p)->lpVtbl->SetGammaRamp(p,a,b)
+#define IDirect3DDevice8_GetGammaRamp(p,a) (p)->lpVtbl->GetGammaRamp(p,a)
+#define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f)
+#define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e)
+#define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e)
+#define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f)
+#define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e)
+#define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d) (p)->lpVtbl->CreateImageSurface(p,a,b,c,d)
+#define IDirect3DDevice8_CopyRects(p,a,b,c,d,e) (p)->lpVtbl->CopyRects(p,a,b,c,d,e)
+#define IDirect3DDevice8_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b)
+#define IDirect3DDevice8_GetFrontBuffer(p,a) (p)->lpVtbl->GetFrontBuffer(p,a)
+#define IDirect3DDevice8_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
+#define IDirect3DDevice8_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a)
+#define IDirect3DDevice8_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a)
+#define IDirect3DDevice8_BeginScene(p) (p)->lpVtbl->BeginScene(p)
+#define IDirect3DDevice8_EndScene(p) (p)->lpVtbl->EndScene(p)
+#define IDirect3DDevice8_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
+#define IDirect3DDevice8_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
+#define IDirect3DDevice8_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
+#define IDirect3DDevice8_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
+#define IDirect3DDevice8_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
+#define IDirect3DDevice8_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
+#define IDirect3DDevice8_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DDevice8_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
+#define IDirect3DDevice8_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
+#define IDirect3DDevice8_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
+#define IDirect3DDevice8_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
+#define IDirect3DDevice8_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
+#define IDirect3DDevice8_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
+#define IDirect3DDevice8_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
+#define IDirect3DDevice8_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
+#define IDirect3DDevice8_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
+#define IDirect3DDevice8_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
+#define IDirect3DDevice8_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
+#define IDirect3DDevice8_ApplyStateBlock(p,a) (p)->lpVtbl->ApplyStateBlock(p,a)
+#define IDirect3DDevice8_CaptureStateBlock(p,a) (p)->lpVtbl->CaptureStateBlock(p,a)
+#define IDirect3DDevice8_DeleteStateBlock(p,a) (p)->lpVtbl->DeleteStateBlock(p,a)
+#define IDirect3DDevice8_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
+#define IDirect3DDevice8_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
+#define IDirect3DDevice8_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
+#define IDirect3DDevice8_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
+#define IDirect3DDevice8_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
+#define IDirect3DDevice8_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
+#define IDirect3DDevice8_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
+#define IDirect3DDevice8_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
+#define IDirect3DDevice8_GetInfo(p,a,b,c) (p)->lpVtbl->GetInfo(p,a,b,c)
+#define IDirect3DDevice8_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b)
+#define IDirect3DDevice8_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b)
+#define IDirect3DDevice8_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a)
+#define IDirect3DDevice8_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a)
+#define IDirect3DDevice8_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c)
+#define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e)
+#define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
+#define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e) (p)->lpVtbl->processVertices(p,a,b,c,d,e)
+#define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d) (p)->lpVtbl->CreateVertexShader(p,a,b,c,d)
+#define IDirect3DDevice8_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a)
+#define IDirect3DDevice8_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a)
+#define IDirect3DDevice8_DeleteVertexShader(p,a) (p)->lpVtbl->DeleteVertexShader(p,a)
+#define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstant(p,a,b,c)
+#define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstant(p,a,b,c)
+#define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c) (p)->lpVtbl->GetVertexShaderDeclaration(p,a,b,c)
+#define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c) (p)->lpVtbl->GetVertexShaderFunction(p,a,b,c)
+#define IDirect3DDevice8_SetStreamSource(p,a,b,c) (p)->lpVtbl->SetStreamSource(p,a,b,c)
+#define IDirect3DDevice8_GetStreamSource(p,a,b,c) (p)->lpVtbl->GetStreamSource(p,a,b,c)
+#define IDirect3DDevice8_SetIndices(p,a,b) (p)->lpVtbl->SetIndices(p,a,b)
+#define IDirect3DDevice8_GetIndices(p,a,b) (p)->lpVtbl->GetIndices(p,a,b)
+#define IDirect3DDevice8_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
+#define IDirect3DDevice8_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
+#define IDirect3DDevice8_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
+#define IDirect3DDevice8_DeletePixelShader(p,a) (p)->lpVtbl->DeletePixelShader(p,a)
+#define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstant(p,a,b,c)
+#define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstant(p,a,b,c)
+#define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c) (p)->lpVtbl->GetPixelShaderFunction(p,a,b,c)
+#define IDirect3DDevice8_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c)
+#define IDirect3DDevice8_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c)
+#define IDirect3DDevice8_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a)
+#endif
/*****************************************************************************
* IDirect3DVolume8 interface
@@ -375,19 +379,21 @@
ICOM_DEFINE(IDirect3DVolume8,IUnknown)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DVolume8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DVolume8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DVolume8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DVolume8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVolume8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVolume8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DVolume8 methods ***/
-#define IDirect3DVolume8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DVolume8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DVolume8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DVolume8_GetContainer(p,a,b) ICOM_CALL2(GetContainer,p,a,b)
-#define IDirect3DVolume8_GetDesc(p,a) ICOM_CALL1(GetDesc,p,a)
-#define IDirect3DVolume8_LockBox(p,a,b,c) ICOM_CALL3(LockBox,p,a,b,c)
-#define IDirect3DVolume8_UnlockBox(p) ICOM_CALL (UnlockBox,p)
+#define IDirect3DVolume8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DVolume8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DVolume8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
+#define IDirect3DVolume8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#define IDirect3DVolume8_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c)
+#define IDirect3DVolume8_UnlockBox(p) (p)->lpVtbl->UnlockBox(p)
+#endif
/*****************************************************************************
* IDirect3DSwapChain8 interface
@@ -405,13 +411,15 @@
ICOM_DEFINE(IDirect3DSwapChain8,IUnknown)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DSwapChain8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DSwapChain8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DSwapChain8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DSwapChain8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DSwapChain8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DSwapChain8 methods ***/
-#define IDirect3DSwapChain8_Present(p,a,b,c) ICOM_CALL3(Present,p,a,b,c)
-#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c,d) ICOM_CALL4(GetBackBuffer,p,a,b,c,d)
+#define IDirect3DSwapChain8_Present(p,a,b,c) (p)->lpVtbl->Present(p,a,b,c)
+#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c,d) (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
+#endif
/*****************************************************************************
* IDirect3DSurface8 interface
@@ -435,19 +443,21 @@
ICOM_DEFINE(IDirect3DSurface8,IUnknown)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DSurface8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DSurface8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DSurface8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DSurface8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DSurface8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DSurface8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DSurface8 methods ***/
-#define IDirect3DSurface8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DSurface8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DSurface8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DSurface8_GetContainer(p,a,b) ICOM_CALL2(GetContainer,p,a,b)
-#define IDirect3DSurface8_GetDesc(p,a) ICOM_CALL1(GetDesc,p,a)
-#define IDirect3DSurface8_LockRect(p,a,b,c) ICOM_CALL3(LockRect,p,a,b,c)
-#define IDirect3DSurface8_UnlockRect(p) ICOM_CALL (UnlockRect,p)
+#define IDirect3DSurface8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DSurface8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DSurface8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
+#define IDirect3DSurface8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#define IDirect3DSurface8_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c)
+#define IDirect3DSurface8_UnlockRect(p) (p)->lpVtbl->UnlockRect(p)
+#endif
/*****************************************************************************
* IDirect3DResource8 interface
@@ -471,19 +481,21 @@
ICOM_DEFINE(IDirect3DResource8,IUnknown)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DResource8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DResource8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DResource8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DResource8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DResource8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DResource8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DResource8 methods ***/
-#define IDirect3DResource8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DResource8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DResource8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DResource8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DResource8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
-#define IDirect3DResource8_GetPriority(p) ICOM_CALL (GetPriority,p)
-#define IDirect3DResource8_PreLoad(p) ICOM_CALL (PreLoad,p)
-#define IDirect3DResource8_GetType(p) ICOM_CALL (GetType,p)
+#define IDirect3DResource8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DResource8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DResource8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DResource8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DResource8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DResource8_GetType(p) (p)->lpVtbl->GetType(p)
+#endif
/*****************************************************************************
* IDirect3DVertexBuffer8 interface
@@ -503,23 +515,25 @@
ICOM_DEFINE(IDirect3DVertexBuffer8,IDirect3DResource8)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DVertexBuffer8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DVertexBuffer8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVertexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVertexBuffer8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
-#define IDirect3DVertexBuffer8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DVertexBuffer8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DVertexBuffer8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
-#define IDirect3DVertexBuffer8_GetPriority(p) ICOM_CALL (GetPriority,p)
-#define IDirect3DVertexBuffer8_PreLoad(p) ICOM_CALL (PreLoad,p)
-#define IDirect3DVertexBuffer8_GetType(p) ICOM_CALL (GetType,p)
+#define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DVertexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DVertexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DVertexBuffer8_GetType(p) (p)->lpVtbl->GetType(p)
/*** IDirect3DVertexBuffer8 methods ***/
-#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) ICOM_CALL4(Lock,p,a,b,c,d)
-#define IDirect3DVertexBuffer8_Unlock(p) ICOM_CALL (Unlock,p)
-#define IDirect3DVertexBuffer8_GetDesc(p,a) ICOM_CALL1(GetDesc,p,a)
+#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
+#define IDirect3DVertexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p)
+#define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#endif
/*****************************************************************************
* IDirect3DIndexBuffer8 interface
@@ -539,23 +553,25 @@
ICOM_DEFINE(IDirect3DIndexBuffer8,IDirect3DResource8)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DIndexBuffer8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DIndexBuffer8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DIndexBuffer8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DIndexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DIndexBuffer8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
-#define IDirect3DIndexBuffer8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DIndexBuffer8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DIndexBuffer8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
-#define IDirect3DIndexBuffer8_GetPriority(p) ICOM_CALL (GetPriority,p)
-#define IDirect3DIndexBuffer8_PreLoad(p) ICOM_CALL (PreLoad,p)
-#define IDirect3DIndexBuffer8_GetType(p) ICOM_CALL (GetType,p)
+#define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DIndexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DIndexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DIndexBuffer8_GetType(p) (p)->lpVtbl->GetType(p)
/*** IDirect3DIndexBuffer8 methods ***/
-#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) ICOM_CALL4(Lock,p,a,b,c,d)
-#define IDirect3DIndexBuffer8_Unlock(p) ICOM_CALL (Unlock,p)
-#define IDirect3DIndexBuffer8_GetDesc(p,a) ICOM_CALL1(GetDesc,p,a)
+#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
+#define IDirect3DIndexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p)
+#define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#endif
/*****************************************************************************
* IDirect3DBaseTexture8 interface
@@ -575,23 +591,25 @@
ICOM_DEFINE(IDirect3DBaseTexture8,IDirect3DResource8)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DBaseTexture8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DBaseTexture8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DBaseTexture8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DBaseTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DBaseTexture8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DBaseTexture8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DBaseTexture8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DBaseTexture8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
-#define IDirect3DBaseTexture8_GetPriority(p) ICOM_CALL (GetPriority,p)
-#define IDirect3DBaseTexture8_PreLoad(p) ICOM_CALL (PreLoad,p)
-#define IDirect3DBaseTexture8_GetType(p) ICOM_CALL (GetType,p)
+#define IDirect3DBaseTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DBaseTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DBaseTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DBaseTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DBaseTexture8_GetType(p) (p)->lpVtbl->GetType(p)
/*** IDirect3DBaseTexture8 methods ***/
-#define IDirect3DBaseTexture8_SetLOD(p,a) ICOM_CALL1(SetLOD,p,a)
-#define IDirect3DBaseTexture8_GetLOD(p) ICOM_CALL (GetLOD,p)
-#define IDirect3DBaseTexture8_GetLevelCount(p) ICOM_CALL (GetLevelCount,p)
+#define IDirect3DBaseTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DBaseTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DBaseTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
+#endif
/*****************************************************************************
* IDirect3DCubeTexture8 interface
@@ -614,29 +632,31 @@
ICOM_DEFINE(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DCubeTexture8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DCubeTexture8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DCubeTexture8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DCubeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DCubeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DCubeTexture8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DCubeTexture8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DCubeTexture8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DCubeTexture8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
-#define IDirect3DCubeTexture8_GetPriority(p) ICOM_CALL (GetPriority,p)
-#define IDirect3DCubeTexture8_PreLoad(p) ICOM_CALL (PreLoad,p)
-#define IDirect3DCubeTexture8_GetType(p) ICOM_CALL (GetType,p)
+#define IDirect3DCubeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DCubeTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DCubeTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DCubeTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DCubeTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DCubeTexture8_GetType(p) (p)->lpVtbl->GetType(p)
/*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DCubeTexture8_SetLOD(p,a) ICOM_CALL1(SetLOD,p,a)
-#define IDirect3DCubeTexture8_GetLOD(p) ICOM_CALL (GetLOD,p)
-#define IDirect3DCubeTexture8_GetLevelCount(p) ICOM_CALL (GetLevelCount,p)
+#define IDirect3DCubeTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DCubeTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DCubeTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
/*** IDirect3DCubeTexture8 methods ***/
-#define IDirect3DCubeTexture8_GetLevelDesc(p,a,b) ICOM_CALL2(GetLevelDesc,p,a,b)
-#define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c) ICOM_CALL3(GetCubeMapSurface,p,a,b,c)
-#define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e) ICOM_CALL5(LockRect,p,a,b,c,d,e)
-#define IDirect3DCubeTexture8_UnlockRect(p,a,b) ICOM_CALL2(UnlockRect,p,a,b)
-#define IDirect3DCubeTexture8_AddDirtyRect(p,a,b) ICOM_CALL2(AddDirtyRect,p,a,b)
+#define IDirect3DCubeTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
+#define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
+#define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e) (p)->lpVtbl->LockRect(p,a,b,c,d,e)
+#define IDirect3DCubeTexture8_UnlockRect(p,a,b) (p)->lpVtbl->UnlockRect(p,a,b)
+#define IDirect3DCubeTexture8_AddDirtyRect(p,a,b) (p)->lpVtbl->AddDirtyRect(p,a,b)
+#endif
/*****************************************************************************
* IDirect3DTexture8 interface
@@ -659,29 +679,31 @@
ICOM_DEFINE(IDirect3DTexture8,IDirect3DBaseTexture8)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DTexture8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DTexture8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DTexture8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DTexture8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DTexture8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DTexture8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DTexture8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DTexture8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
-#define IDirect3DTexture8_GetPriority(p) ICOM_CALL (GetPriority,p)
-#define IDirect3DTexture8_PreLoad(p) ICOM_CALL (PreLoad,p)
-#define IDirect3DTexture8_GetType(p) ICOM_CALL (GetType,p)
+#define IDirect3DTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DTexture8_GetType(p) (p)->lpVtbl->GetType(p)
/*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DTexture8_SetLOD(p,a) ICOM_CALL1(SetLOD,p,a)
-#define IDirect3DTexture8_GetLOD(p) ICOM_CALL (GetLOD,p)
-#define IDirect3DTexture8_GetLevelCount(p) ICOM_CALL (GetLevelCount,p)
+#define IDirect3DTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
/*** IDirect3DTexture8 methods ***/
-#define IDirect3DTexture8_GetLevelDesc(p,a,b) ICOM_CALL2(GetLevelDesc,p,a,b)
-#define IDirect3DTexture8_GetSurfaceLevel(p,a,b) ICOM_CALL2(GetSurfaceLevel,p,a,b)
-#define IDirect3DTexture8_LockRect(p,a,b,c,d) ICOM_CALL4(LockRect,p,a,b,c,d)
-#define IDirect3DTexture8_UnlockRect(p,a) ICOM_CALL1(UnlockRect,p,a)
-#define IDirect3DTexture8_AddDirtyRect(p,a) ICOM_CALL1(AddDirtyRect,p,a)
+#define IDirect3DTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
+#define IDirect3DTexture8_GetSurfaceLevel(p,a,b) (p)->lpVtbl->GetSurfaceLevel(p,a,b)
+#define IDirect3DTexture8_LockRect(p,a,b,c,d) (p)->lpVtbl->LockRect(p,a,b,c,d)
+#define IDirect3DTexture8_UnlockRect(p,a) (p)->lpVtbl->UnlockRect(p,a)
+#define IDirect3DTexture8_AddDirtyRect(p,a) (p)->lpVtbl->AddDirtyRect(p,a)
+#endif
/*****************************************************************************
* IDirect3DVolumeTexture8 interface
@@ -704,29 +726,31 @@
ICOM_DEFINE(IDirect3DVolumeTexture8,IDirect3DBaseTexture8)
#undef INTERFACE
+#ifdef COBJMACROS
/*** IUnknown methods ***/
-#define IDirect3DVolumeTexture8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DVolumeTexture8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DVolumeTexture8_Release(p) ICOM_CALL (Release,p)
+#define IDirect3DVolumeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVolumeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVolumeTexture8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DVolumeTexture8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DVolumeTexture8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DVolumeTexture8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
-#define IDirect3DVolumeTexture8_GetPriority(p) ICOM_CALL (GetPriority,p)
-#define IDirect3DVolumeTexture8_PreLoad(p) ICOM_CALL (PreLoad,p)
-#define IDirect3DVolumeTexture8_GetType(p) ICOM_CALL (GetType,p)
+#define IDirect3DVolumeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DVolumeTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DVolumeTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DVolumeTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DVolumeTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DVolumeTexture8_GetType(p) (p)->lpVtbl->GetType(p)
/*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DVolumeTexture8_SetLOD(p,a) ICOM_CALL1(SetLOD,p,a)
-#define IDirect3DVolumeTexture8_GetLOD(p) ICOM_CALL (GetLOD,p)
-#define IDirect3DVolumeTexture8_GetLevelCount(p) ICOM_CALL (GetLevelCount,p)
+#define IDirect3DVolumeTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DVolumeTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DVolumeTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
/*** IDirect3DVolumeTexture8 methods ***/
-#define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b) ICOM_CALL2(GetLevelDesc,p,a,b)
-#define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b) ICOM_CALL2(GetVolumeLevel,p,a,b)
-#define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d) ICOM_CALL4(LockBox,p,a,b,c,d)
-#define IDirect3DVolumeTexture8_UnlockBox(p,a) ICOM_CALL1(UnlockBox,p,a)
-#define IDirect3DVolumeTexture8_AddDirtyBox(p,a) ICOM_CALL1(AddDirtyBox,p,a)
+#define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
+#define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b)
+#define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d)
+#define IDirect3DVolumeTexture8_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a)
+#define IDirect3DVolumeTexture8_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a)
+#endif
#ifdef __cplusplus
extern "C" {