Qt 5.11 - QAxFactory (class)

QAxFactory वर्ग




qt

QAxFactory वर्ग

QAxFactory वर्ग COM घटकों के निर्माण के लिए एक कारखाने को परिभाषित करता है। More...

हैडर: # किंकर्तव्यविमूढ़ <QAxFactory>
qmake: क्यूटी + = एक्ससेर्वर
विरासत में मिली: QObject

सार्वजनिक प्रकार

enum ServerType {SingleInstance, MultipleInstances}

सार्वजनिक कार्य

QAxFactory (कास्ट क्विड और लिबिड , कास्ट क्विड और एपिड )
वास्तविक ~QAxFactory ()
वर्चुअल क्विड appID () appID
वर्चुअल क्विड classID ( classID और कुंजी ) const
आभासी QObject * createObject (const createObject & key ) = 0
आभासी बूल createObjectWrapper (QObject * ऑब्जेक्ट , IDispatch ** आवरण )
वर्चुअल क्विड eventsID ( eventsID और कुंजी ) eventsID
आभासी QString exposeToSuperClass ( exposeToSuperClass और कुंजी ) exposeToSuperClass
आभासी QStringList featureList () featureList = 0
आभासी बूल hasStockEvents (const hasStockEvents और कुंजी ) const
वर्चुअल क्विड interfaceID (कास्ट Qringring और कुंजी ) कास्ट
आभासी बूल isService () isService
वर्चुअल कास्ट QMetaObject * metaObject (const metaObject & key ) const = 0
आभासी शून्य registerClass (const QString और कुंजी , QSettings * सेटिंग्स ) const
आभासी बूल stayTopLevel ( stayTopLevel और कुंजी ) const
वर्चुअल क्विड typeLibID () typeLibID
आभासी शून्य unregisterClass (const QString & key , QSettings * settings ) कॉन्स्ट
आभासी बूल validateLicenseKey (const QString & key , const QString & लाइसेंसकई ) कास्ट
  • 34 सार्वजनिक कार्य QObject से विरासत में QObject

स्थैतिक जन सदस्य

bool isServer ()
bool registerActiveObject (QObject * ऑब्जेक्ट )
QString serverDirPath ()
QString serverFilePath ()
bool स्टार्टर सेवर (QAxFactory :: Server टाइप टाइप = कई बार)
bool stopServer ()
  • 10 स्थिर सार्वजनिक सदस्यों को QObject से विरासत में मिला

मैक्रो

QAXCLASS ( कक्षा )
QAXFACTORY_BEGIN ( IDTypeLib , IDApp )
QAXFACTORY_DEFAULT ( कक्षा , ClassID , InterfaceID , EventID , LibID , AppID )
QAXFACTORY_END
QAXFACTORY_EXPORT ( कक्षा , LibID , AppID )
QAXTYPE ( कक्षा )

अतिरिक्त घायल सदस्य

  • 1 संपत्ति QObject से विरासत में मिली
  • 1 सार्वजनिक स्लॉट QObject से विरासत में मिला है
  • 2 संकेत QObject से विरासत में QObject
  • 1 सार्वजनिक चर QObject से विरासत में मिला
  • 9 संरक्षित कार्य QObject से विरासत में QObject
  • 2 सुरक्षित चर QObject से विरासत में QObject

विस्तृत विवरण

QAxFactory वर्ग COM घटकों के निर्माण के लिए एक कारखाने को परिभाषित करता है।

