一部のソフトウェアを Windows Mobile 6.5 から Windows CE 5.0 にバックポートする必要があります。ソフトウェアは現在、ユニットがベース ユニットにある (ActiveSync が実行されている) ことを検出します。
ユニットでファイルを送受信できるように、いつ ActiveSync が実行されているかを知る必要があります。
CeRunAppAtEvent などの PINVOKE メソッドの使用に関する記事を見つけましたが、それがどのように機能するかについてはわかりません。
bool terminateDeviceEventThreads = false;
IntPtr handleActiveSyncEndEvent;
while (!terminateDeviceEventThreads)
{
handleActiveSyncEndEvent = NativeMethods.CreateEvent (IntPtr.Zero,
true, false, "EventActiveSync");
if (IntPtr.Zero != handleActiveSyncEndEvent)
{
if (NativeMethods.CeRunAppAtEvent ("\\\\.\\Notifications\\NamedEvents\\EventActiveSync",
(int) NOTIFICATION_EVENT.NOTIFICATION_EVENT_RS232_DETECTED))
{
NativeMethods.WaitForSingleObject (handleActiveSyncEndEvent, 0);
//
NativeMethods.ResetEvent (handleActiveSyncEndEvent);
if (!NativeMethods.CeRunAppAtEvent ("\\\\.\\Notifications\\NamedEvents\\EventActiveSync",
(int) NOTIFICATION_EVENT.NOTIFICATION_EVENT_NONE))
{
break;
}
handleActiveSyncEndEvent = IntPtr.Zero;
}
}
}