Bonsoir / Bonjour à tous,

Voila j'ai trouvé une exelente source concernant les instance unique de programme. Plutot que de recopier bêtement la fonction, je cherche à la comprendre, j'ai compris en gros le comment, mais pas ds les détails et cela ... je n'aime pas. Donc voice mes questions lol.

- Opens a named file mapping object. "file mapping object " késako ?

- Qu'est ce que le FileMapping ? j'ai vaguement compris sur la msdn, que ces fonction permettent de renvoyer un pointeur sur une zonne mémoire, mais que contient la zone mémoire, ça je ne l'ai pas très bien compris, les instructions ? , le contenut de l'exe ?

- hwnd = (HWND) *((DWORD*) pmem); , j'ai compris que hwnd pointe maintenant sur la zone mémoire crée par le mapping, mais cela sert à quoi ?

Voice la fonction entière pour celui qui aurait le courage de bien me l'expliquer (en gras, les ligne que je ne comprend pas bien)

int __stdcall IsMappedSysApp(char *szname)
{
HANDLE hmap;
LPVOID pmem;
HWND hwnd;
hmap = OpenFileMapping(FILE_MAP_READ, 0, szname);
if(!hmap) return 0;
pmem = MapViewOfFile(hmap, FILE_MAP_READ, 0, 0, 0);
if(!pmem) goto closeMap;
hwnd = (HWND) *((DWORD*) pmem);
UnmapViewOfFile(pmem);
if(IsWindow(hwnd)) {
hwnd = GetLastActivePopup(hwnd);
if(IsIconic(hwnd)) ShowWindow(hwnd, SW_RESTORE);
SetForegroundWindow(hwnd);
}
closeMap: CloseHandle(hmap);
return 1;
}

Merci d'avance.