bufglob.cpp
资源名称:shell.rar [点击查看]
上传用户:xhy777
上传日期:2007-02-14
资源大小:24088k
文件大小:1k
源码类别:
系统编程
开发平台:
Visual C++
- /*****************************************************************/
- /** Microsoft Windows for Workgroups **/
- /** Copyright (C) Microsoft Corp., 1991-1992 **/
- /*****************************************************************/
- /* BUFGLOB.CPP -- Implementation of GLOBAL_BUFFER class.
- *
- * History:
- * 03/22/93 gregj Created
- * 03/24/93 gregj Renamed from plain BUFFER, derived from BUFFER_BASE
- *
- */
- #include "npcommon.h"
- #include "buffer.h"
- BOOL GLOBAL_BUFFER::Alloc( UINT cbBuffer )
- {
- _hMem = ::GlobalAlloc( GMEM_DDESHARE | GMEM_MOVEABLE, cbBuffer );
- if (_hMem == NULL) {
- _lpBuffer = NULL;
- _cb = 0;
- return FALSE;
- }
- _lpBuffer = ::GlobalLock( _hMem );
- _cb = cbBuffer;
- return TRUE;
- }
- BOOL GLOBAL_BUFFER::Realloc( UINT cbNew )
- {
- if (_hMem == NULL)
- return FALSE;
- ::GlobalUnlock( _hMem );
- HGLOBAL hNew = ::GlobalReAlloc( _hMem, cbNew, GMEM_MOVEABLE );
- if (hNew == NULL) {
- ::GlobalLock( _hMem );
- return FALSE;
- }
- _hMem = hNew;
- _lpBuffer = ::GlobalLock( _hMem );
- _cb = cbNew;
- return TRUE;
- }
- GLOBAL_BUFFER::GLOBAL_BUFFER( UINT cbInitial /* =0 */ )
- : BUFFER_BASE(),
- _hMem( NULL ),
- _lpBuffer( NULL )
- {
- if (cbInitial)
- Alloc( cbInitial );
- }
- GLOBAL_BUFFER::~GLOBAL_BUFFER()
- {
- if (_hMem != NULL) {
- ::GlobalUnlock( _hMem );
- ::GlobalFree( _hMem );
- _hMem = NULL;
- _lpBuffer = NULL;
- }
- }
English
