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.
180 lines
4.3 KiB
180 lines
4.3 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1997.
|
|
//
|
|
// File: C O N F O L D . C P P
|
|
//
|
|
// Contents: CConnectionFolder base functions.
|
|
//
|
|
// Notes:
|
|
//
|
|
// Author: jeffspr 18 Mar 1998
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#include "pch.h"
|
|
#pragma hdrstop
|
|
|
|
#include "foldinc.h" // Standard shell\folder includes
|
|
#include "webview.h"
|
|
|
|
|
|
// Map of replaceable items in connfold.rgs file
|
|
// this allows us to localize these items
|
|
//
|
|
struct _ATL_REGMAP_ENTRY g_FolderRegMap[] =
|
|
{
|
|
{ L"ConnectionsFolderName", NULL },
|
|
{ L"ConnectionsFolderInfoTip", NULL },
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Function: CConnectionFolder::UpdateRegistry
|
|
//
|
|
// Purpose: Apply registry data in connfold.rgs
|
|
//
|
|
// Arguments:
|
|
// fRegister [in] whether to register
|
|
//
|
|
// Returns: S_OK if success, otherwise an error code
|
|
//
|
|
// Author: kumarp 15-September-98
|
|
//
|
|
// Notes:
|
|
//
|
|
HRESULT WINAPI CConnectionFolder::UpdateRegistry(IN BOOL fRegister)
|
|
{
|
|
TraceFileFunc(ttidConFoldEntry);
|
|
|
|
// fill-in localized strings for the two replaceable parameters
|
|
g_FolderRegMap[0].szData = SzLoadIds(IDS_CONFOLD_NAME);
|
|
g_FolderRegMap[1].szData = SzLoadIds(IDS_CONFOLD_INFOTIP);
|
|
|
|
return _Module.UpdateRegistryFromResourceD(IDR_CONFOLD, fRegister,
|
|
g_FolderRegMap);
|
|
}
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Member: CConnectionFolder::CConnectionFolder
|
|
//
|
|
// Purpose: Constructor for the primary Folder object
|
|
//
|
|
// Arguments:
|
|
// (none)
|
|
//
|
|
// Returns:
|
|
//
|
|
// Author: jeffspr 18 Mar 1998
|
|
//
|
|
// Notes:
|
|
//
|
|
CConnectionFolder::CConnectionFolder() throw()
|
|
{
|
|
TraceFileFunc(ttidConFoldEntry);
|
|
|
|
DWORD dwLength = UNLEN+1;
|
|
|
|
// By default, we want to enumerate all connection types
|
|
//
|
|
m_dwEnumerationType = CFCOPT_ENUMALL;
|
|
m_hwndMain = NULL;
|
|
m_pWebView = NULL;
|
|
|
|
m_pWebView = new CNCWebView(this);
|
|
}
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Member: CConnectionFolder::~CConnectionFolder
|
|
//
|
|
// Purpose: Destructor for the primary folder object
|
|
//
|
|
// Arguments:
|
|
// (none)
|
|
//
|
|
// Returns:
|
|
//
|
|
// Author: jeffspr 18 Mar 1998
|
|
//
|
|
// Notes:
|
|
//
|
|
CConnectionFolder::~CConnectionFolder() throw()
|
|
{
|
|
Assert(m_pWebView);
|
|
|
|
delete m_pWebView;
|
|
}
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Member: CConnectionFolder::PidlGetFolderRoot
|
|
//
|
|
// Purpose: Return the folder pidl. If NULL at this time, generate
|
|
// the pidl for future usage.
|
|
//
|
|
// Arguments:
|
|
// (none)
|
|
//
|
|
// Returns:
|
|
//
|
|
// Author: jeffspr 10 Jan 1999
|
|
//
|
|
// Notes:
|
|
//
|
|
PCONFOLDPIDLFOLDER& CConnectionFolder::PidlGetFolderRoot() throw()
|
|
{
|
|
TraceFileFunc(ttidConFoldEntry);
|
|
|
|
HRESULT hr = S_OK;
|
|
|
|
if (m_pidlFolderRoot.empty())
|
|
{
|
|
// Ignore this hr. For debugging only
|
|
//
|
|
hr = HrGetConnectionsFolderPidl(m_pidlFolderRoot);
|
|
}
|
|
|
|
return m_pidlFolderRoot;
|
|
}
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Member: CConnectionFolder::pszGetUserName
|
|
//
|
|
// Purpose: Return the user name of the Connectoid.
|
|
// Currently makes the assumption that any active user can only
|
|
// read either System Wide or his own Connectoids.
|
|
// Probably should cache the user name, however this component
|
|
// is MTA and the UserName is per thread.
|
|
// I don't want to use up a TLS just for this.
|
|
//
|
|
// Arguments:
|
|
// (none)
|
|
//
|
|
// Returns:
|
|
//
|
|
// Author: deonb 19 June 1999
|
|
//
|
|
// Notes:
|
|
//
|
|
PCWSTR CConnectionFolder::pszGetUserName() throw()
|
|
{
|
|
TraceFileFunc(ttidConFoldEntry);
|
|
|
|
DWORD dwSize = UNLEN+1;
|
|
|
|
if (GetUserName(m_szUserName, &dwSize))
|
|
{
|
|
return m_szUserName;
|
|
}
|
|
else
|
|
{
|
|
return NULL;
|
|
}
|
|
};
|