[pywin32-checkins] pywin32/win32/src win32security.i,1.13,1.14
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: <ru...@us...> - 2003-11-23 16:42:22
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1:/tmp/cvs-serv2578/win32/src Modified Files: win32security.i Log Message: Check if CryptEnumProviders exists (not supported on NT) Index: win32security.i =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/win32security.i,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** win32security.i 24 Oct 2003 05:32:33 -0000 1.13 --- win32security.i 23 Nov 2003 16:42:18 -0000 1.14 *************** *** 256,259 **** --- 256,261 ---- static long (WINAPI *lsarpcn)(POLICY_NOTIFICATION_INFORMATION_CLASS,HANDLE) = NULL; static long (WINAPI *lsaupcn)(POLICY_NOTIFICATION_INFORMATION_CLASS,HANDLE) = NULL; + static BOOL (WINAPI *cryptenumproviders)(DWORD, DWORD *, DWORD, DWORD *, LPTSTR, DWORD *) = NULL; + BOOL CheckIfSupported(char *funcname, WCHAR *dllname, FARPROC *fp) *************** *** 358,362 **** if (CheckIfSupported("LsaUnregisterPolicyChangeNotification",_T("Secur32.dll"),&fp)) lsaupcn=(NTSTATUS (NTAPI *)(POLICY_NOTIFICATION_INFORMATION_CLASS,HANDLE))(fp); ! %} --- 360,365 ---- if (CheckIfSupported("LsaUnregisterPolicyChangeNotification",_T("Secur32.dll"),&fp)) lsaupcn=(NTSTATUS (NTAPI *)(POLICY_NOTIFICATION_INFORMATION_CLASS,HANDLE))(fp); ! if (CheckIfSupported("CryptEnumProvidersW", _T("Advapi32.dll"),&fp)) ! cryptenumproviders=(BOOL (WINAPI *)(DWORD, DWORD *, DWORD, DWORD *, LPTSTR, DWORD *))(fp); %} *************** *** 2088,2091 **** --- 2091,2096 ---- static PyObject *PyCryptEnumProviders(PyObject *self, PyObject *args) { + if (cryptenumproviders==NULL) + return PyErr_Format(PyExc_NotImplementedError,"CryptEnumProviders not supported by this version of Windows"); if (!PyArg_ParseTuple(args, ":CryptEnumProviders")) return NULL; *************** *** 2099,2103 **** cbProvName=0; pszProvName=NULL; ! succeeded = CryptEnumProviders(dwIndex, NULL, dwFlags, &dwProvType, NULL, &cbProvName); if (!succeeded) break; --- 2104,2108 ---- cbProvName=0; pszProvName=NULL; ! succeeded = (*cryptenumproviders)(dwIndex, NULL, dwFlags, &dwProvType, NULL, &cbProvName); if (!succeeded) break; *************** *** 2111,2115 **** return NULL; } ! succeeded = CryptEnumProviders(dwIndex, NULL, dwFlags, &dwProvType, pszProvName, &cbProvName); if (!succeeded){ free(pszProvName); --- 2116,2120 ---- return NULL; } ! succeeded = (*cryptenumproviders)(dwIndex, NULL, dwFlags, &dwProvType, pszProvName, &cbProvName); if (!succeeded){ free(pszProvName); |