Had some "great fun" with SharePoint over the last few days, basically when I copied some code on creating a Content Type to test in my environment. I noticed that the Content Type wasn't available on a Form Library and looked at the Parent Content Type in the user interface and noticed it was Item and someone told me it needed to be Form.
I couldn't see a property to set what the Parent type from 'Item' to 'Form'. This article explains it in further detail which means modifying the ContentTypeID although Andrew May had a bit more around it...especially about not just replacing 0x0100 with 0x0101 when changing to Document Parent Type....it also needs a 00 appended to it. It's not quite clear in the MSDN article. There is a good diagram that shows the base hierarchy types to help find parent types. The SharePoint 2007 Content Types Viewer is a great tool for viewing the Content Types in a portal.
Also another neat explanation Sezai bounced me in an email:
If you create a content type with the regular SharePoint user interface, and then view the content types page then you can get it’s ID from the URL.
http://<yoursite>/_layouts/ManageContentType.aspx?ctype=0x01
so
Item=0x01
http://<yoursite>/_layouts/ManageContentType.aspx?ctype=0x0101
so
Document=0x0101
So if I create a new content type with the site ui and select the parent as Document I get this :
http://<yoursite>/_layouts/ManageContentType.aspx?ctype=0x010100944417639B06B74A9E7CC211DFBB272A
so it’s content type ID is :
0x010100944417639B06B74A9E7CC211DFBB272A
Also if I create a content type with a parent of Item it generates this content type ID :
0x010067C8449C1622134BA39486C946950AA
So, it seems like you just need two more characters at the end of your document content type for it to work.
The entire content type parent inheritance chain makes up the id, so for example my custom page layout content types are this long :
0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D2A
Go up the parent chain Article Page
0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D
Page
0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF39
System Page
0x010100C568DB52D9D0A14D9B2FDCC96666E9F2
Document
0x0101
etc.