unit Mult1;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls;

const
  MAX_WAVE_FILE_SIZE = 30000;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    ChordDat: array[0..MAX_WAVE_FILE_SIZE] of Char;
    procedure LoadWavFile;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses mmsystem;

{$R *.DFM}

procedure TForm1.LoadWavFile;
var
 f: THandle;  { identyfikator pliku }
 size: DWord;  { liczba odczytanych bajtw }
begin
 { uywamy funkcji Win32 API do odczytania pliku }
 f := CreateFile('C:\WINDOWS\MEDIA\MSREMIND.WAV',
                  GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
 if not(f = INVALID_HANDLE_VALUE) then
 begin
  ReadFile(f, ChordDat, MAX_WAVE_FILE_SIZE, size, nil);
  {CloseHandle;}
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 PToChord: PChar;
begin
 PToChord := ChordDat;
 PlaySound(PToChord, 0, SND_ASYNC or SND_MEMORY);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 LoadWavFile;
end;

end.