如何从 WinUI 3.0 运行时组件库访问 GetDoubleClickTime Win32 API 函数

How to access the GetDoubleClickTime Win32 API function from a WinUI 3.0 Runtime Component library

我正在尝试使用 C++ 从使用“Windows 运行时组件 (WinUI 3)”创建的新项目中调用 GetDoubleClickTime Win32 API 函数 Visual Studio模板。

为此,我将 #include <Windows.h> 添加到 pch.h 文件,然后简单地调用上述函数。但是,之后我收到以下编译器错误:error C3861: 'GetDoubleClickTime': identifier not found.

根据模板描述,该项目应该创建一个可在桌面和 UWP 应用程序中使用的库。我知道无法从 UWP 调用 GetDoubleClickTime 函数。但它必须适用于桌面应用程序。

我怎样才能使这个工作?

显然它在幕后创建了一个沙盒 UWP 项目。请参阅 this GitHub issue 并在对话的最底部查看@sylveon 的评论以获得潜在的 fix/workaorund.

You can edit the vcxproj's global PropertyGroup and add these two directives right now to force the UWP project to use the desktop API set, and link the desktop CRT (removing the need to carry around the VCRT forwarders, which are honestly a terrible hack)

    <_NoWinAPIFamilyApp>true</_NoWinAPIFamilyApp>
    <_VC_Target_Library_Platform>Desktop</_VC_Target_Library_Platform>

Alternatively, it seems that merely setting <AppContainerApplication>false</AppContainerApplication> works as well.