VC++ .NET 2002: How To Use the Class View's Properties window to add a message handler for the WN_KEYDOWN message

Hi all
I used "The EX05c Example: Scrolling" of the book "Programming With Microsoft Visual C++ .NET Core Reference" (6th Edition) as my 3rd example of MFC exercises to catch up my VC++ .NET 2002 (VC++ 7.0) programming. I started my 'Eg05c' project in the MFC Application Wizard and followed the 1 thru 7 steps instructed in the book (pages 82-85)
I believed I did the steps 1, 2 and 3 correctly: 1 - In MFC Application Wizard -Eg05c, I setthe CEg05cView to "CScrollView"
2 - I added the m_rectEllipse and m_nColor data members in Eg05cView.h by typing in  "private:     Crect m_rectEllipse;   int m_nColor;". 3 - I modified the MFC Application Wizard - generated OnInitialUpdate function. The step 4 - I did not know how to "Use the Class View's Properties window to add a message handler for the WM_KEYDOWM message". But I typed in manually. I also completed the step 5 - Edit the contructor and the OnDraw function and the step 6 - Map the WM_LBUTTONDOWN message and edit the handler. I did "Build" on my "Eg05c" project and I got the following errors
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(28): error C2653: 'CEx05cView' : is not a class or namespace nam
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(29): error C2550: 'CEx05cView' : constructor initializer lists are only allowed on constructor definition
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(30): error C2065: 'm_nColor' : undeclared identifie
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(31): warning C4508: 'CEx05cView' : function should return a value; 'void' return type assume
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(40): error C2550: 'CEg05cView::~CEg05cView' : constructor initializer lists are only allowed on constructor definition
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(54): error C2653: 'CEx05cView' : is not a class or namespace nam
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(56): error C2352: 'CView::OnInitialUpdate' : illegal call of non-static member functio
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(60): error C2065: 'SetScrollSizes' : undeclared identifie
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(64): error C2059: syntax error : ')
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(73): error C2653: 'CEx05cView' : is not a class or namespace nam
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(76): error C2065: 'm_rectEllipse' : undeclared identifie
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(131): error C2653: 'CEx05cView' : is not a class or namespace nam
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(135): error C2065: 'OnVScroll' : undeclared identifie
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(136): error C2065: 'OnHScroll' : undeclared identifie
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(165): error C2653: 'CEx05cView' : is not a class or namespace nam
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(167): error C2673: 'OnLButtonDown' : global functions do not have 'this' pointer
c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(168): error C2065: 'OnPrepareDC' : undeclared identifie
My Eg05cView.cpp and Eg05cView.h files are listed below
//////-----Eg05cView.cpp-----/////
// Eg05cView.cpp : implementation of the CEg05cView clas
/

#include "stdafx.h
#include "Eg05c.h

#include "Eg05cDoc.h"
#include "Eg05cView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CEg05cView

IMPLEMENT_DYNCREATE(CEg05cView, CScrollView)

BEGIN_MESSAGE_MAP(CEg05cView, CScrollView)
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()

// CEg05cView construction/destruction

CEx05cView::CEx05cView() : m_rectEllipse(0, 0, 4000, -4000)//**//
{                                                    //**//
    m_nColor = GRAY_BRUSH;                   //**//
}                   //**//

CEg05cView::CEg05cView()
{
	// TODO: add construction code here

}

CEg05cView::~CEg05cView() : m_rectEllipse(0, 0, 4000, -4000) //-I typed in-//
{
   m_nColor = GRAY_BRUSH;  //-I typed in-//
}

BOOL CEg05cView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CScrollView::PreCreateWindow(cs);
}

// CEg05cView drawing

void CEx05cView::OnInitialUpdate() //--newly added--//
{
    CScrollView::OnInitialUpdate(); //--newly added--//
    CSize sizeTotal(20000, 30000); // 20 by 30 cm //--newly added--//
    CSize sizePage(sizeTotal.cx / 2, sizeTotal.cy / 2); //--newly added--//
    CSize sizeLine(sizeTotal.cx / 50, sizeTotal.cy / 50); //--newly added--//
    SetScrollSizes(MM_HIMETRIC, sizeTotal, sizePage, sizeLine); //--newly added--//
}


