I've been trying to make this function search subfolders but I can't get it to work. Heres the code.

Code:
int findfiles(char *p)
{
WIN32_FIND_DATA Find;
HANDLE hfind;
BOOL hfind2;

hfind = FindFirstFile(p, &Find);

if(hfind == INVALID_HANDLE_VALUE){
         MessageBox(NULL, "Error opening file", "FindFiles", MB_OK|MB_ICONERROR);

}else
SendMessage(NULL, LB_ADDSTRING, 0, (LPARAM) Find.cFileName);

while(hfind2!=0){
hfind2 = FindNextFile(hfind, &Find);

if(GetFileAttributes(Find.cFileName)==FILE_ATTRIBUTE_DIRECTORY){
findfiles(Find.cFileName);
}

SendMessage(listbx,LB_ADDSTRING,0,(LPARAM) Find.cFileName);
}
FindClose(hfind);

return 0;
}
Thanks