title: CreateInputLayout returns E_INVALIDARG
body: <p>I am writing a program in C++ using DirectX11. Now I wanted to start with shaders and for that I also need the ID3D11InputLayout</p>
  
  <pre><code>//in main
  shader.Bind(DeviceContext);
  
  ID3D11InputLayout *pLayout;
  D3D11_INPUT_ELEMENT_DESC ied[] =
  {
      {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0},
      {"COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0},
  };
  
  HRESULT hh = Device-&gt;CreateInputLayout(ied, 2, shader.GetVSBlob()-&gt;GetBufferPointer(), shader.GetVSBlob()-&gt;GetBufferSize(), &amp;pLayout);
  
  DeviceContext-&gt;IASetInputLayout(pLayout);
  
  //Vertex Shader
  struct VOut
  {
  float4 position : SV_POSITION;
  float4 color : COLOR;
  };
  
  VOut main(float4 position : POSITION, float4 color : COLOR)
  {
  VOut output;
  
  output.position = position;
  output.color = color;
  
  return output;
  }
  //pixel shader
  struct VOut
  {
  float4 position : SV_POSITION;
  float4 color : COLOR;
  };
  
  float4 main(float4 position : SV_POSITION, float4 color : COLOR) : SV_TARGET
  {
  return color;
  }
  </code></pre>
  
  <p>Device->CreateInputLayout() returns E_INVALIDARG.</p>