/* void CEg05cView::OnDraw(CDC* /*pDC*/)
/*{
	CEg05cDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: add draw code for native data here
}
*/

void CEx05cView::OnDraw(CDC* pDC)     //*newly edited*//
{              //*newly edited*//
    pDC->SelectStockObject(m_nColor); //*newly edited*//
    pDC->Ellipse(m_rectEllipse);     //*newly edited*//
}             //*newly edited*//

void CEg05cView::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();
	CSize sizeTotal;
	// TODO: calculate the total size of this view
	sizeTotal.cx = sizeTotal.cy = 100;
	SetScrollSizes(MM_TEXT, sizeTotal);
}


// CEg05cView printing

BOOL CEg05cView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CEg05cView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CEg05cView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}


// CEg05cView diagnostics

#ifdef _DEBUG
void CEg05cView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CEg05cView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}

CEg05cDoc* CEg05cView::GetDocument() const // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CEg05cDoc)));
	return (CEg05cDoc*)m_pDocument;
}
#endif //_DEBUG


// CEg05cView message handlers //--completely & newly added--//

void CEx05cView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
    switch (nChar) {
    case VK_HOME:
        OnVScroll(SB_TOP, 0, NULL);
        OnHScroll(SB_LEFT, 0, NULL);
        break;
    case VK_END:
        OnVScroll(SB_BOTTOM, 0, NULL);
        OnHScroll(SB_RIGHT, 0, NULL);
        break;
    case VK_UP:
        OnVScroll(SB_LINEUP, 0, NULL);
        break;
    case VK_DOWN:
        OnVScroll(SB_LINEDOWN, 0, NULL);
        break;
    case VK_PRIOR:
        OnVScroll(SB_PAGEUP, 0, NULL);
        break;
    case VK_NEXT:
        OnVScroll(SB_PAGEDOWN, 0, NULL);
        break;
    case VK_LEFT:
        OnHScroll(SB_LINELEFT, 0, NULL);
        break;
    case VK_RIGHT:
        OnHScroll(SB_LINERIGHT, 0, NULL);
        break;
    default:
        break;
    }
}

void CEx05cView::OnLButtonDown(UINT nFlags, CPoint point)
{
    CClientDC dc(this);
    OnPrepareDC(&dc);
    CRect rectDevice = m_rectEllipse;
    dc.LPtoDP(rectDevice);
    if (rectDevice.PtInRect(point)) {
        if (m_nColor == GRAY_BRUSH) {
            m_nColor = WHITE_BRUSH;
        }
        else {
            m_nColor = GRAY_BRUSH;
        }
        InvalidateRect(rectDevice);
    }
}
////-----Eg05cView.h----/////
// Eg05cView.h : interface of the CEg05cView class
//


#pragma once


