|
I have already used include.
#include <commctrl.h>
is it ok? if not then guide me for explicit linking with lib.
|
|
|
|
|
|
|
how can i resolve the bugs , for linking.
I need simple first, then i will try to add the file icon . but i need base first how can any images display icon/image from resource in the listview.
|
|
|
|
|
which view are you using in list view? Report, icon etc..?
nave
|
|
|
|
|
|
1.Create a image list with width and height 20, 20 or less
2.Add icons to the image list.
3. Send LVM_SETIMAGELIST to the image list with the wparam LVSIL_SMALL and LPARAM as handle of image list.
4. Then while inserting item with the LVM_INSERTITEM message, set the appropriate values in the LVITEM structure( mask and iImage )
nave
|
|
|
|
|
the code as per your guidline is below
<br />
<br />
memset(&LvCol,0,sizeof(LvCol));
HIMAGELIST hSmall;<br />
HICON hIcon;<br />
<br />
hSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON), ILC_MASK, 1, 1);<br />
<br />
hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_QUESTION));<br />
ImageList_AddIcon(hSmall, hIcon);<br />
DestroyIcon(hIcon);<br />
<br />
ListView_SetImageList(hList, hSmall, LVSIL_SMALL);<br />
<br />
LvCol.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;<br />
LvCol.iSubItem = 0;<br />
LvCol.pszText = _T("Flag");<br />
LvCol.cx = 50;<br />
LvCol.fmt = LVCFMT_RIGHT;<br />
LvCol.iImage =0;<br />
<br />
ListView_InsertColumn(hList, 0, &LvCol); <br />
LvCol.pszText=_T("File"); <br />
SendMessage(hList,LVM_INSERTCOLUMN,1,(LPARAM)&LvCol);<br />
LvCol.pszText=_T("Extension");
SendMessage(hList,LVM_INSERTCOLUMN,2,(LPARAM)&LvCol);
LvCol.pszText=_T("Location");
<br />
SendMessage(hList,LVM_INSERTCOLUMN,3,(LPARAM)&LvCol);
LvCol.pszText=_T("Size");
<br />
SendMessage(hList,LVM_INSERTCOLUMN,4,(LPARAM)&LvCol);
LvCol.pszText=_T("Duration");
<br />
SendMessage(hList,LVM_INSERTCOLUMN,5,(LPARAM)&LvCol);
LvCol.pszText=_T("Bit Rate");
<br />
SendMessage(hList,LVM_INSERTCOLUMN,6,(LPARAM)&LvCol);
LvCol.pszText=_T("Type"); <br />
SendMessage(hList,LVM_INSERTCOLUMN,7,(LPARAM)&LvCol);
LvCol.pszText=_T("Modified Date"); <br />
SendMessage(hList,LVM_INSERTCOLUMN,8,(LPARAM)&LvCol);
LvCol.pszText=_T("Progress"); <br />
SendMessage(hList,LVM_INSERTCOLUMN,9,(LPARAM)&LvCol);
LvCol.pszText=_T("Protected");<br />
SendMessage(hList,LVM_INSERTCOLUMN,10,(LPARAM)&LvCol);
memset(&LvItem,0,sizeof(LvItem));<br />
SendMessage(hList,LVM_INSERTCOLUMN,11,(LPARAM)&LvCol);
LvItem.mask=LVIF_TEXT;
LvItem.cchTextMax = 256;
ListView_SetItemState(hList,0,LVIS_SELECTED ,LVIF_STATE); <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Amit
|
|
|
|
|
your code have some problem..
amitmistry_petlad wrote: hSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON), ILC_MASK, 1, 1);
use ILC_COLOR32 along with ILC_MASK
hSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON), ILC_COLOR32|ILC_MASK, 1, 1);
amitmistry_petlad wrote: DestroyIcon(hIcon);
Should not call DestroyIcon for a resource icon.
Also show me how you called the ListView_InsertItem().
nave
|
|
|
|
|
I am using listview two times.
1) first when i read all the xml content and display it in the listview.(on WM_INITDIALOG)
for that all columns draw first time in this call back(i will manage it if first time image add
by the (2)). (this is when application open firstime)
(after opened application- new dialog contain combo and new call back - and listview HANDLE is global )
2) when I add any new item in the list view through open dialog.(when COMBO event selchange)
then the new values(files) add diretly in this when i used open dialog.(want to add image/icon here ). when dialog close.the listview saved and display by (1).(this is when running application).
//same for all sub items
<br />
LvItem.iItem=i; <br />
LvItem.iSubItem=0;
LvItem.pszText=(LPWSTR)w_UploadedFile;<br />
SendMessage(hList,LVM_INSERTITEM,0,(LPARAM)&LvItem);
|
|
|
|
|
why didnt you set the mask member of the LVITEM? Also you havent set the iImage member of the structure LVITEM. If you didnt set this values, image will not appear.
LvItem.iItem=i;
LvItem.iImage = 0;// 0th image in the image list
LvItem.mask = LVIF_TEXT|LVIF_IMAGE
LvItem.iSubItem=0; //using loop for sub item
LvItem.pszText=(LPWSTR)w_UploadedFile;
SendMessage(hList,LVM_INSERTITEM,0,(LPARAM)&LvItem);//please refer LVM_SETITEM for sub item
nave
|
|
|
|
|
it is ok but. still i faced the following linking error.
Error 63 error LNK2019: unresolved external symbol __imp__ImageList_Create@20 referenced in function "long __stdcall GlobaListProc(struct HWND__ *,unsigned int,unsigned int,long)" (?GlobaListProc@@YGJPAUHWND__@@IIJ@Z) DRMClient.obj
Error 62 error LNK2019: unresolved external symbol __imp__ImageList_ReplaceIcon@12 referenced in function "long __stdcall GlobaListProc(struct HWND__ *,unsigned int,unsigned int,long)" (?GlobaListProc@@YGJPAUHWND__@@IIJ@Z) DRMClient.obj
Error 66 fatal error LNK1120: 2 unresolved externals D:\Projects\Debug\DRMClient.exe
GlobaListProc is my callback where under this dialog my listview control present
i am finding solution for this in msdn.
|
|
|
|
|
Hi all,
I need to know the status of the physical memory.
Total physical memory of my machine is 512 MB.
But when i use GlobalMemoryStatusEx API, it shows the size as 503 MB.
Why it happens so?
MSDN says that the values retrieved by this function is volatile.
How can know the exact physical memory size?
Any help would be appreciated.
Thanks.
Selva
|
|
|
|
|
See if this helps.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Thanks David.
But it shows 518MB now..But the actual memory is only 512 MB.
What could be the problem..
Thanks
Selva
|
|
|
|
|
Hi,
I am writing a code to execute a method of a WMI class. Please find a piece of my code below :
CString wmi_method = WMI_METHOD_GETINSTID;
BSTR wmi_method_bstr = _bstr_t(wmi_method);
IWbemClassObject* l_pClass = NULL;
HRESULT (l_hRes);
l_hRes = m_wmiService->GetObject(L"Win32_WindowsProductActivation", 0, NULL,&l_pClass, NULL); //WMI Call
if (FAILED (l_hRes))
return 0;
IWbemClassObject* l_pInParamsDefinition = NULL; //input parameter definition
IWbemClassObject* l_pOutParams= NULL;
l_hRes = l_pClass->GetMethod(L"GetInstallationID", 0, &l_pInParamsDefinition, &l_pOutParams);
if (FAILED (l_hRes))
{
return 0;
}
IWbemClassObject* l_pClassInstance = NULL;
l_hRes = l_pInParamsDefinition->SpawnInstance(0, &l_pClassInstance);
if (FAILED (l_hRes))
{
l_pClass->Release();
l_pInParamsDefinition->Release();
l_pClassInstance->Release();
return 0;
}
This code is failing because l_pInParamsDefinition value after GetMethod is called is null.
hence it cannot do 'spawnInstalnce' .
Can anyone please let me know what could be wrong.
Thanks,
Manasi
|
|
|
|
|
i got the same problem, i found l_pInParamsDefinition is null but l_pOutParams is not null, you can use l_pOutParams to spawnInstance
|
|
|
|
|
Yes.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hi.
I am having a problem with the translation of SEH exceptions into c++ exceptions using visual studio 2005. In the release version it doesn't work, if I disable the optimization (/Od) it works!
Had anybody experience this problem? I really would like a solution or workaround to this.
Thanks.
What follows is a simple demo program:
// set_se_translator.cpp
// compile with: /clr /EHa
#include
#include
#include
using namespace std;
#using
using namespace System;
#define MYEXCEPTION_CODE 0xe0000101
class CMyException
{
public:
unsigned int m_ErrorCode;
EXCEPTION_POINTERS* m_pExp;
CMyException() : m_ErrorCode(0), m_pExp(NULL) {}
CMyException(unsigned int i, EXCEPTION_POINTERS* pExp)
: m_ErrorCode(i), m_pExp(pExp) { }
CMyException(CMyException& c)
: m_ErrorCode(c.m_ErrorCode), m_pExp(c.m_pExp) { }
friend ostream& operator<<(ostream& out, const CMyException& inst)
{
return out << "CMyException[\n" << "Error Code: " << inst.m_ErrorCode << "]";
}
};
void my_trans_func(unsigned int u, PEXCEPTION_POINTERS pExp)
{
cout << "In my_trans_func.\n";
throw CMyException( u, pExp );
}
#pragma managed
void managed_func(void)
{
printf("managed_func\n");
try
{
//RaiseException(MYEXCEPTION_CODE, 0, 0, 0);
int i = 0;
i = 1/i;
}
catch(CMyException x)
{
// This is not printed, ok: it is managed code
printf("managed_func: Caught an SEH exception with exception code: %x\n",
x.m_ErrorCode);
}
catch(...)
{
// This messaeg is printed
printf("managed_func: This is invoked since _set_se_translator is not supported when /clr is used\n");
}
}
#pragma unmanaged
void unmanaged_func(void)
{
printf("unmanaged_func\n");
try
{
//RaiseException(MYEXCEPTION_CODE, 0, 0, 0);
int i = 0;
i = 1/i;
}
catch(CMyException x)
{
// This is not printed!!!
printf("unmanaged_func: Caught an SEH exception with exception code: %x\n",
x.m_ErrorCode);
}
catch(...) {
// Neither do this!!!
printf("unmanaged_func: ugh\n");
}
}
int main(int argc, char** argv)
{
_set_se_translator(my_trans_func);
// It does not matter whether the translator function
// is registered in managed or unmanaged code
managed_func();
unmanaged_func();
return 0;
}
Juan Carlos Franzoy
Juan Carlos Franzoy
|
|
|
|
|
Did you solve this one yet?
I'd be happy to try your sample code if you turn on "Ignore HTML tags: in your message so I can
see all the #includes/#usings.
Mark
"Do you know what it's like to fall in the mud and get kicked... in the head... with an iron boot?
Of course you don't, no one does. It never happens. It's a dumb question... skip it."
|
|
|
|
|
Hello everybody. I'm having a little problem with an SMTP email program. Everything works fine except for the body of the email. Thats the only thing that does not get sent. I tested and only got to, from and subject and the body of the email is blank. However, when I remove the to, from and subject I get the body of the email. What is wrong... see the source code. Thanks in advance for your help.
int MailIt (char *mailserver, char *emailto, char *emailfrom,char *emailsubject, char *emailmessage) {<br />
<br />
SOCKET sockfd;<br />
WSADATA wsaData;<br />
FILE *smtpfile;<br />
<br />
#define bufsize 300<br />
int bytes_sent; <br />
int err;<br />
struct hostent *host; <br />
struct sockaddr_in dest_addr; <br />
char line[100000];<br />
char *Rec_Buf = (char*) malloc(bufsize+1);<br />
smtpfile=fopen(SMTPLog,"a+");<br />
if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {<br />
fputs("WSAStartup failed",smtpfile);<br />
WSACleanup();<br />
return -1;<br />
}<br />
if ( (host=gethostbyname(mailserver)) == NULL) {<br />
perror("gethostbyname");<br />
return 1;<br />
}<br />
memset(&dest_addr,0,sizeof(dest_addr));<br />
memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);<br />
<br />
<br />
dest_addr.sin_family= host->h_addrtype; <br />
dest_addr.sin_port= htons(25); <br />
<br />
<br />
<br />
if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {<br />
perror("socket");<br />
return 1;<br />
}<br />
<br />
fputs("Connecting....\n",smtpfile);<br />
<br />
if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){<br />
perror("connect");<br />
return 1;<br />
}<br />
Sleep(waittime);<br />
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';<br />
fputs(Rec_Buf,smtpfile);<br />
strcpy(line,"helo me.somepalace.com\n");<br />
fputs(line,smtpfile);<br />
bytes_sent=send(sockfd,line,strlen(line),0);<br />
Sleep(waittime);<br />
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';<br />
fputs(Rec_Buf,smtpfile);<br />
strcpy(line,"MAIL FROM:<");<br />
strncat(line,emailfrom,strlen(emailfrom));<br />
strncat(line,">\n",3);<br />
fputs(line,smtpfile);<br />
bytes_sent=send(sockfd,line,strlen(line),0);<br />
Sleep(waittime);<br />
err=recv(sockfd,Rec_Buf,bufsize,0);<br />
Rec_Buf[err] = '\0';<br />
fputs(Rec_Buf,smtpfile);<br />
strcpy(line,"RCPT TO:<");<br />
strncat(line,emailto,strlen(emailto));<br />
strncat(line,">\n",3);<br />
fputs(line,smtpfile);<br />
bytes_sent=send(sockfd,line,strlen(line),0);<br />
Sleep(waittime);<br />
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';<br />
fputs(Rec_Buf,smtpfile);<br />
strcpy(line,"DATA \r\n");<br />
fputs(line,smtpfile);<br />
bytes_sent=send(sockfd,line,strlen(line),0);<br />
Sleep(waittime);<br />
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';<br />
fputs(Rec_Buf,smtpfile);<br />
Sleep(waittime);<br />
strcpy(line,"To:");<br />
strcat(line,emailto);<br />
strcat(line,"\n");<br />
strcat(line,"From:");<br />
strcat(line,emailfrom);<br />
strcat(line,"\n");<br />
strcat(line,"Subject:");<br />
strcat(line,emailsubject);<br />
strcat(line,"\n");<br />
strcat(line,emailmessage);<br />
strcat(line,"\r\n.\r\n");<br />
<br />
fputs(line,smtpfile);<br />
bytes_sent=send(sockfd,line,strlen(line),0);<br />
Sleep(waittime);<br />
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';<br />
fputs(Rec_Buf,smtpfile);<br />
strcpy(line,"QUIT\r\n");<br />
fputs(line,smtpfile);<br />
bytes_sent=send(sockfd,line,strlen(line),0);<br />
Sleep(waittime);<br />
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';<br />
fputs(Rec_Buf,smtpfile);<br />
fclose(smtpfile); <br />
#ifdef WIN32<br />
closesocket(sockfd);<br />
WSACleanup();<br />
#else<br />
close(sockfd);<br />
#endif<br />
<br />
return 0;<br />
}<br />
<br />
<br />
int main()<br />
{<br />
char* server="gmail-smtp-in.l.google.com";<br />
char* to="atamrazian@gmail.com";<br />
char* from="atamrazian@gmail.com";<br />
char* subject="whats up";<br />
char* data="This is a test of the email client";<br />
<br />
MailIt(server,to,from,subject,data);<br />
}
|
|
|
|
|
Several issues:
int MailIt (char *mailserver, char *emailto, char *emailfrom,char *emailsubject, char *emailmessage)
{
SOCKET sockfd;
WSADATA wsaData;
int bytes_sent;
int err;
struct hostent *host;
struct sockaddr_in dest_addr;
char line[100000];
char Rec_Buf[301];
if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR)
{
WSACleanup();
return -1;
}
if ( (host=gethostbyname(mailserver)) == NULL)
{
perror("gethostbyname");
return 1;
}
memset(&dest_addr,0,sizeof(dest_addr));
memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);
dest_addr.sin_family= host->h_addrtype;
dest_addr.sin_port= htons(25);
if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0)
{
perror("socket");
return 1;
}
if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1)
{
perror("connect");
return 1;
}
strcpy(line,"HELO me.somepalace.com\r\n");
bytes_sent=send(sockfd,line,strlen(line),0);
err=recv(sockfd,Rec_Buf,sizeof(Rec_Buf),0);
Rec_Buf[err] = '\0';
strcpy(line,"MAIL FROM: <");
strncat(line,emailfrom,strlen(emailfrom));
strncat(line,">\r\n",3);
bytes_sent=send(sockfd,line,strlen(line),0);
err=recv(sockfd,Rec_Buf,sizeof(Rec_Buf),0);
Rec_Buf[err] = '\0';
strcpy(line,"RCPT TO: <");
strncat(line,emailto,strlen(emailto));
strncat(line,">\r\n",3);
bytes_sent=send(sockfd,line,strlen(line),0);
err=recv(sockfd,Rec_Buf,sizeof(Rec_Buf),0);
Rec_Buf[err] = '\0';
strcpy(line,"DATA\r\n");
bytes_sent=send(sockfd,line,strlen(line),0);
err=recv(sockfd,Rec_Buf,sizeof(Rec_Buf),0);
Rec_Buf[err] = '\0';
strcpy(line,"To: ");
strcat(line,emailto);
strcat(line,"\r\n");
strcat(line,"From: ");
strcat(line,emailfrom);
strcat(line,"\r\n");
strcat(line,"Subject: ");
strcat(line,emailsubject);
strcat(line,"\r\n\r\n");
strcat(line,emailmessage);
strcat(line,"\r\n.\r\n");
bytes_sent=send(sockfd,line,strlen(line),0);
err=recv(sockfd,Rec_Buf,sizeof(Rec_Buf),0);
Rec_Buf[err] = '\0';
strcpy(line,"QUIT\r\n");
bytes_sent=send(sockfd,line,strlen(line),0);
err=recv(sockfd,Rec_Buf,sizeof(Rec_Buf),0);
Rec_Buf[err] = '\0';
closesocket(sockfd);
WSACleanup();
return 0;
} No calls to Sleep() are necessary. CRLF should both be sent, not just LF . The initial call to recv() is not necessary. After the subject, an extra CRLF pair is required. The five variables of MailIt() should be made const ant so that they are not accidently messed with.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Is there a way to force an app to paint a window, and to Stall any further code from processing until painting is completed. Even CWnd::RedrawWindow() which appears to fit the bill according to the documentation, sometimes returns before painting is completed.
LateNightsInNewry
|
|
|
|
|
Check out CWnd::Invalidate()/::InvalidateRect() and CWnd::UpdateWindow(). Used in combination
they force an immediate WM_PAINT message.
Mark
-- modified at 19:59 Monday 19th February, 2007
BOLD texted the important words of my reply
Do you know what it's like to fall in the mud and get kicked... in the head... with an iron boot?
Of course you don't, no one does. It never happens. It's a dumb question... skip it.
|
|
|
|
|
Nope, it appears to POST these messages, and the functions return before the painting is completed.
LateNightsInNewry
|
|
|
|
|