views:

440

answers:

2

Hello, We have a Native Embedded VC (EVC4.0) application running on a Windows Mobile 5 device. Now there is a requirement to get this application to talk with a new mobile application to be developed using either EVC4.0 or .Net CF. We were thinking of using MSMQ on the Windows Mobile device for inter process communication between these 2 apps.

Has anyone used MSMQ for this kind of reason before?

Thanks, -Sid

A: 

I have (though on regular Windows, not mobile). I found it to be unreliable (IIRC, the MSMQ docs do not guarantee delivery of messages).

When I need to do interprocess communication, I use WM_COPYDATA (if the communicators are two windows), or named pipes:

http://www.codeproject.com/KB/threads/dotnetnamedpipespart1.aspx
(a good, ready-to-use sample library there)

DannySmurf
No, you don't use named pipes on CE. They don't exist in CE.
ctacke
+1  A: 

WM_COPYDATA, sockets, memory-mapped files and point-to-point message queues are all IPC mechanisms for CE (well named events are also available). I tend to lean toward point-to-point queues or memory-mapped files. Which one depends on the nature of the data I want to share.

ctacke
in what kind of natures should I use Point-to-point queues, and what kind of nature should I use memory-mapped files?
afriza
Use a point to point queue when you want to send packets or "messages". A MMF is good when you simply have a blog (like a struct) to share without needing to notify the other side of availability.
ctacke