Windows — с помощью буфера обмена в родном приложении C ++ Metro

Я ищу интерфейсы, позволяющие мне получить доступ к буферу обмена в собственном приложении c ++ metro — аналогично DataTransfer :: Clipboard :: SetContent в C #.

Может кто-нибудь, пожалуйста, направьте меня к этим интерфейсам и как это можно сделать с помощью библиотеки WRL?

0

Решение

В WRL вам нужно получить интерфейс IClipboardStatics, который содержит метод SetContent.

#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());
1

Другие решения


По вопросам рекламы [email protected]