|
I mean right now i can encrypt data by CryptoAPI and by using RC4 algorithm.
So, what's reason to use hashing in encrypting ?
|
|
|
|
|
one major use of hash functions is to sign the data:
data -> hashFunction(key,data) -> hash
then, you transmit the hash with the data. the recipient can apply the same hash function, using the same key that you used, and compare the two hash values. if they don't match, the message is not the one that you used to generate your hash. this is called a Message Authentication Code (MAC).
this is not the same as encryption.
-c
Be very, very careful what you put into that head, because you will never, ever get it out. --Thomas Cardinal Wolsey
|
|
|
|
|
Hi dear Chris,
Thank you for help
|
|
|
|
|
Hello everyone,
I want to update the icon of my app at runtime after checking to see if a certain condition is true. The new icon to use is defined in my resources. I have looked through past posts on this subject and found some information (mostly using UpdateResource), however I have not been able to get it to work. Here is the code I've got so far:
if( bcondition == TRUE){
HANDLE hIcon = LoadImage(AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME),
IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR);
UpdateResource (hIcon, RT_ICON, MAKEINTRESOURCE(IDI_NEWICON),
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), NULL,0);
}
I'm probably totally off here (sorry, still a newbie ), also where should I put this? Does it need to be at a certain point during the creation of the app? Thanks so much!
|
|
|
|
|
Im not exactly sure on what you mean by "update" your icon. I am assuming you mean to change the icon on the window of the application itself and not the EXE's icon completely. If this is wrong say so. But anyways to update an icon on the window itself you could do it a varity of ways. If your using MFC you could simply use SetIcon after loading it from the resource using the LoadIcon function. If your talking about doing this in a Win32 application you may have to do it a bit differnt.
If you mean your trying to update the icon for the EXE completely so that even the icon of the .exe file in your folder changes it would be a bit more hard.
For more info feel free to contact me im not sure exactly what your question is my AIM is LiquidIceKnight or vethax0r my MSN is spartacushaxor@hotmail.com (dont email me here) if you only have yahoo my yahoo name is killereaglesoftware, and if you really don't have any of those and must reply to me only by means of email when it would be so much easier to explain through means of chatting feel free to email me. killereaglesoftware@yahoo.com
- LiquidKnight
|
|
|
|
|
Yup, you are right in saying I'm trying to update my icon. I don't want to change it completely in the exe, just update it so the user see something different at runtime. I am using MFC, I will give it a shot with the SetIcon and let you know what happens. Thanks so much for your help!
|
|
|
|
|
feel free to message if u have any other questions i know alot :/ lol
- LiquidKnight
|
|
|
|
|
Got it to work with SetIcon! Thanks so much!
|
|
|
|
|
I'm generating a popup menu and dynamically attaching it on the fly: (The STL part is incidental)
void CSTrainDoc::GenerateSearchCriteriaMenu()
{
CMenu* mmenu = ((CMainFrame*)AfxGetMainWnd())->GetMenu();
int pos = ((CMainFrame*)AfxGetMainWnd())->FindMenuItem(mmenu, "Current Search");
if (pos == -1)
return;
CMenu* submenu = mmenu->GetSubMenu(pos);
for (int i = 0; i < mmenu->GetMenuItemCount(); i++)
submenu->DeleteMenu(0, MF_BYPOSITION);
int size = m_menuKeyOptMap.size();
if(size == 0)submenu->AppendMenu(MF_STRING, NULL, "All selected");
MenuKeyOptMap::iterator itDyn = m_menuKeyOptMap.begin();
CMenu* pFlyOutMenu = new CMenu[size];
for (i = 0; itDyn != m_menuKeyOptMap.end(); itDyn++, i++)
{
char * tempDyn;
CString tempCDyn = (*itDyn).first;
tempDyn = new char [tempCDyn.GetLength() + 1];
strcpy(tempDyn, tempCDyn);
MenuOptSet& subMenuSet = m_menuKeyOptMap[tempCDyn];
pFlyOutMenu[i].CreatePopupMenu();
MenuOptSet::iterator itSub = subMenuSet.begin();
for (; itSub != subMenuSet.end(); itSub++)
{
char * tempSub;
CString tempCSub = *itSub;
tempSub = new char [tempCSub.GetLength() + 1];
strcpy(tempSub, tempCSub);
pFlyOutMenu[i].AppendMenu(MF_STRING, 0, tempSub);
delete tempSub;
}
submenu->AppendMenu(MF_POPUP,(int)(pFlyOutMenu[i].m_hMenu),tempDyn);
}
}
I call this function in my OnItemchangedList1(). If I include the delete[] above, it freezes. WIthout the delete, the first time I click my list 1, the menu comes up fine. Then if click on the listbox again, the menu now has a cyclic repeat.. (the item stored in tempdyn ). Theres no pattern. Each time I click on list1, depending on which item I clicked, another bunch of tempdyns gets added to the menu...it keeps growing and growing . Its not purely cyclic because its not A-Z-A-Z...its like H-Z-A-Z..........
Why does the app freeze if I delete[]? I stepped into it and the code assures mne that its only appending the correct tempdyns as I step along, yet when the UI comes up its got a ton of repeats. They dont start at the top and repeat ,,,.but strat repeating somewhere midway down the list, changing where the repeat starts when a different item is clicked .......
Appreciate your help,
ns
|
|
|
|
|
WHta I do when I click on the item is change the stuff in submenuset, but not the number of flyout items (which are the tempdyns...). But instead of theoriginal 31, I get 54 on the second click at some item etc...
Appreciate your help,
ns
|
|
|
|
|
GetMenuITemCount assures me I only have 31 items....every time I step through.......but ui shows many more....adding each time I click...
Appreciate your help,
ns
|
|
|
|
|
this may not be 100% correct.
You need to call Detach() of pFLyOutMenu before the delete call as when you call append the HMENU handle is then owned by the other menu. The destructor of CMenu calls DestroyMenu() on the HMENU thus you end up with a CMenu which has partially invalid data in it.
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
msdn:<br />
<pre>CMenu mnu;
HMENU hmnu = AfxGetMainWnd()->GetMenu()->GetSafeHmenu();
mnu.Attach( hmnu );
hmnu = mnu.Detach();
</pre><br />
<br />
I have:<br />
<br />
<pre> CMenu* mmenu = ((CMainFrame*)AfxGetMainWnd())->GetMenu();
</pre><br />
<br />
no hmenu...<br />
<br />
Also:<br />
<br />
<pre>
CMenu* pFlyOutMenu = new CMenu[size];
</pre><br />
<br />
which one needs detached? <br />
I did:<br />
<br />
<pre>
pFlyOutMenu->Detach();
delete[] pFlyOutMenu;</pre><br />
<br />
and its not freezing now, but still the same problem.... <br />
<br />
Appreciate your help,<br />
ns
|
|
|
|
|
I want to change the button state of the tool bar window when i will click inside a dialog box(or CFormView).
how can i ?
manoj Kumar Dalei,
IIT Delhi
|
|
|
|
|
You can map the UPDATE_COMMAND_UI handler for the toolbar buttons in your CFormView class. In that function you would call:
pCmdUI->SetCheck(TRUE/FALSE);
See the MSDN help for CCmdUI class
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
Another bit of code ripped from my software:
ON_UPDATE_COMMAND_UI_RANGE(IDM_TOOLS_MB_FLAT_FIRST, IDM_TOOLS_MB_FLAT_LAST, OnUpdateTools)
void CMidasViewFlat::OnUpdateTools(CCmdUI* pCmdUI)
{
if (m_CommentDrag.bOn)
pCmdUI->Enable ((pCmdUI->m_nID == m_nMouseMode) ? TRUE : FALSE);
else
pCmdUI->Enable (TRUE);
pCmdUI->SetCheck ((pCmdUI->m_nID == m_nMouseMode) ? 1 : 0);
}
I must be in a good mode. I mean, what sort of idiot just gives away code!
Iain.
|
|
|
|
|
But I beat you for both replies!
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
No fair!
But does quality beat speed?
Iain.
|
|
|
|
|
Iain Clarke wrote:
But does quality beat speed?
In that case, I beat you with both....
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
I want to change the cursor of the view window when i will click on different buttons of the main tool bar. When i will click on a particular button a particular cursor should be loaded.
how can i ?
manoj Kumar Dalei,
IIT Delhi
|
|
|
|
|
You need to map the WM_SETCURSOR message for your view. In that function you will need to call ::SetCursor(HCURSOR) to set the cursor you want to display. THis will be based on the flags set in your mainframe. To keep it efficeint, you should load all your cursor resources just once at the start of your program and reference those from your view.
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
You need to handle the WM_SETCURSOR message. Here is some code lifted
straight from application of mine. (OK, I cut some long winded bits)
BOOL CMidasViewFlat::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
if (nHitTest != HTCLIENT)
return CMidasView::OnSetCursor(pWnd, nHitTest, message);
...Obscure case removed here...
::SetCursor (m_hModeCursor [m_nMouseMode - IDM_TOOLS_MB_FLAT_FIRST]);
return TRUE;
}
Of course, this won't work if you haven't got any cursors...
CMidasViewFlat::CMidasViewFlat ()
{
for (int n = IDM_TOOLS_MB_FLAT_FIRST; n <= IDM_TOOLS_MB_FLAT_LAST; n++)
m_hModeCursor [n - IDM_TOOLS_MB_FLAT_FIRST] = ::LoadCursor (ghInstance, MAKEINTRESOURCE (n));
...Snipped...
}
You will also need to change the "mouse mode" depending on the tool button you
just pressed:
ON_COMMAND_RANGE(IDM_TOOLS_MB_FLAT_FIRST, IDM_TOOLS_MB_FLAT_LAST, OnToolMode)
void CMidasViewFlat::OnToolMode (UINT nToolMode)
{
m_nMouseMode = nToolMode;
::SetCursor (m_hModeCursor [m_nMouseMode - IDM_TOOLS_MB_FLAT_FIRST]);
}
I hope that helped...
Iain.
|
|
|
|
|
Hi,
I am using the WNetAddConnection2 function to create a user connection on a Windows2000 server. The connection is not persistent but I need it to remain active for the lifetime of a component on the client PC.
What is currently happening is that after 15 minutes idle time the server is deleting the clients connection.
I could run a timer, which calls the WNetAddConnection2 again.
However, apart from needlessly running a Windows timer, this only has an effect if the connection has already been deleted. So as we don't know the exact period between creation and idle time deletion there maybe a period before the timer tick where the client is disconnected.
Does anyone have any ideas on how this connection can be kept active until the component that created the connection wants to terminate it ?
Thanks in advance.
Nic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nic.oughton@trikon.com
|
|
|
|
|
What is about just "using" the connection every, lets say, 10 minutes. (List the directory, access some file or, if it is not a connection to an UNC share, call an API that routes over IPC$ like remote registry access or the SCM API.)
Then the system should not detect it as beeing idle
--
Daniel Lohmann
http://www.losoft.de
(Hey, this page is worth looking! You can find some free and handy NT tools there )
|
|
|
|
|
Never done any printing before from MFC. Trying for the first time, but i've fallen at the first hurdle.
The "print" menu item is disabled. Is there a "proper" way to tell the framework to enable it??
Thanks
Jon
#include <beer.h>
|
|
|
|