typedef struct 
{
	std::vector<CString> files;
	CDataController* pDataControler;
	CMainFrame* pParent;

} ThreadLoadFilesData;


			 
UINT ThreadLoadFiles( LPVOID pParam )
{
	CoInitialize(NULL);

	theApp.GetCrashHandler().SetThreadExceptionHandlers();

	ThreadLoadFilesData* pData = (ThreadLoadFilesData*) pParam;

	if ( pData )
	{
		CDataController* pDataControler = pData->pDataControler;

		if ( pData->pParent )
			pData->pParent->PostMessage(MSG_UPDATE_PROGRESS_BAR, (WPARAM) 0);

		if ( pDataControler && pData->files.size() > 0 )
		{
			for ( int i = 0; i < pData->files.size(); i++ )
			{
				pDataControler->LoadStripXml(pData->files[i]);

				if ( pData->pParent )
				{
					int nPos = (100. / (double) pData->files.size()) * ( i + 1 );

					pData->pParent->PostMessage(MSG_UPDATE_PROGRESS_BAR, (WPARAM) nPos);
				}
			}

			pDataControler->SetActiveStripIndex(pDataControler->GetStripCount() - 1);
		}

		if ( pData->pParent )
		{
			pData->pParent->PostMessage(MSG_UPDATE_PROGRESS_BAR, (WPARAM) 0);
			pData->pParent->PostMessage(MSG_UPDATE_VIEWS);
		}
	}

	delete pData;

	return 0;
}