static public int FlattenAnnotations(Form1 Parent)
        {
            if (Parent.m_CurDoc == null)
            {
                Document.CreateNewDoc(Parent);
            }
            IPXC_Pages pages = Parent.m_CurDoc.Pages;
            IPXC_Page  page  = pages[Parent.CurrentPage];
            //Filling the list of the annotations that need to be flattened
            IPXC_AnnotsList al = Parent.m_pxcInst.CreateAnnotsList();

            for (uint i = 0; i < page.GetAnnotsCount(); i++)
            {
                IPXC_Annotation annot = page.GetAnnot(i);
                al.Insert(annot, uint.MaxValue);
            }
            Parent.m_CurDoc.FlattenAnnotations(Parent.CurrentPage, al);
            Marshal.ReleaseComObject(al);
            Marshal.ReleaseComObject(page);
            Marshal.ReleaseComObject(pages);

            return((int)Form1.eFormUpdateFlags.efuf_Annotations);
        }
        static public int RotateAnnotations(Form1 Parent)
        {
            if (Parent.m_CurDoc == null)
            {
                Document.CreateNewDoc(Parent);
            }
            IPXC_Pages pages = Parent.m_CurDoc.Pages;
            IPXC_Page  page  = pages[Parent.CurrentPage];

            for (uint i = 0; i < page.GetAnnotsCount(); i++)
            {
                IPXC_Annotation annot = page.GetAnnot(i);
                PXC_Point       rcRotPnt;
                //We are taking the center point of the annotation as the rotation point
                rcRotPnt.x = annot.get_Rect().left + (annot.get_Rect().right - annot.get_Rect().left) / 2.0f;
                rcRotPnt.y = annot.get_Rect().top - (annot.get_Rect().top - annot.get_Rect().bottom) / 2.0f;
                //We will be adding 45 degrees to the annotation rotation each time
                annot.Handler.RotateAnnot(annot, 45.0f, false, rcRotPnt);
            }
            Marshal.ReleaseComObject(page);
            Marshal.ReleaseComObject(pages);

            return((int)Form1.eFormUpdateFlags.efuf_Annotations);
        }