@peceha, post #1
@peceha, post #1
do
{
/* Wait for either a CLOSEWINDOW or an AppMessage */
Wait(1 << window->UserPort->mp_SigBit |
1 << msgport->mp_SigBit);
while (imsg = (struct IntuiMessage *)
GetMsg(window->UserPort))
{
if (imsg->Class = CLOSEWINDOW)
ABORT = TRUE;
ReplyMsg((struct Message *) imsg);
}
while (appmsg = (struct AppMessage *) GetMsg(msgport))
{
printf(
"aw: appmsg=%lx, Type=%ld, ID=%ld, UserData=%ld, NumArgs=%ld\n",
appmsg, appmsg->am_Type, appmsg->am_ID,
appmsg->am_UserData, appmsg->am_NumArgs);
argptr = appmsg->am_ArgList;
for (i = 0; i < appmsg->am_NumArgs; i++)
{
printf("\targ(%ld): Name='%s', Lock=%lx\n",
i, argptr->wa_Name, argptr->wa_Lock);
/* Point to next argument */
argptr++;
}
ReplyMsg((struct Message *) appmsg); <-------<-------<-------
}
} while (ABORT == FALSE);@peceha, post #7
signals=Wait(winsig|appwinsig);
if (signals & appwinsig)
{
while(msg=(struct AppMessage*)GetMsg(AppWindowPort))
{
printf("appmsg: type=%ld, id=%ld, numargs=ld\n", msg->am_Type, msg->am_ID, msg->am_NumArgs);
argptr=msg->am_ArgList;
for (cnt=0;cnt<msg->am_NumArgs;cnt++)
{
// handle files
printf("arg %ld: Name=%s, Lock=%ld\n",cnt, argptr->wa_Name, argptr->wa_Lock);
argptr++;
}
}
ReplyMsg((struct Message*)msg);
} else if (signals & winsig)
{
// handle window signals
}@docent, post #9
DeleteMsgPort(msgport);
@peceha, post #11
signals=Wait(winsig|appwinsig);
if (signals & appwinsig)
{
while(msg=(struct AppMessage*)GetMsg(AppWindowPort))
{
printf("appmsg: type=%ld, id=%ld, numargs=ld\n", msg->am_Type, msg->am_ID, msg->am_NumArgs);
argptr=msg->am_ArgList;
for (cnt=0;cnt<msg->am_NumArgs;cnt++)
{
// handle files
printf("arg %ld: Name=%s, Lock=%ld\n",cnt, argptr->wa_Name, argptr->wa_Lock);
argptr++;
}
ReplyMsg((struct Message*)msg);
}
} else if (signals & winsig)
{
// handle window signals
}