1#ifndef PACEMAKER_INCA_COM_EXPERIMENTDEVICEPROXY_HPP_
2#define PACEMAKER_INCA_COM_EXPERIMENTDEVICEPROXY_HPP_
10struct ExperimentDevice_Dispatch;
64 auto get() const noexcept -> ::ExperimentDevice_Dispatch * {
return this->
p_subject.get(); }
75 [[nodiscard]]
auto GetName() -> std::wstring;
Proxy for an INCA experiment device COM object.
~ExperimentDeviceProxy()
Destructor; releases the underlying COM object.
auto GetName() -> std::wstring
Returns the name of the device as configured in INCA.
ExperimentDeviceProxy(ExperimentDeviceProxy &&)=default
Move contructor transfers ownership of the COM object.
ExperimentDeviceProxy(pacemaker::inca::detail::unique_com_ptr<::IDispatch > idispatch)
Constrcuts the proxy by narrowing a generic IDispatch to ExperimentDevice_Dispatch
ExperimentDeviceProxy & operator=(ExperimentDeviceProxy &&)=default
Move assignment transfers ownership of the COM object.
auto get() const noexcept -> ::ExperimentDevice_Dispatch *
Returns a non-owning raw pointer to the underlying COM device object.
Non-copyable CRTP base class for COM dispatch proxy objects.
pacemaker::inca::detail::unique_com_ptr< ::ExperimentDevice_Dispatch > p_subject
std::unique_ptr< T, ComObjDeleter< T > > unique_com_ptr
RAII owning pointer for COM objects.