Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QT6.5 依赖缺失(QT问题统一在这里回复) #71

Open
46 of 50 tasks
IULOVE opened this issue Feb 25, 2024 · 5 comments · Fixed by #85
Open
46 of 50 tasks

QT6.5 依赖缺失(QT问题统一在这里回复) #71

IULOVE opened this issue Feb 25, 2024 · 5 comments · Fixed by #85

Comments

@IULOVE
Copy link

IULOVE commented Feb 25, 2024

背景

我知道这不是yy-thunks 的问题,但是我 https://github.com/cxxzhang/qt6_5_for_xp 这里带的yy-thunks就不会依赖d3d11 ,这个的yy-thunks比原版的大是被他修改过的吗?

准备通过逆向手段分析上述修改版YY-Thunk obj文件,取其精华化。

需要处理的函数列表

Ncrypt.dll(cxxzhang分支下直接返回了失败,因为这是重要功能,没有直接采纳)

  • NCryptFreeObject
  • NCryptGetProperty
  • NCryptSignHash

Shell32.dll(cxxzhang分支下直接返回了失败,但是直觉感觉这二个接口应该可以模拟)

d3d9.dll

  • Direct3DCreate9Ex 不存在时返回失败

d3d11.dll

  • D3D11CreateDevice 不存在时返回失败

DbgHelp.dll

  • SymSetSearchPathW 调用SymSetSearchPath
  • SymGetSearchPathW 调用SymGetSearchPath

dwrite.dll

  • DWriteCreateFactory 不存在时返回失败

dxgi.dll

  • CreateDXGIFactory1 不存在时返回失
  • CreateDXGIFactory2

dxva2.dll

  • DXVA2CreateDirect3DDeviceManager9 不存在时返回失败
  • DXVA2CreateVideoService 不存在时返回失败

uiautomationcore.dll

  • UiaClientsAreListening
  • UiaHostProviderFromHwnd
  • UiaRaiseAutomationEvent

user32.dll

  • ChangeWindowMessageFilterEx 调用 ChangeWindowMessageFilter
  • ChangeWindowMessageFilter 返回成功
  • UpdateLayeredWindowIndirect 调用UpdateLayeredWindow
  • AddClipboardFormatListener 返回成功
  • RemoveClipboardFormatListener 返回成功
  • RegisterPowerSettingNotification 返回成功
  • UnregisterPowerSettingNotification 返回成功
  • DisplayConfigGetDeviceInfo 返回失败
  • GetDisplayConfigBufferSizes 返回失败
  • QueryDisplayConfig 返回失败
  • AreDpiAwarenessContextsEqual
  • EnableNonClientDpiScaling
  • GetAwarenessFromDpiAwarenessContext
  • GetPointerDeviceRects
  • GetPointerFrameTouchInfo
  • GetPointerFrameTouchInfoHistory
  • GetPointerInfo
  • GetPointerPenInfoHistory
  • GetThreadDpiAwarenessContext
  • GetWindowDpiAwarenessContext
  • SetDisplayAutoRotationPreferences
  • SkipPointerFrameMessages
  • InitializeTouchInjection
  • InjectTouchInput

uxtheme.dll

  • DrawThemeTextEx
  • GetThemeTransitionDuration
  • SetWindowThemeAttribute

iphlpapi.dll

  • ConvertInterfaceLuidToGuid 调用 GetIfEntry
  • ConvertInterfaceLuidToIndex Index等效Luid

kernel32.dll

  • SetProcessDEPPolicy NtSetInformationProcess
  • GetSystemDEPPolicy 直接返回始终关闭
  • GetCurrentPackageFullName

api-ms-win-shcore-scaling-l1-1-1.dll

  • GetProcessDpiAwareness
@mingkuang-Chuyu
Copy link
Collaborator

是的,你提供的github仓库里的YY-Thunks带了try_get_module_d3d11之类的。很明显不是我这边的原版。

但是目标作者没有提供修改后的YY-Thunks源代码……

@mingkuang-Chuyu mingkuang-Chuyu changed the title 编译qt5.15.12 依赖d3d11 qt5.15.12 依赖d3d11等XP不支持的API May 20, 2024
mingkuang-Chuyu added a commit that referenced this issue May 20, 2024
  - 添加 SymSetSearchPathW
  - 添加 SymGetSearchPathW
mingkuang-Chuyu added a commit that referenced this issue May 20, 2024
  - 添加 ConvertInterfaceLuidToIndex
  - 添加 ConvertInterfaceLuidToGuid
mingkuang-Chuyu added a commit that referenced this issue May 20, 2024
  - 添加 SetProcessDEPPolicy
  - 添加 GetSystemDEPPolicy
mingkuang-Chuyu added a commit that referenced this issue May 20, 2024
  - 添加 Direct3DCreate9Ex
  - 添加 D3D11CreateDevice
  - 添加 DWriteCreateFactory
  - 添加 CreateDXGIFactory1
  - 添加 DXVA2CreateVideoService
  - 添加 UiaClientsAreListening
  - 添加 UiaHostProviderFromHwnd
  - 添加 UiaRaiseAutomationEvent
  - 添加 UiaRaiseAutomationPropertyChangedEvent
  - 添加 UiaReturnRawElementProvider
  - 添加 DrawThemeTextEx
  - 添加 GetThemeTransitionDuration
  - 添加 SetWindowThemeAttribute
