Before Adobe opened up their protocol, I reverse engineered it "mostly" and used VB.NET just so I can keep up on weird VB.NET keywords