Qt 5.11 - QAxBase (class)

QAxBase क्लास




qt

QAxBase क्लास

QAxBase क्लास एक QAxBase क्लास है जो एक COM ऑब्जेक्ट को इनिशियलाइज़ और एक्सेस करने के लिए एक एपीआई प्रदान करता है। More...

हैडर: # किंकर्तव्यविमूढ़ <QAxBase>
qmake: क्यूटी + = अक्षतंतु
इनहेरिट किया गया:

QAxObject और QAxWidget

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

typedef PropertyBag

गुण

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

QAxBase ( QAxBase * iface = nullptr)
वास्तविक ~QAxBase ()
QVariant asVariant () const
आभासी शून्य clear ()
QString control () कास्ट
शून्य disableClassInfo ()
शून्य disableEventSink ()
शून्य disableMetaObject
QVariant dynamicCall ( dynamicCall चार * फंक्शन , कास्ट क्वैरिएंट & var1 = QVariant (), const QVariant & var2 = QVariant (), const QVariant & var3 = QVariant (), const QVariant & var4 = QVariant (), कॉन्स्टेबल QVariant & var5 = QVariant & var5 = ), कॉन्स्टेंट QVariant & var6 = QVariant (), const QVariant & var7 = QVariant (), const QVariant & var8 = QVariant ())
QVariant dynamicCall ( dynamicCall चार * फंक्शन , QList <QVariant> & vars )
QString generateDocumentation ()
bool isNull () const
QAxBase :: PropertyBag propertyBag () const
आभासी बूल गुणधर्म (कास्ट चार * प्रोप ) कास्ट
लंबा queryInterface (कास्ट क्विड और uuid , शून्य ** iface ) कास्ट
QAxObject * querySubObject (const char * name , const QVariant & var1 = QVariant (), const QVariant & var2 = (QVariant), const QVariant & var3 = QVariant (), const QVariant & var4 = QVariant (), const QVariant & var4 = ), कॉन्स्टेंट QVariant & var6 = QVariant (), const QVariant & var7 = QVariant (), const QVariant & var8 = QVariant ())
QAxObject * querySubObject (const char * name , QList <QVariant> & vars )
bool control ( const control & )
शून्य setPropertyBag (const QAxBase :: PropertyBag और bag )
आभासी शून्य setPropertyWritable (कास्ट चार * प्रोप , बूल ओके )
QStringList verbs () कांस्टेबल

सिग्नल

शून्य exception (int कोड , const QString & source , const QString & desc , const QString & help )
शून्य propertyChanged (const QString और नाम )
शून्य signal (const QString और नाम , int argc , void * argv )

संरक्षित कार्य

आभासी बूल initialize (IUnogn ** ptr )
bool initializeActive (IUnogn ** ptr )
bool initializeFromFile (IUnogn ** ptr )
bool initializeLicensed (IUnogn ** ptr )
bool initializeRemote (IUnogn ** ptr )

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

QAxBase क्लास एक QAxBase क्लास है जो एक COM ऑब्जेक्ट को इनिशियलाइज़ और एक्सेस करने के लिए एक एपीआई प्रदान करता है।

QAxBase एक अमूर्त वर्ग है जिसे सीधे इस्तेमाल नहीं किया जा सकता है, और उपवर्ग QAxObject और QAxWidget माध्यम से QAxWidget । यह वर्ग एपीआई वस्तु को सीधे उसके आई-यूएन कार्यान्वयन के माध्यम से एक्सेस करने के लिए प्रदान करता है। यदि COM ऑब्जेक्ट IDispatch इंटरफ़ेस को लागू करता है, तो उस ऑब्जेक्ट के गुण और तरीके Qt गुण और स्लॉट के रूप में उपलब्ध हो जाते हैं।

connect(buttonBack, SIGNAL(clicked()), webBrowser, SLOT(GoBack()));

ऑब्जेक्ट के IDispatch कार्यान्वयन द्वारा उजागर किए गए गुणों को Qt ऑब्जेक्ट मॉडल द्वारा प्रदान की गई संपत्ति प्रणाली के माध्यम से पढ़ा और लिखा जा सकता है (दोनों उपवर्ग QObject s हैं, इसलिए आप QObject::setProperty () और QObject::property ()) का उपयोग कर सकते हैं। कई मापदंडों वाले गुण समर्थित नहीं हैं।