class CEg05cView : public CScrollView
{
protected: // create from serialization only
	CEg05cView();
	DECLARE_DYNCREATE(CEg05cView)

// Attributes
public:
	CEg05cDoc* GetDocument() const;

private:     ///--newly added.---////
    CRect m_rectEllipse; ///--newly added.---////
    int m_nColor;  ///--newly added.---////

// Operations
public:

// Overrides
	public:
	virtual void OnDraw(CDC* pDC);  // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
	virtual void OnInitialUpdate(); // called first time after construct
	virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
	virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
	virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

// Implementation
public:
	virtual ~CEg05cView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG  // debug version in Eg05cView.cpp
inline CEg05cDoc* CEg05cView::GetDocument() const
   { return reinterpret_cast<CEg05cDoc*>(m_pDocument); }
#endif
/////////////////////////////////////////////////////
Please help and tell me (1) how to correct the above-listed errors and (2) how to enter the Class View's Properties window and use it to add a message handler for WM_KEYDOWN message or other messages I need.  Thanks, Scott  Chang
0
anonymous (74722)
4/18/2004 1:16:03 AM
vc.mfc 33608 articles. 0 followers. Follow

1 Replies
616 Views

Similar Articles

[PageSpeed] 59

Scott Chang wrote:
I did "Build" on my "Eg05c" project and I got the following errors:
> c:\Documents and Settings\Scott H. Chang\My Documents\Visual Studio Projects\Eg05c\Eg05cView.cpp(28): error C2653: 'CEx05cView' : is not a class or namespace name


You are posting long listings and error printouts for simple and obvious 
typing errors.  Can you not see that in some places you spelled the 
class CEx05cView and in other places spelled it CEg05cView?  Study the 
error messages and lines in error carefully and you will be able to fix 
most such errors easily.

-- 
Scott McPhillips [VC++ MVP]

0
scottmcp8856 (490)
4/18/2004 6:38:40 AM
Reply:

Similar Artilces:

Unable to open .docx documents in Word 2002
I cannot open word documents sent with .docx extendion in word 2002. I checked my language setting and it is English. What is wrong? Download the Compatibility Pack. http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en -- JoAnn Paules MVP Microsoft [Publisher] Tech Editor for "Microsoft Publisher 2007 For Dummies" "Johnpm" <Johnpm@discussions.microsoft.com> wrote in message news:43E248E8-5D83-4E91-9743-CE12CCD6A443@microsoft.com... >I cannot open word documents sent with .docx extendi...

Using Relative path for XML data file?
Is there a way to specify a relative path to an XML data file imported into Excel 2003? I am writing a web app that generates report data as XML for the user to download to their local machine. This data is to be consumed by an Excel reporting spreadsheet, which contains display-formatted tables and charts that are mapped to various data fields in an XML Map, which is in turn linked to the xml data file they will download. The idea is the user only needs to download the data for updates, not the whole spreadsheet. However, since I cannot predict the path where the user will store their...

Formula without using numbers after decimal in the answer
I have a formula that derives the answer from a figure with a decimal. I don't want to use the figures after the decimal. Is there a way to just use the whole number and omit the numbers after the decimal without having to manually key in all these numbers manually? Thanks, Mustang You can use the INT function. This 'rounds down' any number to th nearest integer, e.g. if A1=2.567, a formula in B2 of =INT(A1) return 2 HTH Bruc -- swatsp0 ----------------------------------------------------------------------- swatsp0p's Profile: http://www.excelforum.com/member.php?...

Reading SQL Server Extended Properties
I have an Access 2003 front-end (mdb/mde) connected to a SQL Server 2000 back-end. SQL Server 2000 offers the ability to add extended properties (such as a caption, for example) to objects (tables, columns, etc.) using a stored procedure called sp_AddExtendedProperty, along with the ability to retrieve the values of these extended properties via a function named fn_ListExtendedProperty. With fn_ListExtendedProperty, four columns can be returned/selected using a Select statement: objtype, objname, name and value. The first three columns returned are of datatype sysname, whil...

Outlook 2002 (office xp developer suite)
Does anyone know of a place where I can find a bunch of various macros for outlook? I've looked around and found 1 or 2 but I would think someone has a large amount of them.. Thanks Dave dave wrote: > Does anyone know of a place where I can find a bunch of > various macros for outlook? I've looked around and found > 1 or 2 but I would think someone has a large amount of > them.. > > Thanks > > Dave Dunno, but a Google search on "Outlook macros" gets about 55,000 hits.... G'Day Dave, Try: http://www.outlookvba.com/examples//allexamples...

OL 2002 Hanging up When Attaching Docs
I have been having a problem recently that is probably an easy fix .... just need some guidance. Running OL 2002 on an XP PRO machine connected to a Windows 2000 Server and Exchange 2000. Everytime I go to attach a file to an email it takes forever to navigate through the trees, often resulting in the program freezing. Have tried Detect and Repair but no difference. Problem just started a few weeks ago but have not added anything to my system. Can anyone help? ...

"View Image Slide Show"
(Running Vista Ultimate 64-bit, SP-2, IE-8, WM-6, WLM-09, classic mode, dial-up.) In Windows Live Mail, most of the time when I receive an email with 2 or more .jpg files attached, there is an option shown as: "View Image Slide Show". Clicking on that line brings up a screen which allows me to cycle through the attached .jpg files, viewing them in sequence, going back and forth as I desire. About every 10 or so emails having some .jpg files as attachments I receive one, with several such attachments, which does NOT have the "View Image Slide Show" op...

setup Windows Mail as Word 2003 default emailer
All I can do is setup Outlook. I do not use Outlook. I would like to email Word docs using MS Windows Mail (new version of Express) In the Windows Start area, type Regedit into the search bar and then start the Registry Editor and go to HKEY_CURRENT_USER>Software>Clients>Mail Right Click on the (Default) item and then on Modify and in the Value data: field enter Windows Mail so that after you click OK, you have (Default) REG_SZ WIndows Mail -- Hope this helps. Please reply to the newsgroup unless you wish to avail yourself of my services on a pa...

'top' is not a valid value for the 'vertical-align' property.
Well, it is, actually, and the resulting .chm file works properly in HTML Help. But it's a bit tedious getting that wrong useless error message from VS2002 on every build. (Well, not every build, it only does it sometimes actually.) Any idea how I can persuade it to stop telling me this? -- Tim Ward Brett Ward Limited - www.brettward.co.uk ...

message delivery problems
Hello! There are several email address that when I send them an e-mail, they just sit in the Queue. I did message tracking and its telling me that "Message Routed and Queued for Remote Delivery". Can anyone suggest symptoms for this? Thank You! usually messages sitting in outgoing queue take time due to DNS related issues. Do you have issues performing NSlookups on any domains from your workstation? Can you perform the same NSlookups from the exchange server? From the exchange server, can you perform smtp communication directly to the mailserver that would receive the e...

How do I see when new messages without outlook running?
Without Outlook 2003 constantly running, how do I send mail or know when I have new mail? two possible answers... 1) you don't or 2) you acquired a 3rd party app to occasionally poll your pop3/imap account "Leslie Adams" <Leslie Adams@discussions.microsoft.com> wrote in message news:D37C11C7-722C-4E91-9393-735A49C11701@microsoft.com... > Without Outlook 2003 constantly running, how do I send mail or know when I > have new mail? ...

