Hi,
first of all I encourage you to take a look into directX documentation and HLSL tutorials before stain your hands with the task, pretty simple by the way.

In the list of functions I linked above, there are two resolutive functions: texCUBE and reflect.

texCUBE is a bmap sampler, cubemap specific, such skyboxes and enviroment reflections. Its first parameter is a sampler, cubemap specific too.
Code:
texture mtlSkin1; // or entSkin1<->4 or myGlobalBmap_bmap or whatever
samplerCUBE sEnvironment = sampler_state { Texture = <mtlSkin1>; MipFilter = Linear; };


And its second parameter is a three-dimensional vector that serves as texture coordinates. The transformation of the vector to the coordinates into a pixel of one of the faces of the cubemap is made by the sampler itself.

Think a bit in a skycube. It certainly is a texCUBE sampler and the coordinates vector is the direction of the rendered pixel from the view point. As simple as that. This direction vector is alredy computed in the vertex shader of the tutorial and passed to the pixel shader, but inversed.
Code:
// PS
OutViewDir = vecViewPos - mul(InPos, matWorld);
// VS
in float4 InViewDir: TEXCOORD2



Try it yourself. Create a cubemap in liteC.
Code:
BMAP *bmpEnvMap = bmap_create ( "myEnvMap+6.tga" );
bmap_to_cubemap ( bmpEnvMap );
myEntMtl.skin1 = bmpEnvMap;



Declare the sampler in the shader.
Code:
texture mtlSkin1;
samplerCUBE sEnv = sampler_state { Texture = <mtlSkin1>; MipFilter = Linear; };



Sample and return it in the pixel shader.
Code:
float4 envColor = texCUBE ( sEnv, -InVierDir ); // inversed!
return envColor;



You will see that the entity is texturized as a skybox.

Let's continue. reflect function is selfexplanatory. It returns the reflexion of a vector in reference to a surface normal and we have both passed from the pixel shader: view direction and surface normal.
Code:
float3 viewDirReflexion = reflect ( -InViewDir.xyz, InNormal ); // inversed!
float4 envSample = texCUBE ( sEnv, viewDirReflexion );



If you return this sample as texture color and set the same cubemap as skybox, you will see that the entity is texturized as a perfect skybox reflecting mirror.

At this point you only need to mix this last color sample with the color you have already computed. As you may imagine you can do with those values all you want. I would simply replace the specular reflection computations by the texCUBE sample multiplied by specular term you got already. Simple and effective.

Cubic real time reflections are managed same but with an unique difference: the cubemap is rendered each frame. That is an expensive task and it is not really advisable. Forget about using it into populated sceneries.

Salud!