activeX->setProperty("text", "some text");
int value = activeX->property("value");

गुण और ऑब्जेक्ट के IDispatch कार्यान्वयन द्वारा उजागर किए गए अन्य तरीकों के लिए लिखें-फ़ंक्शन को dynamicCall () का उपयोग करके सीधे या अप्रत्यक्ष रूप से सिग्नल से जुड़े स्लॉट के रूप में कहा जा सकता है।

webBrowser->dynamicCall("GoHome()");

COM ऑब्जेक्ट द्वारा समर्थित आउटगोइंग घटनाओं को मानक Qt संकेतों के रूप में उत्सर्जित किया जाता है।

connect(webBrowser, SIGNAL(TitleChanged(QString)),
        this, SLOT(setCaption(QString)));

QAxBase पारदर्शी रूप से COM डेटा प्रकार और समकक्ष Qt डेटा प्रकारों के बीच कनवर्ट करता है। कुछ COM प्रकार में कोई समान Qt डेटा संरचना नहीं होती है।

समर्थित COM डेटाटाइप्स को निम्न तालिका के पहले कॉलम में सूचीबद्ध किया गया है। दूसरा कॉलम Qt प्रकार है जिसका उपयोग QObject प्रॉपर्टी फ़ंक्शंस के साथ किया जा सकता है। तीसरा कॉलम Qt प्रकार है जिसका उपयोग पैरामीटर के लिए उत्पन्न संकेतों और स्लॉट के प्रोटोटाइप में किया जाता है, और अंतिम कॉलम Qt प्रकार है जो सिग्नल और स्लॉट के प्रोटोटाइप में आउट-मापदंडों के लिए उपयोग किया जाता है।

COM प्रकार Qt संपत्ति में पैरामीटर बाहर पैरामीटर
VARIANT_BOOL bool bool bool और
BSTR QString const QString और QString और
चार, छोटा, इंट, लंबा पूर्णांक पूर्णांक पूर्णांक और
uchar, ushort, uint, ulong uint uint uint &
फ्लोट, डबल दोहरा दोहरा डबल और
दिनांक QDateTime const QDateTime और QDateTime और
सीवाई qlonglong qlonglong qlonglong &
OLE_COLOR QColor QColor QColor और
SAFEARRAY (संस्करण) QList < QVariant > const QList < QVariant > और QList < QVariant > और
SAFEARRAY (int), SAFEARRAY (डबल), SAFEARRAY (दिनांक) QList < QVariant > const QList < QVariant > और QList < QVariant > और
SAFEARRAY (बाइट) QByteArray const QByteArray और QByteArray और
SAFEARRAY (BSTR) QStringList const QStringList और QStringList और
VARIANT प्रकार पर निर्भर const QVariant और QVariant और
IFontDisp * QFont const QFont & QFont और
IPictureDisp * QPixmap const QPixmap और QPixmap और
IDispatch * QAxObject * QAxBase::asVariant() QAxObject * (वापसी मान)
IUnknown * QAxObject * QAxBase::asVariant() QAxObject * (वापसी मान)
SCODE, DECIMAL असमर्थित असमर्थित असमर्थित
वर्ष * (Qt 4.5 से) असमर्थित QVariant & QVariant &

समर्थित भी एन्यूमरेशन हैं, और समर्थित प्रकारों के लिए टाइप किए गए हैं।

निम्नलिखित आईडीएल द्वारा वर्णित COM इंटरफ़ेस के तरीकों को कॉल करने के लिए

dispinterface IControl
{
properties:
    [id(1)] BSTR text;
    [id(2)] IFontDisp *font;

methods:
    [id(6)] void showColumn([in] int i);
    [id(3)] bool addColumn([in] BSTR t);
    [id(4)] int fillList([in, out] SAFEARRAY(VARIANT) *list);
    [id(5)] IDispatch *item([in] int i);
};

इस तरह से QAxBase API का उपयोग करें:

QAxObject object("<CLSID>");

QString text = object.property("text").toString();
object.setProperty("font", QFont("Times New Roman", 12));

connect(this, SIGNAL(clicked(int)), &object, SLOT(showColumn(int)));
bool ok = object.dynamicCall("addColumn(const QString&)", "Column 1").toBool();