अपने COM सर्वर में उन घटकों के बारे में जानकारी प्रदान करने के लिए एक बार इस कारखाने को लागू करें जो सर्वर बना सकते हैं। Subclass QAxFactory और किसी भी कार्यान्वयन फ़ाइल (जैसे QAXFACTORY_EXPORT() में शुद्ध आभासी कार्यों को लागू करने, और QAXFACTORY_EXPORT() मैक्रो का उपयोग करके कारखाने का निर्यात करें।

QStringList ActiveQtFactory::featureList() const
{
    QStringList list;
    list << "ActiveX1";
    list << "ActiveX2";
    return list;
}

QObject *ActiveQtFactory::createObject(const QString &key)
{
    if (key == "ActiveX1")
        return new ActiveX1(parent);
    if (key == "ActiveX2")
        return new ActiveX2(parent);
    return 0;
}

const QMetaObject *ActiveQtFactory::metaObject(const QString &key) const
{
    if (key == "ActiveX1")
        return &ActiveX1::staticMetaObject;
    if (key == "ActiveX2")
        return &ActiveX2::staticMetaObject;
}

QUuid ActiveQtFactory::classID(const QString &key) const
{
    if (key == "ActiveX1")
        return "{01234567-89AB-CDEF-0123-456789ABCDEF}";
    ...
    return QUuid();
}

QUuid ActiveQtFactory::interfaceID(const QString &key) const
{
    if (key == "ActiveX1")
        return "{01234567-89AB-CDEF-0123-456789ABCDEF}";
    ...
    return QUuid();
}

QUuid ActiveQtFactory::eventsID(const QString &key) const
{
    if (key == "ActiveX1")
        return "{01234567-89AB-CDEF-0123-456789ABCDEF}";
    ...
    return QUuid();
}

QAXFACTORY_EXPORT(
    ActiveQtFactory,                          // factory class
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // type library ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}"  // application ID
)

यदि आप अपनी कक्षा के लिए विशिष्ट पहचानकर्ता या अन्य विशेषताएँ प्रदान करने के लिए Q_CLASSINFO() मैक्रो का उपयोग करते हैं तो आप QAXFACTORY_BEGIN() , QAXCLASS() और QAXFACTORY_END() मैक्रो को COM ऑब्जेक्ट के रूप में एक या एक से अधिक वर्गों को उजागर करने के लिए उपयोग कर सकते हैं।

QAXFACTORY_BEGIN(
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // type library ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}"  // application ID
)
    QAXCLASS(Class1)
    QAXCLASS(Class2)
QAXFACTORY_END()

यदि आपका सर्वर सिर्फ एक COM ऑब्जेक्ट का समर्थन करता है, तो आप QAXFACTORY_DEFAULT() मैक्रो के माध्यम से डिफ़ॉल्ट फ़ैक्टरी कार्यान्वयन का उपयोग कर सकते हैं।

#include <qapplication.h>
#include <qaxfactory.h>

#include "theactivex.h"

QAXFACTORY_DEFAULT(
    TheActiveX,                               // widget class
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // class ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // interface ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // event interface ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // type library ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}"  // application ID
)

ActiveX सर्वर अनुप्रयोग द्वारा केवल एक QAxFactory कार्यान्वयन को तत्काल और निर्यात किया जा सकता है। यह उदाहरण वैश्विक qAxFactory () फ़ंक्शन के माध्यम से सुलभ है।

एक कारखाना रजिस्टरक्लास () और unregisterClass () फ़ंक्शंस को रजिस्ट्री में एक ActiveX नियंत्रण के लिए अतिरिक्त झंडे लगाने के लिए फिर से लागू कर सकता है। विधियों या गुणों की संख्या को सीमित करने के लिए एक विजेट वर्ग अपने मूल वर्गों से उजागर हो जाता है।

QAxAggregated , QAxBindable और ActiveQt फ्रेमवर्क भी देखें

सदस्य प्रकार प्रलेखन

enum QAxFactory :: ServerType

यह एनम विभिन्न प्रकार के सर्वरों को निर्दिष्ट करता है जिन्हें startServer साथ शुरू किया जा सकता है।

स्थिर मूल्य विवरण
QAxFactory::SingleInstance 0 सर्वर प्रक्रिया प्रत्येक निर्यात किए गए वर्ग का केवल एक उदाहरण बना सकती है। COM प्रत्येक अनुरोध के लिए एक नई प्रक्रिया शुरू करता है। यह आमतौर पर सर्वरों में उपयोग किया जाता है जो केवल एक ही निर्माण योग्य वर्ग को निर्यात करते हैं।
QAxFactory::MultipleInstances 1 सर्वर प्रत्येक निर्यात किए गए वर्ग के कई उदाहरण बना सकता है। यह डिफ़ॉल्ट है। सभी उदाहरण एक ही धागे में रहेंगे, और स्थिर संसाधनों को साझा करेंगे।

सदस्य समारोह प्रलेखन

QAxFactory :: QAxFactory ( QUuid एंड लिबिड , QUuid और एपिड )

एक QAxFactory वस्तु का निर्माण करता है जो संबंधित इंटरफ़ेस फ़ंक्शंस के कार्यान्वयन में एफिडेविड और एपिड रिटर्न देता है।

[virtual] QAxFactory :: ~ QAxFactory ()

QAxFactory वस्तु को नष्ट कर QAxFactory है।

[virtual] QUuid QAxFactory :: appID () कास्ट

ActiveX सर्वर के एप्लिकेशन पहचानकर्ता को वापस करने के लिए इस फ़ंक्शन को लागू करें।

[virtual] QUuid QAxFactory :: classID (const QString और कुंजी ) const

फीचरलिस्ट () कार्यान्वयन, या एक खाली QUuid द्वारा लौटाए गए प्रत्येक कुंजी के लिए वर्ग पहचानकर्ता को वापस करने के लिए इस फ़ंक्शन को फिर से लागू करें यदि यह कारखाना कुंजी के मूल्य का समर्थन नहीं करता है।

डिफ़ॉल्ट कार्यान्वयन क्लास के नाम के रूप में कुंजी की व्याख्या करता है, और Q_CLASSINFO () प्रविष्टि " Q_CLASSINFO " का मान लौटाता है।

[pure virtual] QObject * QAxFactory :: createObject (const QString और कुंजी )

कुंजी के लिए एक नया ऑब्जेक्ट वापस करने के लिए इस फ़ंक्शन को फिर से लागू करें, या यदि यह कारखाना कुंजी के मूल्य का समर्थन नहीं करता है।

यदि लौटी हुई वस्तु QWidget तो उसे ActiveX नियंत्रण के रूप में उजागर किया जाएगा, अन्यथा लौटी हुई वस्तु को एक साधारण COM ऑब्जेक्ट के रूप में उजागर किया जाएगा।

[virtual] बूल QAxFactory :: createObjectWrapper ( QObject * ऑब्जेक्ट , IDispatch ** QObject )

आवरण में ऑब्जेक्ट के लिए COM ऑब्जेक्ट प्रदान करने के लिए इस फ़ंक्शन को फिर से लागू करें। यदि कार्य सफल रहा हो तो सही लौटें; अन्यथा झूठे लौटते हैं।

डिफ़ॉल्ट कार्यान्वयन ऑब्जेक्ट के मेटा ऑब्जेक्ट जानकारी के आधार पर एक सामान्य स्वचालन आवरण बनाता है।

[virtual] QUuid QAxFactory :: ईवेंटआईडी ( QUuid Qringring और कुंजी ) कास्ट

सुविधा फ़ंक्शन () कार्यान्वयन, या खाली QUuid द्वारा लौटाए गए प्रत्येक कुंजी के लिए ईवेंट इंटरफ़ेस के पहचानकर्ता को वापस करने के लिए इस फ़ंक्शन को फिर से लागू करें यदि यह फ़ैक्टरी कुंजी के मूल्य का समर्थन नहीं करता है।

डिफ़ॉल्ट कार्यान्वयन क्लास नाम के रूप में कुंजी की व्याख्या करता है, और Q_CLASSINFO () प्रविष्टि "EventID" का मान लौटाता है।

[virtual] QString QAxFactory :: exposeToSuperClass (const QString और कुंजी ) कास्ट

सक्रिय करने के लिए इस फ़ंक्शन को फिर से लागू करें कुंजी के सुपर वर्ग का नाम जिस पर ActiveX नियंत्रण द्वारा विधियों और गुणों को उजागर किया जाना चाहिए।

डिफ़ॉल्ट कार्यान्वयन कुंजी को वर्ग नाम के रूप में व्याख्या करता है, और Q_CLASSINFO() प्रविष्टि "ToSuperClass" का मान लौटाता है। यदि ऐसा कोई मान सेट नहीं किया गया है, तो नल-स्ट्रिंग लौटा दी गई है, और QWidget सहित सभी सुपर वर्गों के कार्यों और गुणों को उजागर किया जाएगा।

केवल कक्षा के कार्यों और गुणों को उजागर करने के लिए, कुंजी को वापस करने के लिए इस फ़ंक्शन को फिर से लागू करें।

[pure virtual] QStringList QAxFactory :: featureList () कास्ट

इस कारखाने द्वारा समर्थित विगेट्स (वर्ग नामों) की सूची वापस करने के लिए इस फ़ंक्शन को फिर से लागू करें।

[virtual] बूल QAxFactory :: hasStockEvents ( कास्ट QString और कुंजी ) कास्ट

ActiveX नियंत्रण कुंजी को मानक ActiveX घटनाओं का समर्थन करना चाहिए, तो इस फ़ंक्शन को सही पर वापस लागू करें

  • क्लिक करें
  • DblClick
  • चाबी नीचे
  • बटन दबाओ
  • तनाव के स्थिति में
  • माउस नीचे
  • MouseUp
  • MouseMove

डिफ़ॉल्ट कार्यान्वयन वर्ग के नाम के रूप में कुंजी की व्याख्या करता है, और यदि Q_CLASSINFO() प्रविष्टि "StockEvents" का मान "हां" है, तो यह सही है। अन्यथा यह फ़ंक्शन गलत हो जाता है।

[virtual] QUuid QAxFactory :: इंटरफ़ेसआईडी ( QUuid QString और कुंजी ) कास्ट

फीचरलिस्ट () कार्यान्वयन, या एक खाली QUuid द्वारा लौटाए गए प्रत्येक कुंजी के लिए इंटरफ़ेस पहचानकर्ता को वापस करने के लिए इस फ़ंक्शन को फिर से लागू करें यदि यह कारखाना कुंजी के मूल्य का समर्थन नहीं करता है।

डिफ़ॉल्ट कार्यान्वयन कुंजी को वर्ग नाम के रूप में व्याख्या करता है, और Q_CLASSINFO () प्रविष्टि "इंटरफ़ेसआईडी" का मान लौटाता है।

[static] बूल QAxFactory :: isServer ()

ActiveX सर्वर के रूप में अनुप्रयोग (COM द्वारा) शुरू किया गया है, तो सही है, अन्यथा गलत देता है।

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    if (!QAxFactory::isServer()) {
        // initialize for stand-alone execution
    }
    return app.exec();
}

