Changeset 561 for trunk/src/activeqt/control/qaxserverbase.cpp
- Timestamp:
- Feb 11, 2010, 11:19:06 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property svn:mergeinfo
set to (toggle deleted branches)
/branches/vendor/nokia/qt/4.6.1 merged eligible /branches/vendor/nokia/qt/current merged eligible /branches/vendor/trolltech/qt/current 3-149
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
trunk/src/activeqt/control/qaxserverbase.cpp
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the ActiveQt framework of the Qt Toolkit. … … 789 790 while (!axbase && baseHwnd) { 790 791 #ifdef GWLP_USERDATA 791 QT_WA({ 792 axbase = (QAxServerBase*)GetWindowLongPtrW(baseHwnd, GWLP_USERDATA); 793 }, { 794 axbase = (QAxServerBase*)GetWindowLongPtrA(baseHwnd, GWLP_USERDATA); 795 }); 792 axbase = (QAxServerBase*)GetWindowLongPtr(baseHwnd, GWLP_USERDATA); 796 793 #else 797 QT_WA({ 798 axbase = (QAxServerBase*)GetWindowLongW(baseHwnd, GWL_USERDATA); 799 }, { 800 axbase = (QAxServerBase*)GetWindowLongA(baseHwnd, GWL_USERDATA); 801 }); 794 axbase = (QAxServerBase*)GetWindowLong(baseHwnd, GWL_USERDATA); 802 795 #endif 803 796 … … 906 899 // hook into eventloop; this allows a server to create his own QApplication object 907 900 if (!qax_hhook && qax_ownQApp) { 908 QT_WA({ 909 qax_hhook = SetWindowsHookExW(WH_GETMESSAGE, axs_FilterProc, 0, GetCurrentThreadId()); 910 }, { 911 qax_hhook = SetWindowsHookExA(WH_GETMESSAGE, axs_FilterProc, 0, GetCurrentThreadId()); 912 }); 901 qax_hhook = SetWindowsHookEx(WH_GETMESSAGE, axs_FilterProc, 0, GetCurrentThreadId()); 913 902 } 914 903 … … 984 973 HRESULT WINAPI CreateInstanceLic(IUnknown *pUnkOuter, IUnknown *pUnkReserved, REFIID iid, BSTR bKey, PVOID *ppObject) 985 974 { 986 QString licenseKey = QString::from Utf16((const ushort *)bKey);975 QString licenseKey = QString::fromWCharArray(bKey); 987 976 if (!qAxFactory()->validateLicenseKey(className, licenseKey)) 988 977 return CLASS_E_NOTLICENSED; … … 1304 1293 internalBind(); 1305 1294 if (isWidget) { 1306 if (!stayTopLevel) { 1307 QEvent e(QEvent::EmbeddingControl); 1308 QApplication::sendEvent(qt.widget, &e); 1309 QT_WA({ 1310 ::SetWindowLongW(qt.widget->winId(), GWL_STYLE, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); 1311 }, { 1312 ::SetWindowLongA(qt.widget->winId(), GWL_STYLE, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); 1313 }); 1314 } 1295 if (!stayTopLevel) { 1296 QEvent e(QEvent::EmbeddingControl); 1297 QApplication::sendEvent(qt.widget, &e); 1298 ::SetWindowLong(qt.widget->winId(), GWL_STYLE, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); 1299 } 1315 1300 qt.widget->setAttribute(Qt::WA_QuitOnClose, false); 1316 1301 qt.widget->move(0, 0); … … 1369 1354 { 1370 1355 if (uMsg == WM_CREATE) { 1371 QAxServerBase *that; 1372 QT_WA({ 1373 CREATESTRUCTW *cs = (CREATESTRUCTW*)lParam; 1374 that = (QAxServerBase*)cs->lpCreateParams; 1375 }, { 1376 CREATESTRUCTA *cs = (CREATESTRUCTA*)lParam; 1377 that = (QAxServerBase*)cs->lpCreateParams; 1378 }); 1356 CREATESTRUCT *cs = (CREATESTRUCT*)lParam; 1357 QAxServerBase *that = (QAxServerBase*)cs->lpCreateParams; 1379 1358 1380 1359 #ifdef GWLP_USERDATA 1381 QT_WA({ 1382 SetWindowLongPtrW(hWnd, GWLP_USERDATA, (LONG_PTR)that); 1383 }, { 1384 SetWindowLongPtrA(hWnd, GWLP_USERDATA, (LONG_PTR)that); 1385 }); 1360 SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR)that); 1386 1361 #else 1387 QT_WA({ 1388 SetWindowLongW(hWnd, GWL_USERDATA, (LONG)that); 1389 }, { 1390 SetWindowLongA(hWnd, GWL_USERDATA, (LONG)that); 1391 }); 1362 SetWindowLong(hWnd, GWL_USERDATA, (LONG)that); 1392 1363 #endif 1393 1364 1394 that->m_hWnd = hWnd; 1395 1396 QT_WA({ 1397 return ::DefWindowProcW(hWnd, uMsg, wParam, lParam); 1398 }, { 1399 return ::DefWindowProcA(hWnd, uMsg, wParam, lParam); 1400 }); 1365 that->m_hWnd = hWnd; 1366 1367 return ::DefWindowProc(hWnd, uMsg, wParam, lParam); 1401 1368 } 1402 1369 … … 1404 1371 1405 1372 #ifdef GWLP_USERDATA 1406 QT_WA({ 1407 that = (QAxServerBase*)GetWindowLongPtrW(hWnd, GWLP_USERDATA); 1408 }, { 1409 that = (QAxServerBase*)GetWindowLongPtrA(hWnd, GWLP_USERDATA); 1410 }); 1373 that = (QAxServerBase*)GetWindowLongPtr(hWnd, GWLP_USERDATA); 1411 1374 #else 1412 QT_WA({ 1413 that = (QAxServerBase*)GetWindowLongW(hWnd, GWL_USERDATA); 1414 }, { 1415 that = (QAxServerBase*)GetWindowLongA(hWnd, GWL_USERDATA); 1416 }); 1375 that = (QAxServerBase*)GetWindowLong(hWnd, GWL_USERDATA); 1417 1376 #endif 1418 1377 … … 1564 1523 } 1565 1524 1566 QT_WA({ 1567 return ::DefWindowProcW(hWnd, uMsg, wParam, lParam); 1568 }, { 1569 return ::DefWindowProcA(hWnd, uMsg, wParam, lParam); 1570 }); 1525 return ::DefWindowProc(hWnd, uMsg, wParam, lParam); 1571 1526 } 1572 1527 … … 1584 1539 cn += QString::number((int)ActiveXProc); 1585 1540 if (!atom) { 1586 QT_WA({ 1587 WNDCLASSW wcTemp; 1588 wcTemp.style = CS_DBLCLKS; 1589 wcTemp.cbClsExtra = 0; 1590 wcTemp.cbWndExtra = 0; 1591 wcTemp.hbrBackground = 0; 1592 wcTemp.hCursor = 0; 1593 wcTemp.hIcon = 0; 1594 wcTemp.hInstance = hInst; 1595 wcTemp.lpszClassName = (wchar_t*)cn.utf16(); 1596 wcTemp.lpszMenuName = 0; 1597 wcTemp.lpfnWndProc = ActiveXProc; 1598 1599 atom = RegisterClassW(&wcTemp); 1600 }, { 1601 QByteArray cna = cn.toLatin1(); 1602 WNDCLASSA wcTemp; 1603 wcTemp.style = CS_DBLCLKS; 1604 wcTemp.cbClsExtra = 0; 1605 wcTemp.cbWndExtra = 0; 1606 wcTemp.hbrBackground = 0; 1607 wcTemp.hCursor = 0; 1608 wcTemp.hIcon = 0; 1609 wcTemp.hInstance = hInst; 1610 wcTemp.lpszClassName = cna.data(); 1611 wcTemp.lpszMenuName = 0; 1612 wcTemp.lpfnWndProc = ActiveXProc; 1613 1614 atom = RegisterClassA(&wcTemp); 1615 }); 1541 WNDCLASS wcTemp; 1542 wcTemp.style = CS_DBLCLKS; 1543 wcTemp.cbClsExtra = 0; 1544 wcTemp.cbWndExtra = 0; 1545 wcTemp.hbrBackground = 0; 1546 wcTemp.hCursor = 0; 1547 wcTemp.hIcon = 0; 1548 wcTemp.hInstance = hInst; 1549 wcTemp.lpszClassName = (wchar_t*)cn.utf16(); 1550 wcTemp.lpszMenuName = 0; 1551 wcTemp.lpfnWndProc = ActiveXProc; 1552 1553 atom = RegisterClass(&wcTemp); 1616 1554 } 1617 1555 LeaveCriticalSection(&createWindowSection); … … 1620 1558 1621 1559 Q_ASSERT(!m_hWnd); 1622 HWND hWnd = 0; 1623 QT_WA({ 1624 hWnd = ::CreateWindowW((wchar_t*)cn.utf16(), 0, 1625 WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 1626 rcPos.left, rcPos.top, rcPos.right - rcPos.left, 1627 rcPos.bottom - rcPos.top, hWndParent, 0, hInst, this); 1628 }, { 1629 hWnd = ::CreateWindowA(cn.toLatin1().data(), 0, 1630 WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 1631 rcPos.left, rcPos.top, rcPos.right - rcPos.left, 1632 rcPos.bottom - rcPos.top, hWndParent, 0, hInst, this); 1633 }); 1560 HWND hWnd = ::CreateWindow((wchar_t*)cn.utf16(), 0, 1561 WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 1562 rcPos.left, rcPos.top, rcPos.right - rcPos.left, 1563 rcPos.bottom - rcPos.top, hWndParent, 0, hInst, this); 1634 1564 1635 1565 Q_ASSERT(m_hWnd == hWnd); … … 1677 1607 actionMap.insert(itemId, action); 1678 1608 } 1679 QT_WA({ 1680 AppendMenuW(popupMenu, flags, itemId, (TCHAR*)action->text().utf16()); 1681 }, { 1682 AppendMenuA(popupMenu, flags, itemId, action->text().toLocal8Bit()); 1683 }); 1609 AppendMenu(popupMenu, flags, itemId, (const wchar_t *)action->text().utf16()); 1684 1610 } 1685 1611 if (oldMenu) … … 1727 1653 actionMap.insert(itemId, action); 1728 1654 } 1729 QT_WA({ 1730 AppendMenuW(hmenuShared, flags, itemId, (TCHAR*)action->text().utf16()); 1731 } , { 1732 AppendMenuA(hmenuShared, flags, itemId, action->text().toLocal8Bit()); 1733 }); 1655 AppendMenu(hmenuShared, flags, itemId, (const wchar_t *)action->text().utf16()); 1734 1656 } 1735 1657 … … 2398 2320 return res; 2399 2321 2400 name = QString::from Utf16((const ushort *)bname).toLatin1();2322 name = QString::fromWCharArray(bname).toLatin1(); 2401 2323 SysFreeString(bname); 2402 2324 } … … 2447 2369 if (index == -1) { 2448 2370 nameLength = name.length(); 2449 name += "(";2371 name += '('; 2450 2372 // no parameter - shortcut 2451 2373 if (!pDispParams->cArgs) 2452 index = mo->indexOfSlot((name + ")"));2374 index = mo->indexOfSlot((name + ')')); 2453 2375 // search 2454 2376 if (index == -1) { … … 2464 2386 QRegExp regexp(QLatin1String("_([0-9])\\(")); 2465 2387 if (regexp.lastIndexIn(QString::fromLatin1(name.constData())) != -1) { 2466 name = name.left(name.length() - regexp.cap(0).length()) + "(";2388 name = name.left(name.length() - regexp.cap(0).length()) + '('; 2467 2389 int overload = regexp.cap(1).toInt() + 1; 2468 2390 … … 2560 2482 } else { 2561 2483 argv[p + 1] = const_cast<void*>(varp[p + 1].constData()); 2562 if (ptype.endsWith( "*")) {2484 if (ptype.endsWith('*')) { 2563 2485 argv_pointer[p + 1] = argv[p + 1]; 2564 2486 argv[p + 1] = argv_pointer + p + 1; … … 2591 2513 argv[0] = const_cast<void*>(varp[0].constData()); 2592 2514 } 2593 if (type.endsWith( "*")) {2515 if (type.endsWith('*')) { 2594 2516 argv_pointer[0] = argv[0]; 2595 2517 argv[0] = argv_pointer; … … 2800 2722 QByteArray qtarray; 2801 2723 if (hres == S_OK) { 2802 QString streamName = QString::from Utf16((const ushort *)stat.pwcsName);2724 QString streamName = QString::fromWCharArray(stat.pwcsName); 2803 2725 CoTaskMemFree(stat.pwcsName); 2804 2726 openAsText = streamName == QLatin1String("SomeStreamName"); … … 2941 2863 streamName += QLatin1String("_Stream4.2"); 2942 2864 2943 pStg->OpenStream((const WCHAR*)streamName.utf16(), 0, STGM_READ | STGM_SHARE_EXCLUSIVE, 0, &spStream);2865 pStg->OpenStream((const wchar_t *)streamName.utf16(), 0, STGM_READ | STGM_SHARE_EXCLUSIVE, 0, &spStream); 2944 2866 if (!spStream) // support for streams saved with 4.1 and earlier 2945 2867 pStg->OpenStream(L"SomeStreamName", 0, STGM_READ | STGM_SHARE_EXCLUSIVE, 0, &spStream); … … 2964 2886 streamName += QLatin1String("_Stream4.2"); 2965 2887 2966 pStg->CreateStream((const WCHAR*)streamName.utf16(), STGM_CREATE | STGM_WRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &spStream);2888 pStg->CreateStream((const wchar_t *)streamName.utf16(), STGM_CREATE | STGM_WRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &spStream); 2967 2889 if (!spStream) 2968 2890 return E_FAIL; … … 3080 3002 return E_NOTIMPL; 3081 3003 3082 currentFileName = QString::from Utf16(reinterpret_cast<const ushort *>(fileName));3004 currentFileName = QString::fromWCharArray(fileName); 3083 3005 return S_OK; 3084 3006 } … … 3098 3020 return E_OUTOFMEMORY; 3099 3021 3100 *currentFile = static_cast< WCHAR*>(malloc->Alloc(currentFileName.length() * 2));3022 *currentFile = static_cast<wchar_t *>(malloc->Alloc(currentFileName.length() * 2)); 3101 3023 malloc->Release(); 3102 3024 memcpy(*currentFile, currentFileName.unicode(), currentFileName.length() * 2); … … 3118 3040 } 3119 3041 3120 QString loadFileName = QString::from Utf16(reinterpret_cast<const ushort *>(fileName));3042 QString loadFileName = QString::fromWCharArray(fileName); 3121 3043 QString fileExtension = loadFileName.mid(loadFileName.lastIndexOf(QLatin1Char('.')) + 1); 3122 3044 QFile file(loadFileName); … … 3163 3085 } 3164 3086 3165 QString saveFileName = QString::from Utf16(reinterpret_cast<const ushort *>(fileName));3087 QString saveFileName = QString::fromWCharArray(fileName); 3166 3088 QString fileExtension = saveFileName.mid(saveFileName.lastIndexOf(QLatin1Char('.')) + 1); 3167 3089 QFile file(saveFileName); … … 3221 3143 bool bDeleteDC = false; 3222 3144 if (!hicTargetDev) { 3223 hicTargetDev = ::CreateDC A("DISPLAY", NULL, NULL, NULL);3145 hicTargetDev = ::CreateDC(L"DISPLAY", NULL, NULL, NULL); 3224 3146 bDeleteDC = (hicTargetDev != hdcDraw); 3225 3147 } … … 3384 3306 if (var.vt != VT_BSTR || !isWidget) 3385 3307 break; 3386 qt.widget->setWindowTitle(QString::from Utf16((const ushort *)var.bstrVal));3308 qt.widget->setWindowTitle(QString::fromWCharArray(var.bstrVal)); 3387 3309 break; 3388 3310 case DISPID_AMBIENT_FONT: … … 3582 3504 { 3583 3505 if (pMsg->message != WM_KEYDOWN || !isWidget) 3584 3506 return S_FALSE; 3585 3507 3586 3508 DWORD dwKeyMod = 0; 3587 3509 if (::GetKeyState(VK_SHIFT) < 0) 3588 3510 dwKeyMod |= 1; // KEYMOD_SHIFT 3589 3511 if (::GetKeyState(VK_CONTROL) < 0) 3590 3512 dwKeyMod |= 2; // KEYMOD_CONTROL 3591 3513 if (::GetKeyState(VK_MENU) < 0) 3592 3514 dwKeyMod |= 4; // KEYMOD_ALT 3593 3515 3594 3516 switch (LOWORD(pMsg->wParam)) { 3595 3517 case VK_TAB: 3596 3597 3598 3518 if (isUIActive) { 3519 bool shift = ::GetKeyState(VK_SHIFT) < 0; 3520 bool giveUp = true; 3599 3521 QWidget *curFocus = qt.widget->focusWidget(); 3600 3522 if (curFocus) { 3601 3523 if (shift) { 3602 3524 if (!curFocus->isWindow()) { 3603 3525 QWidget *nextFocus = curFocus->nextInFocusChain(); … … 3617 3539 giveUp = false; 3618 3540 ((HackWidget*)curFocus)->focusNextPrevChild(false); 3541 curFocus->window()->setAttribute(Qt::WA_KeyboardFocusChange); 3619 3542 } 3620 3543 } 3621 3544 } else { 3622 3545 QWidget *nextFocus = curFocus; 3623 3546 while (1) { … … 3628 3551 giveUp = false; 3629 3552 ((HackWidget*)curFocus)->focusNextPrevChild(true); 3553 curFocus->window()->setAttribute(Qt::WA_KeyboardFocusChange); 3630 3554 break; 3631 3555 } 3632 3556 } 3633 3557 } 3634 3558 } 3635 3636 3637 3638 3639 3640 3641 3642 3643 3559 if (giveUp) { 3560 HWND hwnd = ::GetParent(m_hWnd); 3561 ::SetFocus(hwnd); 3562 } else { 3563 return S_OK; 3564 } 3565 3566 } 3567 break; 3644 3568 3645 3569 case VK_LEFT: … … 3647 3571 case VK_UP: 3648 3572 case VK_DOWN: 3649 3650 3651 3573 if (isUIActive) 3574 return S_FALSE; 3575 break; 3652 3576 3653 3577 default: 3654 3578 if (isUIActive && qt.widget->focusWidget()) { 3655 3579 int state = Qt::NoButton; 3656 3657 3658 3659 3660 3661 3662 3663 3580 if (dwKeyMod & 1) 3581 state |= Qt::ShiftModifier; 3582 if (dwKeyMod & 2) 3583 state |= Qt::ControlModifier; 3584 if (dwKeyMod & 4) 3585 state |= Qt::AltModifier; 3586 3587 int key = pMsg->wParam; 3664 3588 if (!(key >= 'A' && key <= 'Z') && !(key >= '0' && key <= '9')) 3665 3589 key = qt_translateKeyCode(pMsg->wParam); 3666 3590 3667 3668 3669 3670 3671 3672 3673 3591 QKeyEvent override(QEvent::ShortcutOverride, key, (Qt::KeyboardModifiers)state); 3592 override.ignore(); 3593 QApplication::sendEvent(qt.widget->focusWidget(), &override); 3594 if (override.isAccepted()) 3595 return S_FALSE; 3596 } 3597 break; 3674 3598 } 3675 3599 3676 3600 if (!m_spClientSite) 3677 3601 return S_FALSE; 3678 3602 3679 3603 IOleControlSite *controlSite = 0; 3680 3604 m_spClientSite->QueryInterface(IID_IOleControlSite, (void**)&controlSite); 3681 3605 if (!controlSite) 3682 return S_FALSE; 3683 3606 return S_FALSE; 3607 bool resetUserData = false; 3608 // set server type in the user-data of the window. 3609 #ifdef GWLP_USERDATA 3610 LONG_PTR serverType = QAX_INPROC_SERVER; 3611 #else 3612 LONG serverType = QAX_INPROC_SERVER; 3613 #endif 3614 if (qAxOutProcServer) 3615 serverType = QAX_OUTPROC_SERVER; 3616 #ifdef GWLP_USERDATA 3617 LONG_PTR oldData = SetWindowLongPtr(pMsg->hwnd, GWLP_USERDATA, serverType); 3618 #else 3619 LONG oldData = SetWindowLong(pMsg->hwnd, GWL_USERDATA, serverType); 3620 #endif 3684 3621 HRESULT hres = controlSite->TranslateAcceleratorW(pMsg, dwKeyMod); 3685 3686 3622 controlSite->Release(); 3687 3623 // reset the user-data for the window. 3624 #ifdef GWLP_USERDATA 3625 SetWindowLongPtr(pMsg->hwnd, GWLP_USERDATA, oldData); 3626 #else 3627 SetWindowLong(pMsg->hwnd, GWL_USERDATA, oldData); 3628 #endif 3688 3629 return hres; 3689 3630 }
Note:
See TracChangeset
for help on using the changeset viewer.