17 : m_Plugin(nullptr), m_OutputImage(nullptr), m_OutputImageMutex(nullptr)
29 reinterpret_cast<IUnknown*
>(*ppv)->AddRef() ;
36 return InterlockedIncrement(&m_cRef) ;
42 if (InterlockedDecrement(&m_cRef) == 0)
52 int nInterimBufferLen,
68 unsigned int dim[]={
static_cast<unsigned int>(abs(nOutX2 - nOutX1)), static_cast<unsigned int>(abs(nOutY2 - nOutY1))};
70 m_OutputImage->Initialize(mitk::MakeScalarPixelType<BYTE>(), 2, dim);
86 m_Plugin->SetCallback(
nullptr,USPC_BUFFER_INTERIM_OUTPUT);
105 if (plugin ==
nullptr)
107 MITK_INFO(
"IUsgfwScanConverterPluginCB")(
"ScanConverterPlugin")
108 <<
"nullptr plugin set to the scan converter. The callback for the previous plugin is removed now.";
113 Usgfw2Lib::IUsgScanConverterPlugin* tmp_plugin;
114 hr = plugin->QueryInterface(__uuidof(Usgfw2Lib::IUsgScanConverterPlugin), (
void**)&tmp_plugin);
118 MITK_WARN(
"IUsgfwScanConverterPluginCB")(
"ScanConverterPlugin")
119 <<
"Could not query com interface for IUsgScanConverterPlugin (" << hr <<
").";
125 hr = tmp_plugin->get_ScanConverter((IUnknown**)&
m_Plugin);
129 MITK_WARN(
"IUsgfwScanConverterPluginCB")(
"ScanConverterPlugin")
130 <<
"Could not get ScanConverter from plugin (" << hr <<
").";
139 hr = m_Plugin->SetCallback(
this,USPC_BUFFER_INTERIM_OUTPUT);
143 MITK_WARN(
"IUsgfwScanConverterPluginCB")(
"ScanConverterPlugin")
144 <<
"Could not set callback for plugin (" << hr <<
").";
IUsgfwScanConverterPlugin * m_Plugin
STDMETHOD() SetScanConverterPlugin(IDispatch *plugin)
itk::FastMutexLock::Pointer m_OutputImageMutex
USTelemedScanConverterPlugin()
virtual ULONG __stdcall AddRef()
STDMETHOD() InterimOutBufferCB(PBYTE pBufferInterim, int nInterimBufferLen, PBYTE pBufferOut, int nOutBufferLen, int nOutX1, int nOutY1, int nOutX2, int nOutY2)
virtual HRESULT __stdcall QueryInterface(const IID &iid, void **ppv)
~USTelemedScanConverterPlugin()
mitk::Image::Pointer m_OutputImage
void SetOutputImage(mitk::Image::Pointer outputImage, itk::FastMutexLock::Pointer outputImageMutex=0)
virtual ULONG __stdcall Release()