Leaked source code of windows server 2003
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.
 
 
 
 
 
 

129 lines
3.8 KiB

/////////////////////////////////////////////////////////////////////////////
// FILE : Root.cpp //
// //
// DESCRIPTION : Implementation of the Fax extension snapin //
// The snapin root is a hidden node that use to extend //
// comet node. //
// //
// //
// AUTHOR : yossg //
// //
// HISTORY : //
// Oct 27 1999 yossg create //
// Dec 9 1999 yossg Call InitDisplayName from parent //
// Oct 17 2000 yossg //
// //
// Copyright (C) 1999 Microsoft Corporation All Rights Reserved //
/////////////////////////////////////////////////////////////////////////////
#include "StdAfx.h"
#include "snapin.h"
#include "snpnode.h"
#include "Root.h"
#include "FaxServerNode.h"
#include "Icons.h"
#include "resource.h"
/****************************************************
CSnapinRoot Class
****************************************************/
// {89A457D1-FDF9-11d2-898A-00104B3FF735}
static const GUID CSnapinRootGUID_NODETYPE =
{ 0x89a457d1, 0xfdf9, 0x11d2, { 0x89, 0x8a, 0x0, 0x10, 0x4b, 0x3f, 0xf7, 0x35 } };
const GUID* CSnapinRoot::m_NODETYPE = &CSnapinRootGUID_NODETYPE;
const OLECHAR* CSnapinRoot::m_SZNODETYPE = OLESTR("89A457D1-FDF9-11d2-898A-00104B3FF735");
const OLECHAR* CSnapinRoot::m_SZDISPLAY_NAME = OLESTR("root");
const CLSID* CSnapinRoot::m_SNAPIN_CLASSID = &CLSID_Snapin;
/*
- CSnapinRoot::PopulateScopeChildrenList
-
* Purpose:
* Create the Fax Server snapin root node
*
* Arguments:
*
* Return:
* OLE error code
*/
HRESULT CSnapinRoot::PopulateScopeChildrenList()
{
DEBUG_FUNCTION_NAME( _T("CSnapinRoot::PopulateScopeChildrenList()"));
HRESULT hr = S_OK;
//
// Add the Fax Node
//
CFaxServerNode * pI;
pI = new CFaxServerNode(this, m_pComponentData, m_bstrServerName.m_str);
if (pI == NULL)
{
hr = E_OUTOFMEMORY;
NodeMsgBox(IDS_MEMORY);
goto Cleanup;
}
pI->SetIcons(IMAGE_FAX, IMAGE_FAX);
hr = pI->InitDisplayName();
if ( FAILED(hr) )
{
DebugPrintEx(DEBUG_ERR,_T("Failed to display node name. (hRc: %08X)"), hr);
NodeMsgBox(IDS_FAIL_TO_ADD_NODE);
delete pI;
goto Cleanup;
}
hr = AddChild(pI, &pI->m_scopeDataItem);
if ( FAILED(hr) )
{
DebugPrintEx(DEBUG_ERR,_T("Failed to AddChild. (hRc: %08X)"), hr);
NodeMsgBox(IDS_FAIL_TO_ADD_NODE);
delete pI;
goto Cleanup;
}
Cleanup:
return hr;
}
/*
- CSnapinRoot::SetServerName
-
* Purpose:
* Set the Server machine name
*
* Arguments:
*
* Return:
* OLE error code
*/
HRESULT CSnapinRoot::SetServerName(BSTR bstrServerName)
{
DEBUG_FUNCTION_NAME( _T("CSnapinRoot::SetServerName"));
HRESULT hRc = S_OK;
m_bstrServerName = bstrServerName;
if (!m_bstrServerName)
{
hRc = E_OUTOFMEMORY;
DebugPrintEx(
DEBUG_ERR,
_T("Failed to allocate string - out of memory"));
NodeMsgBox(IDS_MEMORY);
m_bstrServerName = L"";
}
return hRc;
}