using the journal on outlook
Once I link an email to the journal, can I still find that email in my mail box? I seem to be able to get to it only via the journal. If this is the way it is supposed to be, how do I remove it from the journal and get it back into my mail box? Am I just missing something? -- thanks, Independent Are you linking to the item or putting a copy into the journal item? Also, has the item been archived or not? "Independent" <Independent@discussions.microsoft.com> wrote in message news:868279F2-53C8-403A-97F5-604CEECD873C@microsoft.com... > Once I link an email to the journ...

How to read "Message Submitted to Categorizer"
Hello I've got a problem with mails getting stuck in the Categorizer when coming into Exchange. I've got two mail- domains usin POP3. All mail from one of the domains is stuck not from the other. I've solved it with letting all the users who gets their mails stuck, also get an address from the domain that is working. Now the mail gets to the reciepent, but when he sends a new mail it is with wrong mail-address. /Ulf ...

Disable Secure Sockets Layer on exchange server when using RPC over HTTP
Hi im trying to enable RPC over HTTP to enable users to establish contact to my Excahger server 2003 over the internet. Now, I dont want to use SSL (security not that important) and i am told by this article that i can disable SSL in windows registry. Quote: Note While RPC over HTTP does not require Secure Sockets Layer, you must modify the registry to enable RPC over HTTP if you do not want to use Secure Sockets Layer. Microsoft recommends that you enable and require Secure Sockets Layer for your RPC over HTTP communications. At this address: http://support.microsoft.com/?id=833401 But i ...

Test for Windows Classic folders in XP?
Hey, I use GetVersionEx to check for XP, is there a test for Windows Classic folders in XP? Thanks, Wayne Use IsThemeActive(); Get uxtheme.h, uxtheme.lib, and uxtheme.dll by downloading Platform SDK for WIndows XP SP2 from Microsoft. Wayne "Wayne Ransier" <vsense@netcarrier.com> wrote in message news:O49wUd%23IFHA.2648@TK2MSFTNGP14.phx.gbl... > Hey, > > I use GetVersionEx to check for XP, is there a test for Windows Classic > folders in XP? > > Thanks, > Wayne > > ...

How do you invoke the Let and Get class Functions
I have create classes with the Let and Get functions and now I would like to use these functions to store and retrieve data in the class which will then be put into a collection. Here is the class functions: Private pBusPart As Double Private pStartTime As Date Private pIndex As Integer '''''''''''''''''''''' ' BusPart property '''''''''''''''''''''' Public Property Get BusPart() As Double BusPar...

