windows-nt/Source/XPSP1/NT/printscan/print/spooler/inetpp2/clientui/deletedlg.cpp
2020-09-26 16:20:57 +08:00

109 lines
2.2 KiB
C++

/*****************************************************************************\
* MODULE: configdlg.cxx
*
* The module contains routines for handling the authentication dialog
* for internet priting
*
* Copyright (C) 1996-1998 Microsoft Corporation
*
* History:
* 07/31/98 WeihaiC Created
* 04/10/00 WeihaiC Moved it to client side
*
\*****************************************************************************/
#include "precomp.h"
#include "priv.h"
#define MAX_BUF_SIZE 256
TDeletePortDlg::TDeletePortDlg (
LPCWSTR pServerName,
HWND hWnd,
LPCWSTR pszPortName):
TXcvDlg (pServerName, hWnd, pszPortName)
{
if (m_bAdmin) {
m_bValid = TRUE;
}
else {
m_dwLE = ERROR_ACCESS_DENIED;
m_bValid = FALSE;
}
}
TDeletePortDlg::~TDeletePortDlg ()
{
}
BOOL
TDeletePortDlg::GetString (
LPWSTR lpszBuf,
DWORD dwSize,
UINT iStringID)
{
return LoadString(m_hInst, iStringID, lpszBuf, dwSize);
}
BOOL
TDeletePortDlg::PromptDialog (
HINSTANCE hInst)
{
BOOL bRet = TRUE;
m_hInst = hInst;
if (!DoDeletePort ()) {
DisplayLastError (m_hWnd, IDS_DELETE_PORT);
//
// The call actually failed. Since we already displayed the error message
// we need to disable the popup from printui.
//
m_dwLE = ERROR_CANCELLED;
bRet = FALSE;
}
return bRet;
}
BOOL
TDeletePortDlg::DoDeletePort ()
{
static CONST WCHAR cszDeletePort [] = INET_XCV_DELETE_PORT;
DWORD dwStatus;
BOOL bRet = FALSE;
DWORD dwNeeded;
if (XcvData (m_hXcvPort,
cszDeletePort,
(PBYTE) m_pszPortName,
sizeof (WCHAR) * (lstrlen (m_pszPortName) + 1),
NULL,
0,
&dwNeeded,
&dwStatus)) {
if (dwStatus == ERROR_SUCCESS) {
// The port has been deleted.
bRet = TRUE;
}
else
SetLastError (dwStatus);
}
else
//
// The server might be running an old version of inetpp which does not support XcvData
// We need to fail the call
//
SetLastError (ERROR_NOT_SUPPORTED);
return bRet;
}