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;
}