Cursor-Position mit File-Mapping übergeben



  • 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


Anmelden zum Antworten