Dictionary<int, IntPtr>かDictionary<string,IntPtr>

あと、そのコードリークしてるよ?
StringToHGlobal***はちゃんとIntPtrで受けて
SendMessageのあとにFreeHGlobalしろ