ListView_InsertItem - Failed

Dear Experts,

I am trying to insert a new item into a ListView control.

The following code failes...

LVITEM stLVI;
char   szBuf[6];
memset(szBuf, '\0', sizeof(szBuf));
strcpy(szBuf,"Hello");
stLVI.pszText = szBuf;
stLVI.cchTextMax = sizeof(szBuf);
stLVI.iItem = 0;
stLVI.iSubItem = 0;
stLVI.mask = LVIF_PARAM | LVIF_IMAGE | LVIF_TEXT;
stLVI.iImage = 2;
stLVI.lParam = 0;
ListView_InsertItem(listViewWindow,&stLVI);

Any suggestion?

Thanks in advance.

Regards
Anbuselvan
AnbuselvanAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Roshan DavisCommented:
Which style of list you are using ... "Report Style", if yes, before adding the Item you have to add the Column first... like this

      HWND listViewWindow = GetDlgItem(IDC_LIST1)->m_hWnd;

      // Add columns
      LVCOLUMN lvColumn;
      char szLabel[50];
    lvColumn.mask = LVCF_TEXT|LVCF_WIDTH;
    lvColumn.cx = 125;
    lvColumn.pszText = szLabel;

    // Column 0
    strcpy(szLabel,"Column 1");
    ListView_InsertColumn(listViewWindow,0,&lvColumn);


      LVITEM stLVI;
      char   szBuf[6];
      memset(szBuf, '\0', sizeof(szBuf));
      strcpy(szBuf,"Hello");
      stLVI.pszText = szBuf;
      stLVI.cchTextMax = sizeof(szBuf);
      stLVI.iItem = 0;
      stLVI.iSubItem = 0;
      stLVI.mask = LVIF_PARAM | LVIF_IMAGE | LVIF_TEXT;
      stLVI.iImage = 2;
      stLVI.lParam = 0;
      ListView_InsertItem(listViewWindow,&stLVI);

Good Luck
0
AnbuselvanAuthor Commented:
Hi roshmon,

  Thanks for your immediate suggestion.

  But, I have already three columns in my report style listview.

  The given is working fine in my dialog based application with listview control.

  But, I am doing one hook application. I need to hook one theird party application and
  clear the list items and add a new item into that.

  Here, I am facing the problem that I have mentioned.

  Any suggestion?

Thanks in advance.

Regards,
Anbuselvan
0
Roshan DavisCommented:
Then you have to subclass that listcontrol and add strings

These links might help you

http://www.codeproject.com/dll/subhook.asp - Cross Process Subclassing
http://www.codeproject.com/threads/winspy.asp - Three Ways to Inject Your Code into Another Process

Good luck
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
HTML5 and CSS3 Fundamentals

Build a website from the ground up by first learning the fundamentals of HTML5 and CSS3, the two popular programming languages used to present content online. HTML deals with fonts, colors, graphics, and hyperlinks, while CSS describes how HTML elements are to be displayed.

AnbuselvanAuthor Commented:
Hi roshmon,

The given links are very useful. Thanks.

Actually my code is working fine.

But, what I notised is wrong.

The given value is inserted successfully in the list control. But, it is not visibled. So, that I couldn't realised.

I can get the list count = 1.

But, I couldn't see the values in the list control.

Any possible reason?

Thanks.

Regards,
Anbu
0
Roshan DavisCommented:
Probably string that you are giving becoming out of scope.
I'm checking on that....
Rosh :)
0
ArchMDCommented:
Hi,

Have you  created the resource using the resource editor?
If so in the general page of the properties of the control there is an checkbox called visible.
Make sure that is ticked.
Even if you are creating the control dynamically then also during create you have to specify the VISIBLE style.

Regards,
ArchMD
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
System Programming

From novice to tech pro — start learning today.