473,770 Members | 2,135 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Marshal.PtrToSt ructure crashes

I want to get the Position of the Mouse when the User click in the
non-client area of a Window.
WM_NCLBUTTONDOW N seems to be the right Message for this - and the LParam
contains a POINTS struct of the Mouse Position (so the speak on MSDN.
[http://msdn.microsoft.com/library/de...uttondown.asp])
But when I try to convert the IntPtr to a Struct, it throws a
Argument.NullRe ferenceExceptio n
Code:
[StructLayout(La youtKind.Sequen tial, CharSet=CharSet .Ansi)]
public struct POINT {
public Int16 x;
public Int16 y;
}

protected override void WndProc(ref Message m)
{
if(m.Msg==WM_NC LBUTTONDOWN) {
POINT pnt = new POINT();
// crashes
pnt = (POINT)Marshal. PtrToStructure( m.LParam,typeof (POINT));
// label2.Text = pnt.x + "/" + pnt.y;
}
base.WndProc(re f m);
}
Nov 17 '05 #1
3 4280
I belive the X and Y coords of the unmanged Point structure are 32 bit integers.

You can use System.Windows. Forms.Control.M ousePosition as an easier solution.
--
Dave Sexton
dave@www..jwaon line..com
-----------------------------------------------------------------------
<Tyron> wrote in message news:Os******** ******@TK2MSFTN GP15.phx.gbl...
I want to get the Position of the Mouse when the User click in the
non-client area of a Window.
WM_NCLBUTTONDOW N seems to be the right Message for this - and the LParam
contains a POINTS struct of the Mouse Position (so the speak on MSDN.
[http://msdn.microsoft.com/library/de...uttondown.asp])
But when I try to convert the IntPtr to a Struct, it throws a
Argument.NullRe ferenceExceptio n
Code:
[StructLayout(La youtKind.Sequen tial, CharSet=CharSet .Ansi)]
public struct POINT {
public Int16 x;
public Int16 y;
}

protected override void WndProc(ref Message m)
{
if(m.Msg==WM_NC LBUTTONDOWN) {
POINT pnt = new POINT();
// crashes
pnt = (POINT)Marshal. PtrToStructure( m.LParam,typeof (POINT));
// label2.Text = pnt.x + "/" + pnt.y;
}
base.WndProc(re f m);
}

Nov 17 '05 #2
Tyron wrote:
I want to get the Position of the Mouse when the User click in the
non-client area of a Window.
WM_NCLBUTTONDOW N seems to be the right Message for this - and the LParam
contains a POINTS struct of the Mouse Position (so the speak on MSDN.
[http://msdn.microsoft.com/library/de...uttondown.asp])
But when I try to convert the IntPtr to a Struct, it throws a
Argument.NullRe ferenceExceptio n
Code:
[StructLayout(La youtKind.Sequen tial, CharSet=CharSet .Ansi)]
public struct POINT {
public Int16 x;
public Int16 y;
}

protected override void WndProc(ref Message m)
{
if(m.Msg==WM_NC LBUTTONDOWN) {
POINT pnt = new POINT();
// crashes
pnt = (POINT)Marshal. PtrToStructure( m.LParam,typeof (POINT));
// label2.Text = pnt.x + "/" + pnt.y;
}
base.WndProc(re f m);
}

System.Drawing. Point actually takes m.LParam in one of its
constructor, I think this may be a easier way for you to get the positon.

HTH.

Jianwei
Nov 17 '05 #3
Yay, a simple Point pnt = new Point((int)m.LP aram) works wonderful.

Thanks Guys!
Nov 17 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
3975
by: alfacom | last post by:
Hi, I have two C++ structures like these : typedef struct answer_series_item { int32_t contract_size_i; int32_t price_quot_factor_i; char ins_id_s ; char isin_code_s ; uint8_t suspended_c;
1
3477
by: Ken Allen | last post by:
The documentation is not clear on the exact behaviour of the Marshal.PtrToStructure method and whether it copies the contents of the IntPtr region to a new managed object or whether it creates the managed object to reference the same region of memory. Question 1: should I call Marshal.FreeCoTaskMem after calling Marshal.PtrToStructure? Question 2: the Marshal.PtrToStructure method seems to create an object for the structure -- should...
2
3080
by: John | last post by:
public const int FRAME_LENGTH=144; public class FRAME_T { public byte Block = new byte; } public void MyDataHandler(IntPtr appContext, IntPtr data) FRAME_T frame = new FRAME_T(); Marshal.PtrToStructure(data, frame);
1
3799
by: Jay | last post by:
Hi, In my application, C++ dll is posting some message,which is processed by a form in C# ,where I use Message.Lparam to convert it in structure using Marshal.PtrToStructure() mehtod ,but it throws ArgumentException. can anybody give sample code for Marshal.PtrToStructure() .
1
2750
by: spamacon | last post by:
Hello, I have a strange situation using .Net FW 1.1. I want to use Marshal.PtrToStructure to fill the structure below. The first 3 fields get filled correctly: ulStruct describes how big the structure is in bytes (120 bytes, assuming 32-bit IntPtrs), pWmSnapshot gets 0, and usNumWmSnapshots gets 0. The next field, pICView, is a pointer to another structure, and gets filled with some garbage location, which is actually the lower 2 bytes...
1
1959
by: Suja | last post by:
Hi All, I have a WIN32 DLL which pass some information to a .NET based application via the windows messages. When I try to convert this data in the managed code, I am getting junk data. Does any have any clue on whats wrong?. Here is the code snippet. //From WIN32 DLL, I am passing the TOTAL_STATUS structure as wParam of the message
0
1421
by: P Laxmi | last post by:
I have following two structures in vc++ and i want to convert it into c# typedef struct { ULONG CallRef ; ULONG CallSource ; ULONG CallState ; ULONG CallTrunk ; ULONG CallDuration ; ULONG Layer1Coding ;
6
4879
by: carles | last post by:
Hi, Here, sample code where a byte array is used to fill a particular structure: fs = File.OpenRead(path); // FileStream BITMAPFILEHEADER bfh = new BITMAPFILEHEADER(); b = new byte;
2
7207
by: O.B. | last post by:
When using Marshal to copy data from a byte array to the structure below, only the first byte of the "other" array is getting copied from the original byte array. What do I need to specify to get Marshal.PtrToStructure to copy the all the data into the "other" array? unsafe public struct DeadReckoning {
0
9591
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9425
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10228
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10057
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9869
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7415
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6676
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5449
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
3
2816
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.