4#ifndef OPENCV_slideio_zviutils_HPP
5#define OPENCV_slideio_zviutils_HPP
7#include "slideio/drivers/zvi/zvi_api_def.hpp"
8#include "slideio/drivers/zvi/pole_lib.hpp"
9#include "slideio/base/slideio_enums.hpp"
16#pragma warning( push )
17#pragma warning(disable: 4251)
20enum class ZVIPixelFormat;
26 typedef enum tagVARENUM
54 VT_SAFEARRAY = 0x001B,
56 VT_USERDEFINED = 0x001D,
65 VT_STREAMED_OBJECT = 0x0044,
66 VT_STORED_OBJECT = 0x0045,
70 typedef std::variant<std::monostate, bool, int32_t, uint32_t, uint64_t, int64_t, double, std::string> Variant;
71 void SLIDEIO_ZVI_EXPORTS skipItem(ole::basic_stream& stream);
72 void SLIDEIO_ZVI_EXPORTS skipItems(ole::basic_stream& stream,
int count);
73 int32_t SLIDEIO_ZVI_EXPORTS readIntItem(ole::basic_stream& stream);
74 double SLIDEIO_ZVI_EXPORTS readDoubleItem(ole::basic_stream& stream);
75 std::string SLIDEIO_ZVI_EXPORTS readStringItem(ole::basic_stream& stream);
76 Variant SLIDEIO_ZVI_EXPORTS readItem(ole::basic_stream& stream,
bool skipUnusedTypes =
true);
77 slideio::DataType dataTypeFromPixelFormat(
const ZVIPixelFormat pixel_format);
78 int channelCountFromPixelFormat(ZVIPixelFormat pixelFormat);
80 class SLIDEIO_ZVI_EXPORTS StreamKeeper
83 StreamKeeper(ole::compound_document& doc,
const std::string& path);
84 operator ole::basic_stream& () {
85 return m_StreamPos->stream();
87 ole::basic_stream* operator ->() {
88 return &(m_StreamPos->stream());
91 std::vector<ole::stream_path>::iterator m_StreamPos;
Definition: exceptions.hpp:15