
#include <QApplication>

#ifndef QT_QAXSERVER_LIB
#error Expected QT_QAXSERVER_LIB
#endif

#include <QAxFactory>

class MyObject : public QObject
{
 Q_OBJECT
public:
 MyObject(QObject *parent = 0)
     : QObject(parent)
 {
 }
};

QAXFACTORY_DEFAULT(MyObject,
                    "{4dc3f340-a6f7-44e4-a79b-3e9217685fbd}",
                    "{9ee49617-7d5c-441a-b833-4b068d41d751}",
                    "{13eca64b-ee2a-4f3c-aa04-5d9d975779a7}",
                    "{ce947ee3-0403-4fdc-895a-4fe779344b46}",
                    "{8de435ce-8d2a-46ac-b3b3-cb800d0547c7}");

int main(int argc, char **argv)
{
  QApplication app(argc, argv);

  QAxFactory::isServer();

  return app.exec();
}

#include "activeqtexe.moc"
