Я пытаюсь подключить события мыши к списку. пример кода здесь .
Но он работает нормально, если сохранить свойства проекта [Предпочитать 32-битное ИСТИНА], но API GetComboBoxInfo завершается ошибкой с кодом ошибки 87, если я сохраняю Предпочитать 32-битный ЛОЖЬ.
Вот место, где код не работает:
public static IntPtr GetChildListWindowHandle(Control ctrl)
{
Win32.ComboBoxInfo comboBoxInfo = new Win32.ComboBoxInfo();
comboBoxInfo.cbSize = (uint)Marshal.SizeOf(comboBoxInfo);
Win32.GetComboBoxInfo(ctrl.Handle, ref comboBoxInfo);
uint error = GetLastError() ;
if (true == Win32.GetComboBoxInfo(ctrl.Handle, ref comboBoxInfo))
{
return comboBoxInfo.hwndList;
}
return IntPtr.Zero;
}
[StructLayout(LayoutKind.Sequential)]
public struct ComboBoxInfo
{
public uint cbSize;
public RECT rcItem;
public RECT rcButton;
public IntPtr stateButton;
public IntPtr hwndCombo;
public IntPtr hwndEdit;
public IntPtr hwndList;
}
[DllImport("user32.dll")]
public static extern bool GetComboBoxInfo(IntPtr hwndCombo, ref ComboBoxInfo info);