WININFO.C
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:
Windows编程
开发平台:
Visual C++
- /******************************************************************************
- * This is a part of the Microsoft Source Code Samples.
- * Copyright (C) 1993-1997 Microsoft Corporation.
- * All rights reserved.
- * This source code is only intended as a supplement to
- * Microsoft Development Tools and/or WinHelp documentation.
- * See these sources for detailed information regarding the
- * Microsoft samples programs.
- ******************************************************************************/
- /*---------------------------------------------------------------------------*
- | WINDOW INFORMATION MODULE
- | This module contains the routines which deal with obtaining the extra
- | object information associated with a window. For these to work, the
- | window class must reserve the 0th word of the win-class object to be
- | used to hold global-memory handle.
- *---------------------------------------------------------------------------*/
- #include <windows.h>
- #include "gdidemo.h"
- /*---------------------------------------------------------------------------*
- | ALLOC WINDOW INFO
- | This routine allocates memory out of the application heap for storing
- | extra memory for the window. It is alway referenced as offset 0.
- *---------------------------------------------------------------------------*/
- BOOL FAR AllocWindowInfo(HWND hWnd, WORD wSize)
- {
- HANDLE hsd;
- if(hsd = LocalAlloc(LHND,(WORD)wSize))
- {
- SetWindowLong(hWnd,0,(LONG)hsd);
- return(TRUE);
- }
- return(FALSE);
- }
- /*---------------------------------------------------------------------------*
- | LOCK WINDOW INFO
- | This routine de-references the extra-memory associated with the window.
- | it locks the object and gives the caller a pointer to the memory.
- *---------------------------------------------------------------------------*/
- PVOID FAR LockWindowInfo(HWND hWnd)
- {
- HANDLE hMem;
- PVOID pMem;
- pMem = NULL;
- if(hMem = (HANDLE)GetWindowLong(hWnd,0))
- pMem = (PVOID)LocalLock(hMem);
- return(pMem);
- }
- /*---------------------------------------------------------------------------*
- | UNLOCK WINDOW INFO
- | This routine unlocks the memory the caller has previously locked.
- *---------------------------------------------------------------------------*/
- BOOL FAR UnlockWindowInfo(HWND hWnd)
- {
- HANDLE hMem;
- if(hMem = (HANDLE)GetWindowLong(hWnd,0))
- if(!LocalUnlock(hMem))
- return(TRUE);
- return(FALSE);
- }
- /*---------------------------------------------------------------------------*
- | FREE WINDOW INFO
- | This routine frees the object memory associated with the window.
- *---------------------------------------------------------------------------*/
- BOOL FAR FreeWindowInfo(HWND hWnd)
- {
- LOCALHANDLE hMem;
- if(hMem = (HANDLE)GetWindowLong(hWnd,0))
- LocalFree(hMem);
- return(TRUE);
- }