@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 }