This document was written during the beta cycle of Microsoft Visual FoxPro 3.0 and specifications of the VCX and SCX architecture may change before this article is printed or before the product ships. Microsoft Visual FoxPro is not designed to automatically check for invalid changes made to the VCX and SCX tables and it's basically an "enter-at-your-own-risk" open architecture.
If you change the contents of the Methods field in an SCX or VCX, you must execute COMPILE FORM <file> for that table after closing it to ensure that the ObjCode field is updated properly with the correct binary p-code for the source code stored in the Methods field. Changing the Properties field or any other field does not require a COMPILE FORM <file> because all fields other than Methods are read dynamically at runtime and are not associated with any compiled p-code. For editing methods programmatically during design mode without having to run COMPILE FORM <file> after making a change, use the ASELOBJ() function to obtain a reference to a particular class or object and use the ReadMethod() and WriteMethod() methods to read or write the contents of a particular code snippet.
While the SCX tables are opened exclusively by Microsoft Visual FoxPro at runtime and require the table to be closed before the DO FORM command is executed, the VCX tables are opened shared and may be open while the same file is being edited in the Class Designer or viewed in the Class Browser. The best way to learn about the VCX and SCX metadata storage system is to create classes and forms along with adding objects and analyze the updated VCX and SCX files as you go to see how classes and objects are stored.