AnnDeletePage Example for Visual C++

//This sample saves the annotations as the first page of a multipage annotation file
//The annotations are flipped, and saved as the second page
//The annotations are rotated, and saved as the third page
//Information is displayed about the annotation file
//The second page is deleted, and information is again displayed about the annotation file
   int nRet;
   TCHAR *pszFormat;
   CString strMsg;

   //Save as the first page of the annotation file
   m_pRasterAnn->AnnSave ("C:\\temp\\Test.ann", ANN_FMT_ENCODED, FALSE, SAVE_OVERWRITE, 0);

   //Flip the container, and save as the second page (insert before page 2)
   m_pRasterAnn->AnnFlip (TRUE, m_RasterView1.GetRaster ().GetBitmapHeight () / 2, FALSE);
   m_pRasterAnn->AnnSave ("C:\\temp\\Test.ann", ANN_FMT_ENCODED, FALSE, SAVE_INSERT, 2);

   //Rotate the container, and save as the third page
   //Here we could pass the SAVE_INSERT flag and 3 for nPage,
   //but instead we will use the SAVE_APPEND flag
   m_pRasterAnn->AnnRotate (FALSE, m_RasterView1.GetRaster().GetBitmapWidth ()/ 2, m_RasterView1.GetRaster().GetBitmapHeight ()/ 2, 45, FALSE);
   m_pRasterAnn->AnnSave ("C:\\temp\\Test.ann", ANN_FMT_ENCODED, FALSE, SAVE_APPEND, 0);

   //Verify contents of file
   nRet = m_pRasterAnn->AnnFileInfo ("C:\\temp\\Test.ann");
    if (nRet == 0)
    {
        switch(m_pRasterAnn->GetAnnInfoFormat ())
        {
           case ANN_FMT_NATIVE:
             pszFormat = TEXT("ANN_FMT_NATIVE");
                break;
             case ANN_FMT_WMF:
             pszFormat = TEXT("ANN_FMT_WMF");
                break;
             case ANN_FMT_ENCODED:
             pszFormat = TEXT("ANN_FMT_ENCODED");
                break;
             default:
             pszFormat = TEXT("Unknown");
                break;
        }

        strMsg.Format(TEXT("File: %s\nFormat: %s\nVersion: %d\nTotal Pages: %d\n"),
           TEXT("C:\\temp\\Test.ann"),
           pszFormat,
           m_pRasterAnn->GetAnnInfoVersion (),
           m_pRasterAnn->GetAnnInfoTotalPages ()
           );

        MessageBox(strMsg);
    }
    else
    {
       MessageBox(TEXT("Invalid Annotation File: C:\\temp\\Test.ann"));
    }

   //Now delete the second page, and display information
   m_pRasterAnn->AnnDeletePage ("C:\\temp\\Test.ann", 2);

  //Verify contents of file
   nRet = m_pRasterAnn->AnnFileInfo ("C:\\temp\\Test.ann");
    if (nRet == 0)
    {
        switch(m_pRasterAnn->GetAnnInfoFormat ())
        {
           case ANN_FMT_NATIVE:
             pszFormat = TEXT("ANN_FMT_NATIVE");
                break;
             case ANN_FMT_WMF:
             pszFormat = TEXT("ANN_FMT_WMF");
                break;
             case ANN_FMT_ENCODED:
             pszFormat = TEXT("ANN_FMT_ENCODED");
                break;
             default:
             pszFormat = TEXT("Unknown");
                break;
        }

        strMsg.Format(TEXT("File: %s\nFormat: %s\nVersion: %d\nTotal Pages: %d\n"),
           TEXT("C:\\temp\\Test.ann"),
           pszFormat,
           m_pRasterAnn->GetAnnInfoVersion (),
           m_pRasterAnn->GetAnnInfoTotalPages ()
           );

        MessageBox(strMsg);

          }
    else
    {
       MessageBox(TEXT("Invalid Annotation File: C:\\temp\\Test.ann"));
    }