QList<QVariant> varlist;
QList<QVariant> parameters;
parameters << QVariant(varlist);
int n = object.dynamicCall("fillList(QList<QVariant>&)", parameters).toInt();

QAxObject *item = object.querySubItem("item(int)", 5);

ध्यान दें कि QList को भरने वाली वस्तु को QVariant s के पैरामीटर सूची में एक तत्व के रूप में प्रदान किया जाना चाहिए।

यदि आपको संपत्तियों तक पहुँचने या असमर्थित डेटाटिप्स के मापदंडों को पास करने की आवश्यकता है, तो आपको COM ऑब्जेक्ट को सीधे उसके IDispatch कार्यान्वयन या अन्य इंटरफेस के माध्यम से एक्सेस करना होगा। उन इंटरफेस को queryInterface () के माध्यम से पुनः प्राप्त किया जा सकता है।

IUnknown *iface = 0;
activeX->queryInterface(IID_IUnknown, (void**)&iface);
if (iface) {
    // use the interface
    iface->Release();
}

COM इंटरफेस की परिभाषा प्राप्त करने के लिए आपको उस घटक के साथ उपलब्ध हेडर फ़ाइलों का उपयोग करना होगा जिसे आप उपयोग करना चाहते हैं। कुछ कंपाइलर #import कंपाइलर निर्देश का उपयोग करके टाइप लाइब्रेरीज़ को भी आयात कर सकते हैं। यह जानने के लिए कि आपको किस प्रकार के पुस्तकालयों को आयात करना है, और उनका उपयोग कैसे करना है, यह जानने के लिए घटक प्रलेखन देखें।

यदि आपको असमर्थित डेटाटाइप के मापदंडों को पास करने वाली घटनाओं पर प्रतिक्रिया करने की आवश्यकता है, तो आप जेनेरिक सिग्नल का उपयोग कर सकते हैं जो इवेंट डेटा को COM इवेंट द्वारा प्रदान किए गए अनुसार वितरित करता है।

QAxObject , QAxWidget , QAxScript और ActiveQt फ्रेमवर्क भी देखें

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

typedef QAxBase :: PropertyBag

एक QMap < QMap , QVariant > नाम के रूप में गुणों को संग्रहीत कर सकता है: मूल्य जोड़े।

संपत्ति का प्रलेखन

नियंत्रण : QString

यह गुण इस QAxBase ऑब्जेक्ट द्वारा लिपटे COM ऑब्जेक्ट का नाम रखता है।

इस गुण को सेट करना COM ऑब्जेक्ट को इनिशियलाइज़ करता है। पहले से सेट की गई कोई भी COM ऑब्जेक्ट बंद है।

इस संपत्ति को सेट करने का सबसे कुशल तरीका पंजीकृत घटक के यूयूआईडी का उपयोग करके है, जैसे

ctrl->setControl("{8E27C92B-1264-101C-8A2F-040224009C02}");

दूसरा सबसे तेज़ तरीका पंजीकृत नियंत्रण वर्ग के नाम (संस्करण संख्या के साथ या बिना) का उपयोग करना है, जैसे

ctrl->setControl("MSCal.Calendar");

उपयोग करने का सबसे धीमा, लेकिन सबसे आसान तरीका है नियंत्रण का पूरा नाम, जैसे

ctrl->setControl("Calendar Control 9.0");

फ़ाइल से ऑब्जेक्ट को इनिशियलाइज़ करना भी संभव है, जैसे

ctrl->setControl("c:/files/file.doc");

यदि घटक के यूयूआईडी का उपयोग किया जाता है, तो निम्न पैटर्न का उपयोग रिमोट मशीन पर नियंत्रण को आरंभ करने के लिए, लाइसेंस प्राप्त नियंत्रण को आरंभ करने के लिए या किसी चालू वस्तु से कनेक्ट करने के लिए किया जा सकता है:

  • किसी भिन्न मशीन पर नियंत्रण आरंभ करने के लिए निम्नलिखित पैटर्न का उपयोग करें:
    <domain/username>:<password>@server/{8E27C92B-1264-101C-8A2F-040224009C02}
  • एक लाइसेंस नियंत्रण को प्रारंभ करने के लिए निम्नलिखित पैटर्न का उपयोग करें:
    {8E27C92B-1264-101C-8A2F-040224009C02}:<LicenseKey>
  • पहले से चल रहे ऑब्जेक्ट से कनेक्ट करने के लिए निम्न पैटर्न का उपयोग करें:
    {8E27C92B-1264-101C-8A2F-040224009C02}&

