Hi KnaveD, I would like to interpret the following your statement.. LPVOID ptr = (LPVOID)((ServerData)m_serversList[pNMIA->iItem]); I can assume that m_serversList[pNMIA->iItem] returns the ServerData object from an array of m_serversList. If you look at your typecasting, it seems to be, it is returning a temporary object, which you are typecasting to a void. That object is not at all a pointer!!!! Solution --------- If I am not wrong, you can modify your code like this.. LPVOID ptr = (LPVOID)((ServerData*) &m_serversList[pNMIA->iItem]); ie to get the address of the array element.. " Action without vision is only passing time, Vision without action is merely day dreaming, But vision with action can change the world " - Words from Nelson Mandela Thanks & Regards, Gopalakrishnan