#pragma once #include "DIOSLogicDeviceStructure.h" #include "ShareMemClientInterface.h" #include "definitions.h" #define SM_API_BLOCK_COUNT (15) class ShareMemWR { WORD*m_pDataPtr; CShareMemClient m_shareMemclient; C2DGrayImageData *m_pImgFull; C2DGrayImageData *m_pImgPrev; CBaseFunctionDataElement *m_pElement; unsigned int m_dwShareMemIdFullIdx; unsigned long long m_dwShareMemIdFull[SM_API_BLOCK_COUNT]; unsigned long long m_dwShareMemIdPreview; ImgDataInfo *pImgData; bool GetShareMemBuf(ImgDataInfo *pImgData); int WriteImageToShareMem(unsigned long long &dwShareMemId); unsigned long long &GetNextSmId(); public: ShareMemWR(void); virtual ~ShareMemWR(void); PVOID GetDataBuf(unsigned long long nShareMemID, char *&pBuff,DWORD &Size); void ReleaseDataBuf(PVOID Handle); RET_STATUS BufferToNotify(void * pOemImage, DWORD ImageSize, ImgDataInfo* PImgDataInfo); };