पहले दो पैटर्न को संयुक्त किया जा सकता है, उदाहरण के लिए रिमोट मशीन पर लाइसेंस नियंत्रण को आरंभ करना:

ctrl->setControl("DOMAIN/user:[email protected]/{8E27C92B-1264-101C-8A2F-040224009C02}:LicenseKey");

नियंत्रण की रीड फ़ंक्शन हमेशा नियंत्रण की यूयूआईडी लौटाता है, यदि लाइसेंस कुंजी और सर्वर का नाम सहित प्रदान किया जाता है, लेकिन उपयोगकर्ता नाम, डोमेन या पासवर्ड सहित नहीं।

पहुंच कार्य:

QString नियंत्रण () कास्ट
bool सेटकंट्रोल ( const QString & )

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

QAxBase :: QAxBase ( IUnogn * iface = nullptr)

QAxBase ऑब्जेक्ट बनाता है जो COM ऑब्जेक्ट iface को लपेटता है। यदि iface 0 (डिफ़ॉल्ट) है, तो COM ऑब्जेक्ट को control लिए control () का उपयोग करें।

[virtual] QAxBase :: ~ QAxBase ()

COM ऑब्जेक्ट को बंद कर देता है और QAxBase ऑब्जेक्ट को नष्ट कर देता है।

clear भी देखें ()।

QVariant QAxBase :: asVariant () const

एक QVariant देता है जो COM ऑब्जेक्ट को लपेटता है। तब वैरिएंट को एक पैरामीटर के रूप में इस्तेमाल किया जा सकता है जैसे कि dynamicCall ()।

[virtual] शून्य QAxBase :: स्पष्ट ()

COM ऑब्जेक्ट को डिस्कनेक्ट करता है और नष्ट कर देता है।

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

शून्य QAxBase :: disableClassInfo ()

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

ध्यान दें कि इस फ़ंक्शन को ऑब्जेक्ट के निर्माण के तुरंत बाद बुलाया जाना चाहिए

शून्य QAxBase :: अक्षम करें ()

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

इवेंट सिंक से कनेक्ट होने पर कुछ ActiveX नियंत्रण अस्थिर हो सकते हैं। OLE ईवेंट प्राप्त करने के लिए आपको अपने ईवेंट सिंक को पंजीकृत करने के लिए मानक COM विधियों का उपयोग करना होगा। कच्ची COM वस्तु तक पहुँच प्राप्त करने के लिए queryInterface () का उपयोग करें।

ध्यान दें कि इस फ़ंक्शन को ऑब्जेक्ट के निर्माण के तुरंत बाद बुलाया जाना चाहिए।

शून्य QAxBase :: disableMetaObject ()

इस ActiveX कंटेनर के लिए मेटा ऑब्जेक्ट जनरेशन अक्षम करता है। यह ईवेंट सिंक और क्लास इंफो जनरेशन को भी निष्क्रिय कर देता है। यदि आप Qt मेटा ऑब्जेक्ट कार्यान्वयन का उपयोग करने का इरादा नहीं करते हैं, तो नियंत्रण की तात्कालिकता को तेज करने के लिए इस फ़ंक्शन को कॉल करें। आप फिर भी dynamicCall कॉल () के माध्यम से ऑब्जेक्ट को कॉल करने में सक्षम होंगे, लेकिन dynamicCall सिग्नल के साथ सिग्नल, स्लॉट और गुण उपलब्ध नहीं होंगे।

OLE स्वचालन के साथ उपयोग किए जाने पर कुछ ActiveX नियंत्रण अस्थिर हो सकते हैं। queryInterface () द्वारा प्रदान किए गए COM इंटरफेस के माध्यम से उन नियंत्रणों का उपयोग करने के लिए मानक COM विधियों का उपयोग करें।

ध्यान दें कि इस फ़ंक्शन को ऑब्जेक्ट के निर्माण के तुरंत बाद बुलाया जाना चाहिए।

