void CCollectionsComboBox::Initialize(long selectCollection,  UINT include)
{
	if(m_nIsForLibrary == 1)
	{
		return;
	}
	CBCGPToolBarImages lImages;
	m_ImageList = new CImageList;	
	lImages.SetImageSize(CSize(16, 16));
	lImages.Load(IDB_COLLECTIONS_BMP);
	m_ImageList->Create(16, 16, ILC_COLOR32, lImages.GetCount(), 1);
	for (int i = 0; i < lImages.GetCount(); i++)
		m_ImageList->Add(lImages.ExtractIcon(i));

	SetImageList(m_ImageList);

	mSelectedCollection = selectCollection;

	if (include & includeLibrary)
		InitializeLibrary();
	if (include & includeCollections)
		InitializeCollections();

//#ifndef _FREE // Smart collections only for professional edition
	if (include & includeSmartCollections)
		InitializeSmartCollections();
//#endif
	int i = -1;
	if (include & includeCurrentSelection)
	{
		i = AddCollectionItem(_T("Current selection"), -1, 0, FILTERTREE_CURRENT_SELECTION);
		SetItemItalic(i, true);
	}

	if (GetCurSel() == -1)
		SetCurSel(0);
}
void BCGPResizeImage32
(
	CBCGPToolBarImages& imageSrc,
	CBCGPToolBarImages& imageDst,
	int index,
	CBCGPToolBarImages::ImageAlignHorz horz,
	CBCGPToolBarImages::ImageAlignVert vert,
	CBCGPZoomKernel::XFilterType ft
)
{
	CSize sizeSrc (imageSrc.GetImageSize ());
	CSize sizeDst (imageDst.GetImageSize ());

	imageDst.Clear ();
	imageDst.SetPreMultiplyAutoCheck (TRUE);
	imageDst.SetTransparentColor ((COLORREF) -1);
	imageDst.SetImageSize (sizeDst);

	if (sizeSrc != sizeDst)
	{
		CSize size (sizeDst);

		if (horz == CBCGPToolBarImages::ImageAlignHorzStretch)
		{
			size.cx = sizeSrc.cx;
		}
		if (vert == CBCGPToolBarImages::ImageAlignVertStretch)
		{
			size.cy = sizeSrc.cy;
		}

		int nStart = 0;
		int nEnd   = imageSrc.GetCount ();
		if (index != -1)
		{
			nStart = index;
			nEnd   = nStart + 1;
		}

		for (int i = nStart; i < nEnd; i++)
		{
			CMemoryDC dc;
			dc.SetSize (size);
			CBitmap* bmpImage = &dc.GetBitmap ();

			imageSrc.DrawEx (&dc.GetDC (), CRect (CPoint (0, 0), size), i, horz, vert);

			CMemoryDC dcImage;

			if (horz == CBCGPToolBarImages::ImageAlignHorzStretch ||
				vert == CBCGPToolBarImages::ImageAlignVertStretch)
			{
				dcImage.SetSize (sizeDst);
				bmpImage = &dcImage.GetBitmap ();

				CBCGPScanlinerBitmap ms;
				ms.Attach ((HBITMAP) dc.GetBitmap ());
				CBCGPScanlinerBitmap md;
				md.Attach ((HBITMAP) dcImage.GetBitmap ());

				BCGPResizeImage32 (md, sizeDst.cx, sizeDst.cy, ms, size.cx, size.cy, ft);
			}

			CBitmap bitmap;
			bitmap.Attach (CBCGPDrawManager::CreateBitmap_32 (*bmpImage));

			imageDst.AddImage (bitmap, TRUE);
		}
	}
	else
	{
		imageDst.AddImage (imageSrc, index);
	}
}