windows: Make sure everything is properly CoInitialized on desktop use
Task-number: QTBUG-61566 Change-Id: I5f8ff2c3e8a841ab8c5a3fb465d0be4b003d7a2b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
This commit is contained in:
parent
dbd70341ea
commit
8f1bd6c6c0
|
@ -133,6 +133,9 @@ QWinRTBluetoothDeviceDiscoveryWorker::QWinRTBluetoothDeviceDiscoveryWorker(QBlue
|
|||
{
|
||||
qRegisterMetaType<QBluetoothDeviceInfo>();
|
||||
|
||||
#ifdef CLASSIC_APP_BUILD
|
||||
CoInitialize(NULL);
|
||||
#endif
|
||||
HRESULT hr = GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Devices_Bluetooth_BluetoothDevice).Get(), &m_deviceStatics);
|
||||
Q_ASSERT_SUCCEEDED(hr);
|
||||
hr = GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Devices_Bluetooth_BluetoothLEDevice).Get(), &m_leDeviceStatics);
|
||||
|
@ -142,6 +145,9 @@ QWinRTBluetoothDeviceDiscoveryWorker::QWinRTBluetoothDeviceDiscoveryWorker(QBlue
|
|||
QWinRTBluetoothDeviceDiscoveryWorker::~QWinRTBluetoothDeviceDiscoveryWorker()
|
||||
{
|
||||
stop();
|
||||
#ifdef CLASSIC_APP_BUILD
|
||||
CoUninitialize();
|
||||
#endif
|
||||
}
|
||||
|
||||
void QWinRTBluetoothDeviceDiscoveryWorker::start()
|
||||
|
|
|
@ -73,6 +73,9 @@ QHash<QBluetoothServerPrivate *, int> __fakeServerPorts;
|
|||
QBluetoothServerPrivate::QBluetoothServerPrivate(QBluetoothServiceInfo::Protocol sType)
|
||||
: maxPendingConnections(1), serverType(sType), m_lastError(QBluetoothServer::NoError), socket(0)
|
||||
{
|
||||
#ifdef CLASSIC_APP_BUILD
|
||||
CoInitialize(NULL);
|
||||
#endif
|
||||
socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);
|
||||
}
|
||||
|
||||
|
@ -82,6 +85,12 @@ QBluetoothServerPrivate::~QBluetoothServerPrivate()
|
|||
__fakeServerPorts.remove(this);
|
||||
if (socket)
|
||||
delete socket;
|
||||
#ifdef CLASSIC_APP_BUILD
|
||||
// If we do not reset that pointer, socketListener will go out of scope after CoUninitialize was
|
||||
// called, which will lead to a crash.
|
||||
socketListener = nullptr;
|
||||
CoUninitialize();
|
||||
#endif
|
||||
}
|
||||
|
||||
bool QBluetoothServerPrivate::isListening() const
|
||||
|
|
Loading…
Reference in New Issue