#define mcVirtualAlloc(N) VirtualAlloc(0, N, MEMDISPO, PAGE_READWRITE);
#define mcVirtualFree(Addr) VirtualFree(Addr, 0, MEM_RELEASE);
char szappname[] = "tstLB";
void lireLB(HWND hLB)
{
LRESULT i, n, len, v;
char *pbuf;
n = SendMessage(hlb, LB_GETCOUNT, 0, 0);
if(n <= 0) return;
// CALCUL TAILLE NECESSAIRE
len = 0;
for(i = 0; i < n; i++) {
v = SendMessage(hlb, LB_GETTEXTLEN, i, 0);
if(v > len) len = v;
}
// ALLOC BUFFER, DOUBLER TAILLE SI UNICODE
pbuf = (char*) mcVirtualAlloc(len + 1);
if(!pbuf) return;
for(i = 0; i < n; i++) {
v = SendMessage(hlb, LB_GETTEXT, i, (LPARAM) pbuf);
if(v > 0) MessageBox(hmain, pbuf, szappname, 0);
}
mcVirtualFree(pbuf);
}
ciao...