@mingkuang-Chuyu mingkuang-Chuyu changed the title qt5.15.12 依赖d3d11等XP不支持的API QT6.5 依赖d3d11等XP不支持的API May 26, 2024
mingkuang-Chuyu added a commit that referenced this issue May 26, 2024
  - 添加 Shell_NotifyIconGetRect
  - 添加 SHGetStockIconInfo
mingkuang-Chuyu added a commit that referenced this issue May 26, 2024
  - 添加 Shell_NotifyIconGetRect
  - 添加 SHGetStockIconInfo
@lygstate
Copy link
Contributor

GetThemePartSize

#if (YY_Thunks_Support_Version < NTDDI_WIN6)

// Windows Vista [desktop apps only]
// Windows Server 2008 [desktop apps only]
__DEFINE_THUNK(
    uxtheme,
    28,
    HRESULT,
    STDAPICALLTYPE,
    GetThemePartSize,
        _In_ HTHEME hTheme,
        _In_opt_ HDC hdc,
        _In_ int iPartId,
        _In_ int iStateId,
        _In_opt_ LPCRECT prc,
        _In_ enum THEMESIZE eSize,
        _Out_ SIZE *psz)
{
    if (auto const pGetThemePartSize = try_get_GetThemePartSize())
    {
        return pGetThemePartSize(hTheme, hdc, iPartId, iStateId, prc, eSize, psz);
    }

    return __HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED);
}

#endif // (YY_Thunks_Support_Version < NTDDI_WIN6)

@mingkuang-Chuyu
Copy link
Collaborator

@lygstate 我本地的XP SP3这个GetThemePartSize导出函数是存在的。

@mingkuang-Chuyu
Copy link
Collaborator

#111

@mingkuang-Chuyu mingkuang-Chuyu changed the title QT6.5 依赖d3d11等XP不支持的API QT6.5 依赖缺失(QT问题统一在这里回复) Aug 8, 2024
mingkuang-Chuyu pushed a commit that referenced this issue Aug 28, 2024
  - 添加 CreateDXGIFactory2
  - 添加 InitializeTouchInjection
  - 添加 InjectTouchInput
  - 添加 GetCurrentPackageFullName
  - 添加 GetProcessDpiAwareness
  - 添加 GetAwarenessFromDpiAwarenessContext
  - 添加 AreDpiAwarenessContextsEqual
  - 添加 EnableNonClientDpiScaling
mingkuang-Chuyu pushed a commit that referenced this issue Aug 28, 2024
  - 添加 CreateDXGIFactory2
  - 添加 InitializeTouchInjection
  - 添加 InjectTouchInput
  - 添加 GetCurrentPackageFullName
  - 添加 GetProcessDpiAwareness
  - 添加 GetAwarenessFromDpiAwarenessContext
  - 添加 AreDpiAwarenessContextsEqual
  - 添加 EnableNonClientDpiScaling
mingkuang-Chuyu pushed a commit that referenced this issue Aug 28, 2024
  - 添加 CreateDXGIFactory2
  - 添加 InitializeTouchInjection
  - 添加 InjectTouchInput
  - 添加 GetCurrentPackageFullName
  - 添加 GetProcessDpiAwareness
  - 添加 GetAwarenessFromDpiAwarenessContext
  - 添加 AreDpiAwarenessContextsEqual
  - 添加 EnableNonClientDpiScaling
mingkuang-Chuyu added a commit that referenced this issue Sep 3, 2024
  - 添加 GetPointerFrameTouchInfo
  - 添加 GetPointerFrameTouchInfoHistory
  - 添加 GetPointerInfo
  - 添加 GetPointerPenInfoHistory
  - 添加 SkipPointerFrameMessages
  - 添加 GetThreadDpiAwarenessContext
  - 添加 GetWindowDpiAwarenessContext
  - 添加 GetDisplayAutoRotationPreferences
  - 添加 SetDisplayAutoRotationPreferences
mingkuang-Chuyu pushed a commit that referenced this issue Sep 3, 2024
  - 添加 CreateDXGIFactory2
  - 添加 InitializeTouchInjection
  - 添加 InjectTouchInput
  - 添加 GetCurrentPackageFullName
  - 添加 GetProcessDpiAwareness
  - 添加 GetAwarenessFromDpiAwarenessContext
  - 添加 AreDpiAwarenessContextsEqual
  - 添加 EnableNonClientDpiScaling
mingkuang-Chuyu added a commit that referenced this issue Sep 3, 2024
  - 添加 GetPointerFrameTouchInfo
  - 添加 GetPointerFrameTouchInfoHistory
  - 添加 GetPointerInfo
  - 添加 GetPointerPenInfoHistory
  - 添加 SkipPointerFrameMessages
  - 添加 GetThreadDpiAwarenessContext
  - 添加 GetWindowDpiAwarenessContext
  - 添加 GetDisplayAutoRotationPreferences
  - 添加 SetDisplayAutoRotationPreferences
@BH2WFR
Copy link
Contributor

BH2WFR commented Sep 12, 2024

image

GetPointerDeviceRects since windows 8
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getpointerdevicerects

this function still not adapted in the newest version.
最新版本中, 还差这个函数需要适配.

Returned monitor screen size and TRUE in the implantation of VxKex source code.
VxKex 源码中, 实现方式为返回屏幕尺寸, 并返回 TRUE

image

I write an approachable code sample here instead of a PR, due to the un-synchronized master branch.
因为目前不是主分支, 我就不交PR了, 直接写在这里:

(先占坑)

(先占坑)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants