ShowGradientDlg Example for C++ 5.0 and later

void CDialogs::OnShowGradientDlg()
{
	HRESULT hr;
	int nRet;

	ILEADRasterDlgKrn_U *m_pRasterDlgKrn = NULL;
	hr = CoCreateInstance(CLSID_LEADRasterDlgKrn_U,
		NULL,
		CLSCTX_ALL,
		IID_ILEADRasterDlgKrn_U,
		(LPVOID*)&m_pRasterDlgKrn);

	ILEADRasterDlgEfx_U *m_pRasterDlgEfx = NULL;
	hr = CoCreateInstance(CLSID_LEADRasterDlgEfx_U,
		NULL,
		CLSCTX_ALL,
		IID_ILEADRasterDlgEfx_U,
		(LPVOID*)&m_pRasterDlgEfx);

	nRet = m_pRasterDlgKrn->InitDlg(INIT_WITH_COLOR);

	m_pRasterDlgEfx->Gradient->StartColor = RGB(0, 0, 255); 
	m_pRasterDlgEfx->Gradient->EndColor = RGB(255, 0, 0); 
	m_pRasterDlgEfx->Gradient->GradientStyle = EFX_GRADIENT_ANGLE_TO_RT; 
	m_pRasterDlgEfx->Gradient->Steps= 200; 
	m_pRasterDlgEfx->UIFlags = GRADIENT_SHOW_PREVIEW          |
		GRADIENT_AUTOPREVIEW           |
		GRADIENT_STARTCOLOR            |
		GRADIENT_ENDCOLOR              |
		GRADIENT_STEPS                 |
		GRADIENT_NO_TREEVIEW           |
		GRADIENT_CLASS_LINEAR          |
		GRADIENT_CLASS_ANGULAR         |
		GRADIENT_CLASS_RECTANGULAR     |
		GRADIENT_CLASS_ELLIPTICAL      |
		GRADIENT_CLASS_CONICAL; 

	m_pRasterDlgEfx->Bitmap = m_pLead1.GetBitmap();
	nRet = m_pRasterDlgEfx->ShowGradientDlg((long)m_hWnd); 
	if (nRet == 0 && m_pRasterDlgEfx->DialogStatus == DLG_OK) 
	{
		CString csRes; 
		csRes.Format(TEXT("GradientStyle: %d\nGradientSteps: %d\nStartColor: %ld\nEndColor: %ld\n"),
			m_pRasterDlgEfx->Gradient->GradientStyle, 
			m_pRasterDlgEfx->Gradient->Steps, 
			m_pRasterDlgEfx->Gradient->StartColor, 
			m_pRasterDlgEfx->Gradient->EndColor); 
		AfxMessageBox(csRes);   
	}
}