Hallo,
folgendes Problem:
Ich benutze die Win32-API und moechte alle Windows ueberpruefen.
Meine Code schaut so aus:
1 | public delegate bool CallBack(int hwnd, int lparam);
|
2 |
|
3 | [DllImport("user32.dll")]
|
4 | public static extern int EnumWindows(CallBack callback, int param);
|
5 |
|
6 |
|
7 | EnumWindows(cbWinName, 0);
|
8 | CallBack cbWinName = new CallBack(fnWinName);
|
9 |
|
10 | private static bool fnWinName(int hWnd, int lParam)
|
11 | {
|
12 | //Hier moechte auf Klassenelemente zugreifen
|
13 | }
|
in der callback Funktion fnWinName moechte ich auf nicht-statische
Klassen-Elemente zugreifen. Dieser Funktion wird lParam uebergeben,
welcher im obigen Beispiel in der Funktion EnumWindows mit 0 festgelegt
wird.
Mit C wuerde ich einfach eine Struktur auf (int) casten, dann kann ich
in fnWinName darauf zugreifen
1 | struct Sdata {...};
|
2 | struct Sdata data;
|
3 | EnumWindows(fnWinName, (int) &data);
|
4 |
|
5 | int fnWinName(int hWnd, int lParam)
|
6 | {
|
7 | struct Sdata *p= (struct Sdata *)lParam;
|
8 |
|
9 | }
|
Wie kann ich in C# sowas machen, d.h. in dem int-Argument eine Referenz
auf einen Datenbereich, bzw. Klasse uebergeben?
Gruss, Juergen