Move the REGISTERED macro check to the front of the ctkServiceEvent file.
It's should return T() but QVariant().
Add the lost Q_D(const PluginTracker); in ctkPluginTracker<T>::isEmpty()
qRegisterMetaType ctkServiceReference and QSharedPointer<ctkPlugin>, because the weakness of Qt MetaType system, we need to
register type early.
Break the #include <QtSql> into
#include <QLibrary>
#include <QSqlQuery>
#include <QDebug>
#include <QSqlError>
#include <QPluginLoader>
#include <QDirIterator>
because QtSql pulls the <Windows.h> and that will define the REGISTERED macro.
Use unicode version FormatMessageW in ctkPluginFrameworkLauncher::appendPathEnv
Use ascii ' instead of unicode ’ in file ctkEventAdmin.h
Work around different wchar_t settings.
Merge branch 'plugin-fw-fixes'

* plugin-fw-fixes:
  Work around different wchar_t settings.
  Use ascii ' instead of unicode ’ in file ctkEventAdmin.h
  Use unicode version FormatMessageW in ctkPluginFrameworkLauncher::appendPathEnv
  Break the #include <QtSql> into #include <QLibrary> #include <QSqlQuery> #include <QDebug> #include <QSqlError> #include <QPluginLoader> #include <QDirIterator> because QtSql pulls the <Windows.h> and that will define the REGISTERED macro.
  qRegisterMetaType ctkServiceReference and QSharedPointer<ctkPlugin>, because the weakness of Qt MetaType system, we need to register type early.
  Add the lost Q_D(const PluginTracker); in ctkPluginTracker<T>::isEmpty()
  It's should return T() but QVariant().
  Move the REGISTERED macro check to the front of the ctkServiceEvent file.