I was friends with someone for 20 years as well... And it took a long time and a verbal bash over the head from my BF before I realized just how much she was using me.
Whenever things went wrong for her, I was the first person she called... But in between, she never called just to see how I was. Mind you, she let me stay with her for a few months after my separation and I was grateful for that, but damn did I pay for it later! And I found out from her husband that she bitched about me being there the WHOLE time, even though I was cleaning her house and walking to the supermarket for her. I spent thousands of dollars of my hard-earned money to help her out. I bought her Christmas tree in 2010 and she didn't even have the decency to let me decorate it with her even though it was supposed to be my first Christmas...she waited until I went home and decorated it with her daughter. I would take her out to get her in the fresh air and out of the house alone, I was going over and cleaning her flithy house every couple of weeks because she was lazy as hell...she had roaches in her refrigerator!! I was babysitting her daughter while she stayed in bed all day... I stood there and held her hand while she had a c-section. She paid me back by going behind my back and stealing my boyfriend. And then expected that I should be completely okay with all of this and give them my blessing.
The reason I say this is because I taught her the way I was to be treated. For 20 years I let her walk all over me... She stole my clothes when we were in school together... I said nothing because I couldn't prove it. But I knew. And as adults, she continued to use me and eventually abuse my kindness and trust. I taught her that I would put up with this stuff and allow her to continue it. When I refused to allow it anymore, she got pissed off and tried turning it around and blaming me.
So, basically, you showed her the way you should be treated. You've allowed the behavior for 20 years, so this is just another week for her. Next week, when she says she's coming over, simply say "We're actually going to have a nice quiet family dinner tonight...we'll be done around _____, if you want to come by afterward for coffee". I mean, you only get coffee when you go to her house, right? So why should she be entitled to a full meal at yours on a weekly basis?
Having less doesn't give someone a license to invite themselves to other people's homes for dinner. The few times BF and I dropped in on someone during dinner accidentally, we didn't presume they would feed us. In fact, when they offered, we always refused...until they got adamant and insisted we eat LOL. But we always helped with cleanup. And many times, we'd call and tell them not to cook anything and we'd bring dinner to them. I know if I had someone repeatedly coming to my home and assuming I was going to give them dinner, I'd get ticked off pretty quickly...especially if they never offered to bring a dinner item (it's not expensive to open a can of veggies!) or never offered to help set up or clean up. I'd feel very put-upon and that person wouldn't last as a friend of mine for very long.