мне нужно создатжь окно специального класса. пытаюць делать следующее:
public myclass
{
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.U2)]
public static extern short RegisterClassEx([In] ref WNDCLASSEX lpwcx);
[DllImport("kernel32.dll")]
public static extern IntPtr GetModuleHandle(string lpModuleName);
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct WNDCLASSEX
{
[MarshalAs(UnmanagedType.U4)]
public int cbSize;
[MarshalAs(UnmanagedType.U4)]
public int style;
public IntPtr lpfnWndProc;
public int cbClsExtra;
public int cbWndExtra;
public IntPtr hInstance;
public IntPtr hIcon;
public IntPtr hCursor;
public IntPtr hbrBackground;
[MarshalAs(UnmanagedType.LPTStr)]
public String lpszMenuName;
[MarshalAs(UnmanagedType.LPTStr)]
public String lpszClassName;
public IntPtr hIconSm;
}
public delegate int WndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
public int myWinProc(IntPtr hWnd, uint uMsg, IntPtr wParam, IntPtr lParam)
{
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
private WNDCLASSEX mWC;
private IntPtr mWndProcPtr;
public Class1()
{
WndProc mWndProc;
mWndProc = new WndProc(myWinProc);
mWndProcPtr = Marshal.GetFunctionPointerForDelegate(mWndProc);