O
Hallo wieder mal.
Ich brauche noch mal Eure Hilfe.
Ich möchte die Cursor-Position die ich aus meiner Dll bekomme, in eine Form übergeben.
In der Dll sende ich die Position so:
hsignal= OpenEvent( EVENT_ALL_ACCESS,
FALSE, //must be set to false
"show_Event"); //name of the event object
if (hsignal ==NULL)
{
OutputDebugString("hsignal ==NULL");
}
else
{
OutputDebugString("hsignal FERTIG");
}
SetEvent(hsignal);
hMapFile = OpenFileMapping(
FILE_MAP_ALL_ACCESS, // read/write access
FALSE, // do not inherit the name
"map"); // name of mapping object
if (hMapFile == NULL || hMapFile == INVALID_HANDLE_VALUE)
{
OutputDebugString("Could not create file mapping object");
}else
{
OutputDebugString("CREATE file mapping object");
}
pData = (POINT*) MapViewOfFile(hMapFile, // handle to map object
FILE_MAP_ALL_ACCESS, // read/write permission
0,
0,
sizeof(pData));
if (pData == NULL)
{
OutputDebugString("Could not map view of file");
}else
{
OutputDebugString("MAP view of file");
}
und weiter unten:
x_pos=pt.x; //store mouse x-position
y_pos=pt.y; //store mouse y-postion
PulseEvent(hsignal);
SetSystemCursor(my_cursor,32512); //hide cursor
//send ccordinates of mouse to mapped file
CopyMemory(pData,&pt,sizeof(pData));
//OutputDebugStr("weiter");
Empfangen wird die Position durch meine Form:
void create_mapping(void)
{
hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read access
0, // max. object size
sizeof(this->pData), // buffer size
"map"); // name of mapping object
if (hMapFile == NULL || hMapFile == INVALID_HANDLE_VALUE)
{
MessageBox::Show("Could not create file mapping object");
}
pData = (Point*) MapViewOfFile(hMapFile, // handle to map object
FILE_MAP_ALL_ACCESS, // read/write permission
0,
0,
sizeof(pData));
if (pData == NULL)
{
MessageBox::Show("Could not map view of file");
}
}
Leider bekomme ich in meiner Form nur die x-Position richtig angezeigt, die y-Position ist 0 oder Schwachsinn.
Liegt es an sizeof(pData) ?
Wird dadurch nicht genügend Speicher reserviert?
Danke Euch schon mal