I've looked all over the place and tried many different ways to call a slot with QMetaObject::invokeMethod whose only argument is a QString&. Here is my code:

QString myString = QString(somePoundDefine);
QMetaObject::invokeMethod(this, "mySlot", Qt::QueuedConnection, Q_ARG(QString&, myString)); //Note that there is NO space between the "QString" and the "&" in the Q_ARG call.

When I run the above code, I get the following printout:
QMetaMethod::invoke: Unable to handle unregistered datatype 'QString&'

Which makes me go to:
http://doc.qt.nokia.com/4.7-snapshot/qmetamethod.html
to read the documentation on that error which says to use qRegisterMetaType().

I've tried a couple different ways of trying to register a QString& data type with no luck.
This may be a case of not seeing the forest for the trees.
Help.