[virtual] बूल QAxFactory :: isService () कास्ट

यदि सर्वर लगातार सेवा (उदाहरण के लिए NT सेवा) के रूप में चल रहा हो, तो इस फ़ंक्शन को फिर से लागू करें और तब भी समाप्त नहीं होना चाहिए जब प्रदान की गई सभी वस्तुएँ रिलीज़ हो चुकी हों।

डिफ़ॉल्ट कार्यान्वयन गलत हो जाता है।

[pure virtual] const QMetaObject * QAxFactory :: मेटाऑब्जेक्ट (const QString और कुंजी ) const

कुंजी के अनुरूप QMetaObject को वापस करने के लिए इस फ़ंक्शन को लागू करें, या यदि यह फ़ैक्टरी कुंजी के मान का समर्थन नहीं करता है।

[static] बूल QAxFactory :: registerActiveObject ( QObject * ऑब्जेक्ट )

COM के साथ QObject ऑब्जेक्ट को एक रनिंग ऑब्जेक्ट के रूप में पंजीकृत करता है, और यदि पंजीकरण सफल हुआ, तो सही है, अन्यथा वापस लौटता है। नष्ट होने पर वस्तु स्वतः अपंजीकृत होती है।

यह फ़ंक्शन केवल तभी कॉल किया जाना चाहिए जब एप्लिकेशन उपयोगकर्ता द्वारा शुरू किया गया हो (यानी अनुरोध का जवाब देने के लिए COM द्वारा नहीं), और केवल एक वस्तु के लिए, आमतौर पर एप्लिकेशन के ऑब्जेक्ट पदानुक्रम का टॉपवेल ऑब्जेक्ट।