QVariant QAxBase :: डायनेमिकल (const char * function , const QVariant & var1 = QVariant &), const QVariant & var2 = QVariant (), const QVariant और var3 = QVariant (), const QVariant & var4 = QVariant () var5 = QVariant (), const QVariant & var6 = QVariant (), const QVariant & var7 = QVariant (), const QVariant & var8 = QVariant ()

COM ऑब्जेक्ट के विधि फ़ंक्शन को कॉल करता है , मापदंडों को पार कर रहा है var1 , var1 , var2 , var3 , var4 , var5 , var6 , var7 और var8 , और विधि द्वारा लौटाया गया मान, या अमान्य QVariant यदि विधि मान वापस नहीं करता है या जब फ़ंक्शन कॉल विफल हुआ।

यदि फ़ंक्शन ऑब्जेक्ट का एक तरीका है, तो स्ट्रिंग को पूर्ण प्रोटोटाइप के रूप में प्रदान किया जाना चाहिए, उदाहरण के लिए जैसा कि QObject::connect में लिखा होगा QObject::connect () कॉल।

activeX->dynamicCall("Navigate(const QString&)", "www.qt-project.org");

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

activeX->dynamicCall("Navigate(\"www.qt-project.org\")");

सभी मापदंडों को तार के रूप में पारित किया जाता है; यह नियंत्रण पर निर्भर करता है कि क्या वे सही ढंग से व्याख्या किए गए हैं, और सही ढंग से टाइप किए गए मापदंडों के साथ प्रोटोटाइप का उपयोग करने की तुलना में धीमी है।

यदि फ़ंक्शन एक संपत्ति है तो स्ट्रिंग को संपत्ति का नाम होना चाहिए। प्रॉपर्टी सेटर को कहा जाता है जब var1 एक वैध QVariant , अन्यथा QVariant कहा जाता है।

activeX->dynamicCall("Value", 5);
QString text = activeX->dynamicCall("Text").toString();

ध्यान दें कि QObject::property () और QObject::setProperty () का उपयोग करके गुण प्राप्त करना और सेट करना तेज़ है।

डायनामिककॉल () का उपयोग ऑब्जेक्ट्स को एक disableMetaObject रैपर के साथ कॉल करने के लिए भी किया जा सकता है, जो प्रदर्शन को महत्वपूर्ण रूप से बेहतर कर सकता है, esp। जब एक स्वचालन प्रक्रिया के दौरान विभिन्न प्रकार की कई अलग-अलग वस्तुओं को कॉल करना। ActiveQt तो मापदंडों को मान्य नहीं करेगा।

डायनेमिकल () के माध्यम से फ़ंक्शन को कॉल करना केवल संभव है जिनके पास QVariant द्वारा समर्थित डेटाटाइप्स के पैरामीटर या रिटर्न मान हैं। समर्थित और असमर्थित डेटाटाइप की सूची के लिए QAxBase वर्ग प्रलेखन देखें। यदि आप पैरामीटर सूची में असमर्थित डेटाटाइप वाले फ़ंक्शन को कॉल करना चाहते हैं, तो उपयुक्त COM इंटरफ़ेस को पुनः प्राप्त करने के लिए, queryInterface () का उपयोग करें और सीधे फ़ंक्शन का उपयोग करें।

IWebBrowser2 *webBrowser = 0;
activeX->queryInterface(IID_IWebBrowser2, (void **)&webBrowser);
if (webBrowser) {
    webBrowser->Navigate2(pvarURL);
    webBrowser->Release();
}

यह भी अधिक कुशल है।

QVariant QAxBase :: डायनेमिककॉल ( कास्ट चार * फ़ंक्शन , QList < QVariant > & vars )

यह एक अतिभारित फंक्शन है।

COM ऑब्जेक्ट के विधि फ़ंक्शन को कॉल करता है , vars में पैरामीटर पास करता है, और विधि द्वारा लौटाए गए मान को लौटाता है। यदि विधि मान वापस नहीं करता है या जब फ़ंक्शन कॉल विफल हो जाता है तो यह फ़ंक्शन अमान्य QVariant ऑब्जेक्ट देता है।

QVariant में QVariant ऑब्जेक्ट्स अपडेट किए जाते हैं जब विधि में पैरामीटर होते हैं।

