1

Qt のソース コードを参照して実際のシステム コールを見つけようとしましたが、Qt は MSDN に記載されている Windows API を使用していないようです。たとえば、"GetClipboardData" のソースを grep すると、次の 2 つのファイルで結果が返されます。

qclipboard_win.cpp:

#if defined(Q_OS_WINCE)
...
HANDLE clipData = GetClipboardData(CF_TEXT)

qaxserverbase.cpp:

STDMETHOD(GetClipboardData)(DWORD dwReserved, IDataObject** ppDataObject);
...
HRESULT WINAPI QAxServerBase::GetClipboardData(DWORD, IDataObject**)
{
    return E_NOTIMPL;
}

および「SetClipboardData」:

qclipboard_win.cpp:

#if defined(Q_OS_WINCE)
...
result = SetClipboardData(CF_UNICODETEXT, wcsdup(reinterpret_cast<const wchar_t *> (data->text().utf16()))) != NULL;

Win CE/Mobile 向けに宣言されているため、どちらも役に立たないようです。

4

1 に答える 1

3

私のQt(4.8.1)はOleSetClipboardOleGetClipboardを使用しています。#if defined(Q_OS_WINCE)Qt が#define OleSetClipboard QtCeSetClipboardandを使用する場合にのみ、通常のウィンドウでは行に到達することはありません#define OleGetClipboard QtCeGetClipboard。それ以外の場合は、これらの関数のシステム提供バージョンを使用します。

ちょっと見にくかったので失礼します(;_ #if defined;)

少なくとも私の Qt バージョンではそうです。qt、特にその内部について話している場合は、バージョンについて言及する必要がありますよね?

于 2012-05-26T02:27:22.147 に答える