Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MCI-окна


Nomolos ©   (2004-09-04 09:14:00) 

В MSDN довольно подробно описан процесс работы с MCI-окнами, хотел в Delphi реализовать получение длины MIDI-файла, в милисекундах, с их помощью. Вроде, ничего парадоксального:


function MCIWndCreate(Parent: HWND; hInstance: Cardinal;
 Style: DWORD; FileName: PAnsiString): HWND; stdcall; external 'msvfw32.dll';

function MCIWndGetLength(Wnd: HWND): Integer;
begin
 Result := SendMessage(Wnd, WM_USER + 104, 0, 0)
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 MCIWnd: HWND;
begin
 MCIWnd := MCIWndCreate(Handle, hInstance, 0, PAnsiString(Edit1.Text));
 Label1.Caption := IntToStr(MCIWndGetLength(MCIWnd));
 DestroyWindow(MCIWnd)
end;


На выходе из Button1Click исключение, мол, access violation, всё такое... Судя по всему, не работает MCIWndCreate (пробовал выкинуть две другие команды), но, тем не менее, функция выдаёт вменяемые дескрипторы. В чём может быть дело?


Nomolos   (2004-09-05 10:46:00) [1]

А как ещё без классов и mmsystem узнать длину midi?


Наверх

Титульная страница Поиск, карта сайта Написать письмо