{"json_modified": "2016-05-31T20:57:32.290266", "uuid": "9471db04-8241-4b41-86ad-9c4096cbd1fd", "title": "Modularization techniques", "url": "/en-US/docs/Modularization_Techniques", "tags": ["Mozilla", "XPCOM"], "translations": [{"uuid": "f13b164b-bc85-4576-a7db-1c3c621df32c", "title": "Modularization Techniques", "url": "/ja/docs/Modularization_Techniques", "tags": ["XPCOM"], "summary": "", "localization_tags": [], "locale": "ja", "last_edit": "2007-10-25T15:29:55", "review_tags": []}], "modified": "2016-05-31T20:57:32", "label": "Modularization techniques", "localization_tags": [], "locale": "en-US", "id": 37081, "last_edit": "2016-05-31T20:57:29", "summary": "The purpose of this document is provide all the information you need to create a new Mozilla Module or break existing code into a module. The mechanism we're using is based on the principles laid down by COM, so pretty much anything you know about COM can be applied here, and any reference on COM can provide you with more interesting and complex examples than the ones provided here.", "sections": [{"id": "Introduction", "title": "Introduction"}, {"id": "The_Basics", "title": "The Basics"}, {"id": "Interfaces", "title": "Interfaces"}, {"id": "nsISupports", "title": null}, {"id": "Factories", "title": "Factories"}, {"id": "The_Component_Manager", "title": "The Component Manager"}, {"id": "About_nsIIDs_and_nsCIDs", "title": "About nsIIDs and nsCIDs"}, {"id": "A_Simple_Example", "title": "A Simple Example"}, {"id": "File_nsISample.h", "title": "File "}, {"id": "File_nsSample.h", "title": "File "}, {"id": "File_nsSample.cpp", "title": "File "}, {"id": "File_main.cpp", "title": "File "}, {"id": "Moving_to_a_Dynamically_Linked_Library", "title": "Moving to a Dynamically Linked Library"}, {"id": "Implementing_a_DLL", "title": "Implementing a DLL"}, {"id": "File_nsSample3.cpp", "title": "File "}, {"id": "File:_main2.cpp", "title": "File: "}, {"id": "Registering_a_DLL", "title": "Registering a DLL"}, {"id": "Reference_Counting_Basics", "title": "Reference Counting Basics"}, {"id": "Out_Parameters", "title": "Out Parameters"}, {"id": "In_Parameters_and_Local_Pointers", "title": "In Parameters and Local Pointers"}, {"id": "In-Out_Parameters", "title": "In-Out Parameters"}, {"id": "Global_and_Member_Variables", "title": "Global and Member Variables"}, {"id": ".28Soon_to_be.29_Frequently_Asked_Questions", "title": "(Soon to be) Frequently Asked Questions"}, {"id": "Why_are_we_mimicking_COM.3F_Doesn.27t_COM_suck.3F", "title": "Why are we mimicking COM? Doesn't COM suck?"}, {"id": "Why_C.2B.2B.3F", "title": "Why C++?"}, {"id": "Can_I_use_C.3F", "title": "Can I use C?"}, {"id": "Why_not_COM.3F", "title": "Why not COM?"}, {"id": "Why_not_COM_on_Windows.3F", "title": "Why not COM on Windows?"}, {"id": "What_are_the_major_differences.3F", "title": "What are the major differences?"}, {"id": "Links", "title": "Links"}, {"id": "Revision_History", "title": "Revision History"}, {"id": "Original_Document_Information", "title": "Original Document Information"}], "slug": "Modularization_Techniques", "review_tags": []}