A message that cannot be deleted, opend or moved
THere is a message in a user's inbox that cannot be opened, deleted or moved. How can I delete that message ? Amila Amila Chandrasekera <amilanc@spss.com> wrote: > THere is a message in a user's inbox that cannot be opened, deleted or > moved. How can I delete that message ? One drastic way is to create a new PST file and copy everything from the old file to the new, with the exception of the misbehaving message. Then remove the old file. did you try shift-delete? -- Diane Poremsky [MVP - Outlook] Author, Teach Yourself Outlook 2003 in 24 Hours Coauthor, OneNote ...

Items in this message are still loading. Please wait a moment and try again.
Get this error message when trying to print an HTML email using Outlook 2002 10.6515.6735 SP3. I've seen lots of single post threads regarding this issue with no responses. The problem is, the moment lasts up to an hour. Are there any settings that can be tweaked to speed this process up? Could it possibly be a printer issue? This just recently started happening. Any suggestions are appreciated. I haven't ever experienced this but are you on a slow Internet connection? An hour is an awful long time (which I'm sure you know already) "Geoff" <geoff.warner@gmail...

errror message
error message: the selected assistant character is not available. microsoft outlook cannot install the neccessary files due to windows installer error 1605. this action is only valid for products that are currently installed. anyone please advise? ...

Does Outlook use the DAV protocol?
I'm an Outlook Express user who wants to switch to Outlook. I received a notice from Microsoft that includes the following: "... as of June 30, 2008, Microsoft is disabling the DAV protocol and you will no longer be able to access your Hotmail Inbox via Outlook Express." Please tell me if this action by Microsoft will affect Outlook in the same manner, or am I free to make the switch. "BudV" <BudVitoff@(NO)att.(SPAM)net> wrote in message news:%230XUDi%23zIHA.2384@TK2MSFTNGP02.phx.gbl... > I'm an Outlook Express user who wants to switch to Outlook...

how do I add error bars to a 3D chart in excel?
The help states you can only add error bars to data series in 2D area. Is there a way to add them to a 3D chart? Hi, I would not have thought so. Obviously as it is not a built-in option the only way would be a work around perhaps using dummy series. Unfortunately you can create 3d combination charts. Stick with the 2d view. Cheers Andy elahe wrote: > The help states you can only add error bars to data series in 2D area. Is > there a way to add them to a 3D chart? -- Andy Pope, Microsoft MVP - Excel http://www.andypope.info I checked, and error bars are not offered for 3D ch...

Viewing group calendars in CRM
I was wondering if it is possible to view other employees' activities and appointments in MS CRM? I know this feature is available in Outlook 2002 and higher through group schedules but I have a client running Outlook 2000 wanting this cabability. No, you can't. not sure if next version will have it. there is an ISV, http://www.ssyh.com/products_ssyh_MSCRM_GrpCal.html that has developed a group calender. we have found this useful for those migrating from Goldmine. I have this feature implemmented. If you are interested, contact me. []'s Vin�cius Pitta Lima de Ara�jo &qu...

Let me use the Line Color icon on charts
It would speed up a lot of my work if I could use the Line Color icon on Excel charts, the same way I am able to use the Fill Color and Font Color icons. However, when I highlight any chart object, like the Plot Area, Chart Area, or a Series, the Line Color icon is disabled. -- Stuart Bratesman, Jr., MPP Muskie School of Public Service Univ. of Southern Maine Portland, Maine ---------------- This post is a suggestion for Microsoft, and Microsoft responds to the suggestions with the most votes. To vote for this suggestion, click the "I Agree" button in the message pane. If ...

SBS 2003 RWW & Windows 7 64 bit
Need help remotely connecting to 64 bit clients connected to SBS 2003 SP2. I have installed KB926505 (Vista compatabilty) on the server. When I try to establish the connection to the 64 bit machine using my 32 bit windows 7 laptop, I get a dialog box titled remote desktop disconnected. On the Windows 7 64 bit machine I have checked remote connection properties and also the advanced firewall properties, inbound connections remote connections are enabled under the domain profile. What am I missing? Thanks, So let me understand this? sorry I have a cold and it's hard for m...

GPS 8 service pack 2 and add new company
After installing service pack 2 for GP 8, I am not able to add or log on to the new company. Error during upgrade is “Entries haven't made to all required fields. Would you like to show the required fields on all windows in greatplains” When I try to log on to GP getting another error “file for this company have not been updated” Please help Rajesh ...