#include "xpcsample1.h" #include "nsIXPConnect.h" #include "jsapi.h" #include "nsIGenericFactory.h" #include "nsIServiceManager.h" #include "nsCOMPtr.h" Josh Soref wrote: > some .h files may actually be generated from .idl ... eg >/js/src/xpconnect/sample/xpcsample1.idl David Bradley wrote: > You can pretty much bet most of the nsI prefixed headers are IDL generated. Well you could, but there are two very glarying exceptions, and they appear in the fragment; /xpcom/components/nsIGenericFactory.h /xpcom/components/nsIServiceManager.h are not idl generated files files. there appear to be 438 such files in seamonkey. this is based on http://lxr.mozilla.org/seamonkey/find?string=%2FnsI.*%5C.h%24 after removing a bunch of bad matches (images, imap, icons, ...). I think at least half of these could be easily converted to idl and probably should be. fwiw there are ~800 nsI.*\.idl files in seamonkey as of this posting.
/editor/public/nsIEditorLogging.h /editor/public/nsICiter.h /editor/public/nsIEditor.h /editor/public/nsIEditActionListener.h /editor/public/nsIEditorMailSupport.h /editor/public/nsIEditorController.h /editor/public/nsIEditorIMESupport.h /editor/public/nsIEditorStyleSheets.h /editor/public/nsIEditorObserver.h /editor/public/nsIHTMLEditor.h /editor/public/nsITableEditor.h /editor/base/nsIAbsorbingTransaction.h /editor/base/nsIEditProperty.h /editor/base/nsIEditorSupport.h /editor/base/nsIHTMLEditRules.h /editor/txtsvc/public/nsISpellChecker.h /editor/txtsvc/public/nsITextServicesDocument.h /editor/txtsvc/public/nsITextService.h /extensions/p3p/src/nsIP3PDataSchema.h /extensions/p3p/src/nsIP3PCService.h /extensions/p3p/src/nsIP3PCUI.h /extensions/p3p/src/nsIP3PURIInformation.h /extensions/p3p/src/nsIP3PDataStruct.h /extensions/p3p/src/nsIP3PPolicy.h /extensions/p3p/src/nsIP3PPolicyRefFile.h /extensions/p3p/src/nsIP3PPreferences.h /extensions/p3p/src/nsIP3PPrivacyResult.h /extensions/p3p/src/nsIP3PReference.h /extensions/p3p/src/nsIP3PTag.h /extensions/p3p/src/nsIP3PUIService.h /extensions/p3p/src/nsIP3PXMLListener.h /extensions/ctl/public/nsILE.h /extensions/pics/public/nsIPICS.h /db/mork/build/nsIMdbFactoryFactory.h /embedding/browser/photon/src/nsIPhEmbed.h /embedding/components/appstartup/src/nsIAppStartupNotifier.h /intl/chardet/public/nsICharsetDetectionAdaptor.h /intl/chardet/public/nsICharsetDetectionObserver.h /intl/chardet/public/nsICharsetDetector.h /intl/chardet/public/nsIMetaCharsetService.h /intl/chardet/public/nsIStringCharsetDetector.h /intl/chardet/public/nsIXMLEncodingService.h /intl/locale/public/nsICollation.h /intl/locale/public/nsIDateTimeFormat.h /intl/locale/public/nsILocaleFactory.h /intl/locale/public/nsIMacLocale.h /intl/locale/public/nsIOS2Locale.h /intl/locale/public/nsIPosixLocale.h /intl/locale/public/nsIWin32Locale.h /intl/locale/src/os2/nsILocaleOS2.h /intl/locale/src/windows/nsIWin32LocaleFactory.h /intl/locale/src/windows/nsIwin32LocaleImpl.h /intl/lwbrk/public/nsIBreakState.h /intl/lwbrk/public/nsIBinarySearchIterator.h /intl/lwbrk/public/nsILineBreaker.h /intl/lwbrk/public/nsILineBreakerFactory.h /intl/lwbrk/public/nsILinearIterator.h /intl/lwbrk/public/nsIWordBreaker.h /intl/lwbrk/public/nsIWordBreakerFactory.h /intl/uconv/public/nsICharsetAlias.h /intl/uconv/public/nsICharsetConverterManager.h /intl/uconv/public/nsICharRepresentable.h /intl/uconv/public/nsIPlatformCharset.h /intl/uconv/public/nsIMappingCache.h /intl/uconv/public/nsIUnicodeDecodeHelper.h /intl/uconv/public/nsIUnicodeDecoder.h /intl/uconv/public/nsIUnicodeEncodeHelper.h /intl/uconv/public/nsIUnicodeEncoder.h /intl/unicharutil/public/nsITextTransform.h /intl/unicharutil/public/nsIBidi.h /intl/unicharutil/public/nsIUGenDetailCategory.h /intl/unicharutil/public/nsICaseConversion.h /intl/unicharutil/public/nsIOrderIdFormater.h /intl/unicharutil/public/nsIUBidiUtils.h /intl/unicharutil/public/nsIUGenCategory.h /js/src/liveconnect/nsILiveconnect.h /js/src/liveconnect/nsISecureLiveconnect.h /js/src/liveconnect/nsISecurityContext.h /modules/libimg/public_com/nsIImgDCallbk.h /modules/libimg/public_com/nsIImgDecoder.h /modules/libjar/nsIJARFactory.h /modules/oji/public/nsIJRIPlugin.h /modules/oji/public/nsIJVMPluginTagInfo.h /modules/oji/public/nsIJVMConsole.h /modules/oji/public/nsIJVMPlugin.h /modules/oji/public/nsIJVMPrefsWindow.h /modules/oji/public/nsIJVMWindow.h /modules/oji/public/nsILiveConnectManager.h /modules/oji/public/nsISecureEnv.h /modules/oji/public/nsISecureJNI.h /modules/oji/public/nsISecureJNI2.h /modules/oji/public/nsISymantecDebugManager.h /modules/oji/public/nsISymantecDebugger.h /modules/oji/public/nsIThreadManager.h /modules/plugin/nglsrc/nsIPluginHost.h /modules/plugin/nglsrc/nsIPluginInstanceOwner.h /modules/plugin/public/nsICookieStorage.h /modules/plugin/public/nsIClassicPluginFactory.h /modules/plugin/public/nsIEventHandler.h /modules/plugin/public/nsIFileUtilities.h /modules/plugin/public/nsIJRILiveConnectPlugin.h /modules/plugin/public/nsIJRILiveConnectPlugInstPeer.h /modules/plugin/public/nsILiveConnectPlugInstPeer.h /modules/plugin/public/nsILiveConnectPlugin.h /modules/plugin/public/nsIMalloc.h /modules/plugin/public/nsIPlugin.h /modules/plugin/public/nsIPluginInputStream.h /modules/plugin/public/nsIPluginInputStream2.h /modules/plugin/public/nsIPluginInstance.h /modules/plugin/public/nsIPluginInstancePeer.h /modules/plugin/public/nsIPluginInstancePeer2.h /modules/plugin/public/nsIPluginManager2.h /modules/plugin/public/nsIPluginStreamInfo.h /modules/plugin/public/nsIPluginStream.h /modules/plugin/public/nsIPluginStreamListener.h /modules/plugin/public/nsIPluginStreamPeer2.h /modules/plugin/public/nsIPluginStreamPeer.h /modules/plugin/public/nsIPluginTagInfo.h /modules/plugin/public/nsIPluginTagInfo2.h /modules/plugin/public/nsISeekablePluginStreamPeer.h /modules/plugin/public/nsIWindowlessPlugInstPeer.h /modules/plugin/public/nsIPluginStreamListener2.h /netwerk/base/public/nsIPasswordManagerUtils.h /netwerk/cache/filecache/nsIDBAccessor.h /profile/public/nsIAccount.h /rdf/base/public/nsIRDFContentSink.h /rdf/datasource/public/nsILocalStore.h /rdf/datasource/public/nsIRDFFileSystem.h /rdf/datasource/public/nsIRDFFTP.h /xpcom/ds/nsIArena.h /xpcom/ds/nsIByteBuffer.h /xpcom/ds/nsIObserverList.h /xpcom/ds/nsIPersistentProperties.h /xpcom/ds/nsISimpleEnumerator.h /xpcom/ds/nsISizeOfHandler.h /xpcom/ds/nsIUnicharBuffer.h /xpcom/base/nsIAllocator.h /xpcom/base/nsIPtr.h /xpcom/base/nsISupportsUtils.h /xpcom/components/nsIGenericFactory.h /xpcom/components/nsIRegistryUtils.h /xpcom/components/nsIServiceManager.h /xpcom/io/nsIFileStream.h /xpcom/io/nsILocalFileMac.h /xpcom/io/nsIUnicharInputStream.h /xpcom/io/nsIStringStream.h /xpcom/proxy/src/nsIProxyCreateInstance.h /xpinstall/public/nsIDOMInstallVersion.h /xpinstall/public/nsIDOMInstallTriggerGlobal.h /xpinstall/public/nsISoftwareUpdate.h /content/base/public/nsIPrivateDOMImplementation.h /content/base/public/nsIAnonymousContent.h /content/base/public/nsIContent.h /content/base/public/nsIContentIterator.h /content/base/public/nsIContentSerializer.h /content/base/public/nsIDocument.h /content/base/public/nsIDocumentContainer.h /content/base/public/nsIDocumentEncoder.h /content/base/public/nsIDocumentObserver.h /content/base/public/nsIDocumentViewer.h /content/base/public/nsIElementFactory.h /content/base/public/nsIHTMLToTextSink.h /content/base/public/nsINameSpace.h /content/base/public/nsINameSpaceManager.h /content/base/public/nsINodeInfo.h /content/base/public/nsIStyleRuleSupplier.h /content/base/public/nsIStyleRule.h /content/base/public/nsIStyleSheetLinkingElement.h /content/base/public/nsIStyleRuleProcessor.h /content/base/public/nsIStyleSheet.h /content/base/public/nsIStyledContent.h /content/base/public/nsITextContent.h /content/base/public/nsIRangeUtils.h /content/base/public/nsIContentList.h /content/events/public/nsIPrivateCompositionEvent.h /content/events/public/nsIEventListenerManager.h /content/events/public/nsIEventStateManager.h /content/events/public/nsIPrivateDOMEvent.h /content/events/public/nsIPrivateTextEvent.h /content/events/public/nsIPrivateTextRange.h /content/html/content/public/nsIFormControl.h /content/html/content/public/nsIForm.h /content/html/content/public/nsILink.h /content/html/content/public/nsISelectElement.h /content/html/content/public/nsIScriptElement.h /content/html/content/src/nsIAttributeContent.h /content/html/content/src/nsIHTMLTableCellElement.h /content/html/content/src/nsIHTMLTableColElement.h /content/html/document/src/nsIHTMLContentContainer.h /content/html/document/src/nsIHTMLDocument.h /content/html/style/public/nsICSSLoader.h /content/html/style/public/nsICSSLoaderObserver.h /content/html/style/public/nsICSSParser.h /content/html/style/public/nsICSSPseudoComparator.h /content/html/style/public/nsICSSStyleSheet.h /content/html/style/public/nsIComputedDOMStyle.h /content/html/style/public/nsIRuleNode.h /content/html/style/public/nsIRuleWalker.h /content/html/style/src/nsICSSStyleRuleProcessor.h /content/html/style/src/nsICSSCharsetRule.h /content/html/style/src/nsICSSDeclaration.h /content/html/style/src/nsICSSGroupRule.h /content/html/style/src/nsICSSImportRule.h /content/html/style/src/nsICSSMediaRule.h /content/html/style/src/nsICSSNameSpaceRule.h /content/html/style/src/nsICSSRule.h /content/html/style/src/nsICSSStyleRule.h /content/html/style/src/nsIHTMLCSSStyleSheet.h /content/html/style/src/nsIHTMLAttributes.h /content/xbl/public/nsIXBLBinding.h /content/xbl/public/nsIXBLInsertionPoint.h /content/xbl/public/nsIBindingManager.h /content/xbl/public/nsIXBLDocumentInfo.h /content/xbl/public/nsIXBLBindingAttachedHandler.h /content/xbl/public/nsIXBLPrototypeBinding.h /content/xbl/public/nsIXBLPrototypeHandler.h /content/xbl/public/nsIXBLService.h /content/xml/content/public/nsIXMLContent.h /content/xml/document/public/nsIXMLDocument.h /content/xml/document/public/nsIXMLContentSink.h /content/xsl/document/src/nsITransformMediator.h /content/xul/content/public/nsIXULContent.h /content/xul/content/public/nsIXULPopupListener.h /content/xul/content/src/nsIRDFNodeList.h /content/xul/content/src/nsIXULTreeContent.h /content/xul/document/public/nsIXULContentSink.h /content/xul/document/public/nsIXULDocument.h /content/xul/document/public/nsIXULPrototypeCache.h /content/xul/document/public/nsIXULPrototypeDocument.h /content/xul/templates/public/nsIRDFContentModelBuilder.h /dom/public/nsIDOMClassInfo.h /dom/public/nsIJSEventListener.h /dom/public/nsIScriptContext.h /dom/public/nsIDOMScriptObjectFactory.h /dom/public/nsIJSNativeInitializer.h /dom/public/nsIScriptEventListener.h /dom/public/nsIScriptExternalNameSet.h /dom/public/nsIScriptGlobalObject.h /dom/public/base/nsIFocusController.h /dom/public/nsIScriptNameSpaceManager.h /dom/public/nsIScriptObjectOwner.h /dom/public/coreEvents/nsIDOMCompositionListener.h /dom/public/coreEvents/nsIDOMContextMenuListener.h /dom/public/coreEvents/nsIDOMDragListener.h /dom/public/coreEvents/nsIDOMMutationListener.h /dom/public/coreEvents/nsIDOMEventCapturer.h /dom/public/coreEvents/nsIDOMEventReceiver.h /dom/public/coreEvents/nsIDOMFocusListener.h /dom/public/coreEvents/nsIDOMFormListener.h /dom/public/coreEvents/nsIDOMKeyListener.h /dom/public/coreEvents/nsIDOMLoadListener.h /dom/public/coreEvents/nsIDOMMenuListener.h /dom/public/coreEvents/nsIDOMMouseListener.h /dom/public/coreEvents/nsIDOMMouseMotionListener.h /dom/public/coreEvents/nsIDOMPaintListener.h /dom/public/coreEvents/nsIDOMScrollListener.h /dom/public/coreEvents/nsIDOMTextListener.h /dom/public/nsIScriptObjectPrincipal.h /gfx/public/nsIDeviceContext.h /gfx/public/nsIBlender.h /gfx/public/nsIDeviceContextSpecFactory.h /gfx/public/nsIDeviceContextSpec.h /gfx/public/nsIDrawingSurface.h /gfx/public/nsIFontMetrics.h /gfx/public/nsIImage.h /gfx/public/nsIImageGroup.h /gfx/public/nsIImageManager.h /gfx/public/nsIImageObserver.h /gfx/public/nsIImageRequest.h /gfx/public/nsIPrintingContext.h /gfx/public/nsIRegion.h /gfx/public/nsIRenderingContext.h /gfx/src/beos/nsIDrawingSurfaceBeOS.h /gfx/src/gtk/nsIDrawingSurfaceGTK.h /gfx/src/mac/nsIDrawingSurfaceMac.h /gfx/src/mac/nsIImageMac.h /gfx/src/os2/nsIRenderingContextOS2.h /gfx/src/photon/nsIDrawingSurfacePh.h /gfx/src/ps/nsIDeviceContextSpecPS.h /gfx/src/ps/nsIDeviceContextPS.h /gfx/src/qt/nsIDrawingSurfaceQT.h /gfx/src/windows/nsIDrawingSurfaceWin.h /gfx/src/windows/nsIRenderingContextWin.h /gfx/src/xprint/nsIDeviceContextXPrint.h /gfx/src/xprint/nsIDeviceContextSpecXPrint.h /htmlparser/robot/nsIRobotSinkObserver.h /htmlparser/robot/nsIRobotSink.h /htmlparser/src/nsIDTDDebug.h /htmlparser/src/nsIDTD.h /htmlparser/src/nsIContentSink.h /htmlparser/src/nsIElementObserver.h /htmlparser/src/nsIExpatTokenizer.h /htmlparser/src/nsIHTMLContentSink.h /htmlparser/src/nsILoggingSink.h /htmlparser/src/nsIHTMLFragmentContentSink.h /htmlparser/src/nsIParser.h /htmlparser/src/nsIParserFilter.h /htmlparser/src/nsIParserNode.h /htmlparser/src/nsIParserService.h /htmlparser/src/nsITokenHandler.h /htmlparser/src/nsITokenizer.h /layout/base/public/nsIAutoCopy.h /layout/base/public/nsICaret.h /layout/base/public/nsIFrameImageLoader.h /layout/base/public/nsIFocusTracker.h /layout/base/public/nsIFrame.h /layout/base/public/nsIFrameDebug.h /layout/base/public/nsIFrameSelection.h /layout/base/public/nsIFrameManager.h /layout/base/public/nsIIndependentSelection.h /layout/base/public/nsIFrameTraversal.h /layout/base/public/nsIFrameUtil.h /layout/base/public/nsIImageFrame.h /layout/base/public/nsILayoutHistoryState.h /layout/base/public/nsILayoutDebugger.h /layout/base/public/nsIScrollableViewProvider.h /layout/base/public/nsIMutableStyleContext.h /layout/base/public/nsIObjectFrame.h /layout/base/public/nsIPageSequenceFrame.h /layout/base/public/nsIPresContext.h /layout/base/public/nsIPresShell.h /layout/base/public/nsIPresState.h /layout/base/public/nsIPrintContext.h /layout/base/public/nsIReflowCallback.h /layout/base/public/nsIReflowCommand.h /layout/base/public/nsIScrollableFrame.h /layout/base/public/nsIStatefulFrame.h /layout/base/public/nsISpaceManager.h /layout/base/public/nsIStyleContext.h /layout/base/public/nsIStyleSet.h /layout/base/public/nsIStyleFrameConstruction.h /layout/base/public/nsITextFrame.h /layout/base/public/nsICanvasFrame.h /layout/html/base/src/nsIAnonymousContentCreator.h /layout/html/base/src/nsIAnchoredItems.h /layout/html/base/src/nsIHTMLContent.h /layout/html/base/src/nsILineIterator.h /layout/html/forms/public/nsIFormManager.h /layout/html/forms/public/nsICheckboxControlFrame.h /layout/html/forms/public/nsIComboboxControlFrame.h /layout/html/forms/public/nsIFormControlFrame.h /layout/html/forms/public/nsIFormProcessor.h /layout/html/forms/public/nsIFormSubmitObserver.h /layout/html/forms/public/nsIGfxTextControlFrame.h /layout/html/forms/public/nsIListControlFrame.h /layout/html/forms/public/nsIRadioControlFrame.h /layout/html/forms/public/nsISelectControlFrame.h /layout/html/style/src/nsICSSFrameConstructor.h /layout/html/style/src/nsIHTMLStyleSheet.h /layout/html/table/public/nsITableLayout.h /layout/html/table/public/nsITableCellLayout.h /layout/html/table/src/nsITableLayoutStrategy.h /layout/mathml/base/src/nsIMathMLFrame.h /layout/svg/base/public/nsISVGFrame.h /layout/xul/base/public/nsIMenuFrame.h /layout/xul/base/public/nsIPopupSetFrame.h /layout/xul/base/public/nsITreeFrame.h /layout/xul/base/src/nsIBox.h /layout/xul/base/src/nsIBoxLayout.h /layout/xul/base/src/nsIBoxToBlockAdaptor.h /layout/xul/base/src/nsIMenuParent.h /layout/xul/base/src/nsIMonument.h /layout/xul/base/src/nsIScrollbarFrame.h /layout/xul/base/src/nsIScrollbarListener.h /layout/xul/base/src/nsIScrollbarMediator.h /layout/xul/base/src/nsIXULTreeSlice.h /view/public/nsIViewManager.h /view/public/nsIClipView.h /view/public/nsIScrollPositionListener.h /view/public/nsICompositeListener.h /view/public/nsIView.h /view/public/nsIScrollableView.h /view/public/nsIViewObserver.h /webshell/public/nsILinkHandler.h /webshell/public/nsIDocStreamLoaderFactory.h /webshell/public/nsIContentViewerFile.h /webshell/public/nsIDocumentLoadInfo.h /webshell/public/nsIThrobber.h /webshell/public/nsIWebShell.h /webshell/public/nsIWebShellServices.h /webshell/tests/viewer/public/nsICheckButton.h /webshell/tests/viewer/public/nsIButton.h /webshell/tests/viewer/public/nsITextWidget.h /webshell/tests/viewer/public/nsILabel.h /webshell/tests/viewer/public/nsIWindowListener.h /webshell/tests/viewer/public/nsIXPBaseWindow.h /widget/public/nsICheckButton.h /widget/public/nsIButton.h /widget/public/nsIContextMenu.h /widget/public/nsIComboBox.h /widget/public/nsIFontRetrieverService.h /widget/public/nsIDragSessionGTK.h /widget/public/nsIDragSessionMac.h /widget/public/nsIDragSessionXlib.h /widget/public/nsIEventListener.h /widget/public/nsIFileDialogsMgr.h /widget/public/nsIFileWidget.h /widget/public/nsIFontNameIterator.h /widget/public/nsIFontSizeIterator.h /widget/public/nsIKBStateControl.h /widget/public/nsIKeyBindMgr.h /widget/public/nsILabel.h /widget/public/nsIListBox.h /widget/public/nsIListWidget.h /widget/public/nsILookAndFeel.h /widget/public/nsIMenu.h /widget/public/nsIMenuBar.h /widget/public/nsIMenuItem.h /widget/public/nsIMenuListener.h /widget/public/nsIMouseListener.h /widget/public/nsIPointerService.h /widget/public/nsIPopUpMenu.h /widget/public/nsIRadioButton.h /widget/public/nsIScrollbar.h /widget/public/nsITextAreaWidget.h /widget/public/nsITextWidget.h /widget/public/nsIWidget.h /widget/src/qt/nsIDragSessionQt.h /widget/src/motif/app_context/nsIMotifAppContextService.h /widget/src/xlib/window_service/nsIXlibWindowService.h /widget/timer/public/nsITimerCallback.h /widget/timer/public/nsITimer.h /widget/timer/public/nsITimerQueue.h /widget/timer/src/os2/nsIWindowsTimerMap.h /widget/timer/src/windows/nsIWindowsTimerMap.h /xpfe/appshell/public/nsIDOMXPConnectFactory.h /xpfe/appshell/public/nsISplashScreen.h /xpfe/appshell/public/nsINetSupportDialogService.h /xpfe/appshell/public/nsIWebShellWindow.h /xpfe/appshell/src/nsIXULCommand.h /xpfe/components/public/nsIAppShellComponentImpl.h /mailnews/base/search/public/nsIMsgFilterService.h /mailnews/imap/public/nsIIMAPHostSessionList.h /mailnews/imap/public/nsIImapExtensionSink.h /mailnews/imap/public/nsIImapMiscellaneousSink.h /mailnews/mime/public/nsIMimeConverter.h /mailnews/mime/public/nsIMimeContentTypeHandler.h /mailnews/mime/public/nsIMimeObjectClassAccess.h
