case SHADER_TYPE_##SHADER_NAME: \
{ \
CComPtr<ID3D11##ShaderName##Shader> pd3d11SpecificShader; \
\
HRESULT hr = pd3d11Device->Create##ShaderName##Shader(pBlob->GetBufferPointer(), pBlob->GetBufferSize(), \
NULL, &pd3d11SpecificShader); \
CHECK_D3D_RESULT_THROW(hr, "Failed to create D3D11 shader"); \
pd3d11SpecificShader->QueryInterface(__uuidof(ID3D11DeviceChild), reinterpret_cast<void**>(static_cast<ID3D11DeviceChild**>(&pd3d11Shader))); \
break; \
}