CB_GETTEXT: Use lpBuffer instead of lpText for LB_GETTEXT32, handle 0

byte NULL buffer.
oldstable
Marcus Meissner 1998-11-22 15:41:00 +00:00 committed by Alexandre Julliard
parent 9dc325629d
commit 21777c59c7
1 changed files with 3 additions and 1 deletions

View File

@ -1001,14 +1001,16 @@ static LRESULT COMBO_GetText( LPHEADCOMBO lphc, UINT32 N, LPSTR lpText)
if( lpBuffer ) if( lpBuffer )
{ {
INT32 n = SendMessage32A( lphc->hWndLBox, LB_GETTEXT32, INT32 n = SendMessage32A( lphc->hWndLBox, LB_GETTEXT32,
(WPARAM32)idx, (LPARAM)lpText ); (WPARAM32)idx, (LPARAM)lpBuffer );
/* truncate if buffer is too short */ /* truncate if buffer is too short */
if( length >= N ) if( length >= N )
{ {
if (N && lpText) {
if( n != LB_ERR ) memcpy( lpText, lpBuffer, (N>n) ? n+1 : N-1 ); if( n != LB_ERR ) memcpy( lpText, lpBuffer, (N>n) ? n+1 : N-1 );
lpText[N - 1] = '\0'; lpText[N - 1] = '\0';
}
HeapFree( GetProcessHeap(), 0, lpBuffer ); HeapFree( GetProcessHeap(), 0, lpBuffer );
} }
return (LRESULT)n; return (LRESULT)n;