+1  A: 

I'm not sure exactly what you are after, but I'm guessing that you want to create a page and check it in to a list?

This code snippet does that for a publishing page in MOSS:

using (SPWeb web = siteCollection.RootWeb)
{
  PublishingSite publishingSite = new PublishingSite(siteCollection);
  PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);

  // Article Page content type
  SPContentTypeId articleContentTypeID = new SPContentTypeId("0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D");

  PageLayout[] layouts = publishingWeb.GetAvailablePageLayouts(articleContentTypeID);
  PageLayout articlePageLayout = layouts[0];

  string pageName = "LegalInformation.aspx";

  SPQuery query = new SPQuery();
  query.Query = string.Format("" +
  "<Where>" +
    "<Eq>" +
       "<FieldRef Name='FileLeafRef' />" +
       "<Value Type='File'>{0}</Value>" +
    "</Eq>" +
  "</Where>" +
  "", pageName);

  // Does the file already exists ?
  PublishingPageCollection pageColl = publishingWeb.GetPublishingPages(query);
  if (pageColl.Count > 0)
  {
    return;
  }

  PublishingPage newPage = publishingWeb.GetPublishingPages().Add(pageName, articlePageLayout);

  newPage.ListItem[FieldId.Title] = "This page title";
  newPage.ListItem[FieldId.PublishingPageContent] = "<P style='MARGIN-TOP: 20px'>Your content here</P>"";

  newPage.Update();

  // Check in file
  if (newPage.ListItem.File.CheckOutStatus != SPFile.SPCheckOutStatus.None)
  {
     newPage.ListItem.File.CheckIn(string.Empty);
  }

  // Publish file
  newPage.ListItem.File.Publish(string.Empty);
}
Magnus Johansson
Not actually. Thank you for code snippet, maybe someday. However please see edited question.
Janis Veinbergs