IShader* myShader;
...

// ShaderParameter werden direkt aus den Shadern ausgelesen oder alternativ durch SemanticHandler übergeben.
IShaderParameter* myParameter = myShader->get_ParameterByName("diffuseTexture");

// ShaderParameter sollten, so wie auch Shader, auf ihre Gültigkeit überprüft werden.
if (!myParameter)
	Fehler("Parameter konnte nicht gefunden werden oder wird nicht unterstützt!");
else if (!myParameter->isValid())
	Fehler("Parameter ist unbrauchbar!");

// ShaderParameter können benutzt werden um den Shader zur Laufzeit neue Werte zu übermitteln.
// Dies ist wichtig dar die meisten Shader diverse aktuelle Werte benötigen, wie zB Matritzen für den Vertexshader.
// Wiederkehrende Shaderparameter Updates sollten aber über Annotation, Semantic oder CallbackHandler
// erledigt werden.

// Auch sollte auf den verwendeten Parametertypen geprüft werden
if (myParameter->get_Type() == ShaderParameterType::Float4)
{
	D3DXVECTOR4 RoteFarbe(1.0f, 0.0f, 0.0f, 1.0f);
	myParameter->set_Float4( RoteFarbe )
}

// Alternativ zum unspezifizierten Parametertypen kann man auch einen festen Parameter verlangen.
// Im Falle eines Fehlschlags wird dem Parameter NULL zugewiesen.
IShaderParameter* myParameter = myShader->get_ParameterByName("diffuseTexture", ShaderParameterType::Float4);

// ShaderParameter können auch nur anhand der Semantic gesucht werden
IShaderParameter* myParameter = myShader->get_ParameterBySemantic("DiffuseFarbe");