понедельник, марта 27, 2006

MSMQ on Windows Mobile 5

Решил попользоваться означенной фигнёй.
Скачал дистрибутив, установил – не работает :-(
Порылся в Гугле, выяснилось, что это у многих так. Но поправимо – надо руками активировать сей девайс:

[DllImport("coredll.dll",CharSet=CharSet.Unicode)]
public static extern IntPtr ActivateDevice(string lpszDevKey, int dwClientInfo);
...
IntPtr id = ActivateDevice(@"Drivers\BuiltIn\MSMQD", 0);
...

После этого хозяйство подаёт признаки жизни.

Дальше сделал попытку создать очереди и сунуть в них сообщения – ну, по примерам в MSDN и проч. литературе.
private void Testmenu_Click(object sender, EventArgs e) {
Qname = @"FormatName:DIRECT=OS: DkmServ\qtek";
Qname = @".\Private$\ttrqueL";
Qname = @".\ttrqueP"; MessageQueue.GetMachineId(".");
if (!MessageQueue.Exists(Qname)) {
msgs = MessageQueue.Create(Qname);
} else {
msgs = new MessageQueue(Qname);
}
msgs.Send("Hello, Прювет");
} catch (Exception err) {
MessageBox.Show(err.Message, err.GetType().Name);
}
}

Выяснилось, что можно оперировать только с приватной очередью, все прочие вариантыпадают. Да ещё с сообщением о невозможности вывести сообщение в связи с отсутствием какой-то нужной для этого сборки.
В общем, очередная недоделка. Пущай полежит до следующей версии. Программки на одной машине как-нить и без MSMQ согласую.

Комментариев нет: