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.
|
|
// This is a part of the Microsoft Management Console.
// Copyright 1995 - 1997 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Management Console and related
// electronic documentation provided with the interfaces.
#include "stdafx.h"
#include "Service.h"
#include "CSnapin.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
void CFolder::Create(LPWSTR szName, int nImage, int nOpenImage, FOLDER_TYPES type, BOOL bHasChildren) { ASSERT(m_pScopeItem == NULL); // Calling create twice on this item?
// Two-stage construction
m_pScopeItem = new SCOPEDATAITEM; memset(m_pScopeItem, 0, sizeof(SCOPEDATAITEM));
// Set folder type
m_type = type;
// Add node name
if (szName != NULL) { m_pScopeItem->mask = SDI_STR; m_pScopeItem->displayname = (unsigned short*)(-1);
UINT uiByteLen = (wcslen(szName) + 1) * sizeof(OLECHAR); LPOLESTR psz = (LPOLESTR)::CoTaskMemAlloc(uiByteLen);
if (psz != NULL) { wcscpy(psz, szName); m_pszName = psz; } }
// Add close image
if (nImage != 0) { m_pScopeItem->mask |= SDI_IMAGE; m_pScopeItem->nImage = nImage; }
// Add open image
if (nOpenImage != 0) { m_pScopeItem->mask |= SDI_OPENIMAGE; m_pScopeItem->nOpenImage = nOpenImage; }
// Add button to node if the folder has children
m_pScopeItem->mask |= SDI_CHILDREN; m_pScopeItem->cChildren = (bHasChildren == TRUE) ? 1 : 0; }
|