Ciao Oregon. Ho creduto che lasciando il progetto fosse molto più esplicativo.
Comunque ci provo a spiegarlo:
Il programma in C# usa XALM, io VB.NET in Console.
Il programma deve Intercettare l'ID dell'evento Win32 di SimConnect (----> SimConnect è un DLL di Microsoft.FlightSimulator.SimConnect)
Ecco parte del codice in C#
// Intercept our custom Win32 event ID for SimConnect
IntPtr hWnd = new WindowInteropHelper(this).EnsureHandle();
HwndSource router = HwndSource.FromHwnd(hWnd);
router.AddHook(this.onWindowProc);
Ecco parte del codice in VB.NET che mi crea scompiglio:
Dim hWnd As IntPtr = New WindowInteropHelper(Me).EnsureHandle() '--> WindowInteropHelper è per Framework ! E per Console ?
Dim router As HwndSource = HwndSource.FromHwnd(hWnd)
router.AddHook(AddressOf Me.onWindowProc)
Il problema lo abbiamo in due punti:
WindowInteropHelper
WindowInteropHelper fa parte della WPF, ma io non uso interfacce bensì Console !
Da documentazione MS: Assists interoperation between Windows Presentation Foundation (
WPF) and
Win32 code. Per cui il suo "sostituto" quale sarebbe per App Console ?
HwndSource
HwndSource fa parte di System.Windows.Interop. Ma anche qua è parte di WPF. Di conseguenza inutile importarlo con "Imports System.Runtime.InteropServices" !
A titolo di completezza mi viene detto: HwndSource non è dichiarato. Potrebbe essere inaccessibile a causa del livello di protezione.
Da documentazione MS: Provides supporting types for interoperation between Windows Presentation Foundation (WPF) and other technologies such as Windows APIs and provides base classes for other specific interoperation scenarios involving WPF.
Per cui il primo problema è: i corrispettivi per Console App ?
Spero Oregon di essermi spiegato bene. Ecco il perché ho pensato che farvi vedere il codice a voi sarebbe stato più chiaro
Grazie.