|
noeleon wrote: I created a service with "SERVICE_INTERACTIVE_PROCESS". If i run the service i got the icon on the system tray.
Is it possible to get the icon on the system tray without using the "SERVICE_INTERACTIVE_PROCESS". If so how?
Thanks in advance.
you have to fill NOTIFYICONDATA struct for that or have a look at this article; http://www.codeproject.com/shell/CTrayIcon.asp[^]
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Here is the code snippet:
IMalloc* pMalloc;
SHGetMalloc(&pMalloc);
HIMAGELIST hSysImageList = NULL;
LPITEMIDLIST pidl = NULL;
SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidl);
SHFILEINFO sfi;
ZeroMemory(&sfi, sizeof(SHFILEINFO));
hSysImageList = (HIMAGELIST) SHGetFileInfo((LPCTSTR)pidl, 0,
&sfi, sizeof(SHFILEINFO), SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
pMalloc->Free(pidl);
if(!pMalloc)
pMalloc->Release();
//Images for the CoolCool Folders....
CImageList* pImgList = CImageList::FromHandle(hSysImageList);
m_nImgListCnt = pImgList->GetImageCount();
CBitmap clBitmap;
clBitmap.LoadBitmap(IDB_FOLD_REG);
pImgList->Add(&clBitmap,RGB(255,0,255)); //FAILS HERE
clBitmap.DeleteObject();
The application crashes when we are trying to add our own icons to the system image list in Vista.
How to get around this issue????
Thanks
Indrajit
|
|
|
|
|
What exactly does "fail" and "crash" mean? Have you stepped into the Add() method with the debugger?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I got a linking problem. I think it has something to do with MFC and such but I`m not sure.. The problem is as follows:
I made a .dll file and in it is a class derived from CDialog, something like:
#ifdef __DLL_BUILD__<br />
#define LD_DECSPEC __declspec(dllexport)<br />
#else<br />
#define LD_DECSPEC __declspec(dllimport)<br />
#endif<br />
<br />
class LD_DECSPEC CDllDialog : public CDialog<br />
{<br />
public:<br />
CDllDialog( CWnd* pParent = NULL ); <br />
CDllDialog( UINT nIDD, CWnd* pParent = NULL ); <br />
virtual ~CDllDialog();<br />
<br />
<br />
enum{ ID_DLG_LOGOUT = 200 };<br />
<br />
public:<br />
virtual BOOL PreTranslateMessage( MSG* pMsg );<br />
protected:<br />
virtual void DoDataExchange(CDataExchange* pDX);
<br />
protected:<br />
<br />
virtual BOOL OnInitDialog();<br />
DECLARE_MESSAGE_MAP()<br />
};<br />
In another project I want to derive another dialog from that dialog like:
class CDLG_AppSelect : public CDllDialog <br />
{<br />
public:<br />
CDLG_AppSelect(CWnd* pParent = NULL);<br />
enum { IDD = IDD_LOGINAPP_DIALOG };<br />
<br />
protected:<br />
virtual void DoDataExchange(CDataExchange* pDX);
<br />
<br />
protected:<br />
CLD_Button m_btnCancel;<br />
CLD_Static m_statDlgTitle;<br />
void CreateControls();<br />
<br />
virtual BOOL OnInitDialog();<br />
afx_msg virtual int OnPressCancel();<br />
afx_msg virtual int OnStartApplication();<br />
DECLARE_MESSAGE_MAP()<br />
};<br />
The error I got is:
DLG_AppSelect.obj : error LNK2019: unresolved external symbol "protected: static struct AFX_MSGMAP const CDllDialog::messageMap" (?messageMap@CDllDialog@@1UAFX_MSGMAP@@B) referenced in function "protected: static struct AFX_MSGMAP const * __cdecl C
DLG_AppSelect::_GetBaseMessageMap(void)" (?_GetBaseMessageMap@CDLG_AppSelect@@KAPBUAFX_MSGMAP@@XZ)
So it looks it has something to do with the DECLARE_MESSAGE_MAP macro or something... Does anyone know how to solve this problem?
Thanks for any info you can provide
Davy
|
|
|
|
|
You forget this combination in one of file,
BEGIN_MESSAGE_MAP(CMyDlg, CBaseDlg)
END_MESSAGE_MAP()
|
|
|
|
|
no, both .cpp files contain the BEGIN_MESSAGE_MAP -- END_MESSAGE_MAP block.
The problem must lie somewhere else.
Thanks for you input anyway.
Davy
|
|
|
|
|
GDavy wrote: BEGIN_MESSAGE_MAP -- END_MESSAGE_MAP block.
Can you show how you have used in both cpp?
|
|
|
|
|
umeshkvguptha wrote: can anyone please suggest me which one is better .
"Better" for whom? The employee? The Employer? That's too subjective a term to provide any useful answer. You can have certification A, go to a company that thinks it's the greatest thing since sliced bread, and go to another company who doesn't even acknowledge its existence.
umeshkvguptha wrote: " IF U DREAM IT U CAN DO IT "
BTW, Walt Disney knew how to spell "you."
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hi,
I am a complete newbie to windows programming, so please bear with me. I have developed an application which stores a person's personal information in a Sqlite database. I want to detect which version of outlook is installed on a user's system (outlook/outlook express) and then acess the user's contacts and import them to the sqlite database.
Can someone please tell me where can I start from, in order to solve this problem?
Thanks a lot!!
|
|
|
|
|
can please explain the problem in detail.....
--
Regards..
Umesh KV Guptha
Sofware Engineer
Geometric Software Solutions, Pune,India
( 09342282563 (Bangalore)
" DREAM + HARDWORK = SUCCESS "
" IF U DREAM IT U CAN DO IT "
|
|
|
|
|
I have an application (developed using c++,Qt and Sqlite as database) which stores and manages contacts (name, addresses, emails, phone numbers..etc). I have an option wherein, the user can import contacts from his outlook/outlook express. Therfore, I want to import contact information from oulook/oulook express to my application.
I am new to windows programming and therfore have no idea where to start.
I would be greatful to you if you can show me the right direction.
Thanks a lot.
|
|
|
|
|
Mithin wrote: I want to import contact information from oulook/oulook express to my application. Look for WAB (Window Address Book):- i.e. IWABObject interface and IAddrBook interface... you have to do little google too!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Mithin wrote: I want to detect which version of outlook is installed on a user's system
You can either check outlook.exe itself, or look for one of the following registry keys:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0 = Office 2003
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\10.0 = Office XP
You can also use MsiEnumProducts() to check if Office's GUID exists.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Dear all
I write one thread based program in Visual C++.
one of this program feature is its logging capability.
But I dont need the logging capability be enabled every time.
Thus I want to enable and disable it when I want.
Note that this program is written in a dll and does not access to the keyboard.
How can I activate logging capability in this program with keyboard and assign one password to enable logging capability.
Best regards
Mahdi
|
|
|
|
|
Can u explain ur requirement in detail.
m_monhi wrote: I write one thread based program in Visual C++.
one of this program feature is its logging capability.
Hope the threading is nothing to do with the login feature
m_monhi wrote: I dont need the logging capability be enabled every time
R u authenticating the user?? if so why u want to disable the login feature??
Do your Duty and Don't expect the Result
|
|
|
|
|
Logging != login
The OP wants to write a log (or 'audit trail') of actions carried out by the software, but wants the log to be enabled/disabled by password.
Steve S
Developer for hire
|
|
|
|
|
Oops.. Sorry..
Do your Duty and Don't expect the Result
|
|
|
|
|
Hello everyone...
i am trying to provide auto scroll feature to a CListCtrl box.that is, when the listctrl is filled with more items, the control should automatically scroll such that the last added items is visible. an example of such feature can be seen in the Output Window of the Visual C++ editor. but i have little idea about that. can anyone please guide me about how to do that??? thanks...
vijay.
|
|
|
|
|
vijay7173 wrote: i am trying to provide auto scroll feature to a CListCtrl box.that is, when the listctrl is filled with more items, the control should automatically scroll such that the last added items is visible.
Take a look at CListCtrl::EnsureVisible .
Owner drawn
Jesus Loves
|
|
|
|
|
|
I have created a custom window in which all the non-client area is redefined. I have custom borders, a custom title bar and custom min/max/close buttons. For the most part everything is working as I want, but I'm having some serious trouble handling button clicks.
I handle the WM_NCHITTEST returning the appropriate code for the new window area. I want DefWindowProc() to handle most of the functionality, but it is really messing things up. When the close button is clicked a WM_NCLBUTTONDOWN message is sent. If I handle this and return 0, a WM_NCLBUTTONUP message is sent (if a button was clicked), but the window is unable to be resized, also the window does not close. If I allow DefWindowProc() to handle the message, the window can be resized but a WM_NCLBUTTONUP message is never sent, again nothing happens when clicking the button.
I have tried using spy++ to monitor messages of other windows behaviour, but I cannot see much difference. From the docs, I read that DefWindowProc() will send the appropriate WM_SYSCOMMAND message, but I can't understand why it is not working within my code.
Does anybody have an idea what I am doing wrong, what I am missing or not handling correctly? Also, is there any way to see the code for DefWindowProc() (possibly a unix/wine variant) to help me understand what is happening behind the scenes.
|
|
|
|
|
Please look up the docs with the following keywords
HTCLOSE, HTMAXBUTTON, HTMINBUTTON....
WM_NCHITTEST should return appropriate values based your non client area design. For example clicking on close button, you should try to find out if the mouse pointer is inside the close button area, if it is then you should return HTCLOSE .
Owner drawn
Jesus Loves
|
|
|
|
|
In the opening thread I did state that I handle the WM_NCHITTEST message and return the appropriate value. This is not the cause of the problem since I am correctly returng a value for the min/max/close buttons aswell as the correct value for the border positions. Also, I should note that from the buttonup/down handlers, I can see that the wparam is correctly initialized with the correct HT... code and that DefWindowProc() is also being called with the correct wParam (the hit test value) and lParam (the mouse position).
The problem is that somewhere DefWindowProc() is doing something and getting an incorrect value. The trouble is I don't know what other message, if any, I should be handling.
|
|
|
|
|
Just an update incase of others with similar problems. I can't be sure, but I have a strong feeling that when DefWindowProc() handles the WM_NCLBUTTONDOWN messages it goes into a GetMessage loop after a call to SetCapture() , within this loop DefWindowProc() calls it's own WM_NCHITTEST handler rather than sending a message to call the users handler. Since it's impossible for DefWindowProc() to know where the new HitTest regions are, it will never work. The only solution is to handle all WM_NCLBUTTONDOWN messages yourself.
|
|
|
|
|
I want to convert "abcd" into ASCII code
but I met a strange problem. My code is below.
<br />
char *s="abcd";<br />
int br[100];<br />
for(int i=0;i<4;i++)<br />
{<br />
br[i]=__toascii(s[i]);<br />
cout << br[i] << "\n";<br />
}<br />
string kkb=""; <br />
kkb=kkb.insert(0,br[1].ToString());<br />
cout << kkb;<br />
and there is an error at kkb=kkb.insert(0,br[1].ToString());
error C2664: 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::insert(__w64 unsigned int,const std::basic_string<_Elem,_Traits,_Ax> &)' : cant convert argument 2 from 'System::String ^' to 'const std::basic_string<_Elem,_Traits,_Ax> &'a
It's very strange that I change the code
kkb=kkb.insert(0,br[1].ToString());
into
kkb=kkb.insert(0,"a string");
then it works.
I dont understand that both them are string.
why as long as I put the string variable int the function, it has an error?
Can somebody help me?
Thanks a lot.
minihotto
|
|
|
|