diff --git a/win32/src/PerfMon/PerfCounterDefn.cpp b/win32/src/PerfMon/PerfCounterDefn.cpp index 9e3e17b..77516ec 100644 --- a/win32/src/PerfMon/PerfCounterDefn.cpp +++ b/win32/src/PerfMon/PerfCounterDefn.cpp @@ -81,7 +81,7 @@ PyObject *PyPERF_COUNTER_DEFINITION::Get(PyObject *self, PyObject *args) PyPERF_COUNTER_DEFINITION *This = (PyPERF_COUNTER_DEFINITION *)self; if (!PyArg_ParseTuple(args, ":Get")) return NULL; - if (!This->m_pCounterValue == NULL) { + if (This->m_pCounterValue != NULL) { PyErr_SetString(PyExc_ValueError, "The counter does not exist in a counter block"); return NULL; } diff --git a/win32/src/PerfMon/PyPerfMon.cpp b/win32/src/PerfMon/PyPerfMon.cpp index fc4decf..e4e2995 100644 --- a/win32/src/PerfMon/PyPerfMon.cpp +++ b/win32/src/PerfMon/PyPerfMon.cpp @@ -13,7 +13,7 @@ generates Windows .hlp files. ******************************************************************/ #include "PyWinTypes.h" -#include "Pyperfmon.h" +#include "pyperfmon.h" #include "tchar.h" extern PyObject *PerfmonMethod_NewPERF_COUNTER_DEFINITION(PyObject *self, PyObject *args); diff --git a/win32/src/PerfMon/PyPerfMonControl.h b/win32/src/PerfMon/PyPerfMonControl.h index 8a45068..6ac2f15 100644 --- a/win32/src/PerfMon/PyPerfMonControl.h +++ b/win32/src/PerfMon/PyPerfMonControl.h @@ -18,6 +18,6 @@ struct MappingManagerControlData { DWORD ControlSize; // Size of this structure. DWORD TotalSize; // Total Size allocated in the mapped file. SupplierStatus supplierStatus; - WCHAR ServiceName[MMCD_SERVICE_SIZE]; // The name of the service or application. - WCHAR EventSourceName[MMCD_EVENTSOURCE_SIZE]; // Source Name that appears in Event Log for errors. + WCHAR ServiceName[MMCD_SERVICE_SIZE+1]; // The name of the service or application. + WCHAR EventSourceName[MMCD_EVENTSOURCE_SIZE+1]; // Source Name that appears in Event Log for errors. }; diff --git a/win32/src/PerfMon/PyPerfMsgs.mc b/win32/src/PerfMon/PyPerfMsgs.mc index b50f764..965b5f1 100644 --- a/win32/src/PerfMon/PyPerfMsgs.mc +++ b/win32/src/PerfMon/PyPerfMsgs.mc @@ -86,3 +86,4 @@ The collection DLL and application have mismatched structure sizes. The version . ;// ;#endif // _PYPERFMSG_H_ + diff --git a/win32/src/PyHANDLE.cpp b/win32/src/PyHANDLE.cpp index c1baf75..999fab9 100644 --- a/win32/src/PyHANDLE.cpp +++ b/win32/src/PyHANDLE.cpp @@ -129,7 +129,7 @@ static PyNumberMethods PyHANDLE_NumberMethods = { PyHANDLE::binaryFailureFunc, /* nb_xor */ PyHANDLE::binaryFailureFunc, /* nb_or */ PyHANDLE::intFunc, /* nb_int */ - PyHANDLE::longFunc, /* nb_long */ + 0, /* nb_long */ PyHANDLE::unaryFailureFunc, /* nb_float */ // These removed in 3.0 }; diff --git a/win32/src/PyWinTypes.h b/win32/src/PyWinTypes.h index 37c21c1..51cc98d 100644 --- a/win32/src/PyWinTypes.h +++ b/win32/src/PyWinTypes.h @@ -18,6 +18,18 @@ #include "structmember.h" #include "windows.h" +#ifndef _MSC_VER +#define min(x,y) (((x) < (y)) ? (x) : (y)) +#define max(x,y) (((x) > (y)) ? (x) : (y)) + +#ifndef __try +#define __try try +#endif +#ifndef __except +#define __except(filter) catch(...) +#endif +#endif + // Helpers for our modules. // Some macros to help the pywin32 modules co-exist in py2x and py3k. // Creates and initializes local variables called 'module' and 'dict'. diff --git a/win32/src/PyWinTypesmodule.cpp b/win32/src/PyWinTypesmodule.cpp index 5815ce5..6a1bc3b 100644 --- a/win32/src/PyWinTypesmodule.cpp +++ b/win32/src/PyWinTypesmodule.cpp @@ -1071,11 +1071,17 @@ extern "C" __declspec(dllexport) BOOL WINAPI DllMain(HANDLE hInstance, DWORD dwR } // Function to format a python traceback into a character string. +#ifdef _MSC_VER #define GPEM_ERROR(what) \ { \ errorMsg = L""; \ - goto done; \ } +#else +#define GPEM_ERROR(what) \ + { \ + errorMsg = L""; \ + } +#endif PYWINTYPES_EXPORT WCHAR *GetPythonTraceback(PyObject *exc_type, PyObject *exc_value, PyObject *exc_tb) { WCHAR *result = NULL; @@ -1094,22 +1100,27 @@ PYWINTYPES_EXPORT WCHAR *GetPythonTraceback(PyObject *exc_type, PyObject *exc_va if (modStringIO == NULL) GPEM_ERROR("can't import cStringIO"); + Py_XDECREF(modStringIO); modTB = PyImport_ImportModule("traceback"); if (modTB == NULL) GPEM_ERROR("can't import traceback"); + Py_XDECREF(modTB); /* Construct a cStringIO object */ obFuncStringIO = PyObject_GetAttrString(modStringIO, "StringIO"); if (obFuncStringIO == NULL) GPEM_ERROR("can't find cStringIO.StringIO"); + Py_XDECREF(obFuncStringIO); obStringIO = PyObject_CallObject(obFuncStringIO, NULL); if (obStringIO == NULL) GPEM_ERROR("cStringIO.StringIO() failed"); + Py_XDECREF(obStringIO); /* Get the traceback.print_exception function, and call it. */ obFuncTB = PyObject_GetAttrString(modTB, "print_exception"); if (obFuncTB == NULL) GPEM_ERROR("can't find traceback.print_exception"); + Py_XDECREF(obFuncTB); // Py3k has added an undocumented 'chain' argument which defaults to True // and causes all kinds of exceptions while trying to print a traceback! // This *could* be useful thought if we can tame it - later! @@ -1121,6 +1132,7 @@ PYWINTYPES_EXPORT WCHAR *GetPythonTraceback(PyObject *exc_type, PyObject *exc_va obStringIO, chain); if (argsTB == NULL) GPEM_ERROR("can't make print_exception arguments"); + Py_XDECREF(argsTB); obResult = PyObject_CallObject(obFuncTB, argsTB); if (obResult == NULL) { @@ -1131,32 +1143,27 @@ PYWINTYPES_EXPORT WCHAR *GetPythonTraceback(PyObject *exc_type, PyObject *exc_va // PyUnicodeObject *uo=(PyUnicodeObject *)v; // DebugBreak(); GPEM_ERROR("traceback.print_exception() failed"); + Py_XDECREF(obResult); } /* Now call the getvalue() method in the StringIO instance */ Py_DECREF(obFuncStringIO); obFuncStringIO = PyObject_GetAttrString(obStringIO, "getvalue"); if (obFuncStringIO == NULL) GPEM_ERROR("can't find getvalue function"); + Py_XDECREF(obFuncStringIO); Py_DECREF(obResult); obResult = PyObject_CallObject(obFuncStringIO, NULL); if (obResult == NULL) GPEM_ERROR("getvalue() failed."); + Py_XDECREF(obResult); /* And it should be a string all ready to go - duplicate it. */ if (PyWinObject_AsWCHAR(obResult, &resultPtr, FALSE)) result = wcsdup(resultPtr); else GPEM_ERROR("getvalue() did not return a string"); + if (result == NULL && errorMsg != NULL) + result = wcsdup(errorMsg); -done: - if (result == NULL && errorMsg != NULL) - result = wcsdup(errorMsg); - Py_XDECREF(modStringIO); - Py_XDECREF(modTB); - Py_XDECREF(obFuncStringIO); - Py_XDECREF(obStringIO); - Py_XDECREF(obFuncTB); - Py_XDECREF(argsTB); - Py_XDECREF(obResult); return result; } diff --git a/win32/src/PythonService.cpp b/win32/src/PythonService.cpp index 494ae31..d08d711 100644 --- a/win32/src/PythonService.cpp +++ b/win32/src/PythonService.cpp @@ -1296,7 +1296,7 @@ static void ReportAPIError(DWORD msgCode, DWORD errCode /*= 0*/) TCHAR cvtBuf[20]; wsprintf(cvtBuf, L"%d", errCode); - LPTSTR lpszStrings[] = {cvtBuf, buf, L'\0'}; + LPTSTR lpszStrings[] = {cvtBuf, buf, L"\0"}; ReportError(msgCode, (LPCTSTR *)lpszStrings); } diff --git a/win32/src/PythonServiceMessages.mc b/win32/src/PythonServiceMessages.mc index 40d9c0f..8ecce64 100644 --- a/win32/src/PythonServiceMessages.mc +++ b/win32/src/PythonServiceMessages.mc @@ -137,7 +137,7 @@ MessageId=0x7 Severity=Error SymbolicName=E_UNUSED2 Language=English - +Unknown error. . MessageId=0x8 diff --git a/win32/src/_winxptheme.i b/win32/src/_winxptheme.i index 54ba869..650b44e 100644 --- a/win32/src/_winxptheme.i +++ b/win32/src/_winxptheme.i @@ -16,7 +16,7 @@ %{ #undef PyHANDLE -#include "pywinobjects.h" +#include "PyWinObjects.h" #include "windows.h" #include "Uxtheme.h" #include "CommCtrl.h" @@ -87,6 +87,7 @@ typedef float HDC; return NULL; } +%typedef RECT RECT; %typemap(python,ignore) RECT *OUTPUT(RECT temp) { $target = &temp; diff --git a/win32/src/mmapfilemodule.cpp b/win32/src/mmapfilemodule.cpp index 44b1eda..1f7834d 100644 --- a/win32/src/mmapfilemodule.cpp +++ b/win32/src/mmapfilemodule.cpp @@ -71,7 +71,7 @@ static PyObject *mmapfile_read_byte_method(mmapfile_object *self, PyObject *args { char *where = (self->data + self->pos); CHECK_VALID; - if ((where >= 0) && (where < (self->data + self->size))) { + if (((INT_PTR)where >= 0) && (where < (self->data + self->size))) { PyObject *ret = PyBytes_FromStringAndSize(where, 1); if (ret) self->pos += 1; diff --git a/win32/src/odbc.cpp b/win32/src/odbc.cpp index 6190ce5..1685337 100644 --- a/win32/src/odbc.cpp +++ b/win32/src/odbc.cpp @@ -93,8 +93,8 @@ typedef struct { static cursorObject *cursor(PyObject *o) { return (cursorObject *)o; } static void cursorDealloc(PyObject *self); -PyMethodDef cursorMethods[]; -PyMemberDef cursorMembers[]; +extern PyMethodDef cursorMethods[]; +extern PyMemberDef cursorMembers[]; static PyTypeObject Cursor_Type = { PYWIN_OBJECT_HEAD "odbccur", /*tp_name */ @@ -137,8 +137,8 @@ static PyTypeObject Cursor_Type = { }; static void connectionDealloc(PyObject *self); -PyMethodDef connectionMethods[]; -PyMemberDef connectionMembers[]; +extern PyMethodDef connectionMethods[]; +extern PyMemberDef connectionMembers[]; static PyTypeObject Connection_Type = { PYWIN_OBJECT_HEAD "odbcconn", /*tp_name */ sizeof(connectionObject), /*tp_basicsize */ @@ -379,7 +379,7 @@ static PyObject *odbcClose(PyObject *self, PyObject *args) } /* @object connection|An object representing an ODBC connection */ -static struct PyMethodDef connectionMethods[] = { +struct PyMethodDef connectionMethods[] = { {"setautocommit", odbcSetAutoCommit, 1}, /* @pymeth setautocommit|Sets the autocommit mode. */ {"commit", odbcCommit, 1}, /* @pymeth commit|Commits a transaction. */ {"rollback", odbcRollback, 1}, /* @pymeth rollback|Rollsback a transaction. */ @@ -387,7 +387,7 @@ static struct PyMethodDef connectionMethods[] = { {"close", odbcClose, 1}, /* @pymeth close|Closes the connection. */ {0, 0}}; -static PyMemberDef connectionMembers[] = {{"error", T_OBJECT, offsetof(connectionObject, connectionError), READONLY}, +struct PyMemberDef connectionMembers[] = {{"error", T_OBJECT, offsetof(connectionObject, connectionError), READONLY}, {NULL}}; static void connectionDealloc(PyObject *self) @@ -856,7 +856,7 @@ static int rewriteQuery(TCHAR *out, const TCHAR *in) parseContext ctx; initParseContext(&ctx, in); - while (*out++ = doParse(&ctx)); + while (*out++ == doParse(&ctx)); return ctx.parmCount; } @@ -1420,7 +1420,7 @@ static PyObject *odbcCurSetOutputSize(PyObject *self, PyObject *args) } /* @object cursor|An object representing an ODBC cursor. */ -static PyMethodDef cursorMethods[] = { +struct PyMethodDef cursorMethods[] = { {"close", odbcCurClose, 1}, /* @pymeth close|Closes the cursor */ {"execute", odbcCurExec, 1}, /* @pymeth execute|Execute some SQL */ {"fetchone", odbcCurFetchOne, 1}, /* @pymeth fetchone|Fetch one row of data */ @@ -1430,7 +1430,7 @@ static PyMethodDef cursorMethods[] = { {"setoutputsize", odbcCurSetOutputSize, 1}, /* @pymeth setoutputsize| */ {0, 0}}; -static PyMemberDef cursorMembers[] = {{"description", T_OBJECT, offsetof(cursorObject, description), READONLY}, +struct PyMemberDef cursorMembers[] = {{"description", T_OBJECT, offsetof(cursorObject, description), READONLY}, {"error", T_OBJECT, offsetof(cursorObject, cursorError), READONLY}, {NULL}}; diff --git a/win32/src/timermodule.cpp b/win32/src/timermodule.cpp index 7336897..7f2a5d2 100644 --- a/win32/src/timermodule.cpp +++ b/win32/src/timermodule.cpp @@ -8,7 +8,7 @@ // @doc - Contains autoduck comments for documentation -#include "pywintypes.h" +#include "PyWinTypes.h" // #include "abstract.h" static PyObject *timer_id_callback_map = NULL; diff --git a/win32/src/win32apimodule.cpp b/win32/src/win32apimodule.cpp index d08e665..d2b9ee6 100644 --- a/win32/src/win32apimodule.cpp +++ b/win32/src/win32apimodule.cpp @@ -545,7 +545,7 @@ static PyObject *PyFindExecutable(PyObject *self, PyObject *args) if (rc == (HINSTANCE)31) PyErr_SetString(PyWinExc_ApiError, "FindExecutable: There is no association for the file"); else - PyWin_SetAPIError("FindExecutable", (int)rc); + PyWin_SetAPIError("FindExecutable", (INT_PTR)rc); } else ret = Py_BuildValue("(NN)", PyWinLong_FromHANDLE(rc), PyWinObject_FromTCHAR(res)); @@ -1215,7 +1215,7 @@ static PyObject *PyLoadCursor(PyObject *self, PyObject *args) return NULL; // @pyseeapi LoadCursor PyW32_BEGIN_ALLOW_THREADS; - HCURSOR ret = ::LoadCursor(hInstance, MAKEINTRESOURCE(id)); + HCURSOR ret = ::LoadCursor(hInstance, MAKEINTRESOURCE((ULONG_PTR)id)); PyW32_END_ALLOW_THREADS; PyWinObject_FreeResourceId(id); if (ret == NULL) @@ -1855,7 +1855,7 @@ static PyObject *PyGetProcAddress(PyObject *self, PyObject *args) if (proc == NULL) return ReturnAPIError("GetProcAddress"); // @pyseeapi GetProcAddress - return PyWinLong_FromVoidPtr(proc); + return PyWinLong_FromVoidPtr((PVOID)proc); } // @pymethod |win32api|GetDllDirectory|Returns the DLL search path @@ -4454,7 +4454,7 @@ static PyObject *PyShellExecute(PyObject *self, PyObject *args) PyW32_END_ALLOW_THREADS; // @pyseeapi ShellExecute if (rc <= (HINSTANCE)32) - PyWin_SetAPIError("ShellExecute", (int)rc); + PyWin_SetAPIError("ShellExecute", (INT_PTR)rc); else ret = PyWinLong_FromVoidPtr(rc); } @@ -5464,8 +5464,8 @@ static PyObject *PyApply(PyObject *self, PyObject *args) } PyThreadState *stateSave = PyThreadState_Swap(NULL); PyThreadState_Swap(stateSave); - _try { ret = PyObject_CallObject(obFunc, obArgs); } - _except(PyApplyExceptionFilter(GetExceptionCode(), GetExceptionInformation(), obHandler, &exc_type, &exc_value)) + __try { ret = PyObject_CallObject(obFunc, obArgs); } + __except(PyApplyExceptionFilter(GetExceptionCode(), GetExceptionInformation(), obHandler, &exc_type, &exc_value)) { // Do my best to restore the thread state to a sane spot. PyThreadState *stateCur = PyThreadState_Swap(NULL); diff --git a/win32/src/win32clipboardmodule.cpp b/win32/src/win32clipboardmodule.cpp index 9ffe4b0..c89bef6 100644 --- a/win32/src/win32clipboardmodule.cpp +++ b/win32/src/win32clipboardmodule.cpp @@ -15,7 +15,7 @@ #define PY_SSIZE_T_CLEAN // this should be Py_ssize_t clean! -#include "pywintypes.h" +#include "PyWinTypes.h" #define CHECK_NO_ARGS2(args, fnName) \ do { \ @@ -1107,12 +1107,11 @@ static struct PyMethodDef clipboard_functions[] = { {NULL, NULL}}; #define ADD_CONSTANT(tok) \ - if (rc = PyModule_AddIntConstant(module, #tok, tok)) \ + if (int rc = PyModule_AddIntConstant(module, #tok, tok)) \ return rc static int AddConstants(PyObject *module) { - int rc; ADD_CONSTANT(CF_TEXT); ADD_CONSTANT(CF_BITMAP); ADD_CONSTANT(CF_METAFILEPICT); diff --git a/win32/src/win32credmodule.cpp b/win32/src/win32credmodule.cpp index 4c8567f..475dd1a 100644 --- a/win32/src/win32credmodule.cpp +++ b/win32/src/win32credmodule.cpp @@ -1174,8 +1174,10 @@ PYWIN_MODULE_INIT_FUNC(win32cred) PyModule_AddIntConstant(module, "CRED_TYPE_DOMAIN_PASSWORD", CRED_TYPE_DOMAIN_PASSWORD); PyModule_AddIntConstant(module, "CRED_TYPE_DOMAIN_CERTIFICATE", CRED_TYPE_DOMAIN_CERTIFICATE); PyModule_AddIntConstant(module, "CRED_TYPE_DOMAIN_VISIBLE_PASSWORD", CRED_TYPE_DOMAIN_VISIBLE_PASSWORD); +#ifdef _MSC_VER PyModule_AddIntConstant(module, "CRED_TYPE_GENERIC_CERTIFICATE", CRED_TYPE_GENERIC_CERTIFICATE); PyModule_AddIntConstant(module, "CRED_TYPE_DOMAIN_EXTENDED", CRED_TYPE_DOMAIN_EXTENDED); +#endif PyModule_AddIntConstant(module, "CRED_TYPE_MAXIMUM", CRED_TYPE_MAXIMUM); PyModule_AddIntConstant(module, "CRED_TYPE_MAXIMUM_EX", CRED_TYPE_MAXIMUM + 1000); // credential flags @@ -1237,7 +1239,9 @@ PYWIN_MODULE_INIT_FUNC(win32cred) PyModule_AddIntConstant(module, "CREDUI_MAX_USERNAME_LENGTH", CREDUI_MAX_USERNAME_LENGTH); PyModule_AddIntConstant(module, "CREDUI_MAX_PASSWORD_LENGTH", CREDUI_MAX_PASSWORD_LENGTH); +#ifdef _MSC_VER PyModule_AddIntConstant(module, "CRED_ENUMERATE_ALL_CREDENTIALS", CRED_ENUMERATE_ALL_CREDENTIALS); +#endif PYWIN_MODULE_INIT_RETURN_SUCCESS; } diff --git a/win32/src/win32crypt/win32cryptmodule.cpp b/win32/src/win32crypt/win32cryptmodule.cpp index 102422f..a576ef3 100644 --- a/win32/src/win32crypt/win32cryptmodule.cpp +++ b/win32/src/win32crypt/win32cryptmodule.cpp @@ -582,6 +582,7 @@ static PyObject *PyCertOpenStore(PyObject *self, PyObject *args, PyObject *kwarg pvPara = (void *)&cssrp; } else { +#ifdef _MSC_VER switch ((ULONG_PTR)StoreProvider) { case CERT_STORE_PROV_PHYSICAL: case CERT_STORE_PROV_FILENAME: @@ -623,6 +624,41 @@ static PyObject *PyCertOpenStore(PyObject *self, PyObject *args, PyObject *kwarg return NULL; } } +#else + if (StoreProvider == CERT_STORE_PROV_PHYSICAL) + if (StoreProvider == CERT_STORE_PROV_FILENAME) + if (StoreProvider == CERT_STORE_PROV_SYSTEM) + if (StoreProvider == CERT_STORE_PROV_SYSTEM_REGISTRY) + if (StoreProvider == CERT_STORE_PROV_LDAP) { + if (!PyWinObject_AsWCHAR(obpvPara, (WCHAR **)&pvPara)) + return NULL; + free_wchar = TRUE; + } + if (StoreProvider == CERT_STORE_PROV_REG) { + if (!PyWinObject_AsHKEY(obpvPara, (HKEY *)&pvPara)) + return NULL; + } + if (StoreProvider == CERT_STORE_PROV_FILE) { + if (!PyWinObject_AsHANDLE(obpvPara, (HANDLE *)&pvPara)) + return NULL; + } + if (StoreProvider == CERT_STORE_PROV_SERIALIZED) + if (StoreProvider == CERT_STORE_PROV_PKCS7) { + if (!pybuf.init(obpvPara)) + return NULL; + crypt_data_blob.pbData = (BYTE*)pybuf.ptr(); + crypt_data_blob.cbData = pybuf.len(); + pvPara = (void *)&crypt_data_blob; + } + if (StoreProvider == CERT_STORE_PROV_MEMORY) { + // pvPara is not used, warn if something passed in + if (obpvPara != Py_None) + PyErr_Warn(PyExc_RuntimeWarning, "Para ignored for CERT_STORE_PROV_MEMORY"); + } + + PyErr_SetString(PyExc_NotImplementedError, "Specified store provider type not supported"); + return NULL; +#endif } Py_BEGIN_ALLOW_THREADS hcertstore = CertOpenStore(StoreProvider, dwEncodingType, hcryptprov, dwFlags, pvPara); diff --git a/win32/src/win32dynamicdialog.cpp b/win32/src/win32dynamicdialog.cpp index 2b1992d..fecf525 100644 --- a/win32/src/win32dynamicdialog.cpp +++ b/win32/src/win32dynamicdialog.cpp @@ -31,14 +31,14 @@ #ifdef WIN32GUI // being compiled from WIN32GUI #define PYW_EXPORT -#include "python.h" +#include "Python.h" #undef PyHANDLE #include #include "CommCtrl.h" #include "windowsx.h" // For edit control hacks. -#include "pywintypes.h" -#include "pywinobjects.h" +#include "PyWinTypes.h" +#include "PyWinObjects.h" #include "tchar.h" #define BASED_CODE @@ -51,7 +51,7 @@ #endif #include "win32dynamicdialog.h" -static void DwordAlign(PCHAR *ptr) +void DwordAlign(PCHAR *ptr) { size_t offset = ((ULONG_PTR)*ptr) & 0x03; if (offset > 0) { @@ -211,7 +211,7 @@ void CPythonDialogTemplate::Set(DLGTEMPLATE *tmpl) HGLOBAL CPythonDialogTemplate::ClaimTemplate() { - register HGLOBAL h = m_h; + HGLOBAL h = m_h; m_h = NULL; m_alloc = 0; m_len = 0; @@ -597,7 +597,7 @@ static BOOL ParseDlgItemList(CPythonDialogTemplate *dlg, PyObject *tmpl) goto cleanup; if (IS_INTRESOURCE(wclass)) - ret = dlg->Add((WORD)wclass, &tpl, caption); + ret = dlg->Add((DWORD_PTR)wclass, &tpl, caption); else ret = dlg->Add(wclass, &tpl, caption, pybuf.len(), (BYTE *)pybuf.ptr()); @@ -628,7 +628,7 @@ PYW_EXPORT HGLOBAL MakeResourceFromDlgList(PyObject *tmpl) if (dlg == NULL) return NULL; - for (register Py_ssize_t i = 1; i < size; i++) { + for (Py_ssize_t i = 1; i < size; i++) { if (!ParseDlgItemList(dlg, PyTuple_GET_ITEM(obdlg, i))) { delete dlg; Py_DECREF(obdlg); diff --git a/win32/src/win32event.i b/win32/src/win32event.i index 2ed1fab..992b1b6 100644 --- a/win32/src/win32event.i +++ b/win32/src/win32event.i @@ -18,6 +18,7 @@ // only seem able to make this work with an incorrect level of // indirection, and fixing it up inline with a temp. +%typedef PTIMERAPCROUTINE PTIMERAPCROUTINE; %typemap(python,in) PTIMERAPCROUTINE *(PTIMERAPCROUTINE temp) { if ($source != Py_None) { PyErr_SetString(PyExc_TypeError, "This param must be None"); @@ -84,14 +85,13 @@ #define EVENT_ALL_ACCESS EVENT_ALL_ACCESS // Specifies all possible access flags for the event object. -#define EVENT_MODIFY_STATE EVENT_MODIFY_STATE // Enables use of the event handle in the SetEvent and ResetEvent�functions to modify the event�s state. +#define EVENT_MODIFY_STATE EVENT_MODIFY_STATE // Enables use of the event handle in the SetEvent and ResetEvent functions to modify the event's state. -#define SYNCHRONIZE SYNCHRONIZE // Windows NT only:�Enables use of the event handle in any of the wait functions�to wait for the event�s state to be signaled. +#define SYNCHRONIZE SYNCHRONIZE // Windows NT only: Enables use of the event handle in any of the wait functions to wait for the event's state to be signaled. // @pyswig |CancelWaitableTimer|Cancels a waiting timer. BOOLAPI CancelWaitableTimer(PyHANDLE handle); -#end // @pyswig |CreateEvent|Creates a waitable event // @rdesc The result is a handle to the created object @@ -384,7 +384,7 @@ static PyObject *MyWaitForMultipleObjectsEx( DWORD dwMilliseconds, // @pyparm int|milliseconds||time-out interval in milliseconds BOOL bAlertable // @pyparm bool|bAlertable||alertable wait flag. ); -%typedef DWORD DWORD_WAITAPI +%typedef DWORD DWORD_WAITAPI; %typemap(python,except) DWORD_WAITAPI { Py_BEGIN_ALLOW_THREADS $function diff --git a/win32/src/win32evtlog.i b/win32/src/win32evtlog.i index 111b0a3..1ef9a32 100644 --- a/win32/src/win32evtlog.i +++ b/win32/src/win32evtlog.i @@ -7,6 +7,8 @@ %include "typemaps.i" %include "pywin32.i" +%typedef HANDLE EVT_HANDLE; + %{ #include diff --git a/win32/src/win32file.i b/win32/src/win32file.i index e9c57aa..82a43ad 100644 --- a/win32/src/win32file.i +++ b/win32/src/win32file.i @@ -42,7 +42,7 @@ #include "winsock2.h" #include "mswsock.h" -#include "pywintypes.h" +#include "PyWinTypes.h" #include "winbase.h" #include "assert.h" #include @@ -62,6 +62,9 @@ %include "typemaps.i" %include "pywin32.i" +%typedef DCB DCB; +%typedef COMMTIMEOUTS COMMTIMEOUTS; + %{ #include "datetime.h" // python's datetime header. @@ -688,8 +691,8 @@ static PyObject *PySetFileTime (PyObject *self, PyObject *args, PyObject *kwargs &obHandle, &obCreationTime, &obLastAccessTime, &obLastWriteTime, &UTCTimes)) return NULL; - if (!PyWinObject_AsHANDLE(obHandle, &hHandle)) - return NULL; + if (!PyWinObject_AsHANDLE(obHandle, &hHandle)) + return NULL; if (obCreationTime != Py_None){ if (!PyWinObject_AsFILETIME(obCreationTime, &FileTime)) return NULL; @@ -5283,7 +5286,7 @@ static PyObject *py_GetFullPathName(PyObject *self, PyObject *args, PyObject *kw PyErr_Clear(); char *cpathin; - if (cpathin=PyBytes_AsString(obpathin)){ + if (cpathin==PyBytes_AsString(obpathin)){ if (htrans) CHECK_PFN(GetFullPathNameTransactedA); char *cpathret=NULL, *cfilepart, *cpathsave=NULL; diff --git a/win32/src/win32file_comm.cpp b/win32/src/win32file_comm.cpp index bcd2d36..cb2eda0 100644 --- a/win32/src/win32file_comm.cpp +++ b/win32/src/win32file_comm.cpp @@ -165,7 +165,7 @@ PyDCB::~PyDCB(void) {} #define GET_BITFIELD_ENTRY(bitfield_name) \ else if (strcmp(name, #bitfield_name) == 0) \ { \ - return PyLong_FromLong(pydcb->m_DCB.##bitfield_name); \ + return PyLong_FromLong(pydcb->m_DCB.bitfield_name); \ } PyObject *PyDCB::getattro(PyObject *self, PyObject *obname) @@ -201,7 +201,7 @@ PyObject *PyDCB::getattro(PyObject *self, PyObject *obname) PyErr_Format(PyExc_TypeError, szNeedIntAttr, #bitfield_name); \ return -1; \ } \ - pydcb->m_DCB.##bitfield_name = PyLong_AsLong(v); \ + pydcb->m_DCB.bitfield_name = PyLong_AsLong(v); \ return 0; \ } @@ -367,7 +367,7 @@ PyCOMSTAT::~PyCOMSTAT(void) {} #define GET_BITFIELD_ENTRY(bitfield_name) \ else if (strcmp(name, #bitfield_name) == 0) \ { \ - return PyLong_FromLong(pyCOMSTAT->m_COMSTAT.##bitfield_name); \ + return PyLong_FromLong(pyCOMSTAT->m_COMSTAT.bitfield_name); \ } PyObject *PyCOMSTAT::getattro(PyObject *self, PyObject *obname) @@ -397,7 +397,7 @@ PyObject *PyCOMSTAT::getattro(PyObject *self, PyObject *obname) PyErr_Format(PyExc_TypeError, szNeedIntAttr, #bitfield_name); \ return -1; \ } \ - pyCOMSTAT->m_COMSTAT.##bitfield_name = PyLong_AsLong(v); \ + pyCOMSTAT->m_COMSTAT.bitfield_name = PyLong_AsLong(v); \ return 0; \ } diff --git a/win32/src/win32gui.i b/win32/src/win32gui.i index 3890202..62d2fa4 100644 --- a/win32/src/win32gui.i +++ b/win32/src/win32gui.i @@ -6,9 +6,20 @@ %include "typemaps.i" %include "pywintypes.i" +%typedef POINT POINT; +%typedef RECT RECT; +%typedef MSG MSG; +%typedef TRACKMOUSEEVENT TRACKMOUSEEVENT; +%typedef PAINTSTRUCT PAINTSTRUCT; +%typedef ICONINFO ICONINFO; +%typedef LOGFONT LOGFONT; +%typedef MENUITEMINFO MENUITEMINFO; +%typedef NOTIFYICONDATA NOTIFYICONDATA; +%typedef OPENFILENAME OPENFILENAME; + %{ #undef PyHANDLE -#include "pywinobjects.h" +#include "PyWinObjects.h" #include "winuser.h" #include "CommCtrl.h" #include "windowsx.h" // For edit control hacks. @@ -326,14 +337,14 @@ typedef float HDC, HCURSOR, HINSTANCE, HMENU, HICON, HGDIOBJ, HIMAGELIST, HACCEL } %apply COLORREF {long}; -typedef long COLORREF +typedef long COLORREF; typedef HANDLE WPARAM; typedef HANDLE LPARAM; typedef HANDLE LRESULT; typedef int UINT; -%typedef void *NULL_ONLY +%typedef void *NULL_ONLY; %typemap(python,in) NULL_ONLY { if ($source != Py_None) { @@ -1701,9 +1712,9 @@ static PyObject *PyGetBufferAddressAndLen(PyObject *self, PyObject *args) %native (PyGetBufferAddressAndLen) PyGetBufferAddressAndLen; -%typedef TCHAR *STRING_OR_ATOM_CW -%typedef TCHAR *RESOURCE_ID -%typedef TCHAR *RESOURCE_ID_NULLOK +%typedef TCHAR *STRING_OR_ATOM_CW; +%typedef TCHAR *RESOURCE_ID; +%typedef TCHAR *RESOURCE_ID_NULLOK; %typemap(python,arginit) STRING_OR_ATOM_CW, RESOURCE_ID, RESOURCE_ID_NULLOK{ $target=NULL; @@ -1766,12 +1777,12 @@ PyObject *PyFlashWindowEx(PyObject *self, PyObject *args) return NULL; // not on NT HMODULE hmod = GetModuleHandle(_T("user32")); - BOOL (WINAPI *pfnFW)(PFLASHWINFO) = NULL; - if (hmod) - pfnFW = (BOOL (WINAPI *)(PFLASHWINFO))GetProcAddress(hmod, "FlashWindowEx"); - if (pfnFW==NULL) - return PyErr_Format(PyExc_NotImplementedError, - "FlashWindowsEx is not supported on this version of windows"); + BOOL (WINAPI *pfnFW)(PFLASHWINFO) = NULL; + if (hmod) + pfnFW = (BOOL (WINAPI *)(PFLASHWINFO))GetProcAddress(hmod, "FlashWindowEx"); + if (pfnFW==NULL) + return PyErr_Format(PyExc_NotImplementedError, + "FlashWindowsEx is not supported on this version of windows"); Py_BEGIN_ALLOW_THREADS rc = (*pfnFW)(&f); Py_END_ALLOW_THREADS @@ -7511,13 +7522,13 @@ PyObject *PyRegisterDeviceNotification(PyObject *self, PyObject *args) "structure says it has %d bytes, but %d was provided", (int)struct_bytes, (int)pybuf.len()); // @pyseeapi RegisterDeviceNotification - HDEVNOTIFY not; + HDEVNOTIFY notify; Py_BEGIN_ALLOW_THREADS - not = RegisterDeviceNotification(handle, pybuf.ptr(), flags); + notify = RegisterDeviceNotification(handle, pybuf.ptr(), flags); Py_END_ALLOW_THREADS - if (not == NULL) + if (notify == NULL) return PyWin_SetAPIError("RegisterDeviceNotification"); - return PyWinObject_FromHDEVNOTIFY(not); + return PyWinObject_FromHDEVNOTIFY(notify); } %} %native(RegisterDeviceNotification) PyRegisterDeviceNotification; diff --git a/win32/src/win32helpmodule.cpp b/win32/src/win32helpmodule.cpp index ce473ef..5526578 100644 --- a/win32/src/win32helpmodule.cpp +++ b/win32/src/win32helpmodule.cpp @@ -2539,13 +2539,11 @@ data tuple items must be integers"); // Module constants: #define ADD_CONSTANT(tok) \ - if (rc = PyModule_AddIntConstant(module, #tok, tok)) \ + if (int rc = PyModule_AddIntConstant(module, #tok, tok)) \ return rc int AddConstants(PyObject *module) { - int rc; - #ifdef _DEBUG int debug = 1; #else @@ -3086,7 +3084,7 @@ int AddConstants(PyObject *module) // @const win32help|HH_GPROPID_CONTENT_LANGUAGE|long: LandId for desired // content. - return rc; + return 0; } /* List of functions exported by this module */ diff --git a/win32/src/win32inet_winhttp.cpp b/win32/src/win32inet_winhttp.cpp index a3292da..2c7b0ea 100644 --- a/win32/src/win32inet_winhttp.cpp +++ b/win32/src/win32inet_winhttp.cpp @@ -6,8 +6,8 @@ // The intent is to only wrap stuff which isn't otherwise doable from // Python, such as the proxy stuff. -#include "pywintypes.h" -#include "pywinobjects.h" +#include "PyWinTypes.h" +#include "PyWinObjects.h" #include "winhttp.h" // @doc diff --git a/win32/src/win32lzmodule.cpp b/win32/src/win32lzmodule.cpp index 651bdcf..9ac5406 100644 --- a/win32/src/win32lzmodule.cpp +++ b/win32/src/win32lzmodule.cpp @@ -11,7 +11,7 @@ generates Windows .hlp files. ******************************************************************/ -#include "Pywintypes.h" +#include "PyWinTypes.h" #include "lzexpand.h" static PyObject *obHandleMap = NULL; diff --git a/win32/src/win32net/win32netmisc.cpp b/win32/src/win32net/win32netmisc.cpp index aa1b5da..9127be8 100644 --- a/win32/src/win32net/win32netmisc.cpp +++ b/win32/src/win32net/win32netmisc.cpp @@ -1353,7 +1353,7 @@ PyObject *PyNetServerComputerNameDel(PyObject *self, PyObject *args) return ret; } -extern "C" NetValidateNamefunc pfnNetValidateName = NULL; +extern "C" { NetValidateNamefunc pfnNetValidateName = NULL; } // @pymethod |win32net|NetValidateName|Checks that domain/machine/workgroup name is valid for given context // @rdesc Returns none if valid, exception if not // @comm If Account and Password aren't passed, current logon credentials are used @@ -1396,8 +1396,8 @@ PyObject *PyNetValidateName(PyObject *self, PyObject *args) return ret; } -extern "C" NetValidatePasswordPolicyfunc pfnNetValidatePasswordPolicy = NULL; -extern "C" NetValidatePasswordPolicyFreefunc pfnNetValidatePasswordPolicyFree = NULL; +extern "C" { NetValidatePasswordPolicyfunc pfnNetValidatePasswordPolicy = NULL; } +extern "C" { NetValidatePasswordPolicyFreefunc pfnNetValidatePasswordPolicyFree = NULL; } static void PyObject_CleanupAUTH_INPUT(NET_VALIDATE_AUTHENTICATION_INPUT_ARG *p) { diff --git a/win32/src/win32pdhmodule.cpp b/win32/src/win32pdhmodule.cpp index 8d3c7d7..1b08a04 100644 --- a/win32/src/win32pdhmodule.cpp +++ b/win32/src/win32pdhmodule.cpp @@ -1002,7 +1002,7 @@ PDH_STATUS __stdcall PyCounterPathCallback(DWORD_PTR dwArg) { \ if (i < seqLen) { \ PyObject *subItem = PyTuple_GET_ITEM(flags_tuple, i); \ - myCfg.cfg.##r = PyObject_IsTrue(subItem); \ + myCfg.cfg.r = PyObject_IsTrue(subItem); \ } \ } diff --git a/win32/src/win32process.i b/win32/src/win32process.i index c938f45..20f70c5 100644 --- a/win32/src/win32process.i +++ b/win32/src/win32process.i @@ -1598,6 +1598,7 @@ PyObject *PyIsWow64Process(PyObject *self, PyObject *args) $target = PyWinLong_FromVoidPtr($source); } +%typedef ULONG_PTR ULONG_PTR; // @pyswig long|VirtualAllocEx| LONG_VOIDPTR VirtualAllocEx( diff --git a/win32/src/win32rasmodule.cpp b/win32/src/win32rasmodule.cpp index 2213d20..d4bdb88 100644 --- a/win32/src/win32rasmodule.cpp +++ b/win32/src/win32rasmodule.cpp @@ -11,7 +11,7 @@ generates Windows .hlp files. ******************************************************************/ -#include "pywintypes.h" +#include "PyWinTypes.h" #include "ras.h" #include "raserror.h" @@ -541,7 +541,7 @@ static PyObject *PyRasDial(PyObject *self, PyObject *args) pNotification = NULL; } else if (PyCallable_Check(obCallback)) { - pNotification = PyRasDialFunc1; + pNotification = (LPVOID)PyRasDialFunc1; notType = 1; } else if (PyLong_Check(obCallback)) { @@ -774,15 +774,15 @@ static PyObject *PyRasGetEntryDialParams(PyObject *self, PyObject *args) // @pymethod string|win32ras|GetErrorString|Returns an error string for a RAS error code. static PyObject *PyRasGetErrorString(PyObject *self, PyObject *args) { + TCHAR buf[512]; DWORD error; - DWORD rc; + DWORD rc = RasGetErrorString(error, buf, sizeof(buf) / sizeof(buf[0])); if (!PyArg_ParseTuple(args, "i:GetErrorString", &error)) // @pyparm int|error||The error value being queried. return NULL; - TCHAR buf[512]; // @pyseeapi RasGetErrorString - if (rc = RasGetErrorString(error, buf, sizeof(buf) / sizeof(buf[0]))) + if (rc) return ReturnRasError("RasGetErrorString"); return PyWinObject_FromTCHAR(buf); } @@ -790,14 +790,14 @@ static PyObject *PyRasGetErrorString(PyObject *self, PyObject *args) // @pymethod |win32ras|HangUp|Terminates a remote access session. static PyObject *PyRasHangUp(PyObject *self, PyObject *args) { - DWORD rc; HRASCONN hras; + DWORD rc = RasHangUp(hras); if (!PyArg_ParseTuple(args, "O&:HangUp", PyWinObject_AsHANDLE, &hras)) // @pyparm int|hras||The handle to the RAS connection to be terminated. return NULL; // @pyseeapi RasHangUp - if (rc = RasHangUp(hras)) + if (rc) return ReturnRasError("RasHangup"); Py_INCREF(Py_None); return Py_None; @@ -810,7 +810,7 @@ static PyObject *PyRasIsHandleValid(PyObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "O&:IsHandleValid", PyWinObject_AsHANDLE, &hras)) // @pyparm int|hras||The handle to the RAS connection being checked. return NULL; - BOOL bRet = (hras >= 0); + BOOL bRet = ((INT_PTR)hras >= 0); return PyBool_FromLong(bRet); } @@ -916,7 +916,7 @@ static struct PyMethodDef win32ras_functions[] = { {NULL, NULL}}; #define ADD_CONSTANT(tok) \ - if (rc = PyModule_AddIntConstant(module, #tok, tok)) \ + if (int rc = PyModule_AddIntConstant(module, #tok, tok)) \ return rc #define ADD_ENUM(parta, partb) \ if (rc = PyModule_AddIntConstant(module, #parta "_" #partb, parta::partb)) \ @@ -927,7 +927,6 @@ static struct PyMethodDef win32ras_functions[] = { static int AddConstants(PyObject *module) { - int rc; ADD_CONSTANT(RASCS_OpenPort); // @const win32ras|RASCS_OpenPort|Constant for RAS state. ADD_CONSTANT(RASCS_PortOpened); // @const win32ras|RASCS_PortOpened|Constant for RAS state. ADD_CONSTANT(RASCS_ConnectDevice); // @const win32ras|RASCS_ConnectDevice|Constant for RAS state. diff --git a/win32/src/win32security.i b/win32/src/win32security.i index ff24c6d..688bd04 100644 --- a/win32/src/win32security.i +++ b/win32/src/win32security.i @@ -72,7 +72,7 @@ static IsTokenRestrictedfunc pfnIsTokenRestricted = NULL; typedef PSecurityFunctionTableW (SEC_ENTRY *InitSecurityInterfacefunc)(void); static InitSecurityInterfacefunc pfnInitSecurityInterface=NULL; -extern PSecurityFunctionTableW psecurityfunctiontable=NULL; +PSecurityFunctionTableW psecurityfunctiontable=NULL; typedef BOOL (WINAPI *TranslateNamefunc)(LPCTSTR, EXTENDED_NAME_FORMAT, EXTENDED_NAME_FORMAT, LPTSTR, PULONG); static TranslateNamefunc pfnTranslateName=NULL; @@ -85,20 +85,20 @@ static LogonUserExExfunc pfnLogonUserExEx = NULL; // function pointers used in win32security_sspi.cpp and win32security_ds.cpp -extern DsBindfunc pfnDsBind=NULL; -extern DsUnBindfunc pfnDsUnBind=NULL; -extern DsGetSpnfunc pfnDsGetSpn=NULL; -extern DsWriteAccountSpnfunc pfnDsWriteAccountSpn=NULL; -extern DsFreeSpnArrayfunc pfnDsFreeSpnArray=NULL; -extern DsGetDcNamefunc pfnDsGetDcName=NULL; -extern DsCrackNamesfunc pfnDsCrackNames=NULL; -extern DsListInfoForServerfunc pfnDsListInfoForServer=NULL; -extern DsListServersForDomainInSitefunc pfnDsListServersForDomainInSite=NULL; -extern DsListServersInSitefunc pfnDsListServersInSite=NULL; -extern DsListSitesfunc pfnDsListSites=NULL; -extern DsListDomainsInSitefunc pfnDsListDomainsInSite=NULL; -extern DsListRolesfunc pfnDsListRoles=NULL; -extern DsFreeNameResultfunc pfnDsFreeNameResult=NULL; +DsBindfunc pfnDsBind=NULL; +DsUnBindfunc pfnDsUnBind=NULL; +DsGetSpnfunc pfnDsGetSpn=NULL; +DsWriteAccountSpnfunc pfnDsWriteAccountSpn=NULL; +DsFreeSpnArrayfunc pfnDsFreeSpnArray=NULL; +DsGetDcNamefunc pfnDsGetDcName=NULL; +DsCrackNamesfunc pfnDsCrackNames=NULL; +DsListInfoForServerfunc pfnDsListInfoForServer=NULL; +DsListServersForDomainInSitefunc pfnDsListServersForDomainInSite=NULL; +DsListServersInSitefunc pfnDsListServersInSite=NULL; +DsListSitesfunc pfnDsListSites=NULL; +DsListDomainsInSitefunc pfnDsListDomainsInSite=NULL; +DsListRolesfunc pfnDsListRoles=NULL; +DsFreeNameResultfunc pfnDsFreeNameResult=NULL; static HMODULE advapi32_dll=NULL; static HMODULE secur32_dll =NULL; @@ -110,8 +110,8 @@ static HMODULE netapi32_dll=NULL; HMODULE loadmodule(WCHAR *dllname) { HMODULE hmodule = GetModuleHandle(dllname); - if (hmodule==NULL) - hmodule = LoadLibrary(dllname); + if (hmodule==NULL) + hmodule = LoadLibrary(dllname); return hmodule; } @@ -3312,12 +3312,14 @@ static PyObject *PyCreateRestrictedToken(PyObject *self, PyObject *args, PyObjec if (PyWinObject_AsHANDLE(obExistingTokenHandle, &ExistingTokenHandle)) if (PyWinObject_AsSID_AND_ATTRIBUTESArray(obSidsToDisable, &SidsToDisable, &DisableSidCount)) if (PyWinObject_AsSID_AND_ATTRIBUTESArray(obSidsToRestrict, &SidsToRestrict, &RestrictedSidCount)) - if (PyWinObject_AsLUID_AND_ATTRIBUTESArray(obPrivilegesToDelete, &PrivilegesToDelete, &DeletePrivilegeCount)) + if (PyWinObject_AsLUID_AND_ATTRIBUTESArray(obPrivilegesToDelete, &PrivilegesToDelete, &DeletePrivilegeCount)){ if ((*pfnCreateRestrictedToken)(ExistingTokenHandle,Flags,DisableSidCount,SidsToDisable, - DeletePrivilegeCount,PrivilegesToDelete,RestrictedSidCount,SidsToRestrict,&NewTokenHandle)) + DeletePrivilegeCount,PrivilegesToDelete,RestrictedSidCount,SidsToRestrict,&NewTokenHandle)){ ret=PyWinObject_FromHANDLE(NewTokenHandle); - else + }else{ PyWin_SetAPIError("CreateRestrictedToken",GetLastError()); + } + } if (SidsToDisable!=NULL) free(SidsToDisable); if (PrivilegesToDelete!=NULL) diff --git a/win32/src/win32service.i b/win32/src/win32service.i index b91a0e1..7dfb479 100644 --- a/win32/src/win32service.i +++ b/win32/src/win32service.i @@ -6,6 +6,8 @@ %include "typemaps.i" %include "pywin32.i" +%typedef SERVICE_STATUS SERVICE_STATUS; + %{ #undef PyHANDLE #include "PyWinObjects.h" diff --git a/win32/src/win32wnet/PyNCB.cpp b/win32/src/win32wnet/PyNCB.cpp index e2290be..ee73e80 100644 --- a/win32/src/win32wnet/PyNCB.cpp +++ b/win32/src/win32wnet/PyNCB.cpp @@ -17,9 +17,9 @@ ******************************************************************/ // @doc -#include "Pywintypes.h" +#include "PyWinTypes.h" #include -#include "python.h" +#include "Python.h" #include "PyNCB.h" #include diff --git a/win32/src/win32wnet/PyNetresource.cpp b/win32/src/win32wnet/PyNetresource.cpp index 9d928b3..8e258ae 100644 --- a/win32/src/win32wnet/PyNetresource.cpp +++ b/win32/src/win32wnet/PyNetresource.cpp @@ -18,7 +18,7 @@ // @doc #include "PyWinTypes.h" -#include "netres.h" // C++ header file for NETRESOURCE object +#include "Netres.h" // C++ header file for NETRESOURCE object static PyObject *NETRESOURCE_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { diff --git a/win32/src/win32wnet/win32wnet.cpp b/win32/src/win32wnet/win32wnet.cpp index fe5c6cc..a57ff9d 100644 --- a/win32/src/win32wnet/win32wnet.cpp +++ b/win32/src/win32wnet/win32wnet.cpp @@ -38,8 +38,8 @@ #include "PyWinTypes.h" #include "PyWinObjects.h" // for the PyHANDLE impl. -#include "netres.h" // NETRESOURCE Type -#include "pyncb.h" +#include "Netres.h" // NETRESOURCE Type +#include "PyNCB.h" /**************************************************************************** HELPER FUNCTIONS