[pywin32-checkins] pywin32/win32/src win32apimodule.cpp,1.67,1.68
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Roger U. <ru...@us...> - 2006-12-10 08:58:39
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3026/win32/src Modified Files: win32apimodule.cpp Log Message: Add GlobalMemoryStatus and GlobalMemoryStatusEx Index: win32apimodule.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/win32apimodule.cpp,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -d -r1.67 -r1.68 *** win32apimodule.cpp 30 Nov 2006 05:56:42 -0000 1.67 --- win32apimodule.cpp 10 Dec 2006 08:58:37 -0000 1.68 *************** *** 46,49 **** --- 46,51 ---- typedef BOOL (WINAPI *SetHandleInformationfunc)(HANDLE, DWORD, DWORD); static SetHandleInformationfunc pfnSetHandleInformation=NULL; + typedef BOOL (WINAPI *GlobalMemoryStatusExfunc)(LPMEMORYSTATUSEX); + static GlobalMemoryStatusExfunc pfnGlobalMemoryStatusEx=NULL; // from secur32.dll *************** *** 5095,5098 **** --- 5097,5145 ---- } + // @pymethod dict|win32api|GlobalMemoryStatus|Returns systemwide memory usage + // @rdesc Returns a dictionary representing a MEMORYSTATUS structure + PyObject *PyGlobalMemoryStatus(PyObject *self, PyObject *args) + { + #ifdef _WIN64 + static char *fmt="{s:k,s:k,s:K,s:K,s:K,s:K,s:K,s:K}"; + #else + static char *fmt="{s:k,s:k,s:k,s:k,s:k,s:k,s:k,s:k}"; + #endif + MEMORYSTATUS ms; + GlobalMemoryStatus(&ms); + return Py_BuildValue(fmt, + "Length", ms.dwLength, + "MemoryLoad", ms.dwMemoryLoad, + "TotalPhys", ms.dwTotalPhys, + "AvailPhys", ms.dwAvailPhys, + "TotalPageFile",ms.dwTotalPageFile, + "AvailPageFile",ms.dwAvailPageFile, + "TotalVirtual", ms.dwTotalVirtual, + "AvailVirtual", ms.dwAvailVirtual); + } + + // @pymethod dict|win32api|GlobalMemoryStatusEx|Returns physical and virtual memory usage + // @rdesc Returns a dictionary representing a MEMORYSTATUSEX structure + // @comm Only available on Win2k and later. + PyObject *PyGlobalMemoryStatusEx(PyObject *self, PyObject *args) + { + CHECK_PFN(GlobalMemoryStatusEx); + static char *fmt="{s:k,s:k,s:K,s:K,s:K,s:K,s:K,s:K,s:K}"; + MEMORYSTATUSEX ms; + ms.dwLength=sizeof(ms); + if (!(*pfnGlobalMemoryStatusEx)(&ms)) + return PyWin_SetAPIError("GlobalMemoryStatusEx"); + return Py_BuildValue(fmt, + "Length", ms.dwLength, + "MemoryLoad", ms.dwMemoryLoad, + "TotalPhys", ms.ullTotalPhys, + "AvailPhys", ms.ullAvailPhys, + "TotalPageFile",ms.ullTotalPageFile, + "AvailPageFile",ms.ullAvailPageFile, + "TotalVirtual", ms.ullTotalVirtual, + "AvailVirtual", ms.ullAvailVirtual, + "AvailExtendedVirtual", ms.ullAvailExtendedVirtual); + } + /* List of functions exported by this module */ *************** *** 5202,5205 **** --- 5249,5254 ---- {"GetUserDefaultLangID",PyGetUserDefaultLangID,1}, // @pymeth GetUserDefaultLangID|Retrieves the user default language identifier. {"GetUserDefaultLCID", PyGetUserDefaultLCID,1}, // @pymeth GetUserDefaultLCID|Retrieves the user default locale identifier. + {"GlobalMemoryStatus", PyGlobalMemoryStatus, METH_NOARGS}, // @pymeth GlobalMemoryStatus|Returns systemwide memory usage + {"GlobalMemoryStatusEx", PyGlobalMemoryStatusEx, METH_NOARGS}, // @pymeth GlobalMemoryStatusEx|Returns physical and virtual memory usage {"keybd_event", Pykeybd_event, 1}, // @pymeth keybd_event|Simulate a keyboard event {"mouse_event", Pymouse_event, 1}, // @pymeth mouse_event|Simulate a mouse event *************** *** 5378,5381 **** --- 5427,5431 ---- pfnGetHandleInformation=(GetHandleInformationfunc)GetProcAddress(hmodule,"GetHandleInformation"); pfnSetHandleInformation=(SetHandleInformationfunc)GetProcAddress(hmodule,"SetHandleInformation"); + pfnGlobalMemoryStatusEx=(GlobalMemoryStatusExfunc)GetProcAddress(hmodule,"GlobalMemoryStatusEx"); } |