int PreBuildContactMenu(WPARAM wParam,LPARAM lParam) { CLISTMENUITEM clmi = {0}; clmi.cbSize = sizeof(clmi); char *proto = (char*) CallService(MS_PROTO_GETCONTACTBASEPROTO, wParam, 0); if (!ProtocolEnabled(proto)) { clmi.flags = CMIM_FLAGS | CMIF_HIDDEN; CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hDisableMenu, (LPARAM) &clmi); clmi.flags = CMIM_FLAGS | CMIF_HIDDEN; CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hEnableMenu, (LPARAM) &clmi); } else if (HistoryEnabled(wParam, 0)) { clmi.flags = CMIM_FLAGS | CMIF_HIDDEN; CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hEnableMenu, (LPARAM) &clmi); clmi.flags = CMIM_FLAGS | CMIM_ICON; CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hDisableMenu, (LPARAM) &clmi); } else { clmi.flags = CMIM_FLAGS | CMIF_HIDDEN; CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hDisableMenu, (LPARAM) &clmi); clmi.flags = CMIM_FLAGS | CMIM_ICON; CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hEnableMenu, (LPARAM) &clmi); } return 0; }
BOOL ContactEnabled(HANDLE hContact, char *setting, int def) { if (hContact == NULL) return FALSE; char *proto = (char *) CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM) hContact, 0); if (!ProtocolEnabled(proto)) return FALSE; BYTE globpref = db_byte_get(NULL, MODULE_NAME, setting, def); BYTE userpref = db_byte_get(hContact, MODULE_NAME, setting, BST_INDETERMINATE); return (globpref && userpref == BST_INDETERMINATE) || userpref == BST_CHECKED; }
bool ContactEnabled(MCONTACT hContact, char *setting, int def) { if (hContact == NULL) return false; char *proto = GetContactProto(hContact); if (!ProtocolEnabled(proto)) return false; BYTE globpref = db_get_b(NULL, MODULE_NAME, setting, def); BYTE userpref = db_get_b(hContact, MODULE_NAME, setting, BST_INDETERMINATE); return (globpref && userpref == BST_INDETERMINATE) || userpref == BST_CHECKED; }
BOOL ContactEnabled(HANDLE hContact) { if (hContact == NULL) return FALSE; char *proto = (char *) CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM) hContact, 0); if (!ProtocolEnabled(proto)) return FALSE; BYTE def = TRUE; // Is a subcontact? if (ServiceExists(MS_MC_GETMETACONTACT)) { HANDLE hMetaContact = (HANDLE) CallService(MS_MC_GETMETACONTACT, (WPARAM)hContact, 0); if (hMetaContact != NULL) def = ContactEnabled(hMetaContact); } return DBGetContactSettingByte(hContact, MODULE_NAME, "Enabled", def); }
int PreBuildContactMenu(WPARAM wParam, LPARAM) { char *proto = GetContactProto(wParam); Menu_ShowItem(hMenu, 0 != ProtocolEnabled(proto)); return 0; }