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");
}
|