Ciao a tutti,
dovrei portare in c# del codice Vb.Net, per la comunicazione tramite USB...
In particolare devo "intercettare" il medodo WinProc tramite delegate, il codice VB è questo:
...
Private Ref_WinProc As New SubClassProcDelegate(AddressOf WinProc)
...
Public Function ConnectToHID(ByRef targetForm As Form) As Boolean
Dim pHostWin As Integer = targetForm.Handle.ToInt32
FWinHandle = pHostWin
pHostWin = hidConnect(FWinHandle)
FPrevWinProc = DelegateSetWindowLong(FWinHandle, GWL_WNDPROC, Ref_WinProc)
HostForm = targetForm
End Function
L'ho tradotto in questo modo:
la dichiarazione di SubClassProcDelegate mi da errore dicendo che il metodo deve avere un tipo restituito (ed io ho appunto messo int)
private SubClassProcDelegate Ref_WinProc = new SubClassProcDelegate(WndProc);
Mi da errore perchè non so come tradutte l'AddressOf e lasciando solamente WndProc non mi va ontretutto non so come settare la "using" per farglielo riconoscere?
public HIDDLLInterface(ref Form targetForm) {
HostForm = targetForm;
FWinHandle = targetForm.Handle.ToInt32();
FPrevWinProc = delegateSetWindowLong(FWinHandle, GWL_WNDPROC, Ref_WinProc);
}
Qualcuno ha idea di come fare? Esiste WinProc in C# perchè io ho trovato solamente WndProc, ma ha una firma diversa (un solo parametro da passare...)