it's casting imageData to the type (void*), so basically telling the compiler to take this value and treat it as though it were a (void*)
from my experience, void* is a pointer to a non-specific type.
As far as converting your example to c#, then you don't really have to worry too much about how things are being cast in the c++. Just make sure that you're passing the right types into the corresponding c# function.