// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_WEBSHARE_WIN_FAKE_DATA_WRITER_FACTORY_H_
#define CHROME_BROWSER_WEBSHARE_WIN_FAKE_DATA_WRITER_FACTORY_H_
#include <windows.storage.streams.h>
#include <wrl/implements.h>
namespace webshare {
// Provides an implementation of IDataWriterFactory for use in GTests.
class __declspec(uuid("4A0022E7-D891-4B52-8736-77497F9FFE14"))
FakeDataWriterFactory final
: public Microsoft::WRL::RuntimeClass<
Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::WinRtClassicComMix>,
ABI::Windows::Storage::Streams::IDataWriterFactory> {
public:
FakeDataWriterFactory();
FakeDataWriterFactory(const FakeDataWriterFactory&) = delete;
FakeDataWriterFactory& operator=(const FakeDataWriterFactory&) = delete;
~FakeDataWriterFactory() final;
// ABI::Windows::Storage::Streams::IDataWriterFactory:
IFACEMETHODIMP CreateDataWriter(
ABI::Windows::Storage::Streams::IOutputStream* outputStream,
ABI::Windows::Storage::Streams::IDataWriter** data_writer) final;
};
} // namespace webshare
#endif // CHROME_BROWSER_WEBSHARE_WIN_FAKE_DATA_WRITER_FACTORY_H_