60 lines
1.3 KiB
C
60 lines
1.3 KiB
C
|
#if !defined( _OLEMEM_H_ )
|
||
|
#define _OLEMEM_H_
|
||
|
|
||
|
// All the following Global calls deal with LPSTR
|
||
|
|
||
|
#ifdef _MAC
|
||
|
pascal DWORD OleGlobalSize(HANDLE);
|
||
|
pascal LPSTR OleGlobalAlloc(WORD, DWORD);
|
||
|
pascal BOOL OleGlobalFree(LPSTR); // true success, false fail
|
||
|
pascal LPSTR OleGlobalLock(HANDLE);
|
||
|
pascal BOOL OleGlobalUnlock(LPSTR); // true success, false fail
|
||
|
|
||
|
#else
|
||
|
|
||
|
#define OleGlobalAlloc(flags,dwSize) ( \
|
||
|
Win(GlobalLock(GlobalAlloc(flags, dwSize)))\
|
||
|
)
|
||
|
|
||
|
#define OleGlobalFree(lp) ( \
|
||
|
Win(GlobalFree((HANDLE)GlobalHandle((__segment)lp))) \
|
||
|
)
|
||
|
|
||
|
#define OleGlobalLock(hMem) ( \
|
||
|
Win(GlobalLock(hMem))\
|
||
|
)
|
||
|
|
||
|
#define OleGlobalUnlock(lp) ( \
|
||
|
Win(GlobalUnlock((HANDLE)GlobalHandle((__segment)lp))) \
|
||
|
)
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
#ifndef _MAC // Windows
|
||
|
|
||
|
// All the following Local calls deal with PSTR
|
||
|
|
||
|
#define OleLocalAlloc(flags,wSize) (LocalLock(LocalAlloc(flags, wSize)))
|
||
|
|
||
|
#define OleLocalFree(np) {\
|
||
|
LocalUnlock((HANDLE)LocalHandle((WORD)np)); \
|
||
|
LocalFree((HANDLE)LocalHandle((WORD)np)); \
|
||
|
}
|
||
|
|
||
|
#define OleLocalLock(hMem) (LocalLock(hMem))
|
||
|
|
||
|
#define OleLocalUnlock(np) (LocalUnlock((HANDLE)LocalHandle((WORD)np)))
|
||
|
|
||
|
#else // MAC
|
||
|
|
||
|
#define OleLocalAlloc(flags,wSize) OleGlobalAlloc(flags, wSize)
|
||
|
#define OleLocalFree (ptr) OleGlobalFree(ptr)
|
||
|
#define OleLocalLock(hMem) OleGlobalLock(hMem)
|
||
|
#define OleLocalUnlock(ptr) OleGlobalUnlock(ptr)
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#endif // _OLEMEM_H
|