[pywin32-checkins] pywin32/win32/src win32apimodule.cpp,1.82,1.83
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Roger U. <ru...@us...> - 2008-02-07 05:42:03
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21416 Modified Files: win32apimodule.cpp Log Message: Add RegOverridePredefKey Index: win32apimodule.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/win32apimodule.cpp,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 *** win32apimodule.cpp 7 Feb 2008 03:27:36 -0000 1.82 --- win32apimodule.cpp 7 Feb 2008 05:42:06 -0000 1.83 *************** *** 83,86 **** --- 83,88 ---- typedef LONG (WINAPI *RegOpenCurrentUserfunc)(REGSAM,PHKEY); static RegOpenCurrentUserfunc pfnRegOpenCurrentUser = NULL; + typedef LONG (WINAPI *RegOverridePredefKeyfunc)(HKEY,HKEY); + static RegOverridePredefKeyfunc pfnRegOverridePredefKey = NULL; /* error helper */ *************** *** 3718,3721 **** --- 3720,3749 ---- } + // @pymethod |win32api|RegOverridePredefKey|Redirects one of the predefined keys to different key + // @pyseeapi RegOverridePredefKey + // @comm Requires Windows 2000 or later. + static PyObject *PyRegOverridePredefKey(PyObject *self, PyObject *args, PyObject *kwargs) + { + CHECK_PFN(RegOverridePredefKey); + HKEY predef_key, new_key; + PyObject *obpredef_key, *obnew_key; + long rc; + static char *keywords[]={"Key","NewKey", NULL}; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO:RegOverridePredefKey", keywords, + &obpredef_key, // @pyparm <o PyHKEY>|Key||One of the predefined registry keys (win32con.HKEY_*) + &obnew_key)) // @pyparm <o PyHKEY>|NewKey||Registry key to which it will be redirected. Pass None to restore original key. + return NULL; + if (!PyWinObject_AsHKEY(obpredef_key, &predef_key)) + return NULL; + if (!PyWinObject_AsHKEY(obnew_key, &new_key)) + return NULL; + rc=(*pfnRegOverridePredefKey)(predef_key, new_key); + if (rc!=ERROR_SUCCESS) + return PyWin_SetAPIError("RegOverridePredefKey", rc); + Py_INCREF(Py_None); + return Py_None; + } + // @pymethod (int, int, long)|win32api|RegQueryInfoKey|Returns the number of // subkeys, the number of values a key has, *************** *** 6041,6044 **** --- 6069,6073 ---- {"RegOpenKeyEx", PyRegOpenKey, 1}, // @pymeth RegOpenKeyEx|Opens the specified key. {"RegOpenKeyTransacted",(PyCFunction)PyRegOpenKeyTransacted, METH_KEYWORDS|METH_VARARGS}, // @pymeth RegOpenKeyTransacted|Opens a registry key as part of a transaction. + {"RegOverridePredefKey",(PyCFunction)PyRegOverridePredefKey, METH_KEYWORDS|METH_VARARGS}, // @pymeth RegOverridePredefKey|Redirects one of the predefined keys to different key. {"RegQueryValue", PyRegQueryValue, 1}, // @pymeth RegQueryValue|Retrieves the value associated with the unnamed value for a specified key in the registry. {"RegQueryValueEx", PyRegQueryValueEx, 1}, // @pymeth RegQueryValueEx|Retrieves the type and data for a specified value name associated with an open registry key. *************** *** 6217,6220 **** --- 6246,6250 ---- pfnRegDeleteTree=(RegDeleteTreefunc)GetProcAddress(hmodule, "RegDeleteTreeW"); pfnRegOpenCurrentUser=(RegOpenCurrentUserfunc)GetProcAddress(hmodule, "RegOpenCurrentUser"); + pfnRegOverridePredefKey=(RegOverridePredefKeyfunc)GetProcAddress(hmodule, "RegOverridePredefKey"); } |