DDirectDraw
procedure EnumerateDirectDraw( List: TList );
Calls the DirectDrawEnumerate function to enumerate the DirectDraw objects installed on the system. For each DirectDraw object enumerated a TDirectDrawEnum record is allocated, defined and added to the List. See DirectDrawEnumerate for more information.
You have to deallocate all records added to the List parameter by this function before destroying it. Here's a sample code:
For Cnt := 0 to List.Count-1 do
FreeMem( PDirectDrawEnum( List[Cnt] ) );
List.Free;