Я хотел получить ответ на вопрос в общем виде, чтобы любой человек мог им воспользоваться, когда столкнется с похожей проблемой. То есть при переводе программ с VB6 на VB.NET.
Нашел работающий код на VB6 (огромное спасибо SCINER), который ведет захват и запись видео в AVI- файл. Перевел его на VB.NET (у меня VS2003) и застрял на одной АПИшке.
Код на VB6:
- Код: Выделить всё
Private Declare Function AVISaveOptions Lib "avifil32.dll" (ByVal hWnd As Long, ByVal uiFlags As Long, ByVal nStreams As Long, ByRef ppavi As Long, ByRef ppOptions As Long) As Long
.
Dim res As Long
Dim ps As Long
Dim opts As AVI_COMPRESS_OPTIONS
Dim pOpts As Long
.
'Запрашиваем опции компрессии у пользователя. Функция требует указатель на указатель на UDT
pOpts = VarPtr(opts)
res = AVISaveOptions(0, 3, 1, ps, pOpts)
И видим изменения в структуре opts в зависимости от выбранного кодека
Код на VB.NET после конвертации VS2003:
- Код: Выделить всё
Private Declare Function AVISaveOptions Lib "avifil32.dll" (ByVal hWnd As Integer, ByVal uiFlags As Integer, ByVal nStreams As Integer, ByRef ppavi As Integer, ByRef ppOptions As Integer) As Integer
.
Dim res As Integer
Dim ps As Integer
Dim opts As AVI_COMPRESS_OPTIONS
Dim pOpts As Integer
.
'UPGRADE_ISSUE: VarPtr function is not supported. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1040"'
pOpts = VarPtr(opts)
res = AVISaveOptions(0,3, 1, ps, pOpts)
Полный проект лежит на
http://forum.sources.ru/index.php?showtopic=171196.
Согласен на любой вариант ответа, при условии, что это будет работающий код на VB.NET, который записывает видеофайл типа avi (на mpeg тоже с радостью соглашусь, ели у кого есть). Мне не нужны теории и коды на С, Delphi и т.д.
Мне нужен код. КОД!!! Не жадничайте, коллеги. Может и я когда-нибудь пригожусь.
Колесо: Хочешь жить? Умей вертеться.