Usermode/libaxwin4 - Handle demarshal failure
[tpg/acess2.git] / Usermode / Applications / axwin3_src / libaxwin3.so_src / r_menu.c
index 1a6bfdf..9894abd 100644 (file)
@@ -43,9 +43,9 @@ int AxWin3_Menu_int_Callback(tHWND Window, int Message, int Length, void *Data)
                if(msg->ID >= info->nItems)     return -1;
                item = &info->Items[msg->ID];
                if(item->Callback)      item->Callback(item->CbPtr);
-               return 0; }
+               return 1; }
        }
-       return 1;
+       return 0;
 }
 
 tHWND AxWin3_Menu_Create(tHWND Parent)
@@ -87,7 +87,7 @@ tAxWin3_MenuItem *AxWin3_Menu_AddItem(
                _SysDebug("ERROR: Realloc Failed");
                return NULL;
        }
-       
+
        ret = &info->Items[info->nItems-1];
        ret->ID = info->nItems - 1;
        ret->Window = Menu;
@@ -96,16 +96,19 @@ tAxWin3_MenuItem *AxWin3_Menu_AddItem(
        ret->SubMenu = SubMenu; 
 
        {
-               tMenuMsg_AddItem        *req;
-                int    data_size;
                if(!Label)      Label = "";
-               data_size = sizeof(*req)+strlen(Label)+1;
+               tMenuIPC_AddItem        *req;
+               int data_size = sizeof(*req) + strlen(Label)+1;
                req = malloc(data_size);
+               if( !req ) {
+                       free(ret);
+                       return NULL;
+               }
                req->ID = ret->ID;
                req->Flags = Flags;
                req->SubMenuID = AxWin3_int_GetWindowID(SubMenu);
                strcpy(req->Label, Label);
-               AxWin3_SendMessage(Menu, Menu, MSG_MENU_ADDITEM, data_size, req);
+               AxWin3_SendIPC(Menu, IPC_MENU_ADDITEM, data_size, req);
                free(req);
        }
        

UCC git Repository :: git.ucc.asn.au