Определение приложения, которое будет вызываться в случае наступления тех или иных событий
BOOL CBitsJob::SetNotifyProgramm( LPCWSTR wszCommandLine )
{
BOOL bRet = FALSE;
if( m_lpJob != NULL )
{
if( SUCCEEDED( m_lpJob->SetNotifyInterface( NULL ) ) )
{
WCHAR wszJobId[48];
if( StringFromGUID2( m_JobID,wszJobId,sizeof(wszJobId) ) )
{
IBackgroundCopyJob2* lpJob2 = NULL;
m_lpJob->QueryInterface( __uuidof(IBackgroundCopyJob2),(void**)&lpJob2 );
if( lpJob2 != NULL )
{
LPWSTR wszParameters = new WCHAR[MAX_PARAMETER_LEN+1];
if( wszParameters != NULL )
{
wsprintfW( wszParameters,L»%s %s»,wszCommandLine,wszJobId );
if( SUCCEEDED( lpJob2->SetNotifyCmdLine( wszCommandLine,wszParameters ) ) )
{
m_lpJob->SetNotifyFlags( BG_NOTIFY_JOB_TRANSFERRED | BG_NOTIFY_JOB_ERROR ); }
delete [] wszParameters;
}
lpJob2->Release();
lpJob2 = NULL;
}
}
}
}
return bRet;
}