All I can think of is that either you or one of the included headers overloaded memset().
Try rewriting it like this: memset((void *)&bi,(int)'\0',(size_t)sizeof(bi))
Make sure you have included the header file with the prototype for memset(), this will be different depending on the system you are working on so look up the help page for details.
Yes I agree, but compiler errors are often nothing to do with the actual problem. Experience has taught me that compilers cannot be relied on to tell you what is wrong, just that something is wrong and that it is vaguely to do with the error it is reporting.
Is this BROWSEINFO a structure? I found it at http://msdn.microsoft.com/en-us/library/bb773205(VS.85).aspx
Because this memset function is meant to copy the same data to a buffer. I think this function cannot handle the structure as a buffer. So, if you want to initialize the bi variable, I think you should do it by hand or with a function or a constructor(if it has).