Thomas Weidenmueller wrote:
I thought you meant CommConfigDialog. Btw i tried calling drvCommConfigDialogA in WinXP and it returned ERROR_CALL_NOT_IMPLEMENTED. So the return type is definitely not a BOOL but rather a DWORD returning a win32 error code (or 0 for success).
Maybe this is because you pressed cancel button and ERROR_CALL_NOT_IMPLEMENTED was set somewhere else? It returns FALSE when cancel button is pressed.
From CommConfig dialog description: If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call *GetLastError*.
I think drvCommConfigDialog should return the same. Maybe adding SetLastError(ERROR_CANCELLED) and SetLastError(ERROR_SUCCESS) will solve the problem?