C #: выделение «указателя на массив int» из SendMessage () lParam

Я пытаюсь создать подкласс неуправляемого окна строки состояния из моего управляемого COM-сервера, используя класс, унаследованный от NativeWindow, и врезаюсь в стену, пытаясь понять, как правильно распределить содержимое lParam.

http://msdn.microsoft.com/en-us/library/bb760757%28VS.85%29.aspx говорит, что содержимое этого lParam имеет тип(LPARAM)(LPINT) aWidthsи что содержимое этой переменной на самом деле является "указатель на целочисленный массив. "

Я могу'не могу придумать, как правильно это сделать. Цель состоит в том, чтобы прочитать lParam, добавить наше значение в массив, а затем отправить новое сообщение через.base.wndProc(ref m)

Это'было бы хорошо, если бы я мог простоint[] array = (int[])m.*lParam или что-то такое, но жизнь неэто так просто (и я неиспользовать небезопасный код). Я'Мы неуклюже пытались заставить маршаллера дать мне что-то черезMarshal.PtrToStructure() но знал, что это было обречено с самого начала, так как C-массив неструктура и структура, которую я пытался создать, очевидно, не являются блистерными.

Прямо сейчас мы позволяем исходному вызову пройти, а затем делаем дополнительные вызовы WinAPI, чтобы получить массив, отформатировать его, а затем повторно отправить его, прежде чем строка состояния сможет перерисоваться. Это работает хорошо, но недостаточно хорошо.

Есть идеи?

Спасибо!

Том

PS- яУ нас было много проблем с поиском использования lParams в C #, документация довольно запутанная: - /

Ответы на вопрос(1)

Ваш ответ на вопрос