C #: Marcar un "puntero a una matriz int" desde un mensaje SendMessage () lParam

Estoy tratando de crear una subclase de una ventana de la barra de estado no administrada de mi servidor COM administrado usando una clase heredada de NativeWindow, y me estoy topando con una pared tratando de dar sentido a la forma de compilar correctamente los contenidos de un lParam.

http://msdn.microsoft.com/en-us/library/bb760757%28VS.85%29.aspx Dice que el contenido de este lParam es de tipo.(LPARAM)(LPINT) aWidths, y que el contenido de esta variable es en realidad un "puntero a una matriz de enteros".

No puedo encontrar una manera de reunir esto correctamente. El objetivo es leer el lParam, agregar nuestro valor a la matriz y luego enviar el nuevo mensaje a través debase.wndProc(ref m).

Sería bueno si pudieraint[] array = (int[])m.*lParam o algo así, pero la vida no es tan simple (y no uso el código inseguro). He intentado con torpeza obligar al agente de policía a darme algo a través deMarshal.PtrToStructure() pero sabía que esto estaba condenado desde el principio, ya que el C-array no es una estructura y la estructura que intenté hacer obviamente no es blittable.

En este momento, dejamos pasar la llamada original y luego hacemos llamadas WinAPI adicionales para obtener la matriz, formatearla y luego reenviarla antes de que la barra de estado pueda volver a pintar. Esto está funcionando bien, pero no lo suficiente.

¿Algunas ideas?

¡Gracias!

Tom

PD: He tenido muchos problemas para asimilar cómo se usan los Params en C #, la documentación es bastante confusa: - /

Respuestas a la pregunta(1)

Su respuesta a la pregunta