MCPcopy Create free account
hub / github.com/mhammond/pywin32 / transmitFileCompletion

Function transmitFileCompletion

isapi/src/PyExtensionObjects.cpp:867–892  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

865};
866
867VOID WINAPI transmitFileCompletion(EXTENSION_CONTROL_BLOCK * pECB,
868 PVOID pContext,
869 DWORD cbIO,
870 DWORD dwError)
871{
872 PyTFD *context = (PyTFD *)pContext;
873 CEnterLeavePython celp;
874
875 CControlBlock * pcb = new CControlBlock(pECB);
876 // PyECB takes ownership of pcb - so when it dies, so does pcb.
877 PyECB *pyECB = new PyECB(pcb);
878 if (pyECB && pcb) {
879 Py_INCREF(pyECB);
880 PyObject *realArgs = Py_BuildValue("NOii", pyECB, context->arg, cbIO, dwError);
881 if (realArgs) {
882 PyObject *rc = PyObject_Call(context->callable, realArgs, NULL);
883 if (rc)
884 Py_DECREF(rc);
885 else
886 ExtensionError(pcb, "TransmitFile callback failed");
887 Py_DECREF(realArgs);
888 Py_DECREF(pyECB);
889 }
890 }
891 context->Cleanup(); // let's hope we never get called again ;)
892}
893
894
895// @pymethod int|EXTENSION_CONTROL_BLOCK|TransmitFile|Calls ServerSupportFunction with HSE_REQ_TRANSMIT_FILE

Callers

nothing calls this directly

Calls 2

CleanupMethod · 0.80
ExtensionErrorFunction · 0.70

Tested by

no test coverage detected