|
1. You didn't call "WSAStartup" and "WSACleanup "
2. You didn't set any socket
Besides, you should always check the return value for errorcode
|
|
|
|
|
|
You aren't giving the select call any file descriptors to wait for, thus there are no blocking calls to be made, so there is no wait. The timeval is the MAXIMUM time the select will wait - if there's nothing for it to do, it won't wait.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
CodeProject MVP for 2010 - who'd'a thunk it!
|
|
|
|
|
You know there's a Sleep function, right ? Because if the only thing you want to do is have a delay of 2 seconds, select is certainly not the best way to do it
|
|
|
|
|
I second Cédric, Sleep()[^] would be the simpler way for a two seconds delay.
|
|
|
|
|
i am using ListView_SortItems(hDlg, SortListCompareFunc, hDlg);
for sorting my list view
but my call back method SortListCompareFunc is never getting called
do i need to do any thing else
|
|
|
|
|
posting piece of relevant code may help u to get quick solution..
|
|
|
|
|
|
arun_pk wrote:
Don't be sad, be pro-active.
Cool_Dev is quite right. It's not reasonable for you to expect us to be psychic. You might have done millions of things wrongly.
If in real doubt... Make a mew dialog box application, essentially with just this feature. A list box, and maybe two sort buttons. In those buttons' code, use different sort functions. When that works, then you'll see what you did wrong in your "real" application.
Iain.
I have now moved to Sweden for love (awwww).
|
|
|
|
|
thanks for your concern
my mistake was the first parameter in ListView_SortItems
1st parameter was not indicating the listview
now i made it as listview handler .....
Eugan gave me the solution ..
|
|
|
|
|
Please note,
that the first parameter of the macro ListView_SortItems
should get the handle of the list, not of the dialog...
virtual void BeHappy() = 0;
|
|
|
|
|
Good morning Eugen
its reaching inside the sortFunction
what do i write inside that function to sort
sorry i m totally new to vc++
|
|
|
|
|
|
Thanks Eugen
i m workg out as per your comments
will let you know after i complete
|
|
|
|
|
Good morning Eugen
this is how my existing project sorting functionality
HD_NOTIFY *phdntfy = (HD_NOTIFY *) lparam;
if (phdntfy->hdr.code == HDN_ITEMCLICK)
{
if (phdntfy->iItem == Sort1)
{
SortOrder[phdntfy->iItem] *= -1;
}
else {
Sort2 = Sort1; Sort1 = phdntfy->iItem; }
ListView_SortItems(hwndLV, ListViewCompareProc, Sort1);
}
break;
but in my project there is no LPARAM in notify method
Notify(HWND hDlg, int idCtrl, NMHDR *pnmh) these are the params of notify method
how do i get HD_NOTIFY
|
|
|
|
|
Do you mean, that the lparam is NULL at the first line ?
virtual void BeHappy() = 0;
|
|
|
|
|
I mean to say in my already existing notify method does not have LPARAM parameter
these are the parameters of my notofy function
Notify(HWND hDlg, int idCtrl, NMHDR *pnmh)
|
|
|
|
|
Why are you needing that LPARAM ?
virtual void BeHappy() = 0;
|
|
|
|
|
Coz
this is how they finds whether sorting has to be done in reverse order or ascending....
if (phdntfy->hdr.code == HDN_ITEMCLICK)
//&& (phdntfy->iItem < 5))
{
if (phdntfy->iItem == Sort1) // if same sort, reverse order
{
SortOrder[phdntfy->iItem] *= -1;
}
else // else, perform secondary sort
{
Sort2 = Sort1; // primary sort becomes secondary sort
Sort1 = phdntfy->iItem; // new primary second sort
}
|
|
|
|
|
You could sort your list at the init state
and save the order in your own variable,
then - change it, at the next sorting...
virtual void BeHappy() = 0;
|
|
|
|
|
there is no lparam in my notify method
***************
HD_NOTIFY *phdntfy = (HD_NOTIFY *) lparam; /this code is there in some other dialog's notify method where they get lParam
|
|
|
|
|
Could you post the whole function (that has your switch), please ?
virtual void BeHappy() = 0;
|
|
|
|
|
case LVN_COLUMNCLICK:
{
LPARAM lParam=(LPARAM)pnmh;
LPNMLISTVIEW pLVInfo = (LPNMLISTVIEW)pnmh->code;
HD_NOTIFY *phdntfy = (HD_NOTIFY *) pnmh->code;
if (phdntfy->hdr.code == HDN_ITEMCLICK) //&& (phdntfy->iItem < 5))
{
if (phdntfy->iItem == Sort1) // if same sort, reverse order
{
SortOrder[phdntfy->iItem] *= -1;
}
else // else, perform secondary sort
{
Sort2 = Sort1; // primary sort becomes secondary sort
Sort1 = phdntfy->iItem; // new primary second sort
}
ListView_SortItems(pLVInfo->hdr.hwndFrom, ListViewCompareProc, Sort1);
}
break;
}
|
|
|
|
|
Try something like it :
#define COL_COUNT 6 // Count of cols
bool g_arOrders[COL_COUNT] = {0};
...
{
..
case WM_NOTIFY:
switch (((LPNMHDR) lParam)->code) {
case LVN_COLUMNCLICK: {
int iCol = ((LPNMLISTVIEW) lParam)->iSubItem;
if (0 <= iCol && iCol < COL_COUNT) {
g_arOrders[iCol] = !g_arOrders[iCol];
ListView_SortItems(hwndList, ListViewCompareProc, iCol);
}
}
break;
...
}
...
virtual void BeHappy() = 0;
|
|
|
|
|
ok thanks
|
|
|
|