]> git.cworth.org Git - apitrace/commitdiff
Use ObjPointers consistenty.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Sat, 14 Apr 2012 21:02:42 +0000 (22:02 +0100)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Sat, 14 Apr 2012 21:02:42 +0000 (22:02 +0100)
14 files changed:
specs/d3d.py
specs/d3d10.py
specs/d3d10_1.py
specs/d3d10misc.py
specs/d3d10sdklayers.py
specs/d3d11.py
specs/d3d11sdklayers.py
specs/d3d11shader.py
specs/d3d8.py
specs/d3d9.py
specs/ddraw.py
specs/dxgi.py
specs/winapi.py
wrappers/trace.py

index 2684e6b65cb92317ccabde7c3e5ad45c3401d205..c390501f14def34120c7f27a08805aeb5406e63f 100644 (file)
@@ -30,9 +30,6 @@ from ddraw import *
 from d3dtypes import *
 from d3dcaps import *
 
-def OutPointer(type):
-    return Out(Pointer(type), "out")
-
 d3dnextFlags = Flags(DWORD, [
     "D3DNEXT_NEXT",
     "D3DNEXT_HEAD",
@@ -155,31 +152,31 @@ IDirect3DViewport3 = Interface("IDirect3DViewport3", IDirect3DViewport2)
 IDirect3DVertexBuffer = Interface("IDirect3DVertexBuffer", IUnknown)
 IDirect3DVertexBuffer7 = Interface("IDirect3DVertexBuffer7", IUnknown)
 
-LPUNKNOWN = Pointer(IUnknown)
-
-LPDIRECT3D = Pointer(IDirect3D)
-LPDIRECT3DDEVICE = Pointer(IDirect3DDevice)
-LPDIRECT3DEXECUTEBUFFER = Pointer(IDirect3DExecuteBuffer)
-LPDIRECT3DLIGHT = Pointer(IDirect3DLight)
-LPDIRECT3DMATERIAL = Pointer(IDirect3DMaterial)
-LPDIRECT3DTEXTURE = Pointer(IDirect3DTexture)
-LPDIRECT3DVIEWPORT = Pointer(IDirect3DViewport)
-
-LPDIRECT3D2 = Pointer(IDirect3D2)
-LPDIRECT3DDEVICE2 = Pointer(IDirect3DDevice2)
-LPDIRECT3DMATERIAL2 = Pointer(IDirect3DMaterial2)
-LPDIRECT3DTEXTURE2 = Pointer(IDirect3DTexture2)
-LPDIRECT3DVIEWPORT2 = Pointer(IDirect3DViewport2)
-
-LPDIRECT3D3 = Pointer(IDirect3D3)
-LPDIRECT3DDEVICE3 = Pointer(IDirect3DDevice3)
-LPDIRECT3DMATERIAL3 = Pointer(IDirect3DMaterial3)
-LPDIRECT3DVIEWPORT3 = Pointer(IDirect3DViewport3)
-LPDIRECT3DVERTEXBUFFER = Pointer(IDirect3DVertexBuffer)
-
-LPDIRECT3D7 = Pointer(IDirect3D7)
-LPDIRECT3DDEVICE7 = Pointer(IDirect3DDevice7)
-LPDIRECT3DVERTEXBUFFER7 = Pointer(IDirect3DVertexBuffer7)
+LPUNKNOWN = ObjPointer(IUnknown)
+
+LPDIRECT3D = ObjPointer(IDirect3D)
+LPDIRECT3DDEVICE = ObjPointer(IDirect3DDevice)
+LPDIRECT3DEXECUTEBUFFER = ObjPointer(IDirect3DExecuteBuffer)
+LPDIRECT3DLIGHT = ObjPointer(IDirect3DLight)
+LPDIRECT3DMATERIAL = ObjPointer(IDirect3DMaterial)
+LPDIRECT3DTEXTURE = ObjPointer(IDirect3DTexture)
+LPDIRECT3DVIEWPORT = ObjPointer(IDirect3DViewport)
+
+LPDIRECT3D2 = ObjPointer(IDirect3D2)
+LPDIRECT3DDEVICE2 = ObjPointer(IDirect3DDevice2)
+LPDIRECT3DMATERIAL2 = ObjPointer(IDirect3DMaterial2)
+LPDIRECT3DTEXTURE2 = ObjPointer(IDirect3DTexture2)
+LPDIRECT3DVIEWPORT2 = ObjPointer(IDirect3DViewport2)
+
+LPDIRECT3D3 = ObjPointer(IDirect3D3)
+LPDIRECT3DDEVICE3 = ObjPointer(IDirect3DDevice3)
+LPDIRECT3DMATERIAL3 = ObjPointer(IDirect3DMaterial3)
+LPDIRECT3DVIEWPORT3 = ObjPointer(IDirect3DViewport3)
+LPDIRECT3DVERTEXBUFFER = ObjPointer(IDirect3DVertexBuffer)
+
+LPDIRECT3D7 = ObjPointer(IDirect3D7)
+LPDIRECT3DDEVICE7 = ObjPointer(IDirect3DDevice7)
+LPDIRECT3DVERTEXBUFFER7 = ObjPointer(IDirect3DVertexBuffer7)
 
 IDirect3D.methods += [
     Method(HRESULT, "Initialize", [(REFCLSID, "riid")]),
index 474437d57cc03a130ab7e0a1c1bedb9fc94b748e..a72d321e55e5cea6de125b837b3e38b81284f8f8 100644 (file)
@@ -687,7 +687,7 @@ ID3D10Device = Interface("ID3D10Device", IUnknown)
 ID3D10Multithread = Interface("ID3D10Multithread", IUnknown)
 
 ID3D10DeviceChild.methods += [
-    Method(Void, "GetDevice", [Out(Pointer(Pointer(ID3D10Device)), "ppDevice")]),
+    Method(Void, "GetDevice", [Out(Pointer(ObjPointer(ID3D10Device)), "ppDevice")]),
     Method(HRESULT, "GetPrivateData", [(REFGUID, "guid"), Out(Pointer(UINT), "pDataSize"), Out(OpaquePointer(Void), "pData")]),
     Method(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "DataSize"), (OpaqueBlob(Const(Void), "DataSize"), "pData")]),
     Method(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")]),
@@ -724,7 +724,7 @@ ID3D10Texture3D.methods += [
 ]
 
 ID3D10View.methods += [
-    Method(Void, "GetResource", [Out(Pointer(Pointer(ID3D10Resource)), "ppResource")]),
+    Method(Void, "GetResource", [Out(Pointer(ObjPointer(ID3D10Resource)), "ppResource")]),
 ]
 
 ID3D10DepthStencilView.methods += [
@@ -771,64 +771,64 @@ ID3D10Query.methods += [
 ]
 
 ID3D10Device.methods += [
-    Method(Void, "VSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(Pointer(ID3D10Buffer)), "NumBuffers"), "ppConstantBuffers")]),
-    Method(Void, "PSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(Pointer(ID3D10ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
-    Method(Void, "PSSetShader", [(Pointer(ID3D10PixelShader), "pPixelShader")]),
-    Method(Void, "PSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(Pointer(ID3D10SamplerState)), "NumSamplers"), "ppSamplers")]),
-    Method(Void, "VSSetShader", [(Pointer(ID3D10VertexShader), "pVertexShader")]),
+    Method(Void, "VSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D10Buffer)), "NumBuffers"), "ppConstantBuffers")]),
+    Method(Void, "PSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D10ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
+    Method(Void, "PSSetShader", [(ObjPointer(ID3D10PixelShader), "pPixelShader")]),
+    Method(Void, "PSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D10SamplerState)), "NumSamplers"), "ppSamplers")]),
+    Method(Void, "VSSetShader", [(ObjPointer(ID3D10VertexShader), "pVertexShader")]),
     Method(Void, "DrawIndexed", [(UINT, "IndexCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation")]),
     Method(Void, "Draw", [(UINT, "VertexCount"), (UINT, "StartVertexLocation")]),
-    Method(Void, "PSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(Pointer(ID3D10Buffer)), "NumBuffers"), "ppConstantBuffers")]),
-    Method(Void, "IASetInputLayout", [(Pointer(ID3D10InputLayout), "pInputLayout")]),
-    Method(Void, "IASetVertexBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(Pointer(ID3D10Buffer)), "NumBuffers"), "ppVertexBuffers"), (Array(Const(UINT), "NumBuffers"), "pStrides"), (Array(Const(UINT), "NumBuffers"), "pOffsets")]),
-    Method(Void, "IASetIndexBuffer", [(Pointer(ID3D10Buffer), "pIndexBuffer"), (DXGI_FORMAT, "Format"), (UINT, "Offset")]),
+    Method(Void, "PSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D10Buffer)), "NumBuffers"), "ppConstantBuffers")]),
+    Method(Void, "IASetInputLayout", [(ObjPointer(ID3D10InputLayout), "pInputLayout")]),
+    Method(Void, "IASetVertexBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D10Buffer)), "NumBuffers"), "ppVertexBuffers"), (Array(Const(UINT), "NumBuffers"), "pStrides"), (Array(Const(UINT), "NumBuffers"), "pOffsets")]),
+    Method(Void, "IASetIndexBuffer", [(ObjPointer(ID3D10Buffer), "pIndexBuffer"), (DXGI_FORMAT, "Format"), (UINT, "Offset")]),
     Method(Void, "DrawIndexedInstanced", [(UINT, "IndexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartIndexLocation"), (INT, "BaseVertexLocation"), (UINT, "StartInstanceLocation")]),
     Method(Void, "DrawInstanced", [(UINT, "VertexCountPerInstance"), (UINT, "InstanceCount"), (UINT, "StartVertexLocation"), (UINT, "StartInstanceLocation")]),
-    Method(Void, "GSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(Pointer(ID3D10Buffer)), "NumBuffers"), "ppConstantBuffers")]),
-    Method(Void, "GSSetShader", [(Pointer(ID3D10GeometryShader), "pShader")]),
+    Method(Void, "GSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D10Buffer)), "NumBuffers"), "ppConstantBuffers")]),
+    Method(Void, "GSSetShader", [(ObjPointer(ID3D10GeometryShader), "pShader")]),
     Method(Void, "IASetPrimitiveTopology", [(D3D10_PRIMITIVE_TOPOLOGY, "Topology")]),
-    Method(Void, "VSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(Pointer(ID3D10ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
-    Method(Void, "VSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(Pointer(ID3D10SamplerState)), "NumSamplers"), "ppSamplers")]),
-    Method(Void, "SetPredication", [(Pointer(ID3D10Predicate), "pPredicate"), (BOOL, "PredicateValue")]),
-    Method(Void, "GSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(Pointer(ID3D10ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
-    Method(Void, "GSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(Pointer(ID3D10SamplerState)), "NumSamplers"), "ppSamplers")]),
-    Method(Void, "OMSetRenderTargets", [(UINT, "NumViews"), (Array(Const(Pointer(ID3D10RenderTargetView)), "NumViews"), "ppRenderTargetViews"), (Pointer(ID3D10DepthStencilView), "pDepthStencilView")]),
-    Method(Void, "OMSetBlendState", [(Pointer(ID3D10BlendState), "pBlendState"), (Array(Const(FLOAT), 4), "BlendFactor"), (UINT, "SampleMask")]),
-    Method(Void, "OMSetDepthStencilState", [(Pointer(ID3D10DepthStencilState), "pDepthStencilState"), (UINT, "StencilRef")]),
-    Method(Void, "SOSetTargets", [(UINT, "NumBuffers"), (Array(Const(Pointer(ID3D10Buffer)), "NumBuffers"), "ppSOTargets"), (Array(Const(UINT), "NumBuffers"), "pOffsets")]),
+    Method(Void, "VSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D10ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
+    Method(Void, "VSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D10SamplerState)), "NumSamplers"), "ppSamplers")]),
+    Method(Void, "SetPredication", [(ObjPointer(ID3D10Predicate), "pPredicate"), (BOOL, "PredicateValue")]),
+    Method(Void, "GSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(ObjPointer(ID3D10ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]),
+    Method(Void, "GSSetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), (Array(Const(ObjPointer(ID3D10SamplerState)), "NumSamplers"), "ppSamplers")]),
+    Method(Void, "OMSetRenderTargets", [(UINT, "NumViews"), (Array(Const(ObjPointer(ID3D10RenderTargetView)), "NumViews"), "ppRenderTargetViews"), (ObjPointer(ID3D10DepthStencilView), "pDepthStencilView")]),
+    Method(Void, "OMSetBlendState", [(ObjPointer(ID3D10BlendState), "pBlendState"), (Array(Const(FLOAT), 4), "BlendFactor"), (UINT, "SampleMask")]),
+    Method(Void, "OMSetDepthStencilState", [(ObjPointer(ID3D10DepthStencilState), "pDepthStencilState"), (UINT, "StencilRef")]),
+    Method(Void, "SOSetTargets", [(UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D10Buffer)), "NumBuffers"), "ppSOTargets"), (Array(Const(UINT), "NumBuffers"), "pOffsets")]),
     Method(Void, "DrawAuto", []),
-    Method(Void, "RSSetState", [(Pointer(ID3D10RasterizerState), "pRasterizerState")]),
+    Method(Void, "RSSetState", [(ObjPointer(ID3D10RasterizerState), "pRasterizerState")]),
     Method(Void, "RSSetViewports", [(UINT, "NumViewports"), (Array(Const(D3D10_VIEWPORT), "NumViewports"), "pViewports")]),
     Method(Void, "RSSetScissorRects", [(UINT, "NumRects"), (Array(Const(D3D10_RECT), "NumRects"), "pRects")]),
-    Method(Void, "CopySubresourceRegion", [(Pointer(ID3D10Resource), "pDstResource"), (UINT, "DstSubresource"), (UINT, "DstX"), (UINT, "DstY"), (UINT, "DstZ"), (Pointer(ID3D10Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D10_BOX)), "pSrcBox")]),
-    Method(Void, "CopyResource", [(Pointer(ID3D10Resource), "pDstResource"), (Pointer(ID3D10Resource), "pSrcResource")]),
-    Method(Void, "UpdateSubresource", [(Pointer(ID3D10Resource), "pDstResource"), (UINT, "DstSubresource"), (Pointer(Const(D3D10_BOX)), "pDstBox"), (OpaquePointer(Const(Void)), "pSrcData"), (UINT, "SrcRowPitch"), (UINT, "SrcDepthPitch")]),
-    Method(Void, "ClearRenderTargetView", [(Pointer(ID3D10RenderTargetView), "pRenderTargetView"), (Array(Const(FLOAT), 4), "ColorRGBA")]),
-    Method(Void, "ClearDepthStencilView", [(Pointer(ID3D10DepthStencilView), "pDepthStencilView"), (D3D10_CLEAR_FLAG, "ClearFlags"), (FLOAT, "Depth"), (UINT8, "Stencil")]),
-    Method(Void, "GenerateMips", [(Pointer(ID3D10ShaderResourceView), "pShaderResourceView")]),
-    Method(Void, "ResolveSubresource", [(Pointer(ID3D10Resource), "pDstResource"), (UINT, "DstSubresource"), (Pointer(ID3D10Resource), "pSrcResource"), (UINT, "SrcSubresource"), (DXGI_FORMAT, "Format")]),
-    Method(Void, "VSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(Pointer(ID3D10Buffer), "NumBuffers"), "ppConstantBuffers")]),
-    Method(Void, "PSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(Pointer(ID3D10ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
-    Method(Void, "PSGetShader", [Out(Pointer(Pointer(ID3D10PixelShader)), "ppPixelShader")]),
-    Method(Void, "PSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(Pointer(ID3D10SamplerState), "NumSamplers"), "ppSamplers")]),
-    Method(Void, "VSGetShader", [Out(Pointer(Pointer(ID3D10VertexShader)), "ppVertexShader")]),
-    Method(Void, "PSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(Pointer(ID3D10Buffer), "NumBuffers"), "ppConstantBuffers")]),
-    Method(Void, "IAGetInputLayout", [Out(Pointer(Pointer(ID3D10InputLayout)), "ppInputLayout")]),
-    Method(Void, "IAGetVertexBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(Pointer(ID3D10Buffer), "NumBuffers"), "ppVertexBuffers"), Out(Array(UINT, "NumBuffers"), "pStrides"), Out(Array(UINT, "NumBuffers"), "pOffsets")]),
-    Method(Void, "IAGetIndexBuffer", [Out(Pointer(Pointer(ID3D10Buffer)), "pIndexBuffer"), Out(Pointer(DXGI_FORMAT), "Format"), Out(Pointer(UINT), "Offset")]),
-    Method(Void, "GSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(Pointer(ID3D10Buffer), "NumBuffers"), "ppConstantBuffers")]),
-    Method(Void, "GSGetShader", [Out(Pointer(Pointer(ID3D10GeometryShader)), "ppGeometryShader")]),
+    Method(Void, "CopySubresourceRegion", [(ObjPointer(ID3D10Resource), "pDstResource"), (UINT, "DstSubresource"), (UINT, "DstX"), (UINT, "DstY"), (UINT, "DstZ"), (ObjPointer(ID3D10Resource), "pSrcResource"), (UINT, "SrcSubresource"), (Pointer(Const(D3D10_BOX)), "pSrcBox")]),
+    Method(Void, "CopyResource", [(ObjPointer(ID3D10Resource), "pDstResource"), (ObjPointer(ID3D10Resource), "pSrcResource")]),
+    Method(Void, "UpdateSubresource", [(ObjPointer(ID3D10Resource), "pDstResource"), (UINT, "DstSubresource"), (Pointer(Const(D3D10_BOX)), "pDstBox"), (OpaquePointer(Const(Void)), "pSrcData"), (UINT, "SrcRowPitch"), (UINT, "SrcDepthPitch")]),
+    Method(Void, "ClearRenderTargetView", [(ObjPointer(ID3D10RenderTargetView), "pRenderTargetView"), (Array(Const(FLOAT), 4), "ColorRGBA")]),
+    Method(Void, "ClearDepthStencilView", [(ObjPointer(ID3D10DepthStencilView), "pDepthStencilView"), (D3D10_CLEAR_FLAG, "ClearFlags"), (FLOAT, "Depth"), (UINT8, "Stencil")]),
+    Method(Void, "GenerateMips", [(ObjPointer(ID3D10ShaderResourceView), "pShaderResourceView")]),
+    Method(Void, "ResolveSubresource", [(ObjPointer(ID3D10Resource), "pDstResource"), (UINT, "DstSubresource"), (ObjPointer(ID3D10Resource), "pSrcResource"), (UINT, "SrcSubresource"), (DXGI_FORMAT, "Format")]),
+    Method(Void, "VSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D10Buffer), "NumBuffers"), "ppConstantBuffers")]),
+    Method(Void, "PSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D10ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
+    Method(Void, "PSGetShader", [Out(Pointer(ObjPointer(ID3D10PixelShader)), "ppPixelShader")]),
+    Method(Void, "PSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D10SamplerState), "NumSamplers"), "ppSamplers")]),
+    Method(Void, "VSGetShader", [Out(Pointer(ObjPointer(ID3D10VertexShader)), "ppVertexShader")]),
+    Method(Void, "PSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D10Buffer), "NumBuffers"), "ppConstantBuffers")]),
+    Method(Void, "IAGetInputLayout", [Out(Pointer(ObjPointer(ID3D10InputLayout)), "ppInputLayout")]),
+    Method(Void, "IAGetVertexBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D10Buffer), "NumBuffers"), "ppVertexBuffers"), Out(Array(UINT, "NumBuffers"), "pStrides"), Out(Array(UINT, "NumBuffers"), "pOffsets")]),
+    Method(Void, "IAGetIndexBuffer", [Out(Pointer(ObjPointer(ID3D10Buffer)), "pIndexBuffer"), Out(Pointer(DXGI_FORMAT), "Format"), Out(Pointer(UINT), "Offset")]),
+    Method(Void, "GSGetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D10Buffer), "NumBuffers"), "ppConstantBuffers")]),
+    Method(Void, "GSGetShader", [Out(Pointer(ObjPointer(ID3D10GeometryShader)), "ppGeometryShader")]),
     Method(Void, "IAGetPrimitiveTopology", [Out(Pointer(D3D10_PRIMITIVE_TOPOLOGY), "pTopology")]),
-    Method(Void, "VSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(Pointer(ID3D10ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
-    Method(Void, "VSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(Pointer(ID3D10SamplerState), "NumSamplers"), "ppSamplers")]),
-    Method(Void, "GetPredication", [Out(Pointer(Pointer(ID3D10Predicate)), "ppPredicate"), Out(Pointer(BOOL), "pPredicateValue")]),
-    Method(Void, "GSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(Pointer(ID3D10ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
-    Method(Void, "GSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(Pointer(ID3D10SamplerState), "NumSamplers"), "ppSamplers")]),
-    Method(Void, "OMGetRenderTargets", [(UINT, "NumViews"), Out(Array(Pointer(ID3D10RenderTargetView), "NumViews"), "ppRenderTargetViews"), Out(Pointer(Pointer(ID3D10DepthStencilView)), "ppDepthStencilView")]),
-    Method(Void, "OMGetBlendState", [Out(Pointer(Pointer(ID3D10BlendState)), "ppBlendState"), Out(Array(FLOAT, 4), "BlendFactor"), Out(Pointer(UINT), "pSampleMask")]),
-    Method(Void, "OMGetDepthStencilState", [Out(Pointer(Pointer(ID3D10DepthStencilState)), "ppDepthStencilState"), Out(Pointer(UINT), "pStencilRef")]),
-    Method(Void, "SOGetTargets", [(UINT, "NumBuffers"), Out(Array(Pointer(ID3D10Buffer), "NumBuffers"), "ppSOTargets"), Out(Array(UINT, "NumBuffers"), "pOffsets")]),
-    Method(Void, "RSGetState", [Out(Pointer(Pointer(ID3D10RasterizerState)), "ppRasterizerState")]),
+    Method(Void, "VSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D10ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
+    Method(Void, "VSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D10SamplerState), "NumSamplers"), "ppSamplers")]),
+    Method(Void, "GetPredication", [Out(Pointer(ObjPointer(ID3D10Predicate)), "ppPredicate"), Out(Pointer(BOOL), "pPredicateValue")]),
+    Method(Void, "GSGetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), Out(Array(ObjPointer(ID3D10ShaderResourceView), "NumViews"), "ppShaderResourceViews")]),
+    Method(Void, "GSGetSamplers", [(UINT, "StartSlot"), (UINT, "NumSamplers"), Out(Array(ObjPointer(ID3D10SamplerState), "NumSamplers"), "ppSamplers")]),
+    Method(Void, "OMGetRenderTargets", [(UINT, "NumViews"), Out(Array(ObjPointer(ID3D10RenderTargetView), "NumViews"), "ppRenderTargetViews"), Out(Pointer(ObjPointer(ID3D10DepthStencilView)), "ppDepthStencilView")]),
+    Method(Void, "OMGetBlendState", [Out(Pointer(ObjPointer(ID3D10BlendState)), "ppBlendState"), Out(Array(FLOAT, 4), "BlendFactor"), Out(Pointer(UINT), "pSampleMask")]),
+    Method(Void, "OMGetDepthStencilState", [Out(Pointer(ObjPointer(ID3D10DepthStencilState)), "ppDepthStencilState"), Out(Pointer(UINT), "pStencilRef")]),
+    Method(Void, "SOGetTargets", [(UINT, "NumBuffers"), Out(Array(ObjPointer(ID3D10Buffer), "NumBuffers"), "ppSOTargets"), Out(Array(UINT, "NumBuffers"), "pOffsets")]),
+    Method(Void, "RSGetState", [Out(Pointer(ObjPointer(ID3D10RasterizerState)), "ppRasterizerState")]),
     Method(Void, "RSGetViewports", [Out(Pointer(UINT), "NumViewports"), Out(Array(D3D10_VIEWPORT, "*NumViewports"), "pViewports")]),
     Method(Void, "RSGetScissorRects", [Out(Pointer(UINT), "NumRects"), Out(Array(D3D10_RECT, "*NumRects"), "pRects")]),
     Method(HRESULT, "GetDeviceRemovedReason", []),
@@ -839,31 +839,31 @@ ID3D10Device.methods += [
     Method(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "pData")]),
     Method(Void, "ClearState", []),
     Method(Void, "Flush", []),
-    Method(HRESULT, "CreateBuffer", [(Pointer(Const(D3D10_BUFFER_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(Pointer(ID3D10Buffer)), "ppBuffer")]),
-    Method(HRESULT, "CreateTexture1D", [(Pointer(Const(D3D10_TEXTURE1D_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(Pointer(ID3D10Texture1D)), "ppTexture1D")]),
-    Method(HRESULT, "CreateTexture2D", [(Pointer(Const(D3D10_TEXTURE2D_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(Pointer(ID3D10Texture2D)), "ppTexture2D")]),
-    Method(HRESULT, "CreateTexture3D", [(Pointer(Const(D3D10_TEXTURE3D_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(Pointer(ID3D10Texture3D)), "ppTexture3D")]),
-    Method(HRESULT, "CreateShaderResourceView", [(Pointer(ID3D10Resource), "pResource"), (Pointer(Const(D3D10_SHADER_RESOURCE_VIEW_DESC)), "pDesc"), Out(Pointer(Pointer(ID3D10ShaderResourceView)), "ppSRView")]),
-    Method(HRESULT, "CreateRenderTargetView", [(Pointer(ID3D10Resource), "pResource"), (Pointer(Const(D3D10_RENDER_TARGET_VIEW_DESC)), "pDesc"), Out(Pointer(Pointer(ID3D10RenderTargetView)), "ppRTView")]),
-    Method(HRESULT, "CreateDepthStencilView", [(Pointer(ID3D10Resource), "pResource"), (Pointer(Const(D3D10_DEPTH_STENCIL_VIEW_DESC)), "pDesc"), Out(Pointer(Pointer(ID3D10DepthStencilView)), "ppDepthStencilView")]),
-    Method(HRESULT, "CreateInputLayout", [(Array(Const(D3D10_INPUT_ELEMENT_DESC), "NumElements"), "pInputElementDescs"), (UINT, "NumElements"), (Blob(Const(Void), "BytecodeLength"), "pShaderBytecodeWithInputSignature"), (SIZE_T, "BytecodeLength"), Out(Pointer(Pointer(ID3D10InputLayout)), "ppInputLayout")]),
-    Method(HRESULT, "CreateVertexShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), Out(Pointer(Pointer(ID3D10VertexShader)), "ppVertexShader")]),
-    Method(HRESULT, "CreateGeometryShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), Out(Pointer(Pointer(ID3D10GeometryShader)), "ppGeometryShader")]),
-    Method(HRESULT, "CreateGeometryShaderWithStreamOutput", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (Array(Const(D3D10_SO_DECLARATION_ENTRY), "NumEntries"), "pSODeclaration"), (UINT, "NumEntries"), (UINT, "OutputStreamStride"), Out(Pointer(Pointer(ID3D10GeometryShader)), "ppGeometryShader")]),
-    Method(HRESULT, "CreatePixelShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), Out(Pointer(Pointer(ID3D10PixelShader)), "ppPixelShader")]),
-    Method(HRESULT, "CreateBlendState", [(Pointer(Const(D3D10_BLEND_DESC)), "pBlendStateDesc"), Out(Pointer(Pointer(ID3D10BlendState)), "ppBlendState")]),
-    Method(HRESULT, "CreateDepthStencilState", [(Pointer(Const(D3D10_DEPTH_STENCIL_DESC)), "pDepthStencilDesc"), Out(Pointer(Pointer(ID3D10DepthStencilState)), "ppDepthStencilState")]),
-    Method(HRESULT, "CreateRasterizerState", [(Pointer(Const(D3D10_RASTERIZER_DESC)), "pRasterizerDesc"), Out(Pointer(Pointer(ID3D10RasterizerState)), "ppRasterizerState")]),
-    Method(HRESULT, "CreateSamplerState", [(Pointer(Const(D3D10_SAMPLER_DESC)), "pSamplerDesc"), Out(Pointer(Pointer(ID3D10SamplerState)), "ppSamplerState")]),
-    Method(HRESULT, "CreateQuery", [(Pointer(Const(D3D10_QUERY_DESC)), "pQueryDesc"), Out(Pointer(Pointer(ID3D10Query)), "ppQuery")]),
-    Method(HRESULT, "CreatePredicate", [(Pointer(Const(D3D10_QUERY_DESC)), "pPredicateDesc"), Out(Pointer(Pointer(ID3D10Predicate)), "ppPredicate")]),
-    Method(HRESULT, "CreateCounter", [(Pointer(Const(D3D10_COUNTER_DESC)), "pCounterDesc"), Out(Pointer(Pointer(ID3D10Counter)), "ppCounter")]),
+    Method(HRESULT, "CreateBuffer", [(Pointer(Const(D3D10_BUFFER_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(ObjPointer(ID3D10Buffer)), "ppBuffer")]),
+    Method(HRESULT, "CreateTexture1D", [(Pointer(Const(D3D10_TEXTURE1D_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(ObjPointer(ID3D10Texture1D)), "ppTexture1D")]),
+    Method(HRESULT, "CreateTexture2D", [(Pointer(Const(D3D10_TEXTURE2D_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(ObjPointer(ID3D10Texture2D)), "ppTexture2D")]),
+    Method(HRESULT, "CreateTexture3D", [(Pointer(Const(D3D10_TEXTURE3D_DESC)), "pDesc"), (Pointer(Const(D3D10_SUBRESOURCE_DATA)), "pInitialData"), Out(Pointer(ObjPointer(ID3D10Texture3D)), "ppTexture3D")]),
+    Method(HRESULT, "CreateShaderResourceView", [(ObjPointer(ID3D10Resource), "pResource"), (Pointer(Const(D3D10_SHADER_RESOURCE_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D10ShaderResourceView)), "ppSRView")]),
+    Method(HRESULT, "CreateRenderTargetView", [(ObjPointer(ID3D10Resource), "pResource"), (Pointer(Const(D3D10_RENDER_TARGET_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D10RenderTargetView)), "ppRTView")]),
+    Method(HRESULT, "CreateDepthStencilView", [(ObjPointer(ID3D10Resource), "pResource"), (Pointer(Const(D3D10_DEPTH_STENCIL_VIEW_DESC)), "pDesc"), Out(Pointer(ObjPointer(ID3D10DepthStencilView)), "ppDepthStencilView")]),
+    Method(HRESULT, "CreateInputLayout", [(Array(Const(D3D10_INPUT_ELEMENT_DESC), "NumElements"), "pInputElementDescs"), (UINT, "NumElements"), (Blob(Const(Void), "BytecodeLength"), "pShaderBytecodeWithInputSignature"), (SIZE_T, "BytecodeLength"), Out(Pointer(ObjPointer(ID3D10InputLayout)), "ppInputLayout")]),
+    Method(HRESULT, "CreateVertexShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), Out(Pointer(ObjPointer(ID3D10VertexShader)), "ppVertexShader")]),
+    Method(HRESULT, "CreateGeometryShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), Out(Pointer(ObjPointer(ID3D10GeometryShader)), "ppGeometryShader")]),
+    Method(HRESULT, "CreateGeometryShaderWithStreamOutput", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), (Array(Const(D3D10_SO_DECLARATION_ENTRY), "NumEntries"), "pSODeclaration"), (UINT, "NumEntries"), (UINT, "OutputStreamStride"), Out(Pointer(ObjPointer(ID3D10GeometryShader)), "ppGeometryShader")]),
+    Method(HRESULT, "CreatePixelShader", [(Blob(Const(Void), "BytecodeLength"), "pShaderBytecode"), (SIZE_T, "BytecodeLength"), Out(Pointer(ObjPointer(ID3D10PixelShader)), "ppPixelShader")]),
+    Method(HRESULT, "CreateBlendState", [(Pointer(Const(D3D10_BLEND_DESC)), "pBlendStateDesc"), Out(Pointer(ObjPointer(ID3D10BlendState)), "ppBlendState")]),
+    Method(HRESULT, "CreateDepthStencilState", [(Pointer(Const(D3D10_DEPTH_STENCIL_DESC)), "pDepthStencilDesc"), Out(Pointer(ObjPointer(ID3D10DepthStencilState)), "ppDepthStencilState")]),
+    Method(HRESULT, "CreateRasterizerState", [(Pointer(Const(D3D10_RASTERIZER_DESC)), "pRasterizerDesc"), Out(Pointer(ObjPointer(ID3D10RasterizerState)), "ppRasterizerState")]),
+    Method(HRESULT, "CreateSamplerState", [(Pointer(Const(D3D10_SAMPLER_DESC)), "pSamplerDesc"), Out(Pointer(ObjPointer(ID3D10SamplerState)), "ppSamplerState")]),
+    Method(HRESULT, "CreateQuery", [(Pointer(Const(D3D10_QUERY_DESC)), "pQueryDesc"), Out(Pointer(ObjPointer(ID3D10Query)), "ppQuery")]),
+    Method(HRESULT, "CreatePredicate", [(Pointer(Const(D3D10_QUERY_DESC)), "pPredicateDesc"), Out(Pointer(ObjPointer(ID3D10Predicate)), "ppPredicate")]),
+    Method(HRESULT, "CreateCounter", [(Pointer(Const(D3D10_COUNTER_DESC)), "pCounterDesc"), Out(Pointer(ObjPointer(ID3D10Counter)), "ppCounter")]),
     Method(HRESULT, "CheckFormatSupport", [(DXGI_FORMAT, "Format"), Out(Pointer(UINT), "pFormatSupport")]),
     Method(HRESULT, "CheckMultisampleQualityLevels", [(DXGI_FORMAT, "Format"), (UINT, "SampleCount"), Out(Pointer(UINT), "pNumQualityLevels")]),
     Method(Void, "CheckCounterInfo", [Out(Pointer(D3D10_COUNTER_INFO), "pCounterInfo")]),
     Method(HRESULT, "CheckCounter", [(Pointer(Const(D3D10_COUNTER_DESC)), "pDesc"), Out(Pointer(D3D10_COUNTER_TYPE), "pType"), Out(Pointer(UINT), "pActiveCounters"), Out(LPSTR, "szName"), Out(Pointer(UINT), "pNameLength"), Out(LPSTR, "szUnits"), Out(Pointer(UINT), "pUnitsLength"), Out(LPSTR, "szDescription"), Out(Pointer(UINT), "pDescriptionLength")]),
     Method(D3D10_CREATE_DEVICE_FLAG, "GetCreationFlags", []),
-    Method(HRESULT, "OpenSharedResource", [(HANDLE, "hResource"), (REFIID, "ReturnedInterface"), Out(Pointer(OpaquePointer(Void)), "ppResource")]),
+    Method(HRESULT, "OpenSharedResource", [(HANDLE, "hResource"), (REFIID, "ReturnedInterface"), Out(Pointer(ObjPointer(Void)), "ppResource")]),
     Method(Void, "SetTextFilterSize", [(UINT, "Width"), (UINT, "Height")]),
     Method(Void, "GetTextFilterSize", [Out(Pointer(UINT), "pWidth"), Out(Pointer(UINT), "pHeight")]),
 ]
index c9bda7efd301c2791630654c75fdaac557d721f9..82adf7254073b89f3bc1f24f577056bb144d2edd 100644 (file)
@@ -30,7 +30,7 @@ from d3d10sdklayers import *
 from d3d10 import *
 
 ID3D10Blob = Interface("ID3D10Blob", IUnknown)
-LPD3D10BLOB = Pointer(ID3D10Blob)
+LPD3D10BLOB = ObjPointer(ID3D10Blob)
 
 ID3D10Blob.methods += [
     Method(LPVOID, "GetBufferPointer", []),
@@ -104,15 +104,15 @@ ID3D10ShaderResourceView1.methods += [
 
 ID3D10Device1 = Interface("ID3D10Device1", ID3D10Device)
 ID3D10Device1.methods += [
-    Method(HRESULT, "CreateShaderResourceView1", [(Pointer(ID3D10Resource), "pResource"), Out(Pointer(Const(D3D10_SHADER_RESOURCE_VIEW_DESC1)), "pDesc"), Out(Pointer(Pointer(ID3D10ShaderResourceView1)), "ppSRView")]),
-    Method(HRESULT, "CreateBlendState1", [(Pointer(Const(D3D10_BLEND_DESC1)), "pBlendStateDesc"), Out(Pointer(Pointer(ID3D10BlendState1)), "ppBlendState")]),
+    Method(HRESULT, "CreateShaderResourceView1", [(ObjPointer(ID3D10Resource), "pResource"), Out(Pointer(Const(D3D10_SHADER_RESOURCE_VIEW_DESC1)), "pDesc"), Out(Pointer(ObjPointer(ID3D10ShaderResourceView1)), "ppSRView")]),
+    Method(HRESULT, "CreateBlendState1", [(Pointer(Const(D3D10_BLEND_DESC1)), "pBlendStateDesc"), Out(Pointer(ObjPointer(ID3D10BlendState1)), "ppBlendState")]),
     Method(D3D10_FEATURE_LEVEL1, "GetFeatureLevel", []),
 ]
 
 d3d10_1 = API("d3d10_1")
 d3d10_1.addFunctions([
-    StdFunction(HRESULT, "D3D10CreateDevice1", [(Pointer(IDXGIAdapter), "pAdapter"), (D3D10_DRIVER_TYPE, "DriverType"), (HMODULE, "Software"), (D3D10_CREATE_DEVICE_FLAG, "Flags"), (D3D10_FEATURE_LEVEL1, "HardwareLevel"), (UINT, "SDKVersion"), Out(Pointer(Pointer(ID3D10Device1)), "ppDevice")]),
-    StdFunction(HRESULT, "D3D10CreateDeviceAndSwapChain1", [(Pointer(IDXGIAdapter), "pAdapter"), (D3D10_DRIVER_TYPE, "DriverType"), (HMODULE, "Software"), (D3D10_CREATE_DEVICE_FLAG, "Flags"), (D3D10_FEATURE_LEVEL1, "HardwareLevel"), (UINT, "SDKVersion"), (Pointer(DXGI_SWAP_CHAIN_DESC), "pSwapChainDesc"), Out(Pointer(Pointer(IDXGISwapChain)), "ppSwapChain"), Out(Pointer(Pointer(ID3D10Device1)), "ppDevice")]),
+    StdFunction(HRESULT, "D3D10CreateDevice1", [(ObjPointer(IDXGIAdapter), "pAdapter"), (D3D10_DRIVER_TYPE, "DriverType"), (HMODULE, "Software"), (D3D10_CREATE_DEVICE_FLAG, "Flags"), (D3D10_FEATURE_LEVEL1, "HardwareLevel"), (UINT, "SDKVersion"), Out(Pointer(ObjPointer(ID3D10Device1)), "ppDevice")]),
+    StdFunction(HRESULT, "D3D10CreateDeviceAndSwapChain1", [(ObjPointer(IDXGIAdapter), "pAdapter"), (D3D10_DRIVER_TYPE, "DriverType"), (HMODULE, "Software"), (D3D10_CREATE_DEVICE_FLAG, "Flags"), (D3D10_FEATURE_LEVEL1, "HardwareLevel"), (UINT, "SDKVersion"), (Pointer(DXGI_SWAP_CHAIN_DESC), "pSwapChainDesc"), Out(Pointer(ObjPointer(IDXGISwapChain)), "ppSwapChain"), Out(Pointer(ObjPointer(ID3D10Device1)), "ppDevice")]),
     StdFunction(HRESULT, "D3D10CreateBlob", [(SIZE_T, "NumBytes"), Out(Pointer(LPD3D10BLOB), "ppBuffer")]),
 ])
 
index 41ee2e353f962cbee0e8437b588985ed79de2209..bc3452f3638cb6c3d08fbd13becb6d3500f1217d 100644 (file)
@@ -31,7 +31,7 @@ from d3d10 import *
 
 
 ID3D10Blob = Interface("ID3D10Blob", IUnknown)
-LPD3D10BLOB = Pointer(ID3D10Blob)
+LPD3D10BLOB = ObjPointer(ID3D10Blob)
 
 ID3D10Blob.methods += [
     Method(LPVOID, "GetBufferPointer", []),
@@ -50,8 +50,8 @@ D3D10_DRIVER_TYPE = Enum("D3D10_DRIVER_TYPE", [
 d3d10 = API("d3d10")
 
 d3d10.addFunctions([
-    StdFunction(HRESULT, "D3D10CreateDevice", [(Pointer(IDXGIAdapter), "pAdapter"), (D3D10_DRIVER_TYPE, "DriverType"), (HMODULE, "Software"), (D3D10_CREATE_DEVICE_FLAG, "Flags"), (UINT, "SDKVersion"), Out(Pointer(Pointer(ID3D10Device)), "ppDevice")]),
-    StdFunction(HRESULT, "D3D10CreateDeviceAndSwapChain", [(Pointer(IDXGIAdapter), "pAdapter"), (D3D10_DRIVER_TYPE, "DriverType"), (HMODULE, "Software"), (D3D10_CREATE_DEVICE_FLAG, "Flags"), (UINT, "SDKVersion"), (Pointer(DXGI_SWAP_CHAIN_DESC), "pSwapChainDesc"), Out(Pointer(Pointer(IDXGISwapChain)), "ppSwapChain"), Out(Pointer(Pointer(ID3D10Device)), "ppDevice")]),
+    StdFunction(HRESULT, "D3D10CreateDevice", [(ObjPointer(IDXGIAdapter), "pAdapter"), (D3D10_DRIVER_TYPE, "DriverType"), (HMODULE, "Software"), (D3D10_CREATE_DEVICE_FLAG, "Flags"), (UINT, "SDKVersion"), Out(Pointer(ObjPointer(ID3D10Device)), "ppDevice")]),
+    StdFunction(HRESULT, "D3D10CreateDeviceAndSwapChain", [(ObjPointer(IDXGIAdapter), "pAdapter"), (D3D10_DRIVER_TYPE, "DriverType"), (HMODULE, "Software"), (D3D10_CREATE_DEVICE_FLAG, "Flags"), (UINT, "SDKVersion"), (Pointer(DXGI_SWAP_CHAIN_DESC), "pSwapChainDesc"), Out(Pointer(ObjPointer(IDXGISwapChain)), "ppSwapChain"), Out(Pointer(ObjPointer(ID3D10Device)), "ppDevice")]),
     StdFunction(HRESULT, "D3D10CreateBlob", [(SIZE_T, "NumBytes"), Out(Pointer(LPD3D10BLOB), "ppBuffer")]),
 ])
 
index a1c4ce186ed959434af015006c69b19582e50f76..7fb2fdf3d322ee6999e8897868e7e672ec17f331 100644 (file)
@@ -38,8 +38,8 @@ ID3D10Debug.methods += [
     Method(UINT, "GetFeatureMask", []),
     Method(HRESULT, "SetPresentPerRenderOpDelay", [(UINT, "Milliseconds")]),
     Method(UINT, "GetPresentPerRenderOpDelay", []),
-    Method(HRESULT, "SetSwapChain", [(Pointer(IDXGISwapChain), "pSwapChain")]),
-    Method(HRESULT, "GetSwapChain", [Out(Pointer(Pointer(IDXGISwapChain)), "ppSwapChain")]),
+    Method(HRESULT, "SetSwapChain", [(ObjPointer(IDXGISwapChain), "pSwapChain")]),
+    Method(HRESULT, "GetSwapChain", [Out(Pointer(ObjPointer(IDXGISwapChain)), "ppSwapChain")]),
     Method(HRESULT, "Validate", []),
 ]
 
index 3a09296270e0e0acafb7bd9848af6e6679f9ecca..014c6d059e566b27bc6cc4e68e4933ffb06430b3 100644 (file)
@@ -331,10 +331,10 @@ D3D11_BOX = Struct('D3D11_BOX', [
 ])
 
 ID3D11DeviceChild.methods += [
-    StdMethod(Void, 'GetDevice', [Out(Pointer(Pointer(ID3D11Device)), 'ppDevice')]),
+    StdMethod(Void, 'GetDevice', [Out(Pointer(ObjPointer(ID3D11Device)), 'ppDevice')]),
     StdMethod(HRESULT, 'GetPrivateData', [(REFGUID, 'guid'), Out(Pointer(UINT), 'pDataSize'), Out(OpaquePointer(Void), 'pData')]),
     StdMethod(HRESULT, 'SetPrivateData', [(REFGUID, 'guid'), (UINT, 'DataSize'), (OpaqueBlob(Const(Void), 'DataSize'), 'pData')]),
-    StdMethod(HRESULT, 'SetPrivateDataInterface', [(REFGUID, 'guid'), (Pointer(Const(IUnknown)), 'pData')]),
+    StdMethod(HRESULT, 'SetPrivateDataInterface', [(REFGUID, 'guid'), (OpaquePointer(Const(IUnknown)), 'pData')]),
 ]
 
 D3D11_COMPARISON_FUNC = Enum('D3D11_COMPARISON_FUNC', [
@@ -549,7 +549,7 @@ D3D11_TEXTURECUBE_FACE = Enum('D3D11_TEXTURECUBE_FACE', [
 ])
 
 ID3D11View.methods += [
-    StdMethod(Void, 'GetResource', [Out(Pointer(Pointer(ID3D11Resource)), 'ppResource')]),
+    StdMethod(Void, 'GetResource', [Out(Pointer(ObjPointer(ID3D11Resource)), 'ppResource')]),
 ]
 
 D3D11_BUFFER_SRV = Struct('D3D11_BUFFER_SRV', [
@@ -1010,15 +1010,15 @@ D3D11_CLASS_INSTANCE_DESC = Struct('D3D11_CLASS_INSTANCE_DESC', [
 
 
 ID3D11ClassInstance.methods += [
-    StdMethod(Void, 'GetClassLinkage', [Out(Pointer(Pointer(ID3D11ClassLinkage)), 'ppLinkage')]),
+    StdMethod(Void, 'GetClassLinkage', [Out(Pointer(ObjPointer(ID3D11ClassLinkage)), 'ppLinkage')]),
     StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_CLASS_INSTANCE_DESC), 'pDesc')]),
     StdMethod(Void, 'GetInstanceName', [Out(LPSTR, 'pInstanceName'), Out(Pointer(SIZE_T), 'pBufferLength')]),
     StdMethod(Void, 'GetTypeName', [Out(LPSTR, 'pTypeName'), Out(Pointer(SIZE_T), 'pBufferLength')]),
 ]
 
 ID3D11ClassLinkage.methods += [
-    StdMethod(HRESULT, 'GetClassInstance', [(LPCSTR, 'pClassInstanceName'), (UINT, 'InstanceIndex'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppInstance')]),
-    StdMethod(HRESULT, 'CreateClassInstance', [(LPCSTR, 'pClassTypeName'), (UINT, 'ConstantBufferOffset'), (UINT, 'ConstantVectorOffset'), (UINT, 'TextureOffset'), (UINT, 'SamplerOffset'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppInstance')]),
+    StdMethod(HRESULT, 'GetClassInstance', [(LPCSTR, 'pClassInstanceName'), (UINT, 'InstanceIndex'), Out(Pointer(ObjPointer(ID3D11ClassInstance)), 'ppInstance')]),
+    StdMethod(HRESULT, 'CreateClassInstance', [(LPCSTR, 'pClassTypeName'), (UINT, 'ConstantBufferOffset'), (UINT, 'ConstantVectorOffset'), (UINT, 'TextureOffset'), (UINT, 'SamplerOffset'), Out(Pointer(ObjPointer(ID3D11ClassInstance)), 'ppInstance')]),
 ]
 
 ID3D11CommandList.methods += [
@@ -1057,114 +1057,114 @@ D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS = Struct('D3D11_FEATURE_DATA_D3D10_X
 ])
 
 ID3D11DeviceContext.methods += [
-    StdMethod(Void, 'VSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'PSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'PSSetShader', [(Pointer(ID3D11PixelShader), 'pPixelShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
-    StdMethod(Void, 'PSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'VSSetShader', [(Pointer(ID3D11VertexShader), 'pVertexShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
+    StdMethod(Void, 'VSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(ObjPointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'PSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'PSSetShader', [(ObjPointer(ID3D11PixelShader), 'pPixelShader'), (Array(Const(ObjPointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
+    StdMethod(Void, 'PSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(ObjPointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'VSSetShader', [(ObjPointer(ID3D11VertexShader), 'pVertexShader'), (Array(Const(ObjPointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
     StdMethod(Void, 'DrawIndexed', [(UINT, 'IndexCount'), (UINT, 'StartIndexLocation'), (INT, 'BaseVertexLocation')]),
     StdMethod(Void, 'Draw', [(UINT, 'VertexCount'), (UINT, 'StartVertexLocation')]),
-    StdMethod(HRESULT, 'Map', [(Pointer(ID3D11Resource), 'pResource'), (UINT, 'Subresource'), (D3D11_MAP, 'MapType'), (D3D11_MAP_FLAG, 'MapFlags'), Out(Pointer(D3D11_MAPPED_SUBRESOURCE), 'pMappedResource')]),
-    StdMethod(Void, 'Unmap', [(Pointer(ID3D11Resource), 'pResource'), (UINT, 'Subresource')]),
-    StdMethod(Void, 'PSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'IASetInputLayout', [(Pointer(ID3D11InputLayout), 'pInputLayout')]),
-    StdMethod(Void, 'IASetVertexBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppVertexBuffers'), (Pointer(Const(UINT)), 'pStrides'), (Pointer(Const(UINT)), 'pOffsets')]),
-    StdMethod(Void, 'IASetIndexBuffer', [(Pointer(ID3D11Buffer), 'pIndexBuffer'), (DXGI_FORMAT, 'Format'), (UINT, 'Offset')]),
+    StdMethod(HRESULT, 'Map', [(ObjPointer(ID3D11Resource), 'pResource'), (UINT, 'Subresource'), (D3D11_MAP, 'MapType'), (D3D11_MAP_FLAG, 'MapFlags'), Out(Pointer(D3D11_MAPPED_SUBRESOURCE), 'pMappedResource')]),
+    StdMethod(Void, 'Unmap', [(ObjPointer(ID3D11Resource), 'pResource'), (UINT, 'Subresource')]),
+    StdMethod(Void, 'PSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(ObjPointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'IASetInputLayout', [(ObjPointer(ID3D11InputLayout), 'pInputLayout')]),
+    StdMethod(Void, 'IASetVertexBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(ObjPointer(ID3D11Buffer)), 'NumBuffers'), 'ppVertexBuffers'), (Pointer(Const(UINT)), 'pStrides'), (Pointer(Const(UINT)), 'pOffsets')]),
+    StdMethod(Void, 'IASetIndexBuffer', [(ObjPointer(ID3D11Buffer), 'pIndexBuffer'), (DXGI_FORMAT, 'Format'), (UINT, 'Offset')]),
     StdMethod(Void, 'DrawIndexedInstanced', [(UINT, 'IndexCountPerInstance'), (UINT, 'InstanceCount'), (UINT, 'StartIndexLocation'), (INT, 'BaseVertexLocation'), (UINT, 'StartInstanceLocation')]),
     StdMethod(Void, 'DrawInstanced', [(UINT, 'VertexCountPerInstance'), (UINT, 'InstanceCount'), (UINT, 'StartVertexLocation'), (UINT, 'StartInstanceLocation')]),
-    StdMethod(Void, 'GSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'GSSetShader', [(Pointer(ID3D11GeometryShader), 'pShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
+    StdMethod(Void, 'GSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(ObjPointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'GSSetShader', [(ObjPointer(ID3D11GeometryShader), 'pShader'), (Array(Const(ObjPointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
     StdMethod(Void, 'IASetPrimitiveTopology', [(D3D11_PRIMITIVE_TOPOLOGY, 'Topology')]),
-    StdMethod(Void, 'VSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'VSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'Begin', [(Pointer(ID3D11Asynchronous), 'pAsync')]),
-    StdMethod(Void, 'End', [(Pointer(ID3D11Asynchronous), 'pAsync')]),
-    StdMethod(HRESULT, 'GetData', [(Pointer(ID3D11Asynchronous), 'pAsync'), Out(OpaqueBlob(Void, 'DataSize'), 'pData'), (UINT, 'DataSize'), (D3D11_ASYNC_GETDATA_FLAG, 'GetDataFlags')]),
-    StdMethod(Void, 'SetPredication', [(Pointer(ID3D11Predicate), 'pPredicate'), (BOOL, 'PredicateValue')]),
-    StdMethod(Void, 'GSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'GSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'OMSetRenderTargets', [(UINT, 'NumViews'), (Array(Const(Pointer(ID3D11RenderTargetView)), 'NumViews'), 'ppRenderTargetViews'), (Pointer(ID3D11DepthStencilView), 'pDepthStencilView')]),
-    StdMethod(Void, 'OMSetRenderTargetsAndUnorderedAccessViews', [(UINT, 'NumRTVs'), (Array(Const(Pointer(ID3D11RenderTargetView)), 'NumRTVs'), 'ppRenderTargetViews'), (Pointer(ID3D11DepthStencilView), 'pDepthStencilView'), (UINT, 'UAVStartSlot'), (UINT, 'NumUAVs'), (Array(Const(Pointer(ID3D11UnorderedAccessView)), 'NumUAVs'), 'ppUnorderedAccessViews'), (Pointer(Const(UINT)), 'pUAVInitialCounts')]),
-    StdMethod(Void, 'OMSetBlendState', [(Pointer(ID3D11BlendState), 'pBlendState'), (Array(Const(FLOAT), 4), 'BlendFactor'), (UINT, 'SampleMask')]),
-    StdMethod(Void, 'OMSetDepthStencilState', [(Pointer(ID3D11DepthStencilState), 'pDepthStencilState'), (UINT, 'StencilRef')]),
-    StdMethod(Void, 'SOSetTargets', [(UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppSOTargets'), (Pointer(Const(UINT)), 'pOffsets')]),
+    StdMethod(Void, 'VSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'VSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(ObjPointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'Begin', [(ObjPointer(ID3D11Asynchronous), 'pAsync')]),
+    StdMethod(Void, 'End', [(ObjPointer(ID3D11Asynchronous), 'pAsync')]),
+    StdMethod(HRESULT, 'GetData', [(ObjPointer(ID3D11Asynchronous), 'pAsync'), Out(OpaqueBlob(Void, 'DataSize'), 'pData'), (UINT, 'DataSize'), (D3D11_ASYNC_GETDATA_FLAG, 'GetDataFlags')]),
+    StdMethod(Void, 'SetPredication', [(ObjPointer(ID3D11Predicate), 'pPredicate'), (BOOL, 'PredicateValue')]),
+    StdMethod(Void, 'GSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'GSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(ObjPointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'OMSetRenderTargets', [(UINT, 'NumViews'), (Array(Const(ObjPointer(ID3D11RenderTargetView)), 'NumViews'), 'ppRenderTargetViews'), (ObjPointer(ID3D11DepthStencilView), 'pDepthStencilView')]),
+    StdMethod(Void, 'OMSetRenderTargetsAndUnorderedAccessViews', [(UINT, 'NumRTVs'), (Array(Const(ObjPointer(ID3D11RenderTargetView)), 'NumRTVs'), 'ppRenderTargetViews'), (ObjPointer(ID3D11DepthStencilView), 'pDepthStencilView'), (UINT, 'UAVStartSlot'), (UINT, 'NumUAVs'), (Array(Const(ObjPointer(ID3D11UnorderedAccessView)), 'NumUAVs'), 'ppUnorderedAccessViews'), (Pointer(Const(UINT)), 'pUAVInitialCounts')]),
+    StdMethod(Void, 'OMSetBlendState', [(ObjPointer(ID3D11BlendState), 'pBlendState'), (Array(Const(FLOAT), 4), 'BlendFactor'), (UINT, 'SampleMask')]),
+    StdMethod(Void, 'OMSetDepthStencilState', [(ObjPointer(ID3D11DepthStencilState), 'pDepthStencilState'), (UINT, 'StencilRef')]),
+    StdMethod(Void, 'SOSetTargets', [(UINT, 'NumBuffers'), (Array(Const(ObjPointer(ID3D11Buffer)), 'NumBuffers'), 'ppSOTargets'), (Pointer(Const(UINT)), 'pOffsets')]),
     StdMethod(Void, 'DrawAuto', []),
-    StdMethod(Void, 'DrawIndexedInstancedIndirect', [(Pointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]),
-    StdMethod(Void, 'DrawInstancedIndirect', [(Pointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]),
+    StdMethod(Void, 'DrawIndexedInstancedIndirect', [(ObjPointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]),
+    StdMethod(Void, 'DrawInstancedIndirect', [(ObjPointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]),
     StdMethod(Void, 'Dispatch', [(UINT, 'ThreadGroupCountX'), (UINT, 'ThreadGroupCountY'), (UINT, 'ThreadGroupCountZ')]),
-    StdMethod(Void, 'DispatchIndirect', [(Pointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]),
-    StdMethod(Void, 'RSSetState', [(Pointer(ID3D11RasterizerState), 'pRasterizerState')]),
+    StdMethod(Void, 'DispatchIndirect', [(ObjPointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]),
+    StdMethod(Void, 'RSSetState', [(ObjPointer(ID3D11RasterizerState), 'pRasterizerState')]),
     StdMethod(Void, 'RSSetViewports', [(UINT, 'NumViewports'), (Array(Const(D3D11_VIEWPORT), 'NumViewports'), 'pViewports')]),
     StdMethod(Void, 'RSSetScissorRects', [(UINT, 'NumRects'), (Array(Const(D3D11_RECT), 'NumRects'), 'pRects')]),
-    StdMethod(Void, 'CopySubresourceRegion', [(Pointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (UINT, 'DstX'), (UINT, 'DstY'), (UINT, 'DstZ'), (Pointer(ID3D11Resource), 'pSrcResource'), (UINT, 'SrcSubresource'), (Pointer(Const(D3D11_BOX)), 'pSrcBox')]),
-    StdMethod(Void, 'CopyResource', [(Pointer(ID3D11Resource), 'pDstResource'), (Pointer(ID3D11Resource), 'pSrcResource')]),
-    StdMethod(Void, 'UpdateSubresource', [(Pointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (Pointer(Const(D3D11_BOX)), 'pDstBox'), (OpaquePointer(Const(Void)), 'pSrcData'), (UINT, 'SrcRowPitch'), (UINT, 'SrcDepthPitch')]),
-    StdMethod(Void, 'CopyStructureCount', [(Pointer(ID3D11Buffer), 'pDstBuffer'), (UINT, 'DstAlignedByteOffset'), (Pointer(ID3D11UnorderedAccessView), 'pSrcView')]),
-    StdMethod(Void, 'ClearRenderTargetView', [(Pointer(ID3D11RenderTargetView), 'pRenderTargetView'), (Array(Const(FLOAT), 4), 'ColorRGBA')]),
-    StdMethod(Void, 'ClearUnorderedAccessViewUint', [(Pointer(ID3D11UnorderedAccessView), 'pUnorderedAccessView'), (Array(Const(UINT), 4), 'Values')]),
-    StdMethod(Void, 'ClearUnorderedAccessViewFloat', [(Pointer(ID3D11UnorderedAccessView), 'pUnorderedAccessView'), (Array(Const(FLOAT), 4), 'Values')]),
-    StdMethod(Void, 'ClearDepthStencilView', [(Pointer(ID3D11DepthStencilView), 'pDepthStencilView'), (D3D11_CLEAR_FLAG, 'ClearFlags'), (FLOAT, 'Depth'), (UINT8, 'Stencil')]),
-    StdMethod(Void, 'GenerateMips', [(Pointer(ID3D11ShaderResourceView), 'pShaderResourceView')]),
-    StdMethod(Void, 'SetResourceMinLOD', [(Pointer(ID3D11Resource), 'pResource'), (FLOAT, 'MinLOD')]),
-    StdMethod(FLOAT, 'GetResourceMinLOD', [(Pointer(ID3D11Resource), 'pResource')]),
-    StdMethod(Void, 'ResolveSubresource', [(Pointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (Pointer(ID3D11Resource), 'pSrcResource'), (UINT, 'SrcSubresource'), (DXGI_FORMAT, 'Format')]),
-    StdMethod(Void, 'ExecuteCommandList', [(Pointer(ID3D11CommandList), 'pCommandList'), (BOOL, 'RestoreContextState')]),
-    StdMethod(Void, 'HSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'HSSetShader', [(Pointer(ID3D11HullShader), 'pHullShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
-    StdMethod(Void, 'HSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'HSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'DSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'DSSetShader', [(Pointer(ID3D11DomainShader), 'pDomainShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
-    StdMethod(Void, 'DSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'DSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'CSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(Pointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'CSSetUnorderedAccessViews', [(UINT, 'StartSlot'), (UINT, 'NumUAVs'), (Array(Const(Pointer(ID3D11UnorderedAccessView)), 'NumUAVs'), 'ppUnorderedAccessViews'), (Pointer(Const(UINT)), 'pUAVInitialCounts')]),
-    StdMethod(Void, 'CSSetShader', [(Pointer(ID3D11ComputeShader), 'pComputeShader'), (Array(Const(Pointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
-    StdMethod(Void, 'CSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(Pointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'CSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(Pointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'VSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'PSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'PSGetShader', [Out(Pointer(Pointer(ID3D11PixelShader)), 'ppPixelShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
-    StdMethod(Void, 'PSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'VSGetShader', [Out(Pointer(Pointer(ID3D11VertexShader)), 'ppVertexShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
-    StdMethod(Void, 'PSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'IAGetInputLayout', [Out(Pointer(Pointer(ID3D11InputLayout)), 'ppInputLayout')]),
-    StdMethod(Void, 'IAGetVertexBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppVertexBuffers'), Out(Pointer(UINT), 'pStrides'), Out(Pointer(UINT), 'pOffsets')]),
-    StdMethod(Void, 'IAGetIndexBuffer', [Out(Pointer(Pointer(ID3D11Buffer)), 'pIndexBuffer'), Out(Pointer(DXGI_FORMAT), 'Format'), Out(Pointer(UINT), 'Offset')]),
-    StdMethod(Void, 'GSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'GSGetShader', [Out(Pointer(Pointer(ID3D11GeometryShader)), 'ppGeometryShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
+    StdMethod(Void, 'CopySubresourceRegion', [(ObjPointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (UINT, 'DstX'), (UINT, 'DstY'), (UINT, 'DstZ'), (ObjPointer(ID3D11Resource), 'pSrcResource'), (UINT, 'SrcSubresource'), (Pointer(Const(D3D11_BOX)), 'pSrcBox')]),
+    StdMethod(Void, 'CopyResource', [(ObjPointer(ID3D11Resource), 'pDstResource'), (ObjPointer(ID3D11Resource), 'pSrcResource')]),
+    StdMethod(Void, 'UpdateSubresource', [(ObjPointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (Pointer(Const(D3D11_BOX)), 'pDstBox'), (OpaquePointer(Const(Void)), 'pSrcData'), (UINT, 'SrcRowPitch'), (UINT, 'SrcDepthPitch')]),
+    StdMethod(Void, 'CopyStructureCount', [(ObjPointer(ID3D11Buffer), 'pDstBuffer'), (UINT, 'DstAlignedByteOffset'), (ObjPointer(ID3D11UnorderedAccessView), 'pSrcView')]),
+    StdMethod(Void, 'ClearRenderTargetView', [(ObjPointer(ID3D11RenderTargetView), 'pRenderTargetView'), (Array(Const(FLOAT), 4), 'ColorRGBA')]),
+    StdMethod(Void, 'ClearUnorderedAccessViewUint', [(ObjPointer(ID3D11UnorderedAccessView), 'pUnorderedAccessView'), (Array(Const(UINT), 4), 'Values')]),
+    StdMethod(Void, 'ClearUnorderedAccessViewFloat', [(ObjPointer(ID3D11UnorderedAccessView), 'pUnorderedAccessView'), (Array(Const(FLOAT), 4), 'Values')]),
+    StdMethod(Void, 'ClearDepthStencilView', [(ObjPointer(ID3D11DepthStencilView), 'pDepthStencilView'), (D3D11_CLEAR_FLAG, 'ClearFlags'), (FLOAT, 'Depth'), (UINT8, 'Stencil')]),
+    StdMethod(Void, 'GenerateMips', [(ObjPointer(ID3D11ShaderResourceView), 'pShaderResourceView')]),
+    StdMethod(Void, 'SetResourceMinLOD', [(ObjPointer(ID3D11Resource), 'pResource'), (FLOAT, 'MinLOD')]),
+    StdMethod(FLOAT, 'GetResourceMinLOD', [(ObjPointer(ID3D11Resource), 'pResource')]),
+    StdMethod(Void, 'ResolveSubresource', [(ObjPointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (ObjPointer(ID3D11Resource), 'pSrcResource'), (UINT, 'SrcSubresource'), (DXGI_FORMAT, 'Format')]),
+    StdMethod(Void, 'ExecuteCommandList', [(ObjPointer(ID3D11CommandList), 'pCommandList'), (BOOL, 'RestoreContextState')]),
+    StdMethod(Void, 'HSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'HSSetShader', [(ObjPointer(ID3D11HullShader), 'pHullShader'), (Array(Const(ObjPointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
+    StdMethod(Void, 'HSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(ObjPointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'HSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(ObjPointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'DSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'DSSetShader', [(ObjPointer(ID3D11DomainShader), 'pDomainShader'), (Array(Const(ObjPointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
+    StdMethod(Void, 'DSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(ObjPointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'DSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(ObjPointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'CSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Const(ObjPointer(ID3D11ShaderResourceView)), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'CSSetUnorderedAccessViews', [(UINT, 'StartSlot'), (UINT, 'NumUAVs'), (Array(Const(ObjPointer(ID3D11UnorderedAccessView)), 'NumUAVs'), 'ppUnorderedAccessViews'), (Pointer(Const(UINT)), 'pUAVInitialCounts')]),
+    StdMethod(Void, 'CSSetShader', [(ObjPointer(ID3D11ComputeShader), 'pComputeShader'), (Array(Const(ObjPointer(ID3D11ClassInstance)), 'NumClassInstances'), 'ppClassInstances'), (UINT, 'NumClassInstances')]),
+    StdMethod(Void, 'CSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Const(ObjPointer(ID3D11SamplerState)), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'CSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Const(ObjPointer(ID3D11Buffer)), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'VSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(ObjPointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'PSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(ObjPointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'PSGetShader', [Out(Pointer(ObjPointer(ID3D11PixelShader)), 'ppPixelShader'), Out(Array(ObjPointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
+    StdMethod(Void, 'PSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(ObjPointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'VSGetShader', [Out(Pointer(ObjPointer(ID3D11VertexShader)), 'ppVertexShader'), Out(Array(ObjPointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
+    StdMethod(Void, 'PSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(ObjPointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'IAGetInputLayout', [Out(Pointer(ObjPointer(ID3D11InputLayout)), 'ppInputLayout')]),
+    StdMethod(Void, 'IAGetVertexBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(ObjPointer(ID3D11Buffer), 'NumBuffers'), 'ppVertexBuffers'), Out(Pointer(UINT), 'pStrides'), Out(Pointer(UINT), 'pOffsets')]),
+    StdMethod(Void, 'IAGetIndexBuffer', [Out(Pointer(ObjPointer(ID3D11Buffer)), 'pIndexBuffer'), Out(Pointer(DXGI_FORMAT), 'Format'), Out(Pointer(UINT), 'Offset')]),
+    StdMethod(Void, 'GSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(ObjPointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'GSGetShader', [Out(Pointer(ObjPointer(ID3D11GeometryShader)), 'ppGeometryShader'), Out(Array(ObjPointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
     StdMethod(Void, 'IAGetPrimitiveTopology', [Out(Pointer(D3D11_PRIMITIVE_TOPOLOGY), 'pTopology')]),
-    StdMethod(Void, 'VSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'VSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'GetPredication', [Out(Pointer(Pointer(ID3D11Predicate)), 'ppPredicate'), Out(Pointer(BOOL), 'pPredicateValue')]),
-    StdMethod(Void, 'GSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'GSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'OMGetRenderTargets', [(UINT, 'NumViews'), (Array(Pointer(ID3D11RenderTargetView), 'NumViews'), 'ppRenderTargetViews'), Out(Pointer(Pointer(ID3D11DepthStencilView)), 'ppDepthStencilView')]),
-    StdMethod(Void, 'OMGetRenderTargetsAndUnorderedAccessViews', [(UINT, 'NumRTVs'), (Array(Pointer(ID3D11RenderTargetView), 'NumRTVs'), 'ppRenderTargetViews'), Out(Pointer(Pointer(ID3D11DepthStencilView)), 'ppDepthStencilView'), (UINT, 'UAVStartSlot'), (UINT, 'NumUAVs'), (Array(Pointer(ID3D11UnorderedAccessView), 'NumUAVs'), 'ppUnorderedAccessViews')]),
-    StdMethod(Void, 'OMGetBlendState', [Out(Pointer(Pointer(ID3D11BlendState)), 'ppBlendState'), Out(Array(FLOAT, 4), 'BlendFactor'), Out(Pointer(UINT), 'pSampleMask')]),
-    StdMethod(Void, 'OMGetDepthStencilState', [Out(Pointer(Pointer(ID3D11DepthStencilState)), 'ppDepthStencilState'), Out(Pointer(UINT), 'pStencilRef')]),
-    StdMethod(Void, 'SOGetTargets', [(UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppSOTargets')]),
-    StdMethod(Void, 'RSGetState', [Out(Pointer(Pointer(ID3D11RasterizerState)), 'ppRasterizerState')]),
+    StdMethod(Void, 'VSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(ObjPointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'VSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(ObjPointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'GetPredication', [Out(Pointer(ObjPointer(ID3D11Predicate)), 'ppPredicate'), Out(Pointer(BOOL), 'pPredicateValue')]),
+    StdMethod(Void, 'GSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(ObjPointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'GSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(ObjPointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'OMGetRenderTargets', [(UINT, 'NumViews'), (Array(ObjPointer(ID3D11RenderTargetView), 'NumViews'), 'ppRenderTargetViews'), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), 'ppDepthStencilView')]),
+    StdMethod(Void, 'OMGetRenderTargetsAndUnorderedAccessViews', [(UINT, 'NumRTVs'), (Array(ObjPointer(ID3D11RenderTargetView), 'NumRTVs'), 'ppRenderTargetViews'), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), 'ppDepthStencilView'), (UINT, 'UAVStartSlot'), (UINT, 'NumUAVs'), (Array(ObjPointer(ID3D11UnorderedAccessView), 'NumUAVs'), 'ppUnorderedAccessViews')]),
+    StdMethod(Void, 'OMGetBlendState', [Out(Pointer(ObjPointer(ID3D11BlendState)), 'ppBlendState'), Out(Array(FLOAT, 4), 'BlendFactor'), Out(Pointer(UINT), 'pSampleMask')]),
+    StdMethod(Void, 'OMGetDepthStencilState', [Out(Pointer(ObjPointer(ID3D11DepthStencilState)), 'ppDepthStencilState'), Out(Pointer(UINT), 'pStencilRef')]),
+    StdMethod(Void, 'SOGetTargets', [(UINT, 'NumBuffers'), (Array(ObjPointer(ID3D11Buffer), 'NumBuffers'), 'ppSOTargets')]),
+    StdMethod(Void, 'RSGetState', [Out(Pointer(ObjPointer(ID3D11RasterizerState)), 'ppRasterizerState')]),
     StdMethod(Void, 'RSGetViewports', [Out(Pointer(UINT), 'pNumViewports'), Out(Array(D3D11_VIEWPORT, '*pNumViewports'), 'pViewports')]),
     StdMethod(Void, 'RSGetScissorRects', [Out(Pointer(UINT), 'pNumRects'), Out(Array(D3D11_RECT, '*pNumRects'), 'pRects')]),
-    StdMethod(Void, 'HSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'HSGetShader', [Out(Pointer(Pointer(ID3D11HullShader)), 'ppHullShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
-    StdMethod(Void, 'HSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'HSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'DSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'DSGetShader', [Out(Pointer(Pointer(ID3D11DomainShader)), 'ppDomainShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
-    StdMethod(Void, 'DSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'DSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
-    StdMethod(Void, 'CSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(Pointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
-    StdMethod(Void, 'CSGetUnorderedAccessViews', [(UINT, 'StartSlot'), (UINT, 'NumUAVs'), (Array(Pointer(ID3D11UnorderedAccessView), 'NumUAVs'), 'ppUnorderedAccessViews')]),
-    StdMethod(Void, 'CSGetShader', [Out(Pointer(Pointer(ID3D11ComputeShader)), 'ppComputeShader'), Out(Array(Pointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
-    StdMethod(Void, 'CSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(Pointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
-    StdMethod(Void, 'CSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(Pointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'HSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(ObjPointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'HSGetShader', [Out(Pointer(ObjPointer(ID3D11HullShader)), 'ppHullShader'), Out(Array(ObjPointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
+    StdMethod(Void, 'HSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(ObjPointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'HSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(ObjPointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'DSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(ObjPointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'DSGetShader', [Out(Pointer(ObjPointer(ID3D11DomainShader)), 'ppDomainShader'), Out(Array(ObjPointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
+    StdMethod(Void, 'DSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(ObjPointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'DSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(ObjPointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
+    StdMethod(Void, 'CSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Array(ObjPointer(ID3D11ShaderResourceView), 'NumViews'), 'ppShaderResourceViews')]),
+    StdMethod(Void, 'CSGetUnorderedAccessViews', [(UINT, 'StartSlot'), (UINT, 'NumUAVs'), (Array(ObjPointer(ID3D11UnorderedAccessView), 'NumUAVs'), 'ppUnorderedAccessViews')]),
+    StdMethod(Void, 'CSGetShader', [Out(Pointer(ObjPointer(ID3D11ComputeShader)), 'ppComputeShader'), Out(Array(ObjPointer(ID3D11ClassInstance), '*pNumClassInstances'), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]),
+    StdMethod(Void, 'CSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Array(ObjPointer(ID3D11SamplerState), 'NumSamplers'), 'ppSamplers')]),
+    StdMethod(Void, 'CSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Array(ObjPointer(ID3D11Buffer), 'NumBuffers'), 'ppConstantBuffers')]),
     StdMethod(Void, 'ClearState', []),
     StdMethod(Void, 'Flush', []),
     StdMethod(D3D11_DEVICE_CONTEXT_TYPE, 'GetType', []),
     StdMethod(UINT, 'GetContextFlags', []),
-    StdMethod(HRESULT, 'FinishCommandList', [(BOOL, 'RestoreDeferredContextState'), Out(Pointer(Pointer(ID3D11CommandList)), 'ppCommandList')]),
+    StdMethod(HRESULT, 'FinishCommandList', [(BOOL, 'RestoreDeferredContextState'), Out(Pointer(ObjPointer(ID3D11CommandList)), 'ppCommandList')]),
 ]
 
 D3D11_CREATE_DEVICE_FLAG = Flags(UINT, [
@@ -1176,32 +1176,32 @@ D3D11_CREATE_DEVICE_FLAG = Flags(UINT, [
 ])
 
 ID3D11Device.methods += [
-    StdMethod(HRESULT, 'CreateBuffer', [(Pointer(Const(D3D11_BUFFER_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppBuffer')]),
-    StdMethod(HRESULT, 'CreateTexture1D', [(Pointer(Const(D3D11_TEXTURE1D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Texture1D)), 'ppTexture1D')]),
-    StdMethod(HRESULT, 'CreateTexture2D', [(Pointer(Const(D3D11_TEXTURE2D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Texture2D)), 'ppTexture2D')]),
-    StdMethod(HRESULT, 'CreateTexture3D', [(Pointer(Const(D3D11_TEXTURE3D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Texture3D)), 'ppTexture3D')]),
-    StdMethod(HRESULT, 'CreateShaderResourceView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11ShaderResourceView)), 'ppSRView')]),
-    StdMethod(HRESULT, 'CreateUnorderedAccessView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11UnorderedAccessView)), 'ppUAView')]),
-    StdMethod(HRESULT, 'CreateRenderTargetView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11RenderTargetView)), 'ppRTView')]),
-    StdMethod(HRESULT, 'CreateDepthStencilView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_DEPTH_STENCIL_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11DepthStencilView)), 'ppDepthStencilView')]),
-    StdMethod(HRESULT, 'CreateInputLayout', [(Array(Const(D3D11_INPUT_ELEMENT_DESC), 'NumElements'), 'pInputElementDescs'), (UINT, 'NumElements'), (Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecodeWithInputSignature'), (SIZE_T, 'BytecodeLength'), Out(Pointer(Pointer(ID3D11InputLayout)), 'ppInputLayout')]),
-    StdMethod(HRESULT, 'CreateVertexShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11VertexShader)), 'ppVertexShader')]),
-    StdMethod(HRESULT, 'CreateGeometryShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11GeometryShader)), 'ppGeometryShader')]),
-    StdMethod(HRESULT, 'CreateGeometryShaderWithStreamOutput', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Array(Const(D3D11_SO_DECLARATION_ENTRY), 'NumEntries'), 'pSODeclaration'), (UINT, 'NumEntries'), (Array(Const(UINT), 'NumStrides'), 'pBufferStrides'), (UINT, 'NumStrides'), (UINT, 'RasterizedStream'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11GeometryShader)), 'ppGeometryShader')]),
-    StdMethod(HRESULT, 'CreatePixelShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11PixelShader)), 'ppPixelShader')]),
-    StdMethod(HRESULT, 'CreateHullShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11HullShader)), 'ppHullShader')]),
-    StdMethod(HRESULT, 'CreateDomainShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11DomainShader)), 'ppDomainShader')]),
-    StdMethod(HRESULT, 'CreateComputeShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11ComputeShader)), 'ppComputeShader')]),
-    StdMethod(HRESULT, 'CreateClassLinkage', [Out(Pointer(Pointer(ID3D11ClassLinkage)), 'ppLinkage')]),
-    StdMethod(HRESULT, 'CreateBlendState', [(Pointer(Const(D3D11_BLEND_DESC)), 'pBlendStateDesc'), Out(Pointer(Pointer(ID3D11BlendState)), 'ppBlendState')]),
-    StdMethod(HRESULT, 'CreateDepthStencilState', [(Pointer(Const(D3D11_DEPTH_STENCIL_DESC)), 'pDepthStencilDesc'), Out(Pointer(Pointer(ID3D11DepthStencilState)), 'ppDepthStencilState')]),
-    StdMethod(HRESULT, 'CreateRasterizerState', [(Pointer(Const(D3D11_RASTERIZER_DESC)), 'pRasterizerDesc'), Out(Pointer(Pointer(ID3D11RasterizerState)), 'ppRasterizerState')]),
-    StdMethod(HRESULT, 'CreateSamplerState', [(Pointer(Const(D3D11_SAMPLER_DESC)), 'pSamplerDesc'), Out(Pointer(Pointer(ID3D11SamplerState)), 'ppSamplerState')]),
-    StdMethod(HRESULT, 'CreateQuery', [(Pointer(Const(D3D11_QUERY_DESC)), 'pQueryDesc'), Out(Pointer(Pointer(ID3D11Query)), 'ppQuery')]),
-    StdMethod(HRESULT, 'CreatePredicate', [(Pointer(Const(D3D11_QUERY_DESC)), 'pPredicateDesc'), Out(Pointer(Pointer(ID3D11Predicate)), 'ppPredicate')]),
-    StdMethod(HRESULT, 'CreateCounter', [(Pointer(Const(D3D11_COUNTER_DESC)), 'pCounterDesc'), Out(Pointer(Pointer(ID3D11Counter)), 'ppCounter')]),
-    StdMethod(HRESULT, 'CreateDeferredContext', [(UINT, 'ContextFlags'), Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppDeferredContext')]),
-    StdMethod(HRESULT, 'OpenSharedResource', [(HANDLE, 'hResource'), (REFIID, 'ReturnedInterface'), Out(Pointer(OpaquePointer(Void)), 'ppResource')]),
+    StdMethod(HRESULT, 'CreateBuffer', [(Pointer(Const(D3D11_BUFFER_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(ObjPointer(ID3D11Buffer)), 'ppBuffer')]),
+    StdMethod(HRESULT, 'CreateTexture1D', [(Pointer(Const(D3D11_TEXTURE1D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(ObjPointer(ID3D11Texture1D)), 'ppTexture1D')]),
+    StdMethod(HRESULT, 'CreateTexture2D', [(Pointer(Const(D3D11_TEXTURE2D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(ObjPointer(ID3D11Texture2D)), 'ppTexture2D')]),
+    StdMethod(HRESULT, 'CreateTexture3D', [(Pointer(Const(D3D11_TEXTURE3D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(ObjPointer(ID3D11Texture3D)), 'ppTexture3D')]),
+    StdMethod(HRESULT, 'CreateShaderResourceView', [(ObjPointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC)), 'pDesc'), Out(Pointer(ObjPointer(ID3D11ShaderResourceView)), 'ppSRView')]),
+    StdMethod(HRESULT, 'CreateUnorderedAccessView', [(ObjPointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC)), 'pDesc'), Out(Pointer(ObjPointer(ID3D11UnorderedAccessView)), 'ppUAView')]),
+    StdMethod(HRESULT, 'CreateRenderTargetView', [(ObjPointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC)), 'pDesc'), Out(Pointer(ObjPointer(ID3D11RenderTargetView)), 'ppRTView')]),
+    StdMethod(HRESULT, 'CreateDepthStencilView', [(ObjPointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_DEPTH_STENCIL_VIEW_DESC)), 'pDesc'), Out(Pointer(ObjPointer(ID3D11DepthStencilView)), 'ppDepthStencilView')]),
+    StdMethod(HRESULT, 'CreateInputLayout', [(Array(Const(D3D11_INPUT_ELEMENT_DESC), 'NumElements'), 'pInputElementDescs'), (UINT, 'NumElements'), (Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecodeWithInputSignature'), (SIZE_T, 'BytecodeLength'), Out(Pointer(ObjPointer(ID3D11InputLayout)), 'ppInputLayout')]),
+    StdMethod(HRESULT, 'CreateVertexShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (ObjPointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(ObjPointer(ID3D11VertexShader)), 'ppVertexShader')]),
+    StdMethod(HRESULT, 'CreateGeometryShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (ObjPointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(ObjPointer(ID3D11GeometryShader)), 'ppGeometryShader')]),
+    StdMethod(HRESULT, 'CreateGeometryShaderWithStreamOutput', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Array(Const(D3D11_SO_DECLARATION_ENTRY), 'NumEntries'), 'pSODeclaration'), (UINT, 'NumEntries'), (Array(Const(UINT), 'NumStrides'), 'pBufferStrides'), (UINT, 'NumStrides'), (UINT, 'RasterizedStream'), (ObjPointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(ObjPointer(ID3D11GeometryShader)), 'ppGeometryShader')]),
+    StdMethod(HRESULT, 'CreatePixelShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (ObjPointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(ObjPointer(ID3D11PixelShader)), 'ppPixelShader')]),
+    StdMethod(HRESULT, 'CreateHullShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (ObjPointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(ObjPointer(ID3D11HullShader)), 'ppHullShader')]),
+    StdMethod(HRESULT, 'CreateDomainShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (ObjPointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(ObjPointer(ID3D11DomainShader)), 'ppDomainShader')]),
+    StdMethod(HRESULT, 'CreateComputeShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (ObjPointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(ObjPointer(ID3D11ComputeShader)), 'ppComputeShader')]),
+    StdMethod(HRESULT, 'CreateClassLinkage', [Out(Pointer(ObjPointer(ID3D11ClassLinkage)), 'ppLinkage')]),
+    StdMethod(HRESULT, 'CreateBlendState', [(Pointer(Const(D3D11_BLEND_DESC)), 'pBlendStateDesc'), Out(Pointer(ObjPointer(ID3D11BlendState)), 'ppBlendState')]),
+    StdMethod(HRESULT, 'CreateDepthStencilState', [(Pointer(Const(D3D11_DEPTH_STENCIL_DESC)), 'pDepthStencilDesc'), Out(Pointer(ObjPointer(ID3D11DepthStencilState)), 'ppDepthStencilState')]),
+    StdMethod(HRESULT, 'CreateRasterizerState', [(Pointer(Const(D3D11_RASTERIZER_DESC)), 'pRasterizerDesc'), Out(Pointer(ObjPointer(ID3D11RasterizerState)), 'ppRasterizerState')]),
+    StdMethod(HRESULT, 'CreateSamplerState', [(Pointer(Const(D3D11_SAMPLER_DESC)), 'pSamplerDesc'), Out(Pointer(ObjPointer(ID3D11SamplerState)), 'ppSamplerState')]),
+    StdMethod(HRESULT, 'CreateQuery', [(Pointer(Const(D3D11_QUERY_DESC)), 'pQueryDesc'), Out(Pointer(ObjPointer(ID3D11Query)), 'ppQuery')]),
+    StdMethod(HRESULT, 'CreatePredicate', [(Pointer(Const(D3D11_QUERY_DESC)), 'pPredicateDesc'), Out(Pointer(ObjPointer(ID3D11Predicate)), 'ppPredicate')]),
+    StdMethod(HRESULT, 'CreateCounter', [(Pointer(Const(D3D11_COUNTER_DESC)), 'pCounterDesc'), Out(Pointer(ObjPointer(ID3D11Counter)), 'ppCounter')]),
+    StdMethod(HRESULT, 'CreateDeferredContext', [(UINT, 'ContextFlags'), Out(Pointer(ObjPointer(ID3D11DeviceContext)), 'ppDeferredContext')]),
+    StdMethod(HRESULT, 'OpenSharedResource', [(HANDLE, 'hResource'), (REFIID, 'ReturnedInterface'), Out(Pointer(ObjPointer(Void)), 'ppResource')]),
     StdMethod(HRESULT, 'CheckFormatSupport', [(DXGI_FORMAT, 'Format'), Out(Pointer(UINT), 'pFormatSupport')]),
     StdMethod(HRESULT, 'CheckMultisampleQualityLevels', [(DXGI_FORMAT, 'Format'), (UINT, 'SampleCount'), Out(Pointer(UINT), 'pNumQualityLevels')]),
     StdMethod(Void, 'CheckCounterInfo', [Out(Pointer(D3D11_COUNTER_INFO), 'pCounterInfo')]),
@@ -1209,11 +1209,11 @@ ID3D11Device.methods += [
     StdMethod(HRESULT, 'CheckFeatureSupport', [(D3D11_FEATURE, 'Feature'), Out(OpaqueBlob(Void, 'FeatureSupportDataSize'), 'pFeatureSupportData'), (UINT, 'FeatureSupportDataSize')]),
     StdMethod(HRESULT, 'GetPrivateData', [(REFGUID, 'guid'), Out(Pointer(UINT), 'pDataSize'), Out(OpaquePointer(Void), 'pData')]),
     StdMethod(HRESULT, 'SetPrivateData', [(REFGUID, 'guid'), (UINT, 'DataSize'), (OpaqueBlob(Const(Void), 'DataSize'), 'pData')]),
-    StdMethod(HRESULT, 'SetPrivateDataInterface', [(REFGUID, 'guid'), (Pointer(Const(IUnknown)), 'pData')]),
+    StdMethod(HRESULT, 'SetPrivateDataInterface', [(REFGUID, 'guid'), (OpaquePointer(Const(IUnknown)), 'pData')]),
     StdMethod(D3D_FEATURE_LEVEL, 'GetFeatureLevel', []),
     StdMethod(D3D11_CREATE_DEVICE_FLAG, 'GetCreationFlags', []),
     StdMethod(HRESULT, 'GetDeviceRemovedReason', []),
-    StdMethod(Void, 'GetImmediateContext', [Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppImmediateContext')]),
+    StdMethod(Void, 'GetImmediateContext', [Out(Pointer(ObjPointer(ID3D11DeviceContext)), 'ppImmediateContext')]),
     StdMethod(HRESULT, 'SetExceptionMode', [(D3D11_RAISE_FLAG, 'RaiseFlags')]),
     StdMethod(UINT, 'GetExceptionMode', []),
 ]
@@ -1221,8 +1221,8 @@ ID3D11Device.methods += [
 d3d11 = API("d3d11")
 
 d3d11.addFunctions([
-    StdFunction(HRESULT, 'D3D11CreateDevice', [(Pointer(IDXGIAdapter), 'pAdapter'), (D3D_DRIVER_TYPE, 'DriverType'), (HMODULE, 'Software'), (D3D11_CREATE_DEVICE_FLAG, 'Flags'), (Array(Const(D3D_FEATURE_LEVEL), 'FeatureLevels'), 'pFeatureLevels'), (UINT, 'FeatureLevels'), (UINT, 'SDKVersion'), Out(Pointer(Pointer(ID3D11Device)), 'ppDevice'), Out(Pointer(D3D_FEATURE_LEVEL), 'pFeatureLevel'), Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppImmediateContext')]),
-    StdFunction(HRESULT, 'D3D11CreateDeviceAndSwapChain', [(Pointer(IDXGIAdapter), 'pAdapter'), (D3D_DRIVER_TYPE, 'DriverType'), (HMODULE, 'Software'), (D3D11_CREATE_DEVICE_FLAG, 'Flags'), (Array(Const(D3D_FEATURE_LEVEL), 'FeatureLevels'), 'pFeatureLevels'), (UINT, 'FeatureLevels'), (UINT, 'SDKVersion'), (Pointer(Const(DXGI_SWAP_CHAIN_DESC)), 'pSwapChainDesc'), Out(Pointer(Pointer(IDXGISwapChain)), 'ppSwapChain'), Out(Pointer(Pointer(ID3D11Device)), 'ppDevice'), Out(Pointer(D3D_FEATURE_LEVEL), 'pFeatureLevel'), Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppImmediateContext')]),
+    StdFunction(HRESULT, 'D3D11CreateDevice', [(ObjPointer(IDXGIAdapter), 'pAdapter'), (D3D_DRIVER_TYPE, 'DriverType'), (HMODULE, 'Software'), (D3D11_CREATE_DEVICE_FLAG, 'Flags'), (Array(Const(D3D_FEATURE_LEVEL), 'FeatureLevels'), 'pFeatureLevels'), (UINT, 'FeatureLevels'), (UINT, 'SDKVersion'), Out(Pointer(ObjPointer(ID3D11Device)), 'ppDevice'), Out(Pointer(D3D_FEATURE_LEVEL), 'pFeatureLevel'), Out(Pointer(ObjPointer(ID3D11DeviceContext)), 'ppImmediateContext')]),
+    StdFunction(HRESULT, 'D3D11CreateDeviceAndSwapChain', [(ObjPointer(IDXGIAdapter), 'pAdapter'), (D3D_DRIVER_TYPE, 'DriverType'), (HMODULE, 'Software'), (D3D11_CREATE_DEVICE_FLAG, 'Flags'), (Array(Const(D3D_FEATURE_LEVEL), 'FeatureLevels'), 'pFeatureLevels'), (UINT, 'FeatureLevels'), (UINT, 'SDKVersion'), (Pointer(Const(DXGI_SWAP_CHAIN_DESC)), 'pSwapChainDesc'), Out(Pointer(ObjPointer(IDXGISwapChain)), 'ppSwapChain'), Out(Pointer(ObjPointer(ID3D11Device)), 'ppDevice'), Out(Pointer(D3D_FEATURE_LEVEL), 'pFeatureLevel'), Out(Pointer(ObjPointer(ID3D11DeviceContext)), 'ppImmediateContext')]),
 ])
 
 d3d11.addInterfaces([
index c42e6e0cc42004938be7da815898a504a94cd8fe..07590947d3b8775d3f1a9864aebe1142ebd9cd4c 100644 (file)
@@ -48,11 +48,11 @@ ID3D11Debug.methods += [
     StdMethod(D3D11_DEBUG_FEATURE, 'GetFeatureMask', []),
     StdMethod(HRESULT, 'SetPresentPerRenderOpDelay', [(UINT, 'Milliseconds')]),
     StdMethod(UINT, 'GetPresentPerRenderOpDelay', []),
-    StdMethod(HRESULT, 'SetSwapChain', [(Pointer(IDXGISwapChain), 'pSwapChain')]),
-    StdMethod(HRESULT, 'GetSwapChain', [Out(Pointer(Pointer(IDXGISwapChain)), 'ppSwapChain')]),
-    StdMethod(HRESULT, 'ValidateContext', [(Pointer(ID3D11DeviceContext), 'pContext')]),
+    StdMethod(HRESULT, 'SetSwapChain', [(ObjPointer(IDXGISwapChain), 'pSwapChain')]),
+    StdMethod(HRESULT, 'GetSwapChain', [Out(Pointer(ObjPointer(IDXGISwapChain)), 'ppSwapChain')]),
+    StdMethod(HRESULT, 'ValidateContext', [(ObjPointer(ID3D11DeviceContext), 'pContext')]),
     StdMethod(HRESULT, 'ReportLiveDeviceObjects', [(D3D11_RLDO_FLAGS, 'Flags')]),
-    StdMethod(HRESULT, 'ValidateContextForDispatch', [(Pointer(ID3D11DeviceContext), 'pContext')]),
+    StdMethod(HRESULT, 'ValidateContextForDispatch', [(ObjPointer(ID3D11DeviceContext), 'pContext')]),
 ]
 
 ID3D11SwitchToRef = Interface('ID3D11SwitchToRef', IUnknown)
index a1c024708160b20e38d2bbdc6f5b99e1ab0b624b..b18a27c33ec61f5eebb9fe20cac3f3914d26a14a 100644 (file)
@@ -138,40 +138,40 @@ D3D11_SHADER_INPUT_BIND_DESC = Struct('D3D11_SHADER_INPUT_BIND_DESC', [
 
 ID3D11ShaderReflectionType.methods += [
     StdMethod(HRESULT, 'GetDesc', [Out(Pointer(D3D11_SHADER_TYPE_DESC), 'pDesc')]),
-    StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetMemberTypeByIndex', [(UINT, 'Index')]),
-    StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetMemberTypeByName', [(LPCSTR, 'Name')]),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionType), 'GetMemberTypeByIndex', [(UINT, 'Index')]),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionType), 'GetMemberTypeByName', [(LPCSTR, 'Name')]),
     StdMethod(LPCSTR, 'GetMemberTypeName', [(UINT, 'Index')]),
-    StdMethod(HRESULT, 'IsEqual', [(Pointer(ID3D11ShaderReflectionType), 'pType')]),
-    StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetSubType', []),
-    StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetBaseClass', []),
+    StdMethod(HRESULT, 'IsEqual', [(ObjPointer(ID3D11ShaderReflectionType), 'pType')]),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionType), 'GetSubType', []),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionType), 'GetBaseClass', []),
     StdMethod(UINT, 'GetNumInterfaces', []),
-    StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetInterfaceByIndex', [(UINT, 'uIndex')]),
-    StdMethod(HRESULT, 'IsOfType', [(Pointer(ID3D11ShaderReflectionType), 'pType')]),
-    StdMethod(HRESULT, 'ImplementsInterface', [(Pointer(ID3D11ShaderReflectionType), 'pBase')]),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionType), 'GetInterfaceByIndex', [(UINT, 'uIndex')]),
+    StdMethod(HRESULT, 'IsOfType', [(ObjPointer(ID3D11ShaderReflectionType), 'pType')]),
+    StdMethod(HRESULT, 'ImplementsInterface', [(ObjPointer(ID3D11ShaderReflectionType), 'pBase')]),
 ]
 
 ID3D11ShaderReflectionVariable.methods += [
     StdMethod(HRESULT, 'GetDesc', [Out(Pointer(D3D11_SHADER_VARIABLE_DESC), 'pDesc')]),
-    StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetType', []),
-    StdMethod(Pointer(ID3D11ShaderReflectionConstantBuffer), 'GetBuffer', []),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionType), 'GetType', []),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionConstantBuffer), 'GetBuffer', []),
     StdMethod(UINT, 'GetInterfaceSlot', [(UINT, 'uArrayIndex')]),
 ]
 
 ID3D11ShaderReflectionConstantBuffer.methods += [
     StdMethod(HRESULT, 'GetDesc', [(Pointer(D3D11_SHADER_BUFFER_DESC), 'pDesc')]),
-    StdMethod(Pointer(ID3D11ShaderReflectionVariable), 'GetVariableByIndex', [(UINT, 'Index')]),
-    StdMethod(Pointer(ID3D11ShaderReflectionVariable), 'GetVariableByName', [(LPCSTR, 'Name')]),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionVariable), 'GetVariableByIndex', [(UINT, 'Index')]),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionVariable), 'GetVariableByName', [(LPCSTR, 'Name')]),
 ]
 
 ID3D11ShaderReflection.methods += [
     StdMethod(HRESULT, 'GetDesc', [Out(Pointer(D3D11_SHADER_DESC), 'pDesc')]),
-    StdMethod(Pointer(ID3D11ShaderReflectionConstantBuffer), 'GetConstantBufferByIndex', [(UINT, 'Index')]),
-    StdMethod(Pointer(ID3D11ShaderReflectionConstantBuffer), 'GetConstantBufferByName', [(LPCSTR, 'Name')]),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionConstantBuffer), 'GetConstantBufferByIndex', [(UINT, 'Index')]),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionConstantBuffer), 'GetConstantBufferByName', [(LPCSTR, 'Name')]),
     StdMethod(HRESULT, 'GetResourceBindingDesc', [(UINT, 'ResourceIndex'), Out(Pointer(D3D11_SHADER_INPUT_BIND_DESC), 'pDesc')]),
     StdMethod(HRESULT, 'GetInputParameterDesc', [(UINT, 'ParameterIndex'), Out(Pointer(D3D11_SIGNATURE_PARAMETER_DESC), 'pDesc')]),
     StdMethod(HRESULT, 'GetOutputParameterDesc', [(UINT, 'ParameterIndex'), Out(Pointer(D3D11_SIGNATURE_PARAMETER_DESC), 'pDesc')]),
     StdMethod(HRESULT, 'GetPatchConstantParameterDesc', [(UINT, 'ParameterIndex'), Out(Pointer(D3D11_SIGNATURE_PARAMETER_DESC), 'pDesc')]),
-    StdMethod(Pointer(ID3D11ShaderReflectionVariable), 'GetVariableByName', [(LPCSTR, 'Name')]),
+    StdMethod(ObjPointer(ID3D11ShaderReflectionVariable), 'GetVariableByName', [(LPCSTR, 'Name')]),
     StdMethod(HRESULT, 'GetResourceBindingDescByName', [(LPCSTR, 'Name'), Out(Pointer(D3D11_SHADER_INPUT_BIND_DESC), 'pDesc')]),
     StdMethod(UINT, 'GetMovInstructionCount', []),
     StdMethod(UINT, 'GetMovcInstructionCount', []),
index 601c54b88c26cce558624764c6eb65e6f2661541..d3246019215c2988a7c7481fdc2cab70380aa1c3 100644 (file)
@@ -67,18 +67,18 @@ IDirect3DIndexBuffer8 = Interface("IDirect3DIndexBuffer8", IDirect3DResource8)
 IDirect3DSurface8 = Interface("IDirect3DSurface8", IUnknown)
 IDirect3DVolume8 = Interface("IDirect3DVolume8", IUnknown)
 
-PDIRECT3D8 = Pointer(IDirect3D8)
-PDIRECT3DDEVICE8 = Pointer(IDirect3DDevice8)
-PDIRECT3DSWAPCHAIN8 = Pointer(IDirect3DSwapChain8)
-PDIRECT3DRESOURCE8 = Pointer(IDirect3DResource8)
-PDIRECT3DBASETEXTURE8 = Pointer(IDirect3DBaseTexture8)
-PDIRECT3DTEXTURE8 = Pointer(IDirect3DTexture8)
-PDIRECT3DVOLUMETEXTURE8 = Pointer(IDirect3DVolumeTexture8)
-PDIRECT3DCUBETEXTURE8 = Pointer(IDirect3DCubeTexture8)
-PDIRECT3DVERTEXBUFFER8 = Pointer(IDirect3DVertexBuffer8)
-PDIRECT3DINDEXBUFFER8 = Pointer(IDirect3DIndexBuffer8)
-PDIRECT3DSURFACE8 = Pointer(IDirect3DSurface8)
-PDIRECT3DVOLUME8 = Pointer(IDirect3DVolume8)
+PDIRECT3D8 = ObjPointer(IDirect3D8)
+PDIRECT3DDEVICE8 = ObjPointer(IDirect3DDevice8)
+PDIRECT3DSWAPCHAIN8 = ObjPointer(IDirect3DSwapChain8)
+PDIRECT3DRESOURCE8 = ObjPointer(IDirect3DResource8)
+PDIRECT3DBASETEXTURE8 = ObjPointer(IDirect3DBaseTexture8)
+PDIRECT3DTEXTURE8 = ObjPointer(IDirect3DTexture8)
+PDIRECT3DVOLUMETEXTURE8 = ObjPointer(IDirect3DVolumeTexture8)
+PDIRECT3DCUBETEXTURE8 = ObjPointer(IDirect3DCubeTexture8)
+PDIRECT3DVERTEXBUFFER8 = ObjPointer(IDirect3DVertexBuffer8)
+PDIRECT3DINDEXBUFFER8 = ObjPointer(IDirect3DIndexBuffer8)
+PDIRECT3DSURFACE8 = ObjPointer(IDirect3DSurface8)
+PDIRECT3DVOLUME8 = ObjPointer(IDirect3DVolume8)
 
 IDirect3D8.methods += [
     Method(HRESULT, "RegisterSoftwareDevice", [(OpaquePointer(Void), "pInitializeFunction")]),
@@ -259,7 +259,7 @@ IDirect3DSurface8.methods += [
     Method(HRESULT, "SetPrivateData", [(REFGUID, "refguid"), (OpaquePointer(Const(Void)), "pData"), (DWORD, "SizeOfData"), (DWORD, "Flags")]),
     Method(HRESULT, "GetPrivateData", [(REFGUID, "refguid"), Out(OpaquePointer(Void), "pData"), Out(Pointer(DWORD), "pSizeOfData")]),
     Method(HRESULT, "FreePrivateData", [(REFGUID, "refguid")]),
-    Method(HRESULT, "GetContainer", [(REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "ppContainer")]),
+    Method(HRESULT, "GetContainer", [(REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppContainer")]),
     Method(HRESULT, "GetDesc", [Out(Pointer(D3DSURFACE_DESC), "pDesc")]),
     Method(HRESULT, "LockRect", [Out(Pointer(D3DLOCKED_RECT), "pLockedRect"), (ConstPointer(RECT), "pRect"), (DWORD, "Flags")]),
     Method(HRESULT, "UnlockRect", []),
@@ -270,7 +270,7 @@ IDirect3DVolume8.methods += [
     Method(HRESULT, "SetPrivateData", [(REFGUID, "refguid"), (OpaquePointer(Const(Void)), "pData"), (DWORD, "SizeOfData"), (DWORD, "Flags")]),
     Method(HRESULT, "GetPrivateData", [(REFGUID, "refguid"), Out(OpaquePointer(Void), "pData"), Out(Pointer(DWORD), "pSizeOfData")]),
     Method(HRESULT, "FreePrivateData", [(REFGUID, "refguid")]),
-    Method(HRESULT, "GetContainer", [(REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "ppContainer")]),
+    Method(HRESULT, "GetContainer", [(REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppContainer")]),
     Method(HRESULT, "GetDesc", [Out(Pointer(D3DVOLUME_DESC), "pDesc")]),
     Method(HRESULT, "LockBox", [Out(Pointer(D3DLOCKED_BOX), "pLockedVolume"), (ConstPointer(D3DBOX), "pBox"), (DWORD, "Flags")]),
     Method(HRESULT, "UnlockBox", []),
index 10c6967a48cc4b3c7db21375373afc23ac643cf0..74da462914d6287e077cacd0f553c78e76a423cd 100644 (file)
@@ -377,7 +377,7 @@ IDirect3DIndexBuffer9.methods += [
 ]
 
 IDirect3DSurface9.methods += [
-    Method(HRESULT, "GetContainer", [(REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "ppContainer")], sideeffects=False),
+    Method(HRESULT, "GetContainer", [(REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppContainer")], sideeffects=False),
     Method(HRESULT, "GetDesc", [Out(Pointer(D3DSURFACE_DESC), "pDesc")], sideeffects=False),
     Method(HRESULT, "LockRect", [Out(Pointer(D3DLOCKED_RECT), "pLockedRect"), (ConstPointer(RECT), "pRect"), (D3DLOCK, "Flags")]),
     Method(HRESULT, "UnlockRect", []),
@@ -390,7 +390,7 @@ IDirect3DVolume9.methods += [
     Method(HRESULT, "SetPrivateData", [(REFGUID, "refguid"), (OpaquePointer(Const(Void)), "pData"), (DWORD, "SizeOfData"), (D3DSPD, "Flags")], sideeffects=False),
     Method(HRESULT, "GetPrivateData", [(REFGUID, "refguid"), Out(OpaquePointer(Void), "pData"), Out(Pointer(DWORD), "pSizeOfData")], sideeffects=False),
     Method(HRESULT, "FreePrivateData", [(REFGUID, "refguid")], sideeffects=False),
-    Method(HRESULT, "GetContainer", [(REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "ppContainer")], sideeffects=False),
+    Method(HRESULT, "GetContainer", [(REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppContainer")], sideeffects=False),
     Method(HRESULT, "GetDesc", [Out(Pointer(D3DVOLUME_DESC), "pDesc")], sideeffects=False),
     Method(HRESULT, "LockBox", [Out(Pointer(D3DLOCKED_BOX), "pLockedVolume"), (ConstPointer(D3DBOX), "pBox"), (D3DLOCK, "Flags")]),
     Method(HRESULT, "UnlockBox", []),
index 37031c4f52d6b24bc967d65e0af0e835e9e526c9..9a1f33b34a5d29beffe386fdcd3a2f8728e9f874 100644 (file)
@@ -59,19 +59,20 @@ IDirectDrawSurface7 = Interface("IDirectDrawSurface7", IUnknown)
 IDirectDrawColorControl = Interface("IDirectDrawColorControl", IUnknown)
 IDirectDrawGammaControl = Interface("IDirectDrawGammaControl", IUnknown)
 
-LPDIRECTDRAW = Pointer(IDirectDraw)
-LPDIRECTDRAW2 = Pointer(IDirectDraw2)
-LPDIRECTDRAW4 = Pointer(IDirectDraw4)
-LPDIRECTDRAW7 = Pointer(IDirectDraw7)
-LPDIRECTDRAWSURFACE = Pointer(IDirectDrawSurface)
-LPDIRECTDRAWSURFACE2 = Pointer(IDirectDrawSurface2)
-LPDIRECTDRAWSURFACE3 = Pointer(IDirectDrawSurface3)
-LPDIRECTDRAWSURFACE4 = Pointer(IDirectDrawSurface4)
-LPDIRECTDRAWSURFACE7 = Pointer(IDirectDrawSurface7)
-LPDIRECTDRAWPALETTE = Pointer(IDirectDrawPalette)
-LPDIRECTDRAWCLIPPER = Pointer(IDirectDrawClipper)
-LPDIRECTDRAWCOLORCONTROL = Pointer(IDirectDrawColorControl)
-LPDIRECTDRAWGAMMACONTROL = Pointer(IDirectDrawGammaControl)
+LPUNKNOWN = ObjPointer(IUnknown)
+LPDIRECTDRAW = ObjPointer(IDirectDraw)
+LPDIRECTDRAW2 = ObjPointer(IDirectDraw2)
+LPDIRECTDRAW4 = ObjPointer(IDirectDraw4)
+LPDIRECTDRAW7 = ObjPointer(IDirectDraw7)
+LPDIRECTDRAWSURFACE = ObjPointer(IDirectDrawSurface)
+LPDIRECTDRAWSURFACE2 = ObjPointer(IDirectDrawSurface2)
+LPDIRECTDRAWSURFACE3 = ObjPointer(IDirectDrawSurface3)
+LPDIRECTDRAWSURFACE4 = ObjPointer(IDirectDrawSurface4)
+LPDIRECTDRAWSURFACE7 = ObjPointer(IDirectDrawSurface7)
+LPDIRECTDRAWPALETTE = ObjPointer(IDirectDrawPalette)
+LPDIRECTDRAWCLIPPER = ObjPointer(IDirectDrawClipper)
+LPDIRECTDRAWCOLORCONTROL = ObjPointer(IDirectDrawColorControl)
+LPDIRECTDRAWGAMMACONTROL = ObjPointer(IDirectDrawGammaControl)
 
 DDARGB = Struct("DDARGB", [
     (BYTE, "blue"),
@@ -1278,9 +1279,9 @@ LPDDENUMSURFACESCALLBACK7 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK7"
 
 IDirectDraw.methods += [
     Method(DDRESULT, "Compact", []),
-    Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]),
-    Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (Pointer(IUnknown), "pUnkOuter")]),
-    Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (Pointer(IUnknown), "pUnkOuter")]),
+    Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
+    Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
+    Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
     Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
     Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")]),
     Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
@@ -1301,9 +1302,9 @@ IDirectDraw.methods += [
 
 IDirectDraw2.methods += [
     Method(DDRESULT, "Compact", []),
-    Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]),
-    Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (Pointer(IUnknown), "pUnkOuter")]),
-    Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (Pointer(IUnknown), "pUnkOuter")]),
+    Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
+    Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
+    Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
     Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
     Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")]),
     Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
@@ -1325,9 +1326,9 @@ IDirectDraw2.methods += [
 
 IDirectDraw4.methods += [
     Method(DDRESULT, "Compact", []),
-    Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]),
-    Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (Pointer(IUnknown), "pUnkOuter")]),
-    Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDSurface"), (Pointer(IUnknown), "pUnkOuter")]),
+    Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
+    Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
+    Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
     Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDupDDSurface")]),
     Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")]),
     Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")]),
@@ -1353,9 +1354,9 @@ IDirectDraw4.methods += [
 
 IDirectDraw7.methods += [
     Method(DDRESULT, "Compact", []),
-    Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]),
-    Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (Pointer(IUnknown), "pUnkOuter")]),
-    Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDSurface"), (Pointer(IUnknown), "pUnkOuter")]),
+    Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
+    Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
+    Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
     Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDupDDSurface")]),
     Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")]),
     Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")]),
@@ -1468,7 +1469,7 @@ IDirectDrawSurface2.methods += [
     Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE2, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
     Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
     Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSReference")]),
-    Method(DDRESULT, "GetDDInterface", [Out(Pointer(IUnknown), "lplpDD")]),
+    Method(DDRESULT, "GetDDInterface", [Out(LPUNKNOWN, "lplpDD")]),
     Method(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
     Method(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
 ]
@@ -1507,7 +1508,7 @@ IDirectDrawSurface3.methods += [
     Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE3, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
     Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
     Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSReference")]),
-    Method(DDRESULT, "GetDDInterface", [Out(Pointer(IUnknown), "lplpDD")]),
+    Method(DDRESULT, "GetDDInterface", [Out(LPUNKNOWN, "lplpDD")]),
     Method(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
     Method(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
     Method(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC, "lpDDSD"), (DWORD, "dwFlags")]),
@@ -1639,14 +1640,14 @@ ddraw.addFunctions([
     StdFunction(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")]),
     StdFunction(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
     StdFunction(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
-    StdFunction(HRESULT, "DirectDrawCreate", [(Pointer(GUID), "lpGUID"), Out(Pointer(LPDIRECTDRAW), "lplpDD"), (Pointer(IUnknown), "pUnkOuter")]),
-    StdFunction(HRESULT, "DirectDrawCreateEx", [(Pointer(GUID), "lpGuid"), Out(Pointer(LPVOID), "lplpDD"), (REFIID, "iid"), (Pointer(IUnknown), "pUnkOuter")]),
-    StdFunction(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]),
+    StdFunction(HRESULT, "DirectDrawCreate", [(Pointer(GUID), "lpGUID"), Out(Pointer(LPDIRECTDRAW), "lplpDD"), (LPUNKNOWN, "pUnkOuter")]),
+    StdFunction(HRESULT, "DirectDrawCreateEx", [(Pointer(GUID), "lpGuid"), Out(Pointer(LPVOID), "lplpDD"), (REFIID, "iid"), (LPUNKNOWN, "pUnkOuter")]),
+    StdFunction(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
     StdFunction(Void, "AcquireDDThreadLock", []),
     StdFunction(Void, "ReleaseDDThreadLock", []),
     StdFunction(DWORD, "D3DParseUnknownCommand", [(LPVOID, "lpCmd"), Out(Pointer(LPVOID), "lpRetCmd")]),
     StdFunction(HRESULT, "DllCanUnloadNow", []),
-    StdFunction(HRESULT, "DllGetClassObject", [(REFCLSID, "rclsid"), (REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "ppv")]),
+    StdFunction(HRESULT, "DllGetClassObject", [(REFCLSID, "rclsid"), (REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppv")]),
 
     # XXX
     StdFunction(HRESULT, "CompleteCreateSysmemSurface", [Int, Int]),
index 8fef9bd532f9827ec543935e771ac5146a5f390a..99e6fdba55702db6c67867732f344876f1592419 100644 (file)
@@ -106,15 +106,15 @@ DXGI_SHARED_RESOURCE = Struct("DXGI_SHARED_RESOURCE", [
 
 IDXGIObject = Interface("IDXGIObject", IUnknown)
 IDXGIObject.methods += [
-    Method(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "data_size"), (OpaquePointer(Const(Void)), "data")]),
+    Method(HRESULT, "SetPrivateData", [(REFGUID, "guid"), (UINT, "data_size"), (OpaqueBlob(Const(Void), "data_size"), "data")]),
     Method(HRESULT, "SetPrivateDataInterface", [(REFGUID, "guid"), (OpaquePointer(Const(IUnknown)), "object")]),
     Method(HRESULT, "GetPrivateData", [(REFGUID, "guid"), Out(Pointer(UINT), "data_size"), Out(OpaquePointer(Void), "data")]),
-    Method(HRESULT, "GetParent", [(REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "parent")]),
+    Method(HRESULT, "GetParent", [(REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "parent")]),
 ]
 
 IDXGIDeviceSubObject = Interface("IDXGIDeviceSubObject", IDXGIObject)
 IDXGIDeviceSubObject.methods += [
-    Method(HRESULT, "GetDevice", [(REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "device")]),
+    Method(HRESULT, "GetDevice", [(REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "device")]),
 ]
 
 IDXGISurface = Interface("IDXGISurface", IDXGIDeviceSubObject)
@@ -128,21 +128,21 @@ IDXGIOutput = Interface("IDXGIOutput", IDXGIObject)
 IDXGIOutput.methods += [
     Method(HRESULT, "GetDesc", [Out(Pointer(DXGI_OUTPUT_DESC), "desc")]),
     Method(HRESULT, "GetDisplayModeList", [(DXGI_FORMAT, "format"), (UINT, "flags"), Out(Pointer(UINT), "mode_count"), Out(Array(DXGI_MODE_DESC, "*mode_count"), "desc")]),
-    Method(HRESULT, "FindClosestMatchingMode", [(Pointer(Const(DXGI_MODE_DESC)), "mode"), Out(Pointer(DXGI_MODE_DESC), "closest_match"), (Pointer(IUnknown), "device")]),
+    Method(HRESULT, "FindClosestMatchingMode", [(Pointer(Const(DXGI_MODE_DESC)), "mode"), Out(Pointer(DXGI_MODE_DESC), "closest_match"), (ObjPointer(IUnknown), "device")]),
     Method(HRESULT, "WaitForVBlank", []),
-    Method(HRESULT, "TakeOwnership", [(Pointer(IUnknown), "device"), (BOOL, "exclusive")]),
+    Method(HRESULT, "TakeOwnership", [(ObjPointer(IUnknown), "device"), (BOOL, "exclusive")]),
     Method(Void, "ReleaseOwnership", []),
     Method(HRESULT, "GetGammaControlCapabilities", [Out(Pointer(DXGI_GAMMA_CONTROL_CAPABILITIES), "gamma_caps")]),
     Method(HRESULT, "SetGammaControl", [(Pointer(Const(DXGI_GAMMA_CONTROL)), "gamma_control")]),
     Method(HRESULT, "GetGammaControl", [Out(Pointer(DXGI_GAMMA_CONTROL), "gamma_control")]),
-    Method(HRESULT, "SetDisplaySurface", [(Pointer(IDXGISurface), "surface")]),
-    Method(HRESULT, "GetDisplaySurfaceData", [(Pointer(IDXGISurface), "surface")]),
+    Method(HRESULT, "SetDisplaySurface", [(ObjPointer(IDXGISurface), "surface")]),
+    Method(HRESULT, "GetDisplaySurfaceData", [(ObjPointer(IDXGISurface), "surface")]),
     Method(HRESULT, "GetFrameStatistics", [Out(Pointer(DXGI_FRAME_STATISTICS), "stats")]),
 ]
 
 IDXGIAdapter = Interface("IDXGIAdapter", IDXGIObject)
 IDXGIAdapter.methods += [
-    Method(HRESULT, "EnumOutputs", [(UINT, "output_idx"), Out(Pointer(Pointer(IDXGIOutput)), "output")]),
+    Method(HRESULT, "EnumOutputs", [(UINT, "output_idx"), Out(Pointer(ObjPointer(IDXGIOutput)), "output")]),
     Method(HRESULT, "GetDesc", [Out(Pointer(DXGI_ADAPTER_DESC), "desc")]),
     Method(HRESULT, "CheckInterfaceSupport", [(REFGUID, "guid"), Out(Pointer(LARGE_INTEGER), "umd_version")]),
 ]
@@ -150,33 +150,33 @@ IDXGIAdapter.methods += [
 IDXGISwapChain = Interface("IDXGISwapChain", IDXGIDeviceSubObject)
 IDXGISwapChain.methods += [
     Method(HRESULT, "Present", [(UINT, "sync_interval"), (UINT, "flags")]),
-    Method(HRESULT, "GetBuffer", [(UINT, "buffer_idx"), (REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "surface")]),
-    Method(HRESULT, "SetFullscreenState", [(BOOL, "fullscreen"), (Pointer(IDXGIOutput), "target")]),
-    Method(HRESULT, "GetFullscreenState", [Out(Pointer(BOOL), "fullscreen"), Out(Pointer(Pointer(IDXGIOutput)), "target")]),
+    Method(HRESULT, "GetBuffer", [(UINT, "buffer_idx"), (REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "surface")]),
+    Method(HRESULT, "SetFullscreenState", [(BOOL, "fullscreen"), (ObjPointer(IDXGIOutput), "target")]),
+    Method(HRESULT, "GetFullscreenState", [Out(Pointer(BOOL), "fullscreen"), Out(Pointer(ObjPointer(IDXGIOutput)), "target")]),
     Method(HRESULT, "GetDesc", [Out(Pointer(DXGI_SWAP_CHAIN_DESC), "desc")]),
     Method(HRESULT, "ResizeBuffers", [(UINT, "buffer_count"), (UINT, "width"), (UINT, "height"), (DXGI_FORMAT, "format"), (UINT, "flags")]),
     Method(HRESULT, "ResizeTarget", [(Pointer(Const(DXGI_MODE_DESC)), "target_mode_desc")]),
-    Method(HRESULT, "GetContainingOutput", [Out(Pointer(Pointer(IDXGIOutput)), "output")]),
+    Method(HRESULT, "GetContainingOutput", [Out(Pointer(ObjPointer(IDXGIOutput)), "output")]),
     Method(HRESULT, "GetFrameStatistics", [Out(Pointer(DXGI_FRAME_STATISTICS), "stats")]),
     Method(HRESULT, "GetLastPresentCount", [Out(Pointer(UINT), "last_present_count")]),
 ]
 
 IDXGIFactory = Interface("IDXGIFactory", IDXGIObject)
 IDXGIFactory.methods += [
-    Method(HRESULT, "EnumAdapters", [(UINT, "adapter_idx"), Out(Pointer(Pointer(IDXGIAdapter)), "adapter")]),
+    Method(HRESULT, "EnumAdapters", [(UINT, "adapter_idx"), Out(Pointer(ObjPointer(IDXGIAdapter)), "adapter")]),
     Method(HRESULT, "MakeWindowAssociation", [(HWND, "window"), (UINT, "flags")]),
     Method(HRESULT, "GetWindowAssociation", [Out(Pointer(HWND), "window")]),
-    Method(HRESULT, "CreateSwapChain", [(Pointer(IUnknown), "device"), (Pointer(DXGI_SWAP_CHAIN_DESC), "desc"), Out(Pointer(Pointer(IDXGISwapChain)), "swapchain")]),
-    Method(HRESULT, "CreateSoftwareAdapter", [(HMODULE, "swrast"), Out(Pointer(Pointer(IDXGIAdapter)), "adapter")]),
+    Method(HRESULT, "CreateSwapChain", [(ObjPointer(IUnknown), "device"), (Pointer(DXGI_SWAP_CHAIN_DESC), "desc"), Out(Pointer(ObjPointer(IDXGISwapChain)), "swapchain")]),
+    Method(HRESULT, "CreateSoftwareAdapter", [(HMODULE, "swrast"), Out(Pointer(ObjPointer(IDXGIAdapter)), "adapter")]),
 ]
 
-#StdFunction(HRESULT, "CreateDXGIFactory", [(REFIID, "riid"), (Pointer(OpaquePointer(Void)), "factory")]),
+#StdFunction(HRESULT, "CreateDXGIFactory", [(REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "factory")]),
 
 IDXGIDevice = Interface("IDXGIDevice", IDXGIObject)
 IDXGIDevice.methods += [
-    Method(HRESULT, "GetAdapter", [Out(Pointer(Pointer(IDXGIAdapter)), "adapter")]),
-    Method(HRESULT, "CreateSurface", [(Pointer(Const(DXGI_SURFACE_DESC)), "desc"), (UINT, "surface_count"), (DXGI_USAGE, "usage"), (Pointer(Const(DXGI_SHARED_RESOURCE)), "shared_resource"), Out(Pointer(Pointer(IDXGISurface)), "surface")]),
-    Method(HRESULT, "QueryResourceResidency", [(Array(Const(OpaquePointer(IUnknown)), "resource_count"), "resources"), Out(Array(DXGI_RESIDENCY, "resource_count"), "residency"), (UINT, "resource_count")]),
+    Method(HRESULT, "GetAdapter", [Out(Pointer(ObjPointer(IDXGIAdapter)), "adapter")]),
+    Method(HRESULT, "CreateSurface", [(Pointer(Const(DXGI_SURFACE_DESC)), "desc"), (UINT, "surface_count"), (DXGI_USAGE, "usage"), (Pointer(Const(DXGI_SHARED_RESOURCE)), "shared_resource"), Out(Pointer(ObjPointer(IDXGISurface)), "surface")]),
+    Method(HRESULT, "QueryResourceResidency", [(Array(Const(ObjPointer(IUnknown)), "resource_count"), "resources"), Out(Array(DXGI_RESIDENCY, "resource_count"), "residency"), (UINT, "resource_count")]),
     Method(HRESULT, "SetGPUThreadPriority", [(INT, "priority")]),
     Method(HRESULT, "GetGPUThreadPriority", [Out(Pointer(INT), "priority")]),
 ]
index e5df0f9d3f81e7800b1a9a5ff2729a0ecb1ea743..a7556e714fd45fc1513333c182ce36934156657a 100644 (file)
@@ -182,7 +182,7 @@ HRESULT_com = FakeEnum(HRESULT, [
 ])
 
 IUnknown.methods = (
-       Method(HRESULT_com, "QueryInterface", ((REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "ppvObj"))),
+       Method(HRESULT_com, "QueryInterface", ((REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppvObj"))),
        Method(ULONG, "AddRef", ()),
        Method(ULONG, "Release", ()),
 )
index ef86f8cc09bc276be4bb62b8cb56f6087728de53..23a537a1e669d56359845b28bcab2c0c135ff089 100644 (file)
@@ -254,9 +254,6 @@ class WrapDecider(stdapi.Traverser):
     def __init__(self):
         self.needsWrapping = False
 
-    def visitVoid(self, void):
-        raise NotImplementedError
-
     def visitLinearPointer(self, void):
         pass
 
@@ -288,13 +285,16 @@ class ValueWrapper(stdapi.Traverser):
         print "    }"
     
     def visitObjPointer(self, pointer, instance):
-        print "    if (%s) {" % instance
-        self.visit(pointer.type, "*" + instance)
-        print "    }"
+        elem_type = pointer.type.mutable()
+        if isinstance(elem_type, stdapi.Interface):
+            self.visitInterfacePointer(elem_type, instance)
+        else:
+            self.visitPointer(self, pointer, instance)
     
     def visitInterface(self, interface, instance):
-        assert instance.startswith('*')
-        instance = instance[1:]
+        raise NotImplementedError
+
+    def visitInterfacePointer(self, interface, instance):
         print "    if (%s) {" % instance
         print "        %s = new %s(%s);" % (instance, getWrapperInterfaceName(interface), instance)
         print "    }"
@@ -323,9 +323,7 @@ class ValueUnwrapper(ValueWrapper):
         print "        %s = _t;" % instance
         print "    }"
 
-    def visitInterface(self, interface, instance):
-        assert instance.startswith('*')
-        instance = instance[1:]
+    def visitInterfacePointer(self, interface, instance):
         print r'    if (%s) {' % instance
         print r'        const %s *pWrapper = static_cast<const %s*>(%s);' % (getWrapperInterfaceName(interface), getWrapperInterfaceName(interface), instance)
         print r'        if (pWrapper && pWrapper->m_dwMagic == 0xd8365d6c) {'
@@ -447,6 +445,7 @@ class Tracer:
         self.serializeValue(arg.type, arg.name)
 
     def wrapArg(self, function, arg):
+        assert not isinstance(arg.type, stdapi.ObjPointer)
         self.wrapValue(arg.type, arg.name)
 
     def unwrapArg(self, function, arg):
@@ -535,7 +534,6 @@ class Tracer:
         print '    trace::localWriter.endArg();'
 
         from specs.winapi import REFIID
-        from specs.stdapi import Pointer, Opaque, Interface
 
         riid = None
         for arg in method.args:
@@ -553,12 +551,13 @@ class Tracer:
             if arg.output:
                 self.serializeArg(method, arg)
                 self.wrapArg(method, arg)
-                if riid is not None and isinstance(arg.type, Pointer):
-                    if isinstance(arg.type.type, Opaque):
-                        self.wrapIid(interface, method, riid, arg)
-                    else:
-                        assert isinstance(arg.type.type, Pointer)
-                        assert isinstance(arg.type.type.type, Interface)
+                if riid is not None and isinstance(arg.type, stdapi.Pointer):
+                    assert isinstance(arg.type.type, stdapi.ObjPointer)
+                    obj_type = arg.type.type.type
+                    assert obj_type is stdapi.Void
+                    self.wrapIid(interface, method, riid, arg)
+                    riid = None
+        assert riid is None
 
         if method.type is not stdapi.Void:
             print '    trace::localWriter.beginReturn();'