यह फ़ंक्शन कुछ भी नहीं करता है और "रजिस्टरऑबजेक्ट" के लिए ऑब्जेक्ट की वर्ग जानकारी "हां" पर सेट नहीं होती है, या यदि सर्वर एक इन-प्रोसेस सर्वर है, तो यह गलत है।

[virtual] शून्य QAxFactory :: registerClass ( QSettings और कुंजी , QSettings * सेटिंग्स )

सेटिंग्स ऑब्जेक्ट का उपयोग करके सिस्टम रजिस्ट्री में वर्ग कुंजी के लिए अतिरिक्त मान पंजीकृत करता है। मानक मानों को पहले ही फ्रेमवर्क द्वारा पंजीकृत किया गया है, लेकिन अतिरिक्त मान, जैसे कार्यान्वित श्रेणियां, इस फ़ंक्शन के कार्यान्वयन में जोड़ी जा सकती हैं।

settings->setValue("/CLSID/" + classID(key)
                   + "/Implemented Categories/"
                   + "/{00000000-0000-0000-000000000000}/.",
                   QString());

यदि आप इस फ़ंक्शन को लागू करते हैं, तो आपको अतिरिक्त रजिस्ट्री मानों को हटाने के लिए unregisterClass () को भी फिर से लागू करना होगा।

