gecko/xpcom/reflect/xptinfo/public/nsIInterfaceInfoManager.idl
2012-05-21 12:12:37 +01:00

54 lines
1.7 KiB
Plaintext

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* The nsIInterfaceInfoManager public declaration. */
#include "nsISupports.idl"
#include "nsIInterfaceInfo.idl"
#include "nsIEnumerator.idl"
#include "nsISimpleEnumerator.idl"
/* this is NOT intended to be scriptable */
[uuid(8B161900-BE2B-11d2-9831-006008962422)]
interface nsIInterfaceInfoManager : nsISupports
{
nsIInterfaceInfo getInfoForIID(in nsIIDPtr iid);
nsIInterfaceInfo getInfoForName(in string name);
nsIIDPtr getIIDForName(in string name);
string getNameForIID(in nsIIDPtr iid);
nsIEnumerator enumerateInterfaces();
void autoRegisterInterfaces();
nsIEnumerator enumerateInterfacesWhoseNamesStartWith(in string prefix);
};
[uuid(0ee22850-bc6a-11d5-9134-0010a4e73d9a)]
interface nsIInterfaceInfoSuperManager : nsIInterfaceInfoManager
{
void addAdditionalManager(in nsIInterfaceInfoManager manager);
void removeAdditionalManager(in nsIInterfaceInfoManager manager);
boolean hasAdditionalManagers();
nsISimpleEnumerator enumerateAdditionalManagers();
};
%{C++
#define NS_INTERFACEINFOMANAGER_SERVICE_CLASSNAME \
"Interface Information Manager Service"
#define NS_INTERFACEINFOMANAGER_SERVICE_CID \
{ /* 13bef784-f8e0-4f96-85c1-09f9ef4f9a19 */ \
0x13bef784, 0xf8e0, 0x4f96, \
{0x85, 0xc1, 0x09, 0xf9, 0xef, 0x4f, 0x9a, 0x19} }
#define NS_INTERFACEINFOMANAGER_SERVICE_CONTRACTID \
"@mozilla.org/xpti/interfaceinfomanager-service;1"
%}