Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
Exch.cpp : implementation file
CPropertyPage support for User mgmt wizard
File History:
JonY Apr-96 created
--*/
#include "stdafx.h"
#include "speckle.h"
#include "Exch.h"
#include "sadapi.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// CExch property page
IMPLEMENT_DYNCREATE(CExch, CPropertyPage)
CExch::CExch() : CPropertyPage(CExch::IDD) { //{{AFX_DATA_INIT(CExch)
m_csDomainName = _T(""); m_csServerName = _T(""); //}}AFX_DATA_INIT
}
CExch::~CExch() { }
void CExch::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CExch)
DDX_Text(pDX, IDC_STATIC_DOMAIN, m_csDomainName); DDX_Text(pDX, IDC_SERVERNAME_EDIT, m_csServerName); //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CExch, CPropertyPage) //{{AFX_MSG_MAP(CExch)
ON_WM_SHOWWINDOW() //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CExch message handlers
LRESULT CExch::OnWizardNext() { CSpeckleApp* pApp = (CSpeckleApp*)AfxGetApp();
UpdateData(TRUE); if (m_csServerName == L"") { AfxMessageBox(IDS_NO_EXCH_SERVER); GetDlgItem(IDC_SERVERNAME_EDIT)->SetFocus(); return -1; }
pApp->m_csExchangeServer = m_csServerName; return IDD_RESTRICTIONS_DIALOG;
}
LRESULT CExch::OnWizardBack() { CSpeckleApp* pApp = (CSpeckleApp*)AfxGetApp();
if (pApp->m_bNW) return IDD_FPNW_DLG; else if (pApp->m_bRAS) return IDD_RAS_PERM_DIALOG; else if (pApp->m_bHomeDir) return IDD_HOMEDIR_DIALOG; else if (pApp->m_bLoginScript) return IDD_LOGON_SCRIPT_DIALOG; else if (pApp->m_bProfile) return IDD_PROFILE; else return IDD_OPTIONS_DIALOG;
}
void CExch::OnShowWindow(BOOL bShow, UINT nStatus) { CPropertyPage::OnShowWindow(bShow, nStatus); if (bShow) { CSpeckleApp* pApp = (CSpeckleApp*)AfxGetApp(); m_csDomainName = pApp->m_csDomain; UpdateData(FALSE);
// bind to the first Exch server
/* PRPCBINDINFO pBindInfo = new RPCBINDINFO;
ZeroMemory(pBindInfo, sizeof(RPCBINDINFO));
TCHAR wszServer[256]; // ZeroMemory(wszServer, 256);
_tcscpy(wszServer, L"");
RPC_SC rVal = SAD_ScBind(pBindInfo, wszServer); if (rVal != ERROR_SUCCESS) { AfxMessageBox(L"cant bind"); return; }
// using the first server, enumerate the rest
BackupListNode* BackupNode = NULL; rVal = SAD_ScGetBackupListNodeW(pBindInfo->wszServer, &BackupNode);
SAD_FreeBackupListNode(BackupNode); SAD_Unbind(pBindInfo);
delete pBindInfo; */ /*
RPC_NS_HANDLE ic; RPC_STATUS rpcstat; RPC_BINDING_HANDLE h; BackupListNode * pBLN = NULL;
#define szRPCEntryNameSAA L"/.:/MSExchangeSAA"
// create context for looking up entries in the RPC name service
rpcstat = RpcNsBindingImportBegin(RPC_C_NS_SYNTAX_DEFAULT, szRPCEntryNameSAA, TriggerBackupRPC_ClientIfHandle, NULL, &ic);
if (rpcstat == RPC_S_OK) { do { FreeBackupListNode(pBLN); pBLN = NULL;
// bind to a server somewhere out there
rpcstat = RpcNsBindingImportNext(ic, &h); if (rpcstat == RPC_S_OK) { // bind successful - try to get the list of servers
RPC_SC rVal = ScGetBackupListNode(h, &pBLN); RpcBindingFree(&h); if (pBLN != NULL) { ASSERT(0); break; } } } while (rpcstat != RPC_S_NO_MORE_BINDINGS); RpcNsBindingImportDone(&ic); } */ } }
|