Bonjour, j'ai un pb au niveau de la fonction de la fonction : DuplicateHandle sous pocket pc qui renvoie false et le getlasterror : paramètre incorrect alors que sous win32, aucun problème.

Voici le code :



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
cbDialogMemory = GlobalSize( hDialogMemory);
CallerhFileMem = CreateFileMapping( (HANDLE)0xFFFFFFFF,
                                NULL,
                                PAGE_READWRITE,
                                0L,
                                cbDialogMemory,
                                NULL);
if ( CallerhFileMem == NULL)
    {
    return( G_ERRLOG);
    }
/* allocation des handle de process */
 
 
 
 
ServerhProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, ServerPID);
if ( ServerhProcess == NULL)
    {
    CloseHandle( CallerhFileMem);
    return( G_ERRLOG);
    }
 
 
 
 
 
 
 
CallerhProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, CallerPID);
if ( CallerhProcess == NULL)
    {
    CloseHandle( CallerhFileMem);
    CloseHandle( ServerhProcess);
    return( G_ERRLOG);
    }
 
/* creation du handle pour le serveur */
 
 
 
if ( !DuplicateHandle( CallerhProcess,
                            CallerhFileMem,
                            ServerhProcess,
                            &ServerhFileMem,
                            0,
                            FALSE,
                            DUPLICATE_SAME_ACCESS) )
    {
		TCHAR szBuffer[20];
	DWORD error = GetLastError();
	StringCbPrintf(szBuffer, sizeof(szBuffer), TEXT("Erreur n°%u"), error);
	TCHAR szErreur[80];
	FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, 0,
	 szErreur, 80, NULL
	 );
	MessageBox(NULL, szErreur, szBuffer, MB_OK | MB_ICONERROR);
    CloseHandle( CallerhFileMem);
    CloseHandle( ServerhProcess);
    CloseHandle( CallerhProcess);
    return( G_ERRLOG);
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
HANDLE                          CallerhProcess;
/* HWND                            CallerhWnd; */
HANDLE                          CallerhFileMem;
HWND                            ServerhWnd;
DWORD                           ServerPID;
HANDLE                          ServerhProcess;
HANDLE                          ServerhFileMem;
void FARPTR                     CallerpFileMem;
void FARPTR                     pDialogMemory;
DWORD                           cbDialogMemory;
merci