En gros tu fais un lock sur une directdrawsurface, et tu travailles directement sur la zone memoire concernee.
ex:
DDSURFACEDESC2 ddsd;
LPDIRECTDRAWSURFACE4 g_pDDSBack;
LPSTR pBits;
HRESULT hRet;
ddsd.dwSize = sizeof(ddsd);
// On initialise la struct ddsd
hRet = g_pDDSBack->Lock(NULL, &ddsd, DDLOCK_WAIT , NULL);
// On verrouille la surface de travail (ici le backbuffer)
// On obtient un ddsurfacedesc2 en retour
if (hRet != DD_OK) //Erreur;
pBits = (LPSTR) ddsd.lpSurface;
// Operations de trace directement sur pBits.
g_pDDSBack->Unlock(NULL);
// Ne pas oublier de deverrouiller
Je crois meme que ce code est sorti directement d'un exemple du tutorial..
A+
LEGREG