QSettings भी देखें

[static] QString QAxFactory :: serverDirPath ()

उस निर्देशिका को लौटाता है जिसमें सर्वर बाइनरी होता है।

आउट-की-प्रक्रिया सर्वरों के लिए यह QCoreApplication::applicationDirPath () के समान है। इन-प्रोसेस सर्वर के लिए जो कार्य करता है वह निर्देशिका को वापस करता है जिसमें होस्टिंग एप्लिकेशन होता है।

[static] QString QAxFactory :: serverFilePath ()

सर्वर बाइनरी का फ़ाइल पथ लौटाता है।

आउट-की-प्रक्रिया सर्वरों के लिए यह QCoreApplication::applicationFilePath () के समान है। इन-प्रोसेस सर्वर के लिए जो फ़ंक्शन एप्लिकेशन के फ़ाइल पथ को वापस करता है।

[static] बूल QAxFactory :: startServer ( QAxFactory :: Server टाइप = मल्टी इनस्टेशन )

COM सर्वर को प्रकार के साथ प्रारंभ करता है और यदि सफल होता है तो वापस लौटाता है, अन्यथा झूठे रिटर्न देता है

इस फ़ंक्शन को कॉल करना यदि सर्वर पहले से चल रहा है (या इन-प्रोसेस सर्वर के लिए) कुछ भी नहीं करता है और सही रिटर्न देता है।

यदि सर्वर निष्पादन योग्य को- -activex कमांड लाइन पैरामीटर के साथ शुरू किया गया है, तो सर्वर MultipleInstances प्रकार के सेट के साथ स्वचालित रूप से शुरू हो जाता है। ServerType स्विच करने के लिए, कॉल करें

if (QAxFactory::isServer()) {
    QAxFactory::stopServer();
    QAxFactory::startServer(QAxFactory::SingleInstance);
}

अपने स्वयं के मुख्य () प्रविष्टि बिंदु फ़ंक्शन में।

[virtual] बूल QAxFactory :: StayTopLevel ( QString और कुंजी ) कास्ट

यदि ActiveX नियंत्रण कुंजी एक शीर्ष स्तरीय विंडो होनी चाहिए, जैसे कि एक डायलॉग, इस फ़ंक्शन को वापस लौटाएं। डिफ़ॉल्ट कार्यान्वयन गलत हो जाता है।

[static] बूल QAxFactory :: stopServer ()

COM सर्वर बंद कर देता है और सफल होने पर वापस लौटता है, अन्यथा झूठे रिटर्न देता है।

इस फ़ंक्शन को कॉल करना यदि सर्वर नहीं चल रहा है (या इन-प्रोसेस सर्वर के लिए) कुछ नहीं करता है और सही रिटर्न देता है।

सर्वर को रोकना मौजूदा वस्तुओं को अमान्य नहीं करेगा, लेकिन मौजूदा सर्वर प्रक्रिया से कोई नई वस्तु नहीं बनाई जा सकती है। आमतौर पर COM एक नई सर्वर प्रक्रिया शुरू करेगा अगर अतिरिक्त वस्तुओं का अनुरोध किया जाता है।

मुख्य () फ़ंक्शन वापस आने पर सर्वर स्वचालित रूप से बंद हो जाता है।

[virtual] QUuid QAxFactory :: typeLibID () कास्ट

ActiveX सर्वर के प्रकार लायब्रेरी पहचानकर्ता को वापस करने के लिए इस फ़ंक्शन को पुन: लागू करें।

[virtual] शून्य QAxFactory :: unregisterClass ( QSettings और कुंजी , QSettings * सेटिंग्स ) const

सेटिंग्स ऑब्जेक्ट का उपयोग करके सिस्टम रजिस्ट्री से क्लास की के लिए किसी भी अतिरिक्त मान को अनरजिस्टर्ड करता है।

settings->remove("/CLSID/" + classID(key)
                 + "/Implemented Categories"
                 + "/{00000000-0000-0000-000000000000}/.");

QSettings () और QSettings भी देखें

[virtual] बूल QAxFactory :: validateLicenseKey (const QString और कुंजी , const QString और लाइसेंसकनी ) const

इस फ़ंक्शन को फिर से लागू करने के लिए फिर से लागू करें यदि लाइसेंस कुंजी वर्ग कुंजी के लिए एक वैध लाइसेंस है, या यदि वर्तमान मशीन लाइसेंस प्राप्त है।

यदि वर्ग कुंजी का लाइसेंस नहीं है (यानी कोई Q_CLASSINFO() विशेषता "लाइसेंसकेई"), या यदि लाइसेंसकेई "लाइसेंसकेनी" विशेषता के मूल्य से मेल खाता है, या मशीन एलएलआईसी फ़ाइल के माध्यम से लाइसेंस प्राप्त है, तो डिफ़ॉल्ट कार्यान्वयन सही है। इस COM सर्वर के रूप में एक ही फ़ाइल नाम।

मैक्रो डॉक्यूमेंटेशन

QAXCLASS ( कक्षा )

यह मैक्रो QAXFACTORY_BEGIN () मैक्रो के साथ घोषित QAxFactory लिए एक क्रिएटिव COM क्लास क्लास जोड़ता है।

QAXFACTORY_BEGIN (), QAXTYPE (), QAXFACTORY_END (), और Q_CLASSINFO () भी देखें।

QAXFACTORY_BEGIN ( IDTypeLib , IDApp )

इस मैक्रो का उपयोग कई QObject वर्गों को एक QAxFactory घोषित QAxFactory कार्यान्वयन के माध्यम से निर्यात करने के लिए किया जा सकता है। सभी QObject कक्षाओं को Q_CLASSINFO () मैक्रो के माध्यम से ClassID, InterfaceID और EventID (यदि लागू हो) घोषित करना होगा। सभी डिक्लेरेशन आईडी ID टाइप I के साथ एक प्रकार की लाइब्रेरी में होगा, और यदि सर्वर एक निष्पादन योग्य सर्वर है, तो इसमें एप्लिकेशन आईडी IDApp होगा

इस मैक्रो का उपयोग QAXCLASS (), QAXTYPE () और QAXFACTORY_END () मैक्रोज़ के साथ किया जाना चाहिए।

QAXFACTORY_BEGIN(
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // type library ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}"  // application ID
)
    QAXCLASS(Class1)
    QAXCLASS(Class2)
QAXFACTORY_END()

QAXFACTORY_DEFAULT ( कक्षा , ClassID , InterfaceID , EventID , LibID , AppID )

इस मैक्रो का उपयोग एकल QObject उपवर्ग को निर्यात करने के लिए किया जा सकता है। यह COM सर्वर एक QAxFactory रूप से घोषित QAxFactory कार्यान्वयन के माध्यम से QAxFactory है।

यह मैक्रो क्लास क्लास को COM Coclass के रूप में CLSID क्लासआईडी के साथ निर्यात करता है। प्रॉपर्टीज़ और स्लॉट्स को IID इंटरफ़ेसआईडी के साथ COM इंटरफ़ेस के माध्यम से घोषित किया जाएगा, और संकेतों को COM इवेंट इंटरफ़ेस के माध्यम से IID EventID के साथ घोषित किया जाएगा। सभी घोषणाएं आईडी लिबिड के साथ एक प्रकार की लाइब्रेरी में होंगी , और यदि सर्वर एक निष्पादन योग्य सर्वर है, तो इसमें एप्लिकेशन आईडीआईडी ​​होगा

#include <qaxfactory.h>

#include "theactivex.h"

QAXFACTORY_DEFAULT(
    TheActiveX,                               // widget class
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // class ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // interface ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // event interface ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // type library ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}"  // application ID
)

QAXFACTORY_EXPORT () और QAXFACTORY_BEGIN () भी देखें

QAXFACTORY_END

QAXFACTORY_BEGIN () मैक्रो के साथ प्रारंभ QAxFactory घोषणा को पूरा करता है।

QAXFACTORY_BEGIN (), QAXCLASS (), और QAXTYPE () भी देखें।

QAXFACTORY_EXPORT ( कक्षा , LibID , AppID )

इस मैक्रो का उपयोग COM सर्वर से QAxFactory कार्यान्वयन क्लास को निर्यात करने के लिए किया जा सकता है। सभी घोषणाएं आईडी लिबिड के साथ एक प्रकार की लाइब्रेरी में होंगी , और यदि सर्वर एक निष्पादन योग्य सर्वर है, तो इसमें एप्लिकेशन आईडीआईडी ​​होगा

QAXFACTORY_EXPORT(
    MyFactory,                                // factory class
    "{01234567-89AB-CDEF-0123-456789ABCDEF}", // type library ID
    "{01234567-89AB-CDEF-0123-456789ABCDEF}"  // application ID
)

QAXFACTORY_BEGIN () भी देखें

QAXTYPE ( कक्षा )

यह मैक्रो QAXFACTORY_BEGIN () के साथ घोषित QAxFactory में एक गैर-सृजनात्मक COM क्लास क्लास जोड़ता है। क्लास क्लास का उपयोग QAXTYPE () या QAXCLASS () के माध्यम से निर्यात किए गए अन्य COM वर्गों के एपीआई में किया जा सकता है।

प्रकार वर्ग के उदाहरण केवल पहले से ही तत्काल वस्तुओं के एपीआई का उपयोग करके पुनर्प्राप्त किए जा सकते हैं।

QAXFACTORY_BEGIN (), QAXCLASS (), QAXFACTORY_END (), और Q_CLASSINFO () भी देखें।