I know you fixed your link problem. Here's a different take on the typecast.
InformDataContract->UniqueID= Marshal::PtrToStringAnsi((IntPtr) (char *)UniqueID );
Since UniqueID is declared as a simple array, eg.
You only need one typecast, like so.
InformDataContract->UniqueID = Marshal::PtrToStringAnsi((IntPtr)UniqueID );
If UniqueID was a CString, you'd want to typecast it to
const char *
first, but it's not so the extra typecast is unnecessary.