Home | Info | Community | Development | myReactOS | Contact Us
[static]
Definition at line 502 of file localui.c.
Referenced by InitializePrintMonitorUI().
{ addportui_t data; HANDLE hXcv; DWORD needed; DWORD dummy; DWORD status; DWORD res = FALSE; TRACE( "(%s, %p, %s, %p) (*ppPortName: %p)\n", debugstr_w(pName), hWnd, debugstr_w(pMonitorName), ppPortName, ppPortName ? *ppPortName : NULL); if (open_monitor_by_name(XcvMonitorW, pMonitorName, &hXcv)) { ZeroMemory(&data, sizeof(addportui_t)); data.hXcv = hXcv; res = DialogBoxParamW(LOCALUI_hInstance, MAKEINTRESOURCEW(ADDPORT_DIALOG), hWnd, dlgproc_addport, (LPARAM) &data); TRACE("got %u with %u for %s\n", res, GetLastError(), debugstr_w(data.portname)); if (ppPortName) *ppPortName = NULL; if (res) { res = XcvDataW(hXcv, cmd_AddPortW, (PBYTE) data.portname, (lstrlenW(data.portname)+1) * sizeof(WCHAR), (PBYTE) &dummy, 0, &needed, &status); TRACE("got %u with status %u\n", res, status); if (res && (status == ERROR_SUCCESS) && ppPortName) { /* Native localui uses GlobalAlloc also. The caller must GlobalFree the buffer */ *ppPortName = GlobalAlloc(GPTR, (lstrlenW(data.portname)+1) * sizeof(WCHAR)); if (*ppPortName) lstrcpyW(*ppPortName, data.portname); } if (res && (status == ERROR_ALREADY_EXISTS)) { dlg_port_already_exists(hWnd, data.portname); /* Native localui also return "TRUE" from AddPortUI in this case */ } HeapFree(GetProcessHeap(), 0, data.portname); } else { SetLastError(ERROR_CANCELLED); } ClosePrinter(hXcv); } TRACE("=> %u with %u\n", res, GetLastError()); return res; }