Почему этот код WM_COPYDATA не работает?

Мне нужно передать объект класса из одного приложения С# в другое (на одной и той же машине в разных папках).

Пробовал след....

public static void SendMessageWithData( IntPtr destHandle,  IntPtr srcHandle )
        {
            COPYDATASTRUCT cds = new COPYDATASTRUCT();
            cds.dwData = srcHandle;            
            IntPtr iPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(cds));
            Marshal.StructureToPtr(cds, iPtr, true);

            SendMessage(destHandle, WM_COPYDATA, IntPtr.Zero, iPtr);

            Marshal.FreeCoTaskMem(cds.lpData);
            Marshal.FreeCoTaskMem(iPtr);
        }

person Buddhi Dananjaya    schedule 23.01.2014    source источник
comment
Что значит «не работает»? Какой звонок не работает? Почему вы игнорируете результат, возвращаемый SendMessage? Если сбой вызывает вызов SendMessage, почему вы не вызываете GetLastError? Вы вообще пытались решить проблему? Если да, то что вы узнали?   -  person Martin James    schedule 23.01.2014
comment
Вылетает в SendMessage   -  person Buddhi Dananjaya    schedule 23.01.2014
comment
Я думаю, что dwData должен просто хранить число, представляющее тип сообщения, а не данные. stackoverflow.com/questions/12743962/   -  person James_UK_DEV    schedule 23.01.2014