Функция OnDestroy()
Остается лишь завершить приложение. Функция OnDestroy() занимается «уборкой мусора»— она закрывает открытые AVI-потоки, освобождает декомпрессор и буферы данных AVI:
void AviPlayWin::OnDestroy() { DirectDrawWin::OnDestroy(); if (avistream) AVIStreamRelease( avistream ), avistream=0; if (decomp) ICClose( decomp ), decomp=0; if (srcfmt) delete [] srcfmt, srcfmt=0; if (dstfmt) delete [] dstfmt, dstfmt=0;
if (rawdata) { TRACE("delete [] rawdata...\n"); delete [] rawdata, rawdata=0; } if (finaldata) { TRACE("delete [] finaldata..\n"); delete [] finaldata, finaldata=0;; } if (avidialog) delete avidialog, avidialog=0; AVIFileExit(); } |
Обратите внимание на вызов функции AviFileExit() в конце OnDestroy(). Это завершает работу VFW и освобождает все используемые им ресурсы.