The Client Side Example for C

#include "ltmm.h"
#include "ILMNetDmx.h"

void main()
{
   IltmmPlay* pPlay ; 
   IUnknown* pUnk = NULL; 
   ILMNetDmx* pDmx; 
   long bitrate = 0; 
   BSTR Message; 
   BSTR sServer; 
   BSTR szFileName; 

   CoInitialize(NULL); 

   CoCreateInstance(&CLSID_ltmmPlay, NULL, CLSCTX_INPROC_SERVER, &IID_IltmmPlay, (void**) &pPlay); 

   // set the player source: 
   sServer = SysAllocString(L"ltsf://10.0.4.23");
   IltmmPlay__put_SourceFile(pPlay , sServer); 
   SysFreeString(sServer); 

   // you can monitor the incoming bit rate by checking the BitRate property of 
   // the demultiplexer object: 
   IltmmPlay_GetSubObject (pPlay, ltmmPlay_Object_Splitter, &pUnk); 
   IUnknown_QueryInterface(pUnk, &IID_ILMNetDmx, (void**) &pDmx); 
   IUnknown_Release(pUnk); 

   ILMNetDmx_get_BitRate(pDmx, &bitrate); // you may display the value 

   // Get the output file name
   ILMNetDmx__get_OutputFileName(pDmx, &szFileName); 
   if (szFileName == NULL) 
   {
      // Set the output file name to record the incoming stream
      szFileName = SysAllocString(L"c:\\output.avi");
      ILMNetDmx__put_OutputFileName(pDmx, szFileName); 
   }
   SysFreeString(szFileName); 

   // if the AutoStart property is not TRUE, you need to run the player: 
   IltmmPlay_Run(pPlay); 

   // To give a chance to receive some data
   Sleep(20000); 

   /* to receive a text message sent by the server, use the ReadMessage method: */
   /* first, get the demux interface again (you might want to keep it for the life of 
      the communication session: 
      read the message: */
   ILMNetDmx_ReadMessage(pDmx, &Message); 

   ILMNetDmx_Release(pDmx); 
   IltmmPlay_Release(pPlay); 
   CoUninitialize();
   /* do something with the message. */

   /* You need to call ReadMessage continuously to check for new messages.*/ 
}