|
My project have a list control and each item(colume and row) have data inside.
I want to map message when user double click at each item, and the program show the data that user have double click.
What the message that happen when user double click at each item and how to get the data from the item?
|
|
|
|
|
Do you need to NM_DBLCLK and NM_CLICK ?
|
|
|
|
|
Does anyone PLEASE know how to perform the following (example is in Java, using Apache library) in C++:
import java.io.*;<br />
import javax.xml.parsers.*;<br />
import java.security.*;<br />
<br />
import org.w3c.dom.*;<br />
<br />
import org.apache.xml.security.signature.*;<br />
import org.apache.xml.security.transforms.*;<br />
import org.apache.xml.security.Init;<br />
<br />
import org.bouncycastle.util.encoders.Base64;<br />
<br />
<br />
public class IRMark {<br />
<br />
<br />
public static void main(String args[]) throws Exception {<br />
<br />
Init.init();<br />
<br />
if (args.length!=1) {<br />
System.out.println("Use: IRmark <file> ");<br />
return;<br />
}<br />
<br />
FileInputStream fis=null;<br />
try {<br />
fis=new FileInputStream(args[0]);<br />
} catch (FileNotFoundException e) {<br />
System.out.println("The file " + args[0] + " could not be opened.");<br />
return;<br />
}<br />
<br />
byte[] data=null;<br />
try {<br />
int bytes=fis.available();<br />
data=new byte[bytes];<br />
fis.read(data);<br />
} catch (IOException e) {<br />
System.out.println("Error reading file.");<br />
e.printStackTrace();<br />
}<br />
<br />
<br />
String transformStr =<br />
"<?xml version='1.0'?>\n"<br />
+ "<dsig:Transforms xmlns:dsig='http://www.w3.org/2000/09/xmldsig#'" <br />
+ "xmlns:gt='http://www.govtalk.gov.uk/CM/envelope'" <br />
+ "xmlns:ir='http://www.govtalk.gov.uk/taxation/SA'>\n"<br />
+ "<dsig:Transform Algorithm='http://www.w3.org/TR/1999/REC-xpath-19991116'>\n"<br />
+ "<dsig:XPath>\n"<br />
+ "count(ancestor-or-self::node()|/gt:GovTalkMessage/gt:Body)=count(ancestor-or-self::node())\n"<br />
+ " and count(self::ir:IRmark)=0 \n"<br />
+ " and count(../self::ir:IRmark)=0 \n"<br />
+ "</dsig:XPath>\n"<br />
+ "</dsig:Transform>\n"<br />
+ "<dsig:Transform Algorithm='http://www.w3.org/TR/2001/REC-xml-c14n-20010315#'/>\n"<br />
+ "</dsig:Transforms>\n"<br />
;<br />
<br />
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();<br />
dbf.setNamespaceAware(true);<br />
DocumentBuilder db=dbf.newDocumentBuilder();<br />
Document doc=db.parse(new ByteArrayInputStream(transformStr.getBytes()));<br />
<br />
Transforms transforms = new Transforms(doc.getDocumentElement(), null);<br />
<br />
XMLSignatureInput input = new XMLSignatureInput(data);<br />
XMLSignatureInput result = transforms.performTransforms(input);<br />
<br />
<br />
MessageDigest md = MessageDigest.getInstance("SHA");<br />
md.update(result.getBytes());<br />
byte[] digest=md.digest();<br />
<br />
System.out.println("IRmark: " + new String(Base64.encode(digest)));<br />
}<br />
}
|
|
|
|
|
Honnestly, I don't think that a lot of people will spend half an hour trying to understand what this piece of code is supposed to do. If you have a question, then ask directly what you are trying to achieve and tell us what you already did and where you are stuck.
You'll get much more answers this way.
|
|
|
|
|
can't you read ? it's supposed to "...generates an IRmark value for an input document..." .
whatever that's supposed to be.
|
|
|
|
|
Oww, yes, that's true. And I didn't spot neither the:
The value has to be placed inside documents to be signed by the XPE when used in a EDS/IR deployment.
Now, it makes sense
|
|
|
|
|
As long as you use the Bouncy Castle library you will be ok.
|
|
|
|
|
Ok, I am sorry.
What it is basically doing is:
(1) taking an input XML file, and extracting just the <Body></Body> node structure, we'll call this the 'nodeBody'.
(2) With the 'nodeBody', it then checks if there is a <IRMark></IRMark> node within it, if there is it deletes the <IRMark></IRMark> node from the 'nodeBody'.
(3) With the resultant 'nodeBody' node it does a C14N Transform, the result of which, we'll call the 'result'.
(4) The 'result' is then passed through to a SHA1 hash algorithm, the result of which we'll call the 'digest'; (a byte[] of size == 20 bytes).
(5) The 'digest' is then converted into a Base64 string, the result of which we'll call the 'IRMark'.
I am ok with (1), (2), (4) and (5) above. BUT I would appreciate PLEASE PLEASE how on earth to do a C14N Transform in MFC C++ (unmanaged).
In C# I can do this as follows, but I am not allowed to use .NET in the project I am working on:
/**************************************
* Get the <bod></body> part of the xml:
* ************************************/
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = false;
doc.LoadXml(xml);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("env", "http://www.govtalk.gov.uk/CM/envelope");
nsmgr.AddNamespace("ctf", "http://www.govtalk.gov.uk/taxation/CTF");
XmlNode node = doc.SelectSingleNode("//env:GovTalkMessage/env:Body", nsmgr);
doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.LoadXml(node.OuterXml);
nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("env", "http://www.govtalk.gov.uk/CM/envelope");
nsmgr.AddNamespace("ctf", "http://www.govtalk.gov.uk/taxation/CTF");
node = doc.SelectSingleNode("env:Body/ctf:IRenvelope/ctf:IRheader/ctf:IRmark", nsmgr);
/**************************************
* Remove <IRMark> node
* ************************************/
if (node != null)
{
XmlNode nodeIRMark = node.ParentNode;
nodeIRMark.RemoveChild(node);
}
/**************************************
* Transform the body:
* ************************************/
XmlDsigC14NTransform c14n = new XmlDsigC14NTransform(true);
c14n.LoadInput(doc);
c14n.Algorithm = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315";
Stream stream = (Stream)c14n.GetOutput(typeof(Stream));
|
|
|
|
|
If you are looking for a XML parsing library, you can take a look at tinyXML[^]
|
|
|
|
|
Thanks. I'll investigate that tomorrow.
|
|
|
|
|
How to get local time in seconds?
I am using MS Visual Studio 2005.
I could get UTC time in seconds below.
Are they correct?
Thanks!
#include <time.h>
#include <sys timeb.h="">
double Clock::getUtcSeconds()const // returns UTC time in second
{
time_t UtcTimeValue;
return time(&UtcTimeValue);
}
string Clock::getUtcHMSTime()const
{
char buffer[10];
string strUtcTime;
time_t UtcTimeValue;
time(&UtcTimeValue);
struct tm* UtcTime = gmtime(&UtcTimeValue); //convert the calender time to UTC time
strUtcTime+=itoa(UtcTime->tm_hour, buffer,10); //convert to decimal number
strUtcTime+=" : ";
strUtcTime+=itoa(UtcTime->tm_min, buffer,10);
strUtcTime+=" : ";
strUtcTime+=itoa(UtcTime->tm_sec, buffer,10);
return strUtcTime;
}
Yonggoo
|
|
|
|
|
|
We want to keep our system cross-platform.
Any ANSI standard way to get local time in seconds?
Yonggoo
|
|
|
|
|
Yonggoo wrote: Any ANSI standard way to get local time in seconds?
To bad you didn't include that requirement in your first post I might not have wasted my time giving you an answer that you can't use.
led mike
|
|
|
|
|
|
I have tried many ways.
The following worked.
double Clock::getLocalSeconds()const // The local time is hours behind. All else are the sams as UTC time.
{
time_t UtcTimeValue;
time(&UtcTimeValue); //get the system time, which is UTC time
struct tm* UtcHMS= gmtime(&UtcTimeValue); //convert it to struct tm*, which is UTC time
int utcHours = UtcHMS->tm_hour;
time_t LocalTimeValue;
time(&LocalTimeValue); //get the system time, which is UTC time
struct tm* LocalHMS = localtime(&LocalTimeValue); //convert it to struct tm*, which is the local time
int localHours = LocalHMS->tm_hour;
double diffHours =utcHours - localHours;
return ((double)UtcTimeValue - diffHours*SECONDS_IN_HOUR);
}
Yonggoo
|
|
|
|
|
Yonggoo wrote: I could get UTC time in seconds below.
Are they correct?
Have you tried it?
Good luck on January 18, 2038
"Great job, team. Head back to base for debriefing and cocktails."
(Spottswoode "Team America")
|
|
|
|
|
Yonggoo wrote: Are they correct?
You are in the best position to determine that.
Yonggoo wrote: strUtcTime+=" : ";
You are making an assumption here that a colon is always the separator.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hi guys i'm just now learning windows programming and need to learn how to change the size of the window dynamically.Please help me with this guys ....I need it urgently guys.
|
|
|
|
|
How about MoveWindow() or SetWindowPos() ?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
thanks a lot friend but i asked how to change the size and not to move it.
|
|
|
|
|
rschocks wrote: ...i asked how to change the size...
And I provided you with the names of two functions to do just that.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
K thanks a lot.I will try it.
|
|
|
|
|
if you see MSDN it writes:"changes the position and dimensions of the specified window" and also you can retrives current position of a window if you need
|
|
|
|
|
rschocks wrote: Hi guys i'm just now learning windows programming
Great, it can be a lot of fun. Here is a "tip"... they hide all that information in the DOCUMENTATION[^] so that really beyond breathing the only qualification you need to be a windows developer is READING.
led mike
|
|
|
|