我正在寻找允许我访问本机 C++ Metro 应用程序中的剪贴板的接口——类似于 C# 中的 DataTransfer::Clipboard::SetContent。
有人可以请我参考这些接口吗?如何使用 WRL 库来完成?
我正在寻找允许我访问本机 C++ Metro 应用程序中的剪贴板的接口——类似于 C# 中的 DataTransfer::Clipboard::SetContent。
有人可以请我参考这些接口吗?如何使用 WRL 库来完成?
在 WRL 中,您需要获取包含 SetContent 方法的 IClipboardStatics 接口。
#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());