[signal] शून्य QAxBase :: अपवाद ( int कोड , const QString और स्रोत , const QString और desc , const QString और सहायता )

यह संकेत तब उत्सर्जित होता है जब COM ऑब्जेक्ट OLE स्वचालन इंटरफ़ेस IDispatch का उपयोग करते हुए एक अपवाद फेंकता है। कोड , स्रोत , desc और COM सर्वर द्वारा दिए गए अपवाद के बारे में जानकारी प्रदान करने में मदद करता है और इसका उपयोग अंतिम उपयोगकर्ता को उपयोगी प्रतिक्रिया प्रदान करने के लिए किया जा सकता है। मदद में मदद फ़ाइल और कोष्ठक में मदद संदर्भ आईडी शामिल है, जैसे "फ़ाइल नाम [आईडी]"।

QString QAxBase :: generateDocumentation ()

लिपटे COM ऑब्जेक्ट के लिए प्रलेखन के साथ एक समृद्ध पाठ स्ट्रिंग लौटाता है। स्ट्रिंग को HTML-फ़ाइल में डंप करें, या उदाहरण के लिए एक QTextBrowser विजेट में इसका उपयोग करें।

[virtual protected] बूल QAxBase :: इनिशियलाइज़ (IUnogn ** ptr )

यह वर्चुअल फंक्शन control () द्वारा कहा जाता है और अनुरोधित COM ऑब्जेक्ट बनाता है। ptr ऑब्जेक्ट के IUnogn कार्यान्वयन पर सेट है। यदि फ़ंक्शन आरंभीकरण सफल हुआ तो फ़ंक्शन सही हो जाता है; अन्यथा फ़ंक्शन गलत देता है।

डिफ़ॉल्ट कार्यान्वयन control () द्वारा लौटाए गए स्ट्रिंग की व्याख्या करता है, और initializeRemote (), initializeLicensed () या initializeActive () कहता initializeRemote यदि स्ट्रिंग संबंधित पैटर्न से मेल खाता है। यदि control () एक मौजूदा फ़ाइल का नाम है, तो initializeFromFile () कहा जाता है। यदि कोई प्रतिमान मेल नहीं खाता है, या यदि दूरस्थ या लाइसेंस प्राप्त प्रारंभ विफल रहता है, तो CoCreateInstance का उपयोग सीधे ऑब्जेक्ट बनाने के लिए किया जाता है।

समर्थित पैटर्न के बारे में विवरण के लिए control संपत्ति प्रलेखन देखें।

जब यह फ़ंक्शन वापस आता है, तो ptr में दिए गए इंटरफ़ेस को ठीक एक बार संदर्भित किया जाना चाहिए। उदाहरण के लिए CoCreateInstance द्वारा प्रदान किया गया इंटरफ़ेस पहले से ही संदर्भित है, और इसे फिर से संदर्भित करने की कोई आवश्यकता नहीं है।

[protected] बूल QAxBase :: initializeActive (IUnogn ** ptr )

वर्तमान मशीन पर चलने वाले एक सक्रिय उदाहरण से जुड़ता है, और ptr में चल रहे ऑब्जेक्ट में IUnogn इंटरफ़ेस लौटाता है। यह फ़ंक्शन सफल होने पर वापस लौटता है, अन्यथा झूठे वापस आ जाता है।

इस फ़ंक्शन को initialize () द्वारा नियंत्रित किया जाता है, यदि नियंत्रण स्ट्रिंग में "} और" सबस्ट्रिंग है।

initialize भी देखें ()।

[protected] बूल QAxBase :: initializeFromFile (IUnogn ** ptr )

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

इस फ़ंक्शन को initialize () द्वारा कहा जाता है यदि नियंत्रण स्ट्रिंग एक मौजूदा फ़ाइल का नाम है।

initialize भी देखें ()।

[protected] बूल QAxBase :: initializeLicensed (IUnogn ** ptr )

एक लाइसेंस प्राप्त नियंत्रण का एक उदाहरण बनाता है, और ptr में IUnaware इंटरफ़ेस को ऑब्जेक्ट पर लौटाता है। यह कार्य सफल होने पर सही रिटर्न देता है, अन्यथा झूठे रिटर्न।

