globalmem.h

来自「实时监控」· C头文件 代码 · 共 74 行

H
74
字号
#ifndef _GLOBALMEM_H
#define _GLOBALMEM_H

class global_mem
{
	HGLOBAL h;
public:
	global_mem(): h(NULL)
	{
	}
	global_mem(int size, DWORD options = GMEM_MOVEABLE | GMEM_DDESHARE): h(NULL)
	{
		alloc(size);
	}
	~global_mem()
	{
		free();
	}
	void attach(HGLOBAL _h)
	{
		free();
		h = _h;
	}
	void detach()
	{
		h = NULL;
	}

	bool alloc(int size, DWORD options = GMEM_MOVEABLE | GMEM_DDESHARE)
	{
		free();
		
		h = GlobalAlloc(options, size);
		return h != NULL;
	}

	void free()
	{
		if( !h )
			return;

		GlobalFree(h);
		h = NULL;
	}

	byte* lock()
	{
		if( !h )
			return NULL;

		return (byte*)GlobalLock(h);
	}

	void unlock()
	{
		if( h )
			GlobalUnlock(h);
	}

	DWORD size()
	{
		if( !h )
			return 0;

		return GlobalSize(h);
	}

	HGLOBAL handle()
	{
		return h;
	}
};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?