Any given interface can be implemented by more than one component.
You query components for the interfaces they support. You identify an
interface by an IID. A component does not have the same identifier as
any of the interfaces it implements.
(not too verbose but hope that helps)
On Wed, 24 Jan 2001 14:10:44 +0100, "Tobias Trelle"
<[EMAIL PROTECTED]> wrote:
>Hi,
>
>I have a question regarding the npsimple plug-in sample
>located at /modules/plugin/test . This plug-in is
>scriptable, so it's implemented as an XPCOM component
>that goes into component subfolder.
>
>I observed that
>
>a) the binary has 312DA841-3DBF-11d3-BCFB-00A0C9C8D91D
> as CID, defined in simpleCID.h:
>
> #define NS_SIMPLEPLUGIN_CID \
> { 0x312da841, 0x3dbf, 0x11d3, \
> { 0xbc, 0xfb, 0x0, 0xa0, 0xc9, 0xc8, 0xd9, 0x1d } }
>
>b) the IDL file nsISimplePluginInstance.idl (and the derived header
> _xpidl\nsISimplePluginInstance.h) has
> fa8728f0-117a-11d4-8fa5-0010a4e73d9a as IID:
>
> #define NS_ISIMPLEPLUGININSTANCE_IID \
> { 0xfa8728f0, 0x117a, 0x11d4, \
> { 0x8f, 0xa5, 0x00, 0x10, 0xa4, 0xe7, 0x3d, 0x9a }}
>
>Why is there a difference between component ID and interface ID?
>
>Please try to explain it in simple words for an XPCOM beginner.
>Can the interface be viewed as some kind of separate component
>itself?
>
>TIA - Regards, Tobias Trelle