Added Lighting recently to my game engine. Also, will need to port CStyle pointers to C++ 11 style pointers.

Here are some of the examples:

Directional Light

reference = new DirectionalLight(L"MyLight1", GetGameRenderState());
shared_ptr light = reference->GetProperty();
light->SetAmbient(XMFLOAT3(0.2f, 0.2f, 0.2f));
light->SetDiffuse(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetSpecular(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetDirection(XMFLOAT3(0.0f, -1.0f, 0.0f));

AddObject(reference);

Point Light

reference = new PointLight(L"MyLight1", GetGameRenderState());
shared_ptr light = reference->GetProperty();
light->SetAmbient(XMFLOAT3(0.2f, 0.2f, 0.2f));
light->SetDiffuse(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetSpecular(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetAttenuation(XMFLOAT3(0.0f, 0.5f, 0.0f));
light->SetRange(25.0f);

reference->SetPosition(0.0f, 5.0f, 0.0f);

AddObject(reference);

Spot Light

reference = new SpotLight(L"MyLight1", GetGameRenderState());
shared_ptr light = reference->GetProperty();
light->SetAmbient(XMFLOAT3(0.2f, 0.2f, 0.2f));
light->SetDiffuse(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetSpecular(XMFLOAT3(0.5f, 0.5f, 0.5f));

light->SetDirection(XMFLOAT3(0.0f, -1.0f, 0.0f));

light->SetSpot(2.0f);
light->SetRange(25.0f);

light->SetAttenuation(XMFLOAT3(0.0f, 0.5f, 0.0f));

reference->SetPosition(0.0f, 5.0f, 0.0f);

AddObject(reference);