1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #include <kopano/platform.h>
- #include <mapispi.h>
- #include <mapicode.h>
- #include <kopano/Trace.h>
- #include "Mem.h"
- #undef ECAllocateBuffer
- LPMALLOC _pmalloc;
- LPALLOCATEBUFFER _pfnAllocBuf;
- LPALLOCATEMORE _pfnAllocMore;
- LPFREEBUFFER _pfnFreeBuf;
- HINSTANCE _hInstance;
- HRESULT ECFreeBuffer(void *lpvoid) {
- if(_pfnFreeBuf == NULL)
- return MAPI_E_CALL_FAILED;
- else return _pfnFreeBuf(lpvoid);
- }
- HRESULT ECAllocateBuffer(ULONG cbSize, void **lpvoid) {
- if(_pfnAllocBuf == NULL)
- return MAPI_E_CALL_FAILED;
- else return _pfnAllocBuf(cbSize, lpvoid);
- }
- HRESULT ECAllocateMore(ULONG cbSize, void *lpBase, void **lpvoid) {
- if(_pfnAllocMore == NULL)
- return MAPI_E_CALL_FAILED;
- else return _pfnAllocMore(cbSize, lpBase, lpvoid);
- }
- HRESULT AllocNewMapiObject(ULONG ulUniqueId, ULONG ulObjId, ULONG ulObjType, MAPIOBJECT **lppMapiObject)
- {
- auto sMapiObject = new MAPIOBJECT;
- sMapiObject->ulUniqueId = ulUniqueId;
- sMapiObject->ulObjId = ulObjId;
- sMapiObject->ulObjType = ulObjType;
- *lppMapiObject = sMapiObject;
- return hrSuccess;
- }
- HRESULT FreeMapiObject(MAPIOBJECT *lpsObject)
- {
- for (const auto &obj : lpsObject->lstChildren)
- FreeMapiObject(obj);
- if (lpsObject->lpInstanceID)
- ECFreeBuffer(lpsObject->lpInstanceID);
- delete lpsObject;
- return hrSuccess;
- }
|