Es will zum verzweifeln nicht..
Ich komme unter .NET (Wenn die meinen Wrapper verwenden)
in meiner in Delphi geschriebenen
DLL einfach nicht in die Renderproc hinein obwohl ich
über einen Timer 100% die richtige Message schicke.
Delphi-Quellcode:
procedure TimerProc(wTimerID: DWORD; Msg: DWORD;
dwUser: longint;
dw1: longint;
dw2: longint); stdcall;
begin
PostMessage(BB_RenderHandle, MyTimerMessage, dw1, dw2);
end;
procedure TBassBoxVis.RenderProc(var Msg: TMessage);
var
ChanInfo: BASS_CHANNELINFO;
i: integer;
begin
if Msg.Msg = MyTimerMessage then
Warum funktioniert das nicht!
Jetzt habe ich mir die Mühe gemacht ein Threadsicheres AllocateHWnd einzubauen (DSiWin32/DSiAllocateHWnd)
aber es will trotzdem nicht.
Ich sehe nicht was da falsch sein soll.
Delphi-Quellcode:
BB_RenderHandle := DSiAllocateHWnd(BassBoxVis1.RenderProc);
if VisDataThread.VisChan <> 0 then
begin
if (m_lId = 0) then
// create High Resolution Timer use mmsystem
m_lId := timeSetEvent(25, 0, @TimerProc, BB_RenderHandle , TIME_PERIODIC);
end;
Es muss doch möglich sein über das erstellte Window Messagen auszutauschen
Von Delphi nach Delph geht es doch auch.
gruss