nsIInterfaceRequestor.h
上传用户:goldcmy89
上传日期:2017-12-03
资源大小:2246k
文件大小:4k
源码类别:
PlugIns编程
开发平台:
Visual C++
- /*
- * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/builds/tinderbox/XR-Mozilla1.8.0-Release/WINNT_5.2_Depend/mozilla/xpcom/base/nsIInterfaceRequestor.idl
- */
- #ifndef __gen_nsIInterfaceRequestor_h__
- #define __gen_nsIInterfaceRequestor_h__
- #ifndef __gen_nsISupports_h__
- #include "nsISupports.h"
- #endif
- /* For IDL files that don't want to include root IDL files. */
- #ifndef NS_NO_VTABLE
- #define NS_NO_VTABLE
- #endif
- /* starting interface: nsIInterfaceRequestor */
- #define NS_IINTERFACEREQUESTOR_IID_STR "033a1470-8b2a-11d3-af88-00a024ffc08c"
- #define NS_IINTERFACEREQUESTOR_IID
- {0x033a1470, 0x8b2a, 0x11d3,
- { 0xaf, 0x88, 0x00, 0xa0, 0x24, 0xff, 0xc0, 0x8c }}
- /**
- * The nsIInterfaceRequestor interface defines a generic interface for
- * requesting interfaces that a given object might provide access to.
- * This is very similar to QueryInterface found in nsISupports.
- * The main difference is that interfaces returned from GetInterface()
- * are not required to provide a way back to the object implementing this
- * interface. The semantics of QI() dictate that given an interface A that
- * you QI() on to get to interface B, you must be able to QI on B to get back
- * to A. This interface however allows you to obtain an interface C from A
- * that may or most likely will not have the ability to get back to A.
- *
- * @status FROZEN
- */
- class NS_NO_VTABLE nsIInterfaceRequestor : public nsISupports {
- public:
- NS_DEFINE_STATIC_IID_ACCESSOR(NS_IINTERFACEREQUESTOR_IID)
- /**
- * Retrieves the specified interface pointer.
- *
- * @param uuid The IID of the interface being requested.
- * @param result [out] The interface pointer to be filled in if
- * the interface is accessible.
- * @return NS_OK - interface was successfully returned.
- * NS_NOINTERFACE - interface not accessible.
- * NS_ERROR* - method failure.
- */
- /* void getInterface (in nsIIDRef uuid, [iid_is (uuid), retval] out nsQIResult result); */
- NS_IMETHOD GetInterface(const nsIID & uuid, void * *result) = 0;
- };
- /* Use this macro when declaring classes that implement this interface. */
- #define NS_DECL_NSIINTERFACEREQUESTOR
- NS_IMETHOD GetInterface(const nsIID & uuid, void * *result);
- /* Use this macro to declare functions that forward the behavior of this interface to another object. */
- #define NS_FORWARD_NSIINTERFACEREQUESTOR(_to)
- NS_IMETHOD GetInterface(const nsIID & uuid, void * *result) { return _to GetInterface(uuid, result); }
- /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
- #define NS_FORWARD_SAFE_NSIINTERFACEREQUESTOR(_to)
- NS_IMETHOD GetInterface(const nsIID & uuid, void * *result) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterface(uuid, result); }
- #if 0
- /* Use the code below as a template for the implementation class for this interface. */
- /* Header file */
- class nsInterfaceRequestor : public nsIInterfaceRequestor
- {
- public:
- NS_DECL_ISUPPORTS
- NS_DECL_NSIINTERFACEREQUESTOR
- nsInterfaceRequestor();
- private:
- ~nsInterfaceRequestor();
- protected:
- /* additional members */
- };
- /* Implementation file */
- NS_IMPL_ISUPPORTS1(nsInterfaceRequestor, nsIInterfaceRequestor)
- nsInterfaceRequestor::nsInterfaceRequestor()
- {
- /* member initializers and constructor code */
- }
- nsInterfaceRequestor::~nsInterfaceRequestor()
- {
- /* destructor code */
- }
- /* void getInterface (in nsIIDRef uuid, [iid_is (uuid), retval] out nsQIResult result); */
- NS_IMETHODIMP nsInterfaceRequestor::GetInterface(const nsIID & uuid, void * *result)
- {
- return NS_ERROR_NOT_IMPLEMENTED;
- }
- /* End of implementation class template. */
- #endif
- #endif /* __gen_nsIInterfaceRequestor_h__ */