gpt4 book ai didi

c++ - 在 native C++ Metro 应用程序中使用剪贴板

转载 作者:行者123 更新时间:2023-11-28 06:07:42 26 4
gpt4 key购买 nike

我正在寻找允许我访问 native c++ metro 应用程序中的剪贴板的接口(interface)——类似于 C# 中的 DataTransfer::Clipboard::SetContent。

有人可以向我介绍这些接口(interface)吗?如何使用 WRL 库完成这些接口(interface)?

最佳答案

在WRL中,您需要获取包含SetContent方法的IClipboardStatics接口(interface)。

#include <Windows.Foundation.h>
#include <Windows.ApplicationModel.DataTransfer.h>
#include <wrl\wrappers\corewrappers.h>
#include <wrl\client.h>

using namespace ABI::Windows::Foundation;
using namespace Microsoft::WRL;
using namespace Microsoft::WRL::Wrappers;
using namespace ABI::Windows::ApplicationModel::DataTransfer;

// Initialize the Windows Runtime.
RoInitializeWrapper initialize(RO_INIT_MULTITHREADED);

if (FAILED(initialize))
{
cout << "Failed to initialize";
}

ComPtr<IClipboardStatics> clipboard;

HRESULT hr = GetActivationFactory(HStringReference(RuntimeClass_Windows_ApplicationModel_DataTransfer_Clipboard).Get(), &clipboard);

if (FAILED(hr))
{
cout << "failed to create a runtime instance";

return 0;
}

ComPtr<IDataPackage> datapackage;

// create a package and set the data
// ...

clipboard->SetContent(datapackage.Get());

关于c++ - 在 native C++ Metro 应用程序中使用剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32037398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com