इस फ़ंक्शन को initialize () द्वारा नियंत्रित किया जाता है, यदि नियंत्रण स्ट्रिंग में "}:" है। लाइसेंस कुंजी को इस विकल्प का पालन करने की आवश्यकता है।

initialize भी देखें ()।

[protected] बूल QAxBase :: initializeRemote (IUnogn ** ptr )

दूरस्थ सर्वर पर उदाहरण बनाता है, और ptr में IUnogn इंटरफ़ेस को ऑब्जेक्ट पर लौटाता है। यह फ़ंक्शन सफल होने पर वापस लौटता है, अन्यथा झूठे तरीके से लौटता है।

इस फ़ंक्शन को initialize () द्वारा नियंत्रित किया जाता है, यदि कंट्रोल स्ट्रिंग में सबस्ट्रिंग "/ {" है। रिमोट मशीन के बारे में जानकारी सबस्ट्रिंग के सामने प्रदान करने की आवश्यकता है।

initialize भी देखें ()।

बूल QAxBase :: Null () const

यदि इस रैपर द्वारा भरी हुई कोई COM वस्तु नहीं है, तो यह सच है; अन्यथा झूठे लौटते हैं।

control भी देखें

PropertyBag QAxBase :: propertyBag () const

एक नाम देता है: COM ऑब्जेक्ट द्वारा उजागर सभी गुणों का मान मानचित्र।

यह कई गुण व्यक्तिगत रूप से प्राप्त करने की तुलना में अधिक कुशल है यदि COM ऑब्जेक्ट संपत्ति बैग का समर्थन करता है।

चेतावनी: यह गारंटी नहीं है कि COM ऑब्जेक्ट का प्रॉपर्टी बैग कार्यान्वयन सभी गुणों को लौटाता है, या यह कि लौटे हुए गुण IDispatch इंटरफ़ेस के माध्यम से उपलब्ध समान हैं।

यह भी देखें setPropertyBag ()।

[signal] शून्य QAxBase :: propertyChanged (const QString और नाम )

यदि COM ऑब्जेक्ट प्रॉपर्टी नोटिफिकेशन का समर्थन करता है, तो प्रॉपर्टी नाम परिवर्तित होने पर यह संकेत उत्सर्जित होता है।

[virtual] बूल QAxBase :: गुणधर्म (कास्ट चार * प्रोप ) कास्ट

सही है अगर संपत्ति का समर्थन योग्य है; अन्यथा झूठा लौट आता है। डिफ़ॉल्ट रूप से, सभी गुण लेखन योग्य हैं।

चेतावनी: नियंत्रण कार्यान्वयन के आधार पर इस सेटिंग को कुछ गुणों के लिए अनदेखा किया जा सकता है।

यह भी देखें setPropertyWritable () और propertyChanged ()।

लंबी QAxBase :: queryInterface (const QUuid & uuid , void ** iface ) QUuid

COM ऑब्जेक्ट से इंटरफ़ेस का अनुरोध करता है और दिए गए इंटरफ़ेस को iface का मान सेट करता है, या 0 यदि अनुरोधित इंटरफ़ेस प्रदान नहीं किया जा सकता है।

COM ऑब्जेक्ट के QueryInterface कार्यान्वयन का परिणाम देता है।

control भी देखें

QAxObject * QAxBase :: querySubObject (const char * name , const QVariant & var1 = QVariant), const QVariant & var2 = QVariant (), const QVariant & var3 = QVariant (), const QVariant & var4 = QVariant & var4 = QVariant & var5 = QVariant (), const QVariant & var6 = QVariant (), const QVariant & var7 = QVariant (), const QVariant & var8 = QVariant ()

विधि या संपत्ति के नाम द्वारा प्रदान की गई COM ऑब्जेक्ट को लपेटकर QAxObject लिए एक पॉइंटर लौटाता है, मापदंडों को पास करते हुए var1 , var1 , var2 , var3 , var4 , var5 , var6 , var7 और var8

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

यदि नाम एक संपत्ति है तो स्ट्रिंग को संपत्ति का नाम होना चाहिए, और var1 , ... var8 को अनदेखा किया जाता है।

लौटाया गया QAxObject इस ऑब्जेक्ट का एक बच्चा है (जो या तो QAxObject या QAxWidget का प्रकार है), और इस ऑब्जेक्ट को हटा दिए जाने पर हटा दिया जाता है। हालाँकि, अपने आप लौटी हुई वस्तु को हटाना सुरक्षित है, और आपको ऐसा तब करना चाहिए जब आप उप-सूचियों की सूची पर पुनरावृति करें।

COM सक्षम अनुप्रयोगों में आमतौर पर एक वस्तु मॉडल होता है जो अनुप्रयोग के कुछ तत्वों को प्रेषण इंटरफेस के रूप में प्रकाशित करता है। इस विधि का उपयोग ऑब्जेक्ट मॉडल के पदानुक्रम को नेविगेट करने के लिए करें, जैसे

QAxWidget outlook("Outlook.Application");
QAxObject *session = outlook.querySubObject("Session");
if (session) {
    QAxObject *defFolder = session->querySubObject(
                            "GetDefaultFolder(OlDefaultFolders)",
                            "olFolderContacts");
    //...
}

QAxObject * QAxBase :: querySubObject (const char * name , QList < QVariant > & vars )

यह एक अतिभारित फंक्शन है।

QVariant में QVariant ऑब्जेक्ट्स अपडेट किए जाते हैं जब विधि में पैरामीटर होते हैं।

शून्य QAxBase :: setPropertyBag ( PropertyBag और बैग )

बैग में संगत मान के लिए COM ऑब्जेक्ट के गुण सेट करता है।

चेतावनी: आपको केवल प्रॉपर्टी बैग सेट करने चाहिए जो कि propertyBag फ़ंक्शन द्वारा वापस कर दिए गए propertyBag , क्योंकि यह गारंटी नहीं दी जा सकती है कि COM ऑब्जेक्ट का प्रॉपर्टी बैग कार्यान्वयन समान गुणों का समर्थन करता है जो IDispatch इंटरफ़ेस के माध्यम से उपलब्ध हैं।

propertyBag () भी देखें

[virtual] शून्य QAxBase :: setPropertyWritable (कास्ट चार * प्रोप , बूल ओके )

यदि सही है, तो गुण को गुणात्मक में सेट करता है, अन्यथा प्रोप को केवल पढ़ने के लिए सेट करता है। डिफ़ॉल्ट रूप से, सभी गुण लेखन योग्य हैं।

चेतावनी: नियंत्रण कार्यान्वयन के आधार पर इस सेटिंग को कुछ गुणों के लिए अनदेखा किया जा सकता है।

propertyWritable देखें () और propertyChanged ()

[signal] शून्य QAxBase :: संकेत (const QString और नाम , int argc , void * argb )

जब COM ऑब्जेक्ट ईवेंट नाम को जारी करता है तो यह सामान्य संकेत उत्सर्जित हो जाता है। argc ईवेंट (DISPPARAMS.cArgs) द्वारा प्रदान किए गए मापदंडों की संख्या है, और argv पैरामीटर मानों (DISPPARAMS.rgvarg) का सूचक है। ध्यान दें कि पैरामीटर मानों का क्रम चारों ओर है, अर्थात। सरणी का अंतिम तत्व फ़ंक्शन में पहला पैरामीटर है।

void Receiver::slot(const QString &name, int argc, void *argv)
{
    VARIANTARG *params = (VARIANTARG*)argv;
    if (name.startsWith("BeforeNavigate2(")) {
        IDispatch *pDisp = params[argc-1].pdispVal;
        VARIANTARG URL = *params[argc-2].pvarVal;
        VARIANTARG Flags = *params[argc-3].pvarVal;
        VARIANTARG TargetFrameName = *params[argc-4].pvarVal;
        VARIANTARG PostData = *params[argc-5].pvarVal;
        VARIANTARG Headers = *params[argc-6].pvarVal;
        bool *Cancel = params[argc-7].pboolVal;
    }
}

यदि इवेंट में असमर्थित डेटा प्रकारों के पैरामीटर हैं, तो इस सिग्नल का उपयोग करें। अन्यथा, सीधे सिग्नल नाम से कनेक्ट करें

QStringList QAxBase :: verbs () const

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

ध्यान दें कि OLE डिफ़ॉल्ट क्रिया (OLEIVERB_SHOW आदि) सूची में शामिल नहीं हैं।

यह फ़ंक्शन Qt 4.1 में पेश किया गया था।