dcsimg

Network Enumerations (3)

WEBINAR:
On-Demand

Desktop-as-a-Service Designed for Any Cloud ? Nutanix Frame


Having seen the 2 previous offerings which front load the enumeration in such a way that on a large or awkward network they can take a long time to return, I took a look at the browse for folder code which was rather cumbersome but with some tinkering reduced it to the following:


LPITEMIDLIST pidlRoot = NULL;
SHGetSpecialFolderLocation(GetSafeHwnd(), CSIDL_NETWORK, &pidlRoot);

CString strDisplayName;
BROWSEINFO bi;
memset(&bi, 0, sizeof(BROWSEINFO));
bi.hwndOwner = GetSafeHwnd();
bi.pidlRoot = pidlRoot;
bi.pszDisplayName = strDisplayName.GetBuffer(MAX_PATH + 1);
bi.lpszTitle = "Find computer";
bi.ulFlags = BIF_BROWSEFORCOMPUTER;

LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
strDisplayName.ReleaseBuffer();

if(pidl)
{
    m_machine = strDisplayName;
    UpdateData(FALSE);
}

IMalloc *pMalloc = NULL;
SHGetMalloc(&pMalloc);
pMalloc->Free(pidlRoot);


Create a dialog box with a CEdit control on it. Create a member variable for this CEdit called m_machine. Attach the code above to a button (any other than OK or Cancel).



Comments

  • There are no comments yet. Be the first to comment!

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date