Max has an extensive API for developing new objects in C. Before you start learning about it, however, we would like to save you time and make sure you learn the minimum about the API for what you need to do. Therefore, we've made a brief list of application areas for object development along with the sections of this document with which you'll probably want to become familiar.
For logic and arithmetic objects, such as new mathematical functions or more complex conditional operations than what is offered in Max, it should be sufficient to read the Anatomy of a Max Object section.
For objects that deal with time and timing you'll want to learn about The Scheduler. If you're interested in tempo-based scheduling, you'll want to read the section on ITM and look at the delay2 example.
To create objects with editing windows, things are much more complicated than they used to be. You'll need to learn everything about UI objects, plus understand the scripto example object project.
For patcher scripting and interrogation objects, the section on Scripting the Patcher, plus a few of the examples will be very helpful. It is also helpful to have a clear conceptual understanding of the patcher, which might be aided by reading the patcher scripting sections of the js object documentation.
Max 6 introduces support for passing structured data with the Dictionary Passing API.
To create audio filters and signal generators, read the Anatomy of a Max Object, then read the Anatomy of a MSP Object section. MSP objects make use of Creating and Using Proxies when receiving multiple audio inputs, so familiarity with that concept could be helpful.
For audio objects that output events (messages), you'll need to use the services of The Scheduler, so we suggest reading about that.
For UI objects for analyzing and controlling audio, you'll need to learn about regular MSP objects as well as Max UI objects.
Information on updating MSP objects from Max 5 or earlier for 64-bit audio in Max 6 is located in Appendix: